/* Best Time to Visit Mallorca Finder — styles */
/* Scoped under .btf-app so theme styles do not leak in/out. */

/* ---------- tokens ---------- */
  .btf-app{
    --sea:#014DA0;          /* brand primary */
    --sea-deep:#012E63;
    --sun:#E8A317;          /* brand accent */
    --sun-soft:#F4C863;
    --ink:#12233A;
    --ink-soft:#4A5B70;
    --paper:#FBF8F2;        /* warm off-white, kept cool enough to read Mediterranean not "AI cream" */
    --mist:#EEF3F8;
    --line:#DCE4EC;
    --white:#ffffff;
    --radius:16px;
    --shadow:0 10px 30px -12px rgba(1,46,99,.28);
    --shadow-soft:0 4px 14px -8px rgba(1,46,99,.35);
    --display:'Cormorant Garamond', Georgia, serif;
    --body:'Montserrat', system-ui, -apple-system, sans-serif;
  }

  /* ---------- reset within app ---------- */
  .btf-app *{box-sizing:border-box;margin:0;padding:0;}
  .btf-app{
    font-family:var(--body);
    color:var(--ink);
    background:
      radial-gradient(1100px 500px at 80% -10%, rgba(1,77,160,.10), transparent 60%),
      radial-gradient(900px 460px at -5% 110%, rgba(232,163,23,.12), transparent 55%),
      var(--paper);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    min-height:100vh;
    padding:clamp(18px,4vw,48px) clamp(14px,4vw,24px);
  }
  .btf-app .btf-shell{max-width:820px;margin:0 auto;}

  /* ---------- top bar ---------- */
  .btf-app .btf-top{
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    margin-bottom:clamp(20px,4vw,40px);
  }
  .btf-app .btf-brand{
    font-family:var(--body);font-weight:700;letter-spacing:.14em;
    text-transform:uppercase;font-size:11px;color:var(--sea);
    display:flex;align-items:center;gap:9px;
  }
  .btf-app .btf-brand .btf-dot{width:8px;height:8px;border-radius:50%;
    background:var(--sun);box-shadow:0 0 0 4px rgba(232,163,23,.18);}
  .btf-app .btf-lang{display:flex;background:var(--white);border:1px solid var(--line);
    border-radius:999px;padding:3px;box-shadow:var(--shadow-soft);}
  .btf-app .btf-lang button{
    font-family:var(--body);font-weight:600;font-size:12px;letter-spacing:.04em;
    border:0;background:transparent;color:var(--ink-soft);
    padding:6px 12px;border-radius:999px;cursor:pointer;transition:.18s;
  }
  .btf-app .btf-lang button.is-on{background:var(--sea);color:#fff;}
  .btf-app .btf-lang button:hover:not(.is-on){color:var(--sea);}

  /* ---------- card ---------- */
  .btf-app .btf-card{
    background:var(--white);border:1px solid var(--line);
    border-radius:calc(var(--radius) + 6px);
    box-shadow:var(--shadow);
    padding:clamp(22px,4vw,44px);
    position:relative;overflow:hidden;
  }
  .btf-app .btf-card::before{
    content:"";position:absolute;inset:0 0 auto 0;height:5px;
    background:linear-gradient(90deg,var(--sea),var(--sun));
  }

  /* ---------- intro ---------- */
  .btf-app .btf-eyebrow{
    font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    font-size:11.5px;color:var(--sun);margin-bottom:14px;
  }
  .btf-app h1{
    font-family:var(--display);font-weight:600;line-height:1.02;
    font-size:clamp(2.3rem,6vw,3.6rem);color:var(--sea-deep);
    letter-spacing:-.01em;margin-bottom:14px;
  }
  .btf-app h1 em{font-style:italic;color:var(--sun);}
  .btf-app .btf-lede{font-size:clamp(1rem,2.4vw,1.12rem);color:var(--ink-soft);
    max-width:46ch;margin-bottom:26px;}

  .btf-app .btf-cta{
    font-family:var(--body);font-weight:600;font-size:1rem;
    border:0;cursor:pointer;color:#fff;
    background:linear-gradient(180deg,#0A5FBE,var(--sea));
    padding:15px 28px;border-radius:999px;
    box-shadow:0 12px 24px -10px rgba(1,77,160,.7);
    transition:transform .16s ease, box-shadow .16s ease;
    display:inline-flex;align-items:center;gap:10px;
  }
  .btf-app .btf-cta:hover{transform:translateY(-2px);box-shadow:0 18px 30px -12px rgba(1,77,160,.75);}
  .btf-app .btf-cta.btf-ghost{
    background:transparent;color:var(--sea);box-shadow:none;
    border:1.5px solid var(--line);padding:13px 22px;
  }
  .btf-app .btf-cta.btf-ghost:hover{border-color:var(--sea);background:var(--mist);transform:none;}
  .btf-app .btf-cta[disabled]{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none;}
  .btf-app .btf-cta svg{width:17px;height:17px;}

  .btf-app .btf-intro-strip{
    margin-top:30px;display:flex;flex-wrap:wrap;gap:10px 22px;
    font-size:13px;color:var(--ink-soft);
  }
  .btf-app .btf-intro-strip span{display:inline-flex;align-items:center;gap:7px;}
  .btf-app .btf-intro-strip b{color:var(--sea);font-weight:700;}

  /* ---------- quiz ---------- */
  .btf-app .btf-progress{margin-bottom:26px;}
  .btf-app .btf-progress .btf-meta{display:flex;justify-content:space-between;
    font-size:12px;font-weight:600;color:var(--ink-soft);letter-spacing:.03em;margin-bottom:8px;}
  .btf-app .btf-bar{height:6px;background:var(--mist);border-radius:999px;overflow:hidden;}
  .btf-app .btf-bar span{display:block;height:100%;width:0;border-radius:999px;
    background:linear-gradient(90deg,var(--sun-soft),var(--sun));transition:width .35s cubic-bezier(.4,0,.1,1);}

  .btf-app .btf-q{font-family:var(--display);font-weight:600;
    font-size:clamp(1.7rem,4.6vw,2.4rem);color:var(--sea-deep);
    line-height:1.08;margin-bottom:20px;letter-spacing:-.01em;}

  .btf-app .btf-options{display:grid;gap:11px;}
  .btf-app .btf-opt{
    text-align:left;font-family:var(--body);cursor:pointer;
    background:var(--white);border:1.5px solid var(--line);border-radius:14px;
    padding:15px 17px;display:flex;align-items:center;gap:14px;
    transition:.15s;font-size:1rem;color:var(--ink);width:100%;
  }
  .btf-app .btf-opt:hover{border-color:var(--sea);background:var(--mist);}
  .btf-app .btf-opt .btf-tick{
    flex:0 0 auto;width:22px;height:22px;border-radius:50%;
    border:2px solid var(--line);display:grid;place-items:center;transition:.15s;
  }
  .btf-app .btf-opt .btf-tick svg{width:12px;height:12px;opacity:0;transform:scale(.6);transition:.15s;color:#fff;}
  .btf-app .btf-opt .btf-otext{display:flex;flex-direction:column;}
  .btf-app .btf-opt .btf-otext b{font-weight:600;}
  .btf-app .btf-opt .btf-otext small{color:var(--ink-soft);font-size:12.5px;}
  .btf-app .btf-opt.is-sel{border-color:var(--sun);background:#FFF9EC;box-shadow:0 0 0 3px rgba(232,163,23,.15);}
  .btf-app .btf-opt.is-sel .btf-tick{background:var(--sun);border-color:var(--sun);}
  .btf-app .btf-opt.is-sel .btf-tick svg{opacity:1;transform:scale(1);}

  .btf-app .btf-nav{display:flex;justify-content:space-between;align-items:center;margin-top:26px;gap:12px;}

  /* ---------- result ---------- */
  .btf-app .btf-verdict-eyebrow{font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    font-size:11.5px;color:var(--sun);margin-bottom:12px;}
  .btf-app .btf-verdict{font-family:var(--display);font-weight:600;
    font-size:clamp(2rem,5.4vw,3.2rem);color:var(--sea-deep);line-height:1.05;letter-spacing:-.01em;}
  .btf-app .btf-verdict .btf-mon{position:relative;white-space:nowrap;color:var(--sea);}
  .btf-app .btf-verdict .btf-mon::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.14em;
    background:var(--sun);opacity:.55;border-radius:2px;z-index:-1;}
  .btf-app .btf-verdict-sub{color:var(--ink-soft);font-size:1rem;margin-top:14px;max-width:52ch;}

  .btf-app .btf-section{margin-top:34px;}
  .btf-app .btf-section > h3{
    font-family:var(--body);font-weight:700;font-size:12px;letter-spacing:.13em;
    text-transform:uppercase;color:var(--ink-soft);margin-bottom:16px;
    display:flex;align-items:center;gap:10px;
  }
  .btf-app .btf-section > h3::after{content:"";flex:1;height:1px;background:var(--line);}

  /* year ribbon (signature) */
  .btf-app .btf-ribbon{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;}
  .btf-app .btf-cell{
    position:relative;border-radius:11px;padding:10px 4px 9px;text-align:center;
    border:1.5px solid transparent;background:var(--mist);cursor:default;
    transition:transform .18s ease;opacity:0;transform:translateY(8px);
  }
  .btf-app .btf-cell.in{opacity:1;transform:none;}
  .btf-app .btf-cell .btf-swatch{height:34px;border-radius:7px;margin-bottom:7px;}
  .btf-app .btf-cell .btf-cm{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);}
  .btf-app .btf-cell .btf-cs{font-size:11px;font-weight:600;color:var(--ink-soft);margin-top:1px;}
  .btf-app .btf-cell.is-win{border-color:var(--sun);background:#FFF9EC;box-shadow:0 6px 16px -8px rgba(232,163,23,.7);}
  .btf-app .btf-cell.is-win .btf-star{position:absolute;top:-8px;right:-6px;background:var(--sun);color:#fff;
    width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;box-shadow:var(--shadow-soft);}
  .btf-app .btf-ribbon-legend{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:11.5px;color:var(--ink-soft);}
  .btf-app .btf-ribbon-legend .btf-grad{height:8px;flex:1;max-width:180px;border-radius:999px;
    background:linear-gradient(90deg,#78A6C7,#8FB8CE,#E8C765,#E8A317,#E07B27);}

  /* comparison table */
  .btf-app .btf-table{width:100%;border-collapse:collapse;font-size:14px;}
  .btf-app .btf-table th,.btf-app .btf-table td{padding:12px 10px;text-align:center;border-bottom:1px solid var(--line);}
  .btf-app .btf-table th{font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
  .btf-app .btf-table td:first-child,.btf-app .btf-table th:first-child{text-align:left;}
  .btf-app .btf-table tr.is-win td{background:#FFFCF4;}
  .btf-app .btf-table .btf-mname{font-weight:600;color:var(--sea-deep);}
  .btf-app .btf-table .btf-temp b{font-size:15px;}
  .btf-app .btf-table .btf-temp small{color:var(--ink-soft);}
  .btf-app .btf-dots{display:inline-flex;gap:3px;}
  .btf-app .btf-dots i{width:7px;height:7px;border-radius:50%;background:var(--line);display:inline-block;}
  .btf-app .btf-dots i.on-p{background:var(--sea);}
  .btf-app .btf-dots i.on-c{background:var(--sun);}
  .btf-app .btf-more{margin-top:12px;background:none;border:0;color:var(--sea);font-family:var(--body);
    font-weight:600;font-size:13px;cursor:pointer;padding:4px 0;}
  .btf-app .btf-more:hover{text-decoration:underline;}

  /* recommendation tiles */
  .btf-app .btf-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;}
  .btf-app .btf-tile{border:1px solid var(--line);border-radius:14px;padding:16px 16px 15px;background:var(--white);}
  .btf-app .btf-tile .btf-tname{font-weight:600;color:var(--sea-deep);font-size:15px;margin-bottom:5px;
    display:flex;align-items:center;gap:8px;}
  .btf-app .btf-tile .btf-tname .btf-pin{color:var(--sun);flex:0 0 auto;}
  .btf-app .btf-tile p{font-size:13px;color:var(--ink-soft);line-height:1.5;}

  /* month links */
  .btf-app .btf-links{display:flex;flex-wrap:wrap;gap:10px;}
  .btf-app .btf-mlink{
    display:inline-flex;align-items:center;gap:9px;text-decoration:none;
    border:1.5px solid var(--line);border-radius:999px;padding:11px 18px;
    font-weight:600;font-size:14px;color:var(--sea);background:var(--white);transition:.16s;
  }
  .btf-app .btf-mlink:hover{border-color:var(--sea);background:var(--mist);transform:translateY(-1px);}
  .btf-app .btf-mlink svg{width:15px;height:15px;}

  /* primary conversion CTA (under the verdict) */
  .btf-app .btf-primary-cta{
    display:inline-flex;align-items:center;gap:11px;margin-top:22px;
    font-family:var(--body);font-weight:700;font-size:1.02rem;color:#fff;text-decoration:none;
    background:linear-gradient(180deg,#F2B63D,var(--sun));
    padding:16px 30px;border-radius:999px;
    box-shadow:0 14px 26px -10px rgba(232,163,23,.75);
    transition:transform .16s ease, box-shadow .16s ease;
  }
  .btf-app .btf-primary-cta:hover{transform:translateY(-2px);box-shadow:0 20px 32px -12px rgba(232,163,23,.8);}
  .btf-app .btf-primary-cta svg{width:18px;height:18px;}
  /* per-tile CTA */
  .btf-app .btf-tile{display:flex;flex-direction:column;}
  .btf-app .btf-tile p{flex:1;}
  .btf-app .btf-tcta{
    margin-top:13px;align-self:flex-start;text-decoration:none;
    display:inline-flex;align-items:center;gap:7px;
    font-weight:600;font-size:13px;color:var(--sea);
    border-bottom:1.5px solid transparent;transition:.15s;padding-bottom:1px;
  }
  .btf-app .btf-tcta:hover{border-bottom-color:var(--sea);}
  .btf-app .btf-tcta svg{width:13px;height:13px;}

  .btf-app .btf-result-foot{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
  .btf-app .btf-note{font-size:11.5px;color:var(--ink-soft);margin-top:18px;line-height:1.5;}

  /* view switching + motion */
  .btf-app .btf-view{display:none;}
  .btf-app .btf-view.is-active{display:block;animation:btf-in .4s ease both;}
  @keyframes btf-in{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

  @media (max-width:560px){
    .btf-app .btf-ribbon{grid-template-columns:repeat(6,1fr);gap:7px;}
    .btf-app .btf-cell .btf-swatch{height:28px;}
    .btf-app .btf-table th:nth-child(4),.btf-app .btf-table td:nth-child(4),
    .btf-app .btf-table th:nth-child(5),.btf-app .btf-table td:nth-child(5){display:none;}
    .btf-app .btf-nav .btf-cta{padding:12px 18px;font-size:.92rem;}
  }
  @media (prefers-reduced-motion:reduce){
    .btf-app *,.btf-app *::before,.btf-app *::after{animation:none!important;transition:none!important;}
    .btf-app .btf-cell{opacity:1;transform:none;}
  }
  .btf-app :focus-visible{outline:3px solid rgba(1,77,160,.45);outline-offset:2px;border-radius:6px;}
