:root{
    --cream:#F5EFE3;
    --cream-2:#EDE3CF;
    --card:#FFFDF8;
    --navy:#2B4256;
    --navy-deep:#1C2A36;
    --gold:#C1943F;
    --gold-deep:#9C7527;
    --ink:#3A362D;
    --ink-soft:#6E6858;
    --line:rgba(43,66,86,0.14);
    --radius:4px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:16px;
    line-height:1.6;
  }
  h1,h2,h3,.serif{font-family:'Fraunces',serif;}
  em{font-style:italic;}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1160px;margin:0 auto;padding:0 32px;}
  .eyebrow{
    display:block;
    font-size:12px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--gold-deep);
    font-weight:600;
    margin-bottom:14px;
  }
  /* NAV */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(245,239,227,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{
    display:flex;align-items:center;flex-wrap:wrap;
    padding-top:18px;padding-bottom:18px;
    gap:14px 18px;
  }
  .logo{
    font-family:'Fraunces',serif;
    font-size:14px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--navy-deep);
    font-weight:600;
    flex:0 0 auto;
  }
  .nav-links{display:flex;align-items:center;justify-content:center;gap:20px;flex:1;flex-wrap:wrap;min-width:0;}
  .nav-links a{
    font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;
    color:var(--navy);font-weight:500;
    white-space:nowrap;
  }
  .nav-links a:hover{color:var(--gold-deep);}
  .nav-actions{display:flex;gap:10px;align-items:center;flex:0 0 auto;flex-wrap:wrap;}
  .lang-switch{display:flex;gap:6px;border:1px solid var(--line);border-radius:16px;padding:3px;}
  .lang-switch a{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink-soft);padding:4px 9px;border-radius:12px;}
  .lang-switch a.active{background:var(--navy);color:#fff;}
  .lang-switch a:hover:not(.active){color:var(--navy);}
  .btn{
    display:inline-block;
    padding:10px 16px;
    border-radius:var(--radius);
    font-size:12px;letter-spacing:.03em;text-transform:uppercase;
    font-weight:600;
    cursor:pointer;
    border:1px solid transparent;
    transition:all .2s ease;
    white-space:nowrap;
  }
  .btn-outline{border-color:var(--navy);color:var(--navy);background:transparent;}
  .btn-outline:hover{background:var(--navy);color:#fff;}
  .btn-navy{background:var(--navy);color:#fff;}
  .btn-navy:hover{background:var(--navy-deep);}
  .btn-gold{background:var(--gold);color:#fff;}
  .btn-gold:hover{background:var(--gold-deep);}
  @media (max-width:980px){ .nav-links{display:none;} }
  @media (max-width:560px){
    .nav-actions{flex-basis:100%;justify-content:flex-end;}
    .nav-actions .btn-outline{display:none;}
    nav.wrap{gap:10px 12px;}
  }
  @media (max-width:360px){
    .btn{padding:8px 12px;font-size:11px;}
    .lang-switch a{padding:3px 7px;}
  }

  /* HERO */
  .hero{
    position:relative;min-height:640px;
    display:flex;align-items:center;justify-content:center;text-align:center;
    background:
      linear-gradient(180deg, rgba(20,28,34,0.32) 0%, rgba(20,28,34,0.52) 100%),
      linear-gradient(120deg, #4A6D82 0%, #C9A15E 55%, #E8C994 100%);
    color:#fff;padding:120px 24px;
  }
  .hero-inner{max-width:760px;}
  .hero .eyebrow{color:#F1DDAE;letter-spacing:.28em;}
  .hero h1{
    font-size:clamp(40px,6vw,68px);
    font-weight:600;
    line-height:1.08;
    margin:0 0 26px;
  }
  .hero h1 em{font-weight:500;}
  .hero p{
    font-size:18px;color:rgba(255,255,255,0.9);
    max-width:520px;margin:0 auto 36px;
  }

  section{padding:96px 0;}
  .section-cream2{background:var(--cream-2);}
  .center{text-align:center;}
  .lede{max-width:600px;margin:0 auto 48px;color:var(--ink-soft);font-size:16px;}

  /* SEARCH */
  .search-panel{max-width:820px;margin:0 auto;}
  .chip-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:22px;}
  .chip{
    padding:9px 18px;border:1px solid var(--navy);border-radius:20px;
    font-size:13px;font-weight:500;color:var(--navy);background:transparent;
    cursor:pointer;transition:all .15s ease;
  }
  .chip.active{background:var(--navy);color:#fff;}
  .chip-row.secondary .chip{border-color:var(--gold-deep);color:var(--gold-deep);}
  .chip-row.secondary .chip.active{background:var(--gold);border-color:var(--gold);color:#fff;}
  .search-bar{
    display:flex;gap:12px;background:var(--card);
    border:1px solid var(--line);border-radius:var(--radius);
    padding:8px;margin-bottom:18px;
  }
  .search-bar input{
    flex:1;border:none;background:transparent;padding:12px 14px;
    font-size:15px;font-family:'Inter',sans-serif;color:var(--ink);outline:none;
  }
  .search-bar button{border:none;border-radius:2px;}
  .search-note{text-align:center;}
  .search-note button{
    background:transparent;border:1px solid var(--line);
    padding:10px 20px;border-radius:20px;font-size:13px;color:var(--ink-soft);
    cursor:pointer;
  }

  /* TRUSTED BY */
  .trusted{text-align:center;padding:56px 0;}
  .trusted .eyebrow{margin-bottom:28px;}
  .trusted-row{display:flex;justify-content:center;align-items:flex-start;gap:56px;flex-wrap:wrap;color:var(--navy);}
  .trusted-item{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:150px;}
  .trusted-item img{height:64px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1);opacity:.8;transition:opacity .25s ease, filter .25s ease;}
  .trusted-item span{font-family:'Fraunces',serif;font-size:13px;text-align:center;color:var(--ink-soft);letter-spacing:.01em;line-height:1.3;}
  .trusted-item:hover img{filter:grayscale(0);opacity:1;}

  /* ABOUT */
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
  .photo-ph{
    border-radius:var(--radius);aspect-ratio:4/5;
    display:flex;align-items:flex-end;padding:16px;
    color:rgba(255,255,255,.85);font-size:12px;letter-spacing:.05em;
  }
  .about-grid .photo-ph{background:linear-gradient(160deg,#9AAAB0,#5A7686 60%,#3C5468);}
  .portrait-frame{position:relative;padding:0 20px 20px 0;}
  .portrait-frame .frame-accent{position:absolute;top:20px;left:20px;right:0;bottom:0;border:1px solid var(--gold);border-radius:6px;z-index:0;}
  .portrait-frame img{position:relative;z-index:1;display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;box-shadow:0 24px 44px rgba(20,28,34,.2);}
  .portrait-caption{position:relative;z-index:1;margin:16px 0 0;font-family:'Fraunces',serif;font-style:italic;color:var(--gold-deep);font-size:14.5px;text-align:center;}
  .about-copy h2{font-size:34px;color:var(--navy-deep);margin:0 0 22px;line-height:1.2;}
  .about-copy p{color:var(--ink-soft);margin-bottom:16px;}
  .divider{width:40px;height:1px;background:var(--gold);margin:26px 0;}

  /* PHILOSOPHY */
  .philo-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;align-items:center;margin-bottom:70px;}
  .philo-row h3{font-size:30px;color:var(--navy-deep);margin:0 0 14px;line-height:1.2;}
  .philo-row .photo-ph{aspect-ratio:1/1;}
  .philo-row:nth-child(odd) .photo-ph{background:linear-gradient(160deg,#E3C48B,#C99552 55%,#A9702F);}
  .philo-row p{color:var(--ink-soft);font-size:15px;}
  @media (max-width:860px){ .about-grid,.philo-row{grid-template-columns:1fr;} }

  /* EXPERIENCES GRID */
  .results-panel{margin-top:44px;opacity:1;}
.results-panel .exp-grid{transition:opacity .3s ease, transform .3s ease;}
.results-panel.updating .exp-grid{opacity:0;transform:translateY(6px);}
.clear-link{background:none;border:none;font-size:13px;color:var(--ink-soft);text-decoration:underline;cursor:pointer;}
.clear-link:hover{color:var(--gold-deep);}
.grid-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:16px;}
  .grid-count{color:var(--ink-soft);font-size:14px;}
  .grid-toolbar-bottom{display:flex;justify-content:center;margin-top:36px;}
  .grid-toolbar-bottom .clear-link{
    font-size:14px;font-weight:600;text-decoration:none;color:var(--navy);
    border:1px solid var(--line);border-radius:999px;padding:12px 28px;
    transition:border-color .2s ease, color .2s ease;
  }
  .grid-toolbar-bottom .clear-link:hover{border-color:var(--gold-deep);color:var(--gold-deep);}
  .exp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px;}
  @media (max-width:360px){ .exp-grid{grid-template-columns:1fr;} }
  .exp-card{
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    overflow:hidden;display:flex;flex-direction:column;
    transition:box-shadow .2s ease, transform .2s ease;
  }
  .exp-card:hover{box-shadow:0 12px 28px rgba(28,42,54,.12);transform:translateY(-3px);}
  .exp-photo{
    position:relative;aspect-ratio:4/3;
    display:flex;align-items:flex-start;justify-content:space-between;padding:14px;
  }
  .badge{
    font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
    padding:5px 10px;border-radius:2px;
  }
  .badge-tag{background:rgba(255,255,255,.92);color:var(--navy-deep);}
  .badge-rec{background:var(--gold);color:#fff;}
  .badge-rank{color:#fff;font-weight:700;}
  .badge-rank-1{background:linear-gradient(135deg,#E8C468,#B8860B);}
  .badge-rank-2{background:linear-gradient(135deg,#D4D4D4,#8C8C8C);}
  .badge-rank-3{background:linear-gradient(135deg,#D7A579,#9C5A2E);}
  .exp-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
  .exp-title{font-family:'Fraunces',serif;font-size:19px;color:var(--navy-deep);margin:0 0 8px;line-height:1.28;}
  .exp-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink-soft);margin-bottom:12px;}
  .price-caption{font-size:11.5px;font-weight:600;color:var(--gold-deep);text-align:right;margin:-8px 0 12px;}
  .exp-meta .price{color:var(--gold-deep);font-weight:600;}
  .exp-locs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
  .loc-tag{font-size:11px;color:var(--navy);background:var(--cream-2);padding:3px 9px;border-radius:12px;}
  .exp-desc{font-size:13.5px;color:var(--ink-soft);flex:1;margin-bottom:16px;}
  .exp-link{font-size:13px;font-weight:600;color:var(--navy);border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;align-items:center;}
  .exp-card:hover .exp-link{color:var(--gold-deep);}
  .exp-card[hidden]{display:none;}
  .exp-body-compact{
    padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;
  }
  .exp-title-clean{
    font-family:'Fraunces',serif;font-size:17px;line-height:1.32;font-weight:500;
    color:var(--navy-deep);margin:0;
  }
  .exp-meta-row{display:flex;justify-content:space-between;align-items:baseline;padding-top:4px;border-top:1px solid var(--line);}
  .exp-meta-row .exp-duration{font-size:12px;color:var(--ink-soft);letter-spacing:.03em;text-transform:uppercase;}
  .exp-meta-row .price{font-size:16px;font-weight:600;color:var(--gold-deep);}
  .exp-meta-row .per-group{font-size:11px;font-weight:500;color:var(--ink-soft);}
  .empty-state{display:none;text-align:center;padding:60px 0;color:var(--ink-soft);}

  /* TESTIMONIALS */
  .testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
  .testi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px;}
  .testi .quote-mark{font-family:'Fraunces',serif;font-size:40px;color:var(--gold);line-height:0.5;display:block;margin-bottom:14px;}
  .testi p{color:var(--ink-soft);font-size:14.5px;margin-bottom:16px;}
  .testi .who{font-size:13px;font-weight:600;color:var(--navy-deep);}
  @media (max-width:860px){ .testi-grid{grid-template-columns:1fr;} }

  /* CONTACT */
  .contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;}
  .contact-grid h2{font-size:32px;color:var(--navy-deep);margin:0 0 16px;}
  .field-label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);font-weight:600;margin-bottom:8px;display:block;}
  .field{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);font-family:'Inter',sans-serif;font-size:14px;margin-bottom:20px;}
  textarea.field{min-height:110px;resize:vertical;}
  .contact-cards{display:flex;flex-direction:column;gap:16px;}
  .contact-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;}
  .contact-card h4{margin:0 0 6px;font-size:16px;color:var(--navy-deep);}
  .contact-card p{font-size:13.5px;color:var(--ink-soft);margin:0 0 14px;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }

  footer{background:var(--navy-deep);color:rgba(255,255,255,.82);padding:64px 0 34px;}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:48px;}
  .footer-grid h5{font-family:'Fraunces',serif;color:#fff;font-size:16px;margin:0 0 16px;}
  .footer-grid p,.footer-grid a{font-size:13.5px;color:rgba(255,255,255,.68);line-height:2;}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:24px;font-size:12.5px;color:rgba(255,255,255,.5);}
  @media (max-width:860px){ .footer-grid{grid-template-columns:1fr;} }

  /* MOBILE POLISH */
  @media (max-width:640px){
    .wrap{padding:0 20px;}
    section{padding:60px 0;}
    .hero{min-height:auto;padding:80px 20px;}
    .hero p{font-size:16px;}
    .search-bar{flex-direction:column;gap:8px;padding:10px;}
    .search-bar button{padding:12px !important;}
    .trusted-row{gap:28px;}
    .trusted-item span{font-size:11.5px;}
    .trusted-item img{height:44px;}
    .about-copy h2{font-size:28px;}
    .philo-row h3{font-size:24px;}
    .contact-grid h2{font-size:26px;}
    .contact-grid > div > div[style*="grid-template-columns"]{grid-template-columns:1fr !important;}
  }
