:root{--forest:#2D3E2F;--sage:#7A8B6F;--sand:#E8E0D5;--cream:#F7F4F0;--terracotta:#C4906B;--ink:#1E1E1E;--muted:#8A8476;--white:#FEFDFB}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Jost',sans-serif;font-weight:300;color:var(--ink);background:var(--cream);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--sage);outline-offset:3px}
::selection{background:rgba(122,139,111,.2);color:var(--forest)}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.2rem 4vw;background:var(--white);box-shadow:0 1px 0 rgba(45,62,47,.06)}
.nav-logo img{display:block;width:56px;height:56px;object-fit:cover}
.nav-links{display:flex;gap:2.6rem;list-style:none}
.nav-links a{font-weight:400;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--forest);text-decoration:none}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--terracotta)}
.hamburger{display:none;flex-direction:column;gap:6px;background:none;border:none;cursor:pointer;padding:10px;z-index:200}
.hamburger span{display:block;width:22px;height:1px;background:var(--forest);transition:all .35s ease}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* header */
.page-header{padding:9.5rem 4vw 5.5rem;background:var(--forest);text-align:center}
.label{font-weight:500;font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;color:var(--sage);margin-bottom:1.4rem}
.page-header .label{color:var(--terracotta)}
h1{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.2rem,5vw,3.5rem);color:var(--cream);line-height:1.2;margin-bottom:1.2rem}
.meta{font-size:.9rem;letter-spacing:.06em;color:rgba(232,224,213,.7)}

/* sections */
.block{padding:6.5rem 4vw;background:var(--white)}
.block.alt{background:var(--cream)}
.inner{max-width:720px;margin:0 auto}
h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(1.6rem,3.5vw,2.2rem);color:var(--forest);line-height:1.35;margin-bottom:1.5rem}
p{margin-bottom:1rem;font-size:.98rem}
.muted{color:var(--muted);font-size:.85rem;line-height:1.6}
.awards{list-style:none;margin-top:1.8rem}
.awards li{padding:.85rem 0;border-bottom:1px solid rgba(45,62,47,.08);font-size:.95rem}
.awards li:last-child{border-bottom:none}
.days{list-style:none;margin:1.8rem 0 0}
.days li{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(45,62,47,.08);font-size:.95rem}
.days b{font-weight:500;color:var(--forest);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;padding-top:.25rem}
.price-block{background:var(--cream);border:1px solid rgba(45,62,47,.1);padding:2.4rem;margin:2rem 0}
.price-amount{font-family:'Cormorant Garamond',serif;font-size:2.6rem;color:var(--forest);line-height:1;margin-bottom:.6rem}
.btn{display:inline-block;font-weight:400;font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cream);background:var(--forest);padding:1rem 3rem;text-decoration:none;border:none;cursor:pointer;transition:background .3s}
.btn:hover{background:#3a5040}
.faq details{border-bottom:1px solid rgba(45,62,47,.08);padding:1.3rem 0}
.faq summary{cursor:pointer;font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--forest);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq details p{margin:.8rem 0 0;font-size:.92rem;color:var(--muted)}

/* application form */
.field{margin-bottom:2.3rem}
.lbl{display:block;font-weight:500;font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--forest);margin-bottom:.8rem}
.hint{display:block;font-size:.78rem;color:var(--muted);margin:-.4rem 0 .8rem}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;font-family:'Jost',sans-serif;font-weight:300;font-size:.95rem;color:var(--ink);background:var(--white);border:1px solid rgba(45,62,47,.15);padding:.9rem 1.1rem;border-radius:0;appearance:none;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--sage)}
textarea{min-height:110px;resize:vertical;line-height:1.7}
.opt{display:flex;gap:1rem;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid rgba(45,62,47,.07);cursor:pointer;font-size:.95rem}
.opt:last-child{border-bottom:none}
.opt input{margin-top:.4rem;accent-color:var(--forest);flex-shrink:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.divider{width:40px;height:1px;background:var(--sage);opacity:.35;margin:3rem 0}
.field-error{border-color:var(--terracotta)!important}
.submit-note{font-size:.8rem;color:var(--muted);font-style:italic;margin-top:1rem}
.confirm{display:none;text-align:center;padding:5rem 1rem;max-width:560px;margin:0 auto}
.confirm.visible{display:block}
.confirm h2{margin-bottom:1.2rem}
.steps{text-align:left;max-width:460px;margin:2.4rem auto;padding:2rem 0;border-top:1px solid rgba(45,62,47,.08);border-bottom:1px solid rgba(45,62,47,.08)}
.step{display:flex;gap:1rem;padding:.6rem 0;font-size:.92rem}
.step b{font-family:'Cormorant Garamond',serif;font-weight:400;color:var(--terracotta);font-size:1.1rem}

/* footer */
footer{background:var(--forest);padding:2.5rem 4vw;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.foot-left{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(247,244,240,.4)}
.foot-right a{font-size:.72rem;color:rgba(247,244,240,.55);text-decoration:none;margin-left:2rem}
.foot-right a:hover{color:var(--cream)}

/* sun intro + page leave */
.tre-transition{position:fixed;inset:0;z-index:10000;background:#F5EEE1;display:flex;align-items:center;justify-content:center;opacity:1;visibility:visible;pointer-events:none;animation:tre-cover-out 1s cubic-bezier(.32,.08,.24,1) forwards}
.tre-transition__mark{width:clamp(120px,40vw,190px);height:auto;display:block;animation:tre-mark-in .9s cubic-bezier(.32,.08,.24,1) both}
.tre-transition.tre-leaving{animation:tre-cover-in .42s cubic-bezier(.32,.08,.24,1) forwards;pointer-events:auto}
.tre-transition.tre-leaving .tre-transition__mark{animation:none;opacity:1;transform:none}
@keyframes tre-cover-out{0%,32%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes tre-cover-in{from{opacity:0;visibility:visible}to{opacity:1;visibility:visible}}
@keyframes tre-mark-in{0%{opacity:0;transform:translateY(10px)}34%{opacity:1;transform:translateY(0)}100%{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion: reduce){.tre-transition,.tre-transition.tre-leaving{animation:none;opacity:0;visibility:hidden}.tre-transition__mark{animation:none}}

/* mobile */
@media (max-width:768px){
  nav{padding:1.1rem 5vw}
  .hamburger{display:flex}
  .nav-links{position:fixed;inset:0;background:var(--cream);flex-direction:column;justify-content:center;align-items:center;gap:2.4rem;z-index:150;display:none}
  .nav-links.open{display:flex}
  .nav-links a{font-size:1rem;letter-spacing:.3em}
  .page-header{padding:7.5rem 6vw 4rem}
  .block{padding:4.5rem 6vw}
  .days li{grid-template-columns:1fr;gap:.2rem}
  .price-block{padding:1.8rem}
  .price-amount{font-size:2.2rem}
  .row2{grid-template-columns:1fr}
  input[type=text],input[type=email],input[type=tel],select,textarea{font-size:1rem;padding:1rem 1.1rem}
  .btn{width:100%;text-align:center;padding:1.1rem 2rem}
  footer{flex-direction:column;text-align:center;padding:2.5rem 6vw}
  .foot-right a{margin:.6rem;display:inline-block}
}
