:root{--paper:#f6f5ef;--white:#fbfaf6;--mist:#e8edf0;--ink:#20384b;--soft:#596c78;--line:#c8d2d6;--accent:#a78850;--navy:#1a344a;--navy-deep:#152c3e;--gold:#c3a977;--gold-light:#dfd1ad}
body{background:var(--paper);color:var(--ink)}
::selection{background:#d8c79f;color:#1a344a}
.reading-progress{background:#c9aa6a}
.site-header{background:var(--navy);border-bottom-color:rgba(217,196,154,.27)}
.site-header.is-scrolled{background:rgba(248,247,241,.96);color:var(--ink);border-bottom-color:#d3d6d0}
.site-header:not(.is-scrolled) .brand span{color:#d6bd87}
.site-header:not(.is-scrolled) .menu-toggle span{background:#f7f5ed}
.site-header .desktop-nav a:hover{color:#d6bd87}
.site-header.is-scrolled .desktop-nav a:hover{color:#987942}
.brand span{color:#a48750}
.eyebrow{color:#95784b;display:flex;align-items:center;gap:13px}
.eyebrow::before{content:"";display:block;width:27px;height:1px;flex:none;background:#bd9f67}
.section-copy strong,.format-description strong{color:var(--ink)}
.section-copy p,.requests-heading p,.format-description p{color:#415665}
.section-copy blockquote{border-left-color:var(--gold);color:var(--ink)}
.text-link{border-color:#a18450}
.text-link:hover{color:#8c6b35}

.hero{background:var(--navy);color:#f8f6ee}
.hero::before{display:none}
.hero-name{color:#dec895}
.hero h1 em{color:#d8bf88}
.hero-deck{color:#f4f3ed}
.hero-specialties{color:#d7dce0}
.hero-visual img{filter:saturate(.88) contrast(1.025);transform:none}
.hero-visual:hover img{transform:none}
.hero-visual::after{content:"";position:absolute;inset:0 auto 0 0;width:1px;background:rgba(202,172,111,.64);pointer-events:none}
.primary-link{background:#f9f7ef;color:#1a344a;border:1px solid #d5bd87;border-left-width:3px}
.primary-link:hover{background:#dfd0ac;color:#182e41;border-color:#dfd0ac}
.hero-foot{border-color:rgba(211,193,151,.46);color:#d8d5c9}
@media(min-width:761px){
  .hero{display:grid;grid-template-columns:minmax(0,54%) minmax(0,46%);grid-template-rows:minmax(0,1fr);height:calc(100svh - 76px);min-height:620px;overflow:hidden}
  .hero-copy{grid-column:1;grid-row:1;z-index:2;align-self:stretch;width:auto;max-width:none;height:100%;min-height:0;margin:0;padding:clamp(50px,6vh,85px) clamp(38px,5vw,86px) 90px;justify-content:center}
  .hero h1{font-size:clamp(5rem,7.5vw,8.6rem);max-width:100%;letter-spacing:-.067em}
  .hero-deck{max-width:36ch;font-size:clamp(1.12rem,1.5vw,1.34rem);margin-top:35px}
  .hero-specialties{max-width:43ch}
  .hero-visual{grid-column:2;grid-row:1;position:relative;inset:auto;height:100%;min-height:0;min-width:0;margin:0;overflow:hidden;animation:heroImage 1.3s .1s both}
  .hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center 24%}
  .hero-foot{position:absolute;left:clamp(38px,5vw,86px);right:auto;bottom:22px;width:calc(54% - clamp(76px,10vw,172px));z-index:3}
  .hero-foot span:first-child{display:none}
  .hero-foot span:last-child{margin-left:auto}
}
@media(min-width:761px) and (max-width:1100px){
  .hero{grid-template-columns:minmax(0,55%) minmax(0,45%)}
  .hero h1{font-size:clamp(4.55rem,7.15vw,6.8rem)}
  .hero-foot{width:calc(55% - 2 * clamp(38px,5vw,86px))}
}
@media(min-width:761px) and (max-height:800px){
  .hero-copy{justify-content:flex-start;padding-top:58px;padding-bottom:72px}
  .hero-name{margin-bottom:14px}
  .hero-deck{margin-top:24px}
  .hero-specialties{margin-top:14px}
  .primary-link{margin-top:18px}
}

#inside{background:#eef1ee}
#about{background:#fcfbf6}
#answers{background:#e8edef}
.requests-section{background:#f6f5ef}
#approach{background:var(--navy-deep);color:#f5f4eb}
#approach .section-copy h2{color:#f8f6ed}
#approach .section-copy p,#approach .section-copy strong{color:#e6ebeb}
#approach .section-copy blockquote{border-color:#c9aa6d;color:#f8f6ed}
#approach .eyebrow{color:#d4bd8b}
#higher-self{background:#fbfaf6}
.formats-section{background:#e9eef0}
.formats-heading p{color:#506473}
.formats-grid,.format-card,.format-card:nth-child(-n+2){border-color:#c4d0d2}
.format-card:hover{background:#f7f8f5}
.format-index,.topic-num{color:#9b8052}
.format-price{color:#997a45}
.format-description p{color:#485c68}
.format-end{background:#faf9f3;border-top:2px solid #bea06a}
#academy{background:#fbfaf6}
#no-ready-answers{background:#f7f7f1}
.quote-photo img{filter:brightness(.54) saturate(.75) sepia(.1)}
.quote-content .eyebrow{color:#e0cfaa}
.reviews-section{background:#e9eef0}
.reviews-section .section-heading{border-bottom:1px solid #bbc9ce;padding-bottom:54px}
.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}
.review-card{position:relative;min-width:0;min-height:340px;padding:30px clamp(30px,3vw,46px) 27px;border:1px solid #cbd3d0;background:#fbfaf6;color:#213b4c;display:flex;flex-direction:column;text-align:left;cursor:zoom-in;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.review-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#b69a64;transform:scaleY(0);transform-origin:bottom;transition:transform .4s ease}
.review-card:hover{transform:translateY(-5px);border-color:#b6aa92;box-shadow:0 20px 40px rgba(23,49,65,.1)}
.review-card:hover::before,.review-card:focus-visible::before{transform:scaleY(1)}
.review-card-top,.review-card-foot{display:flex;justify-content:space-between;gap:16px;align-items:center;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase}
.review-card-top{font-weight:600;color:#9b8052}
.review-card-top>span:last-child{font-size:1.1rem;line-height:1;transition:transform .3s ease}
.review-card:hover .review-card-top>span:last-child{transform:translate(3px,-3px)}
.review-card-quote{position:absolute;top:55px;right:35px;font-family:Georgia,serif;font-size:10rem;line-height:1;color:#e9e3d7;pointer-events:none}
.review-card-text{position:relative;z-index:1;max-width:22ch;margin:48px 0 45px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.55rem,2.15vw,2.35rem);line-height:1.23;letter-spacing:-.028em;text-wrap:pretty}
.review-card-foot{margin-top:auto;padding-top:20px;border-top:1px solid #d5dbd9;color:#647581;letter-spacing:.05em;text-transform:none}
.review-card-foot>span:last-child{color:#936f36;white-space:nowrap}
.review-card:nth-child(4n+1){background:#213b4c;color:#f8f5ec;border-color:#213b4c}
.review-card:nth-child(4n+1) .review-card-top{color:#d8bd86}
.review-card:nth-child(4n+1) .review-card-quote{color:rgba(214,190,143,.17)}
.review-card:nth-child(4n+1) .review-card-foot{color:#bbcbd0;border-color:rgba(230,220,198,.24)}
.review-card:nth-child(4n+1) .review-card-foot>span:last-child{color:#e4cca0}
.review-card:nth-child(4n+1):hover{border-color:#c4a36d}
.more-reviews{margin-top:18px}
.music-section{background:#fbfaf6}
.channel-card{background:#e8edf0;border-top:2px solid #c5a86f}
.contact-section{background:var(--navy);color:#f9f7f0}
.contact-copy .eyebrow{color:#d8c190}
.contact-copy p{color:#dce4e6}
.contact-links,.contact-links a{border-color:rgba(209,183,131,.48)}
.contact-links a:hover{color:#dfc994}
.site-footer{background:#f6f5ef;color:#586a75}
.footer-links a:hover{color:#997a45}

@media(min-width:761px){
  .story-section{overflow:visible}
  .story-section .section-inner{align-items:start}
  #inside .section-inner,#about .section-inner,#answers .section-inner,#approach .section-inner,#higher-self .section-inner,#no-ready-answers .section-inner{gap:clamp(58px,7vw,130px)}
  #inside .photo,#about .photo,#answers .photo,#approach .photo,#higher-self .photo,#no-ready-answers .photo{position:sticky;top:110px;align-self:start;height:min(74vh,780px);min-height:570px;margin-top:0;outline:1px solid rgba(169,139,80,.46);outline-offset:8px}
  #inside .section-copy,#about .section-copy,#answers .section-copy,#approach .section-copy,#higher-self .section-copy,#no-ready-answers .section-copy{max-width:640px;min-width:0}
  #inside .section-copy p,#about .section-copy p,#answers .section-copy p,#approach .section-copy p,#higher-self .section-copy p,#no-ready-answers .section-copy p{max-width:57ch}
  #approach .section-copy p{line-height:1.7}
  #approach .photo{height:min(78vh,820px);min-height:620px}
  #inside .photo img{object-position:53% 50%}
  #about .photo img{object-position:center 28%}
  #higher-self .photo img{object-position:center 37%}
}
@media(min-width:761px) and (max-width:1050px){
  #inside .section-inner,#about .section-inner,#answers .section-inner,#approach .section-inner,#higher-self .section-inner,#no-ready-answers .section-inner{gap:54px}
  #inside .section-copy h2,#about .section-copy h2,#answers .section-copy h2,#approach .section-copy h2,#higher-self .section-copy h2,#no-ready-answers .section-copy h2{font-size:clamp(3.3rem,5.2vw,5rem);overflow-wrap:break-word;hyphens:auto}
}
@media(min-width:761px) and (max-width:900px){
  .header-inner{height:68px}
  .desktop-nav{display:none}
  .menu-toggle{display:grid;gap:5px;background:none;border:0;padding:12px;cursor:pointer}
  .menu-toggle span{width:23px;height:1px;background:#f7f5ed;transition:transform .3s}
  .site-header.is-scrolled .menu-toggle span{background:var(--ink)}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3px) rotate(-45deg)}
  .mobile-nav:not([hidden]){display:grid;padding:5px 25px 20px;background:var(--navy);color:#f7f5ed;border-top:1px solid rgba(211,190,142,.3)}
  .site-header.is-scrolled .mobile-nav:not([hidden]){background:#f6f5ef;color:var(--ink);border-color:var(--line)}
  .mobile-nav a{padding:11px 0;border-bottom:1px solid rgba(180,190,190,.32)}
  .story-section:not(#academy) .section-inner{display:flex;flex-direction:column;gap:55px;align-items:stretch;max-width:720px}
  .story-section:not(#academy) .section-copy{order:1!important;max-width:100%!important}
  .story-section:not(#academy) .photo{order:2!important;position:relative!important;top:auto!important;width:100%;height:600px!important;min-height:0!important;margin:0!important;outline-offset:6px}
  .story-section:not(#academy) .section-copy h2{font-size:clamp(3.8rem,7vw,5.4rem)!important;max-width:13ch;hyphens:none;overflow-wrap:break-word}
  .requests-top{display:flex;flex-direction:column;gap:45px}
  .requests-heading h2{font-size:clamp(4rem,7vw,5.8rem)}
  .requests-top .photo{height:530px;margin:0}
  .formats-heading{display:block}
  .formats-heading h2{font-size:clamp(3.8rem,7vw,5.6rem)}
  .formats-heading p{margin-top:30px}
  #academy .section-copy{display:block}
  #academy .section-copy h2{max-width:12ch}
  #academy .section-copy p{margin-top:17px}
  .reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .music-content{display:block}
  .channel-card{min-height:320px}
  .contact-section{display:flex;flex-direction:column;align-items:stretch}
  .contact-copy{margin:0;max-width:100%}
  .contact-photo{width:100%;max-width:none;height:600px}
}
@media(max-width:760px){
  .site-header,.site-header .mobile-nav:not([hidden]){background:var(--navy)}
  .site-header.is-scrolled .mobile-nav:not([hidden]){background:#f6f5ef;color:var(--ink);border-color:#c8d2d6}
  .hero{background:var(--navy)}
  .hero-visual{position:relative;min-height:0;outline:0}
  .hero-visual::after{display:none}
  .hero-visual img{object-position:center 24%}
  .hero-foot{color:#d8d5c9}
  .story-section .photo{position:relative;top:auto;outline:none}
  .eyebrow{gap:10px}
  .eyebrow::before{width:18px}
}
@media(prefers-reduced-motion:reduce){.hero-visual{animation:none}.hero-visual img{transform:none!important}}

/* Keep the full portrait group scene visible at every viewport width. */
@media(min-width:901px){
  #academy .section-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:clamp(58px,7vw,120px);align-items:start}
  #academy .section-copy{display:block;max-width:670px;margin:0}
  #academy .section-copy h2{max-width:10ch;font-size:clamp(4.4rem,5.4vw,7rem);margin-bottom:42px}
  #academy .section-copy p{max-width:58ch;margin:18px 0 0}
  #academy .photo{position:sticky;top:110px;width:100%;max-width:650px;height:auto;aspect-ratio:959/1280;margin:0;align-self:start}
}
@media(max-width:900px){
  #academy .section-inner{display:block}
  #academy .section-copy{display:block;max-width:720px;margin:0 auto 45px}
  #academy .photo{position:relative;top:auto;width:100%;max-width:560px;height:auto;aspect-ratio:959/1280;margin:0 auto}
}
#academy .photo img{width:100%;height:100%;object-fit:contain;object-position:center}

/* Quiet service accordion: all approved copy remains available on demand. */
.formats-section{padding-top:clamp(90px,9vw,135px)}
.formats-heading h2{font-size:clamp(3.8rem,5.5vw,6.2rem);line-height:1.05}
.formats-grid{margin-top:55px}
.formats-grid > .format-card{display:block;min-height:0;padding:0;border:0;border-bottom:1px solid #c4d0d2;background:transparent;transform:none}
.formats-grid > .format-card:hover{padding:0;background:transparent;transform:none}
.format-trigger{display:grid;grid-template-columns:58px minmax(175px,.95fr) minmax(0,1.4fr) minmax(145px,auto) 38px;gap:clamp(15px,2.4vw,36px);align-items:center;padding:28px 12px;cursor:pointer;list-style:none;transition:background .3s ease}
.format-trigger::-webkit-details-marker{display:none}
.format-trigger::marker{content:""}
.format-trigger:hover,.format-trigger:focus-visible,.format-card[open] .format-trigger{background:rgba(255,255,255,.57)}
.format-trigger .format-index{white-space:nowrap;align-self:center}
.format-trigger .format-title{margin:0;max-width:none;font-size:clamp(1.8rem,2.35vw,2.75rem);line-height:1.08;hyphens:none;overflow-wrap:normal}
.format-teaser{color:#485c68;font-size:.96rem;line-height:1.5;max-width:48ch}
.format-trigger .format-price{margin:0;font-size:clamp(1rem,1.45vw,1.25rem);white-space:nowrap}
.format-expand{width:35px;height:35px;border:1px solid #bea874;border-radius:50%;display:grid;place-items:center;color:#8b7344;font-size:1.45rem;font-family:var(--sans);font-weight:300;line-height:1;transition:transform .35s ease,background .35s ease}
.format-card[open] .format-expand{transform:rotate(45deg);background:#e6dbc1}
.format-panel{max-width:790px;margin:0 70px 0 auto;padding:0 22px 35px 26px;border-left:1px solid #c8ae78;animation:panelReveal .36s ease both}
.format-panel .format-description{padding:0}
.format-panel .format-description p{margin:0 0 14px}
.format-panel .text-link{margin:11px 0 0;justify-self:start;align-self:auto;font-size:1rem;color:var(--navy);border-color:#a7894e}
.format-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 32px;margin-top:15px}
.format-actions .text-link{margin:0}
.format-whatsapp{display:inline-flex;gap:12px;align-items:center;border-bottom:1px solid #a7894e;padding-bottom:5px;color:#4f6471;font-size:.95rem;transition:color .25s}
.format-whatsapp:hover{color:var(--navy)}
@keyframes panelReveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.format-end{margin-top:55px}
.hero-secondary{display:block;width:max-content;max-width:100%;margin-top:15px;color:#e6d8b6;font-size:.88rem;border-bottom:1px solid rgba(214,188,132,.65);padding-bottom:3px;transition:color .25s,border-color .25s}
.hero-secondary:hover{color:#fff;border-color:#fff}
.hero-secondary span{margin-left:14px}
.desktop-nav a:last-child{border:1px solid rgba(211,193,151,.55);padding:8px 12px}
.site-header.is-scrolled .desktop-nav a:last-child{border-color:#bda66f}
@media(min-width:761px) and (max-height:800px){
  .hero-copy{padding-top:42px}
  .hero-name{margin-bottom:10px}
  .hero-deck{margin-top:18px}
  .hero-specialties{margin-top:10px}
  .primary-link{margin-top:13px}
  .hero-secondary{margin-top:10px}
}

/* Put the contact choices in view when someone follows a booking link. */
#contact-options{scroll-margin-top:110px}
.contact-section{align-items:start;padding-top:clamp(80px,8vw,120px);padding-bottom:clamp(85px,8vw,120px)}
.contact-copy h2{font-size:clamp(3.45rem,4.7vw,5.8rem);line-height:1.04;max-width:15ch;margin-bottom:25px}
.contact-copy p{font-size:1rem;line-height:1.62;margin-top:11px}
.contact-links{margin-top:28px}
.contact-links a{font-size:clamp(1.35rem,1.9vw,2.15rem);padding:10px 0}
.contact-links .contact-primary{color:#e7d19d}
.contact-links .contact-secondary{font-size:1.15rem;color:#d5dfe1}
.contact-photo{position:sticky;top:110px;height:min(76vh,700px);margin-top:0;max-width:580px}
.contact-photo img{object-position:center 32%}
.booking-flow{border-top:1px solid rgba(209,183,131,.48);margin-top:38px;padding-top:28px;max-width:650px}
.booking-flow h3{font-size:clamp(1.7rem,2.3vw,2.2rem);color:#f2ead8}
.booking-flow ol{list-style:none;counter-reset:booking;margin:20px 0 0;padding:0}
.booking-flow li{counter-increment:booking;display:grid;grid-template-columns:32px 1fr;gap:12px;padding:10px 0;color:#dce4e6;line-height:1.55;border-bottom:1px solid rgba(209,183,131,.22)}
.booking-flow li::before{content:"0" counter(booking);color:#d1b779;font-size:.78rem;letter-spacing:.08em;padding-top:4px}
.booking-flow p{color:#e4d6b6;margin-top:21px}
@media(max-width:1100px){
  .format-trigger{grid-template-columns:45px minmax(150px,.95fr) minmax(0,1.2fr) minmax(125px,auto) 35px;gap:18px}
  .format-trigger .format-title{font-size:clamp(1.65rem,2.5vw,2.2rem)}
  .format-panel{margin-right:35px;max-width:610px}
}
@media(max-width:900px){
  .format-trigger{grid-template-columns:45px minmax(0,1fr) auto 35px;gap:10px 18px}
  .format-trigger .format-index{grid-column:1}
  .format-trigger .format-title{grid-column:2;grid-row:1/3}
  .format-trigger .format-teaser{grid-column:2/4;grid-row:3}
  .format-trigger .format-price{grid-column:3;grid-row:1;white-space:normal;text-align:right}
  .format-trigger .format-expand{grid-column:4;grid-row:1/3}
  .format-panel{margin-left:63px;margin-right:0;max-width:none}
  .contact-photo{position:relative;top:auto;width:min(100%,560px);height:620px;margin:0 auto}
}
@media(max-width:760px){
  .reviews-section .section-heading{padding-bottom:32px}
  .reviews-grid{gap:12px}
  .review-card{min-height:315px;padding:25px 24px 22px}
  .review-card-text{font-size:clamp(1.45rem,3.4vw,1.9rem);margin:43px 0 35px}
  .review-card-quote{top:40px;right:20px;font-size:8rem}
  .formats-section{padding-top:85px}
  .formats-heading h2{font-size:clamp(2.2rem,9.5vw,4.6rem)}
  .formats-grid{margin-top:40px}
  .format-trigger{grid-template-columns:minmax(0,1fr) auto;gap:10px 15px;padding:22px 0}
  .format-trigger .format-index{grid-column:1;grid-row:1}
  .format-trigger .format-price{grid-column:1;grid-row:3;text-align:left;font-size:1.15rem}
  .format-trigger .format-title{grid-column:1/3;grid-row:2;font-size:clamp(2rem,7.3vw,2.7rem);margin:0}
  .format-trigger .format-teaser{grid-column:1/3;grid-row:4;font-size:.92rem}
  .format-trigger .format-expand{grid-column:2;grid-row:1}
  .format-panel{margin:0 0 0 8px;padding:0 12px 27px 18px}
  .format-end{margin-top:45px}
  .hero-secondary{margin-top:20px}
  .contact-section{padding-top:80px;padding-bottom:85px}
  .contact-copy h2{font-size:clamp(3rem,9.4vw,4.2rem)}
  .contact-links a{font-size:1.55rem}
  .contact-photo{height:480px}
}
@media(max-width:520px){
  .reviews-grid{grid-template-columns:minmax(0,1fr)}
  .review-card{min-height:300px}
  .review-card-text{font-size:clamp(1.65rem,7vw,2rem)}
  .review-card-foot{font-size:.65rem}
  .format-trigger .format-title{font-size:clamp(1.9rem,8vw,2.35rem);hyphens:none}
  .contact-copy h2{font-size:clamp(2.75rem,10vw,3.5rem);hyphens:none}
}
@media(prefers-reduced-motion:reduce){.format-trigger,.format-expand,.hero-secondary,.review-card,.review-card::before{transition:none}.format-panel{animation:none}}
