:root{
    --paper:#FAF8F5;
    --lav:#EFEAF6;
    --lilac:#CFBEDC;
    --violet:#9471D2;
    --ink:#3B2A4F;
    --plum:#472549;
    --orange:#F0820B;
    --beige:#E5C8B7;
    --line:rgba(59,42,79,.16);
    --line-light:rgba(250,248,245,.22);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation:none!important;transition:none!important}
  }
  body{
    font-family:'Inter',sans-serif;
    font-weight:400;
    background:var(--paper);
    color:var(--ink);
    line-height:1.75;
    font-size:16.5px;
  }
  h1,h2,h3{font-family:'Montserrat',sans-serif;font-weight:400;line-height:1.25}
  a{color:inherit}
  img{max-width:100%;display:block}
  .wrap{max-width:1140px;margin:0 auto;padding:0 28px}
  section{padding:110px 0}
  .label{
    font-size:11px;letter-spacing:.32em;text-transform:uppercase;
    font-weight:600;color:var(--orange);margin-bottom:22px;
  }
  h2{
    font-size:clamp(1.6rem,3.3vw,2.4rem);
    letter-spacing:.12em;text-transform:uppercase;font-weight:400;
  }
  .btn{
    display:inline-block;font-weight:500;font-size:12.5px;
    letter-spacing:.28em;text-transform:uppercase;
    padding:17px 42px;text-decoration:none;
    border:1px solid var(--ink);color:var(--ink);
    transition:background .2s ease,color .2s ease,border-color .2s ease;
  }
  .btn:hover{background:var(--ink);color:var(--paper)}
  .btn:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
  .btn-fill{background:var(--ink);color:var(--paper)}
  .btn-fill:hover{background:var(--violet);border-color:var(--violet);color:#fff}

  /* header */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(250,248,245,.94);backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex;align-items:center;justify-content:space-between;
    padding:20px 28px;max-width:1200px;margin:0 auto;gap:18px;
  }
  .logo{
    font-family:'Montserrat',sans-serif;
    font-size:14px;letter-spacing:.3em;text-transform:uppercase;font-weight:500;
    text-decoration:none;white-space:nowrap;
    display:flex;align-items:center;gap:12px;
  }
  .logo img{height:42px;width:42px;display:block}
  .hero-logo{width:120px;height:120px;margin-bottom:30px}
  .logo .dot{color:var(--orange)}
  .nav-links{display:flex;gap:34px;list-style:none}
  .nav-links a{
    text-decoration:none;font-size:12px;font-weight:500;
    letter-spacing:.2em;text-transform:uppercase;color:var(--ink);
    opacity:.75;transition:opacity .15s;
  }
  .nav-links a:hover{opacity:1;color:var(--violet)}
  .langs{display:flex;align-items:center}
  .langs button{
    font-family:'Inter',sans-serif;font-weight:600;font-size:12px;
    letter-spacing:.12em;padding:4px 9px;border:0;background:transparent;
    color:var(--ink);opacity:.55;cursor:pointer;transition:opacity .15s;
  }
  .langs button + button{border-left:1px solid var(--line)}
  .langs button:hover{opacity:.9}
  .langs button.active{opacity:1;color:var(--orange)}
  .langs button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
  @media(max-width:900px){
    .nav{flex-wrap:wrap;padding:14px 20px;row-gap:4px}
    .nav-links{order:3;width:100%;display:flex;flex-wrap:wrap;gap:8px 20px;padding-top:6px}
    .nav-links a{font-size:10.5px}
    .logo{font-size:12.5px;letter-spacing:.22em;gap:9px}
    .logo img{height:34px;width:34px}
  }

  /* hero */
  .hero{padding:0;border-bottom:1px solid var(--line)}
  .hero-grid{
    display:grid;grid-template-columns:1.05fr .95fr;
    max-width:1200px;margin:0 auto;min-height:calc(100vh - 76px);
  }
  .hero-text{
    display:flex;flex-direction:column;justify-content:center;
    padding:90px 56px 90px 28px;
  }
  .hero h1{
    font-size:clamp(2.4rem,5vw,4rem);
    font-weight:400;letter-spacing:.12em;text-transform:uppercase;
  }
  .hero h1 .dot{color:var(--orange)}
  .hero .tagline{
    margin-top:30px;font-size:clamp(1.02rem,1.6vw,1.2rem);
    max-width:40ch;color:var(--plum);font-weight:300;
  }
  .hero .loc{
    margin-top:20px;font-size:12px;letter-spacing:.34em;text-transform:uppercase;
    color:var(--violet);font-weight:400;
  }
  .hero-cta{margin-top:52px;display:flex;gap:18px;flex-wrap:wrap}
  .hero-photo{
    position:relative;overflow:hidden;background:var(--lav);
    display:flex;align-items:center;justify-content:center;
    padding:56px 40px;
  }
  .hero-photo img{
    max-height:100%;max-width:100%;width:auto;height:auto;object-fit:contain;
  }
  @media(max-width:860px){
    .hero-grid{grid-template-columns:1fr;min-height:0}
    .hero-text{padding:60px 24px 52px}
    .hero-logo{width:96px;height:96px;margin-bottom:24px}
    .hero-photo{aspect-ratio:auto;padding:30px 20px}
    .hero-photo img{max-height:76vh;width:auto}
  }
  @media(max-width:640px){
    section{padding:72px 0}
    .wrap{padding:0 22px}
    .price-card{padding:42px 26px}
    .band-text{padding:56px 24px}
  }

  /* about */
  .about-grid{display:grid;grid-template-columns:1fr;max-width:820px}
  .about-text p{margin-bottom:20px;max-width:64ch}
  .creds{margin-top:34px;display:flex;flex-wrap:wrap;gap:0;list-style:none;border-top:1px solid var(--line)}
  .creds li{
    font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
    padding:16px 34px 0 0;color:var(--plum);
  }
  .creds li span{color:var(--orange);margin-right:10px}

  /* method */
  .method{background:var(--lav)}
  .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:64px}
  @media(max-width:860px){.cols{grid-template-columns:1fr}}
  .col{border-top:1px solid var(--ink);padding-top:26px}
  .col h3{
    font-size:13px;letter-spacing:.24em;text-transform:uppercase;
    font-weight:500;margin-bottom:16px;color:var(--plum);
  }
  .col p{font-size:15px;color:var(--ink)}
  .method-intro{margin-top:22px;max-width:62ch}

  /* group photo band */
  .band{padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .band-grid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .band-photo{overflow:hidden;background:var(--plum);display:flex;align-items:center}
  .band-photo img{width:100%;height:100%;object-fit:contain}
  .band-text{
    display:flex;flex-direction:column;justify-content:center;
    padding:90px 60px;background:var(--plum);color:var(--paper);
  }
  .band-text .label{color:var(--beige)}
  .band-text h2{color:var(--paper)}
  .band-text p{margin-top:22px;max-width:46ch;color:rgba(250,248,245,.88)}
  .band-text .btn{margin-top:44px;border-color:var(--paper);color:var(--paper);align-self:flex-start}
  .band-text .btn:hover{background:var(--paper);color:var(--plum)}
  @media(max-width:860px){
    .band-grid{grid-template-columns:1fr}
    .band-photo{aspect-ratio:1500/1226}
    .band-text{padding:64px 28px}
  }

  /* pricing */
  .price-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:64px;border:1px solid var(--ink)}
  @media(max-width:820px){.price-grid{grid-template-columns:1fr}}
  .price-card{padding:54px 48px;display:flex;flex-direction:column}
  .price-card + .price-card{border-left:1px solid var(--ink)}
  @media(max-width:820px){.price-card + .price-card{border-left:0;border-top:1px solid var(--ink)}}
  .price-card.featured{background:var(--ink);color:var(--paper)}
  .price-card h3{
    font-family:'Montserrat',sans-serif;
    font-size:14px;letter-spacing:.26em;text-transform:uppercase;font-weight:500;
  }
  .price-card .per{
    margin-top:6px;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
    font-weight:500;color:var(--violet);
  }
  .price-card.featured .per{color:var(--lilac)}
  .big-price{font-family:'Montserrat',sans-serif;font-size:clamp(2.6rem,4.6vw,3.6rem);font-weight:300;margin:28px 0 4px}
  .big-price small{font-size:.32em;font-weight:300;letter-spacing:.2em;text-transform:uppercase}
  .pack-list{list-style:none;margin-top:30px;flex:1}
  .pack-list li{
    display:flex;justify-content:space-between;gap:14px;
    padding:15px 0;border-top:1px solid var(--line);font-size:15px;
  }
  .price-card.featured .pack-list li{border-color:var(--line-light)}
  .pack-list .save{font-weight:600;color:var(--orange);white-space:nowrap;font-size:13px;letter-spacing:.06em}
  .price-card .btn{margin-top:38px;text-align:center}
  .price-card.featured .btn{border-color:var(--paper);color:var(--paper)}
  .price-card.featured .btn:hover{background:var(--paper);color:var(--ink)}
  .price-note{margin-top:20px;max-width:60ch}
  .packages-hint{margin-top:36px;font-size:15px;color:var(--plum);max-width:70ch}
  .packages-hint::before{content:"";display:block;width:56px;border-top:1px solid var(--orange);margin-bottom:18px}

  /* video */
  .video{background:var(--lav)}
  .video-frame{
    margin-top:56px;position:relative;padding-top:56.25%;
    overflow:hidden;background:var(--ink);
  }
  .video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
  .video-poster{
    position:absolute;inset:0;width:100%;height:100%;
    border:0;padding:0;margin:0;cursor:pointer;background:var(--ink);display:block;
  }
  .video-poster img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92;transition:opacity .2s}
  .video-poster:hover img{opacity:1}
  .play-btn{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:86px;height:60px;background:var(--orange);border-radius:14px;
    box-shadow:0 8px 30px rgba(0,0,0,.35);transition:transform .15s ease,background .15s ease;
  }
  .play-btn::after{
    content:"";position:absolute;top:50%;left:50%;transform:translate(-40%,-50%);
    border-left:22px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent;
  }
  .video-poster:hover .play-btn{transform:translate(-50%,-50%) scale(1.07);background:#ff8d14}
  .video-poster:focus-visible{outline:3px solid var(--orange);outline-offset:3px}

  /* contact */
  .contact{background:var(--plum);color:var(--paper)}
  .contact .label{color:var(--beige)}
  .contact h2{color:var(--paper)}
  .contact-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;margin-top:44px}
  @media(max-width:820px){.contact-grid{grid-template-columns:1fr}}
  .contact p{color:rgba(250,248,245,.88);max-width:52ch}
  .contact .btn{margin-top:40px;border-color:var(--paper);color:var(--paper)}
  .contact .btn:hover{background:var(--paper);color:var(--plum)}
  .contact-list{list-style:none}
  .contact-list li{
    padding:20px 0;border-top:1px solid var(--line-light);
    display:flex;flex-direction:column;gap:2px;
  }
  .contact-list .lbl{
    font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;
    color:var(--lilac);font-weight:600;
  }
  .contact-list a{
    color:var(--paper);text-decoration:none;font-size:1.05rem;font-weight:400;
    letter-spacing:.02em;
  }
  .contact-list a:hover{color:var(--beige)}

  /* booking form */
  .form-wrap{margin-top:8px}
  .bform{display:grid;gap:22px}
  .bform label{
    display:block;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;
    color:var(--lilac);font-weight:600;margin-bottom:8px;
  }
  .bform input,.bform select,.bform textarea{
    width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-light);
    color:var(--paper);font-family:'Inter',sans-serif;font-size:1.02rem;
    padding:10px 2px;border-radius:0;outline:none;transition:border-color .15s;
  }
  .bform select{appearance:none;-webkit-appearance:none;cursor:pointer}
  .bform select option{color:var(--ink);background:var(--paper)}
  .bform textarea{resize:vertical;min-height:88px}
  .bform input:focus,.bform select:focus,.bform textarea:focus{border-color:var(--orange)}
  .bform ::placeholder{color:rgba(250,248,245,.45)}
  .bform .btn{border-color:var(--paper);color:var(--paper);background:transparent;cursor:pointer;
    font-family:'Inter',sans-serif;width:100%;}
  .bform .btn:hover{background:var(--paper);color:var(--plum)}
  .bform .btn[disabled]{opacity:.55;cursor:wait}
  .form-ok{display:none;padding:34px 0 8px}
  .form-ok h3{font-size:15px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--beige);margin-bottom:14px}
  .form-ok p{color:rgba(250,248,245,.88)}
  .form-err{display:none;margin-top:6px;font-size:14px;color:var(--beige)}
  .form-err a{color:var(--paper)}

  footer{
    background:var(--plum);color:rgba(250,248,245,.55);
    border-top:1px solid var(--line-light);
    padding:28px;text-align:center;font-size:12.5px;letter-spacing:.14em;
  }
  footer .dot{color:var(--orange)}
\n\n/* Production enhancements */
section[id], #book { scroll-margin-top: 112px; }
.hp-field {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.form-privacy {
  margin-top: -4px;
  font-size: 12px;
  line-height: 1.55;
  color: rgba(250,248,245,.68) !important;
}
