/* Final density and type adjustments after visual review. */
.section-heading h2,.about h2,.principle h2,.final-copy h2{font-size:clamp(54px,5.3vw,78px)}
.price-scope{margin-bottom:8px!important;color:#d2a260!important;font-size:13px!important;letter-spacing:.12em;text-transform:uppercase}
.service-list p{align-items:flex-start}
.service-list p>span{display:block;min-width:0}
.service-list em{display:block;font-style:normal;color:var(--text);font-size:16px;line-height:1.36}
.service-list small{display:block;margin-top:6px;color:var(--muted);font:14px/1.45 Inter,Arial,sans-serif}
.service-list strong{padding-top:2px}
.direction-card h3{font-size:46px}.direction-card p,.process p{font-size:15px}.service-cta h3{font-size:45px}.accordion summary{font-size:30px}.service-list p{font-size:15px;line-height:1.45}.principle{padding-top:58px;padding-bottom:58px;min-height:0}.principle-line{height:36px;margin-bottom:16px}.principle h2{font-size:clamp(42px,4.5vw,66px);margin-bottom:7px}.gallery-more{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.gallery-more .gallery-item,.gallery-more .gallery-item:nth-child(3n){aspect-ratio:3/4}.gallery-more .gallery-item:first-child{grid-row:auto}.masonry{grid-template-rows:285px 285px}.gallery-item{box-shadow:0 15px 35px rgba(0,0,0,.19)}

/* Motion stays subtle: it supports the atmosphere without distracting from the content. */
@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes orbitPulse{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.035);opacity:1}}
@keyframes cardReveal{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@keyframes goldGlow{0%,100%{box-shadow:0 0 0 rgba(195,147,89,0)}50%{box-shadow:0 12px 34px rgba(195,147,89,.2)}}
.hero-visual{animation:heroFloat 7s ease-in-out infinite}
.hero-orbit{animation:orbitPulse 8s ease-in-out infinite}.orbit-two{animation-delay:-3s}
.gallery-more.is-visible .gallery-item{animation:cardReveal .65s both}.gallery-more.is-visible .gallery-item:nth-child(2){animation-delay:.06s}.gallery-more.is-visible .gallery-item:nth-child(3){animation-delay:.12s}.gallery-more.is-visible .gallery-item:nth-child(4){animation-delay:.18s}.gallery-more.is-visible .gallery-item:nth-child(5){animation-delay:.24s}.gallery-more.is-visible .gallery-item:nth-child(6){animation-delay:.3s}.gallery-more.is-visible .gallery-item:nth-child(7){animation-delay:.36s}.gallery-more.is-visible .gallery-item:nth-child(8){animation-delay:.42s}.gallery-more.is-visible .gallery-item:nth-child(9){animation-delay:.48s}.gallery-more.is-visible .gallery-item:nth-child(10){animation-delay:.54s}
.gallery-item{transition:transform .35s ease,box-shadow .35s ease}.gallery-item:hover{transform:translateY(-6px);box-shadow:0 22px 42px rgba(0,0,0,.32)}
.process article,.direction-card{transition:transform .3s ease,border-color .3s ease,background .3s ease}.process article:hover{transform:translateY(-5px);border-color:rgba(227,190,136,.65)}
.button-primary,.header-cta{animation:goldGlow 4s ease-in-out infinite}.accordion summary{transition:color .2s ease,padding-left .2s ease}.accordion summary:hover{color:var(--gold-light);padding-left:7px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.section-heading.reveal h2,.about-copy.reveal h2,.final-copy.reveal h2{opacity:0;transform:translateY(30px);filter:blur(4px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1),filter .8s ease}.section-heading.reveal.is-visible h2,.about-copy.reveal.is-visible h2,.final-copy.reveal.is-visible h2{opacity:1;transform:none;filter:none}
.direction-grid .direction-card.reveal{transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1),border-color .3s ease,background .3s ease}.direction-grid .direction-card.reveal:nth-child(2){transition-delay:.08s}.direction-grid .direction-card.reveal:nth-child(3){transition-delay:.16s}.direction-grid .direction-card.reveal:nth-child(4){transition-delay:.24s}.direction-grid .direction-card.reveal:not(.is-visible){transform:translateY(24px) scale(.98)}
.process-grid article.reveal{position:relative;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1),border-color .3s ease}.process-grid article.reveal:nth-child(2){transition-delay:.11s}.process-grid article.reveal:nth-child(3){transition-delay:.22s}.process-grid article.reveal:nth-child(4){transition-delay:.33s}.process-grid article::before{content:"";position:absolute;top:-1px;left:0;width:100%;height:1px;background:var(--gold-light);transform:scaleX(0);transform-origin:left;transition:transform .7s ease}.process-grid article.is-visible::before{transform:scaleX(1)}
.accordion details[open] .service-list{animation:priceOpen .35s ease both}@keyframes priceOpen{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.parallax-media{will-change:transform;transform:scale(1.06);transition:transform .12s linear}
.about-photo .portrait-photo{object-position:center 30%;filter:grayscale(1) contrast(1.06) brightness(.92)}
@media(max-width:1000px){.gallery-more{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.section-heading h2,.about h2,.principle h2,.final-copy h2{font-size:52px}.direction-card h3{font-size:39px}.accordion summary{font-size:25px}.service-list p{font-size:14px}.principle{padding-top:52px;padding-bottom:52px}.gallery-more{grid-template-columns:repeat(2,1fr);gap:13px}.gallery-more .gallery-item,.gallery-more .gallery-item:nth-child(3n){aspect-ratio:1/1}.masonry{grid-template-rows:235px 155px 155px}}

/* Contact buttons and client feedback */
.contact-block{margin-top:34px}.contact-label{margin:0 0 13px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-light)}.contact-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.button-secondary{background:transparent;color:var(--gold-light);border:1px solid rgba(225,190,136,.7)}.button-secondary:hover{background:rgba(225,190,136,.12);color:var(--text);border-color:var(--gold-light);transform:translateY(-2px)}.service-cta .contact-actions{gap:10px}.service-cta .button{padding:15px 18px;font-size:11px}.reviews{padding-top:135px;padding-bottom:135px;background:#191315}.reviews-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:52px}.review-card,.review-collage{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#120e10;box-shadow:0 15px 35px rgba(0,0,0,.19)}.review-card{padding:0;cursor:zoom-in;aspect-ratio:3/4}.review-card img{transition:transform .45s ease}.review-card:hover img{transform:scale(1.045)}.review-collage{grid-column:span 2;grid-row:span 2;position:relative;padding:0}.review-collage figcaption{position:absolute;z-index:1;top:15px;left:15px;padding:7px 11px;border:1px solid rgba(225,190,136,.4);border-radius:999px;background:rgba(17,13,16,.8);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-light)}.review-collage>div{height:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;background:var(--bg)}.review-collage img{min-height:0}.review-collage img:first-child{grid-row:span 2}.reviews-note{max-width:520px;margin:36px 0 20px;color:var(--muted);font-size:16px}.reviews-actions{margin-top:0}@media(max-width:900px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.contact-actions{align-items:stretch;flex-direction:column}.contact-actions .button{width:100%}.reviews{padding-top:90px;padding-bottom:90px}.reviews-grid{gap:13px;margin-top:35px}.review-collage{grid-column:span 2;aspect-ratio:1/1.18}.review-card{border-radius:13px}.reviews-note{font-size:15px;margin-top:28px}}

/* Reviews: every screenshot stays fully visible in a predictable rhythm. */
.reviews-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}.review-card{display:grid;place-items:center;aspect-ratio:9/16;background:#0d1018}.review-card img{width:100%;height:100%;object-fit:contain;transform:none!important}.review-collage{grid-column:1/-1;grid-row:auto;border-radius:18px;overflow:hidden}.review-collage-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:none!important;height:auto!important;gap:3px!important;background:#0d1018!important}.review-collage .review-card{border:0;border-radius:0;box-shadow:none}.review-collage figcaption{top:16px;left:16px}.reviews-cta{max-width:620px;margin-top:48px;padding:30px;border:1px solid rgba(225,190,136,.28);border-radius:18px;background:linear-gradient(135deg,rgba(74,23,36,.75),rgba(24,17,20,.95))}.reviews-cta>.eyebrow{margin-bottom:10px}.reviews-cta>p:not(.eyebrow){margin:0 0 22px;color:#dfd3cd;font-size:16px}.reviews-actions{margin:0}.reviews-note{display:none}@media(max-width:900px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.review-collage{grid-column:1/-1}}@media(max-width:760px){.reviews-grid{gap:12px}.review-collage-grid{gap:2px!important}.review-collage figcaption{top:9px;left:9px;padding:5px 8px;font-size:8px}.reviews-cta{margin-top:32px;padding:24px 20px}.reviews-cta>p:not(.eyebrow){font-size:15px}}

/* Reviews use each screenshot's real proportions, so there are no empty letterbox areas. */
.reviews-group-label{display:inline-flex;margin:34px 0 20px;padding:8px 14px;border:1px solid rgba(225,190,136,.4);border-radius:999px;color:var(--gold-light);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.reviews-grid{display:block;column-count:3;column-width:auto;column-gap:22px;margin-top:0}.review-card{display:inline-block;break-inside:avoid;width:100%;height:auto;aspect-ratio:auto;margin:0 0 22px;padding:0;background:transparent;box-shadow:0 15px 35px rgba(0,0,0,.19)}.review-card img{display:block;width:100%;height:auto;object-fit:initial;border-radius:inherit}.review-card:hover img{transform:none!important}@media(max-width:900px){.reviews-grid{column-count:2;column-width:auto;column-gap:16px}.review-card{margin-bottom:16px}}@media(max-width:560px){.reviews-grid{column-count:1;column-width:auto;column-gap:0}.review-card{margin-bottom:14px}.reviews-group-label{margin:26px 0 14px;font-size:9px}}

/* The review list is long on mobile, so it must not wait for a single observer trigger. */
.reviews-grid.reveal{opacity:1;transform:none}
.reviews-group-label{display:none}

/* Desktop: a denser review wall, while tablet and mobile keep readable columns. */
@media(min-width:901px){.reviews-grid{column-count:4;column-gap:16px}.review-card{margin-bottom:16px}}

/* Keep the practice gallery compact on wide screens; every image still opens full-size. */
@media(min-width:901px){.masonry,.gallery-more{max-width:1180px;margin-left:auto;margin-right:auto}.masonry{grid-template-rows:220px 220px;gap:14px}.gallery-more{gap:14px;margin-top:14px}}
