/* v7: existing emerald/champagne identity, more compact editorial rhythm. */
.section{padding-block:64px}
.section-heading{margin-bottom:30px;gap:32px}
.section-heading h2,.about-copy h2,.office-heading h2{font-size:clamp(2rem,3.3vw,3rem)}
.about-grid{gap:54px;align-items:center}
.about-art{max-width:390px;width:100%}
.about-art img{max-height:450px;object-fit:cover}
.team-strip{padding-block:32px}
.team-strip h2{font-size:2rem}
.office-section{padding-block:48px 32px}
.office-heading{margin-bottom:24px}
.office-map,.office-map iframe{min-height:280px;height:320px}
.process-stage{padding:28px 30px}
.process-slide{min-height:270px;gap:20px}
.process-slide h3{font-size:clamp(1.65rem,2.4vw,2.2rem)}
.process-advice{margin-block:20px}
.process-side{padding:30px}
.process-side h3{font-size:2.15rem}
.page-intro{padding-block:26px 38px}
.page-intro h1{font-size:clamp(2.25rem,4vw,3.7rem)}
.page-intro p{max-width:680px;font-size:1rem}
.control-glyph{border-radius:9px}
.cinema-slides{display:grid}
.cinema-slide{grid-area:1/1;min-width:0}
.cinema-slide[hidden]{display:none}
.cinema-slide:not([hidden]):not(.is-leaving){z-index:1;animation:cinema-arrive .75s ease both}
.cinema-slide.is-leaving{z-index:0;pointer-events:none;animation:cinema-leave .75s ease both}
.cinema-content{min-height:620px;padding-block:54px 126px}
.cinema-copy h1,.cinema-copy h2{font-size:clamp(3rem,4.7vw,4.5rem);margin-bottom:22px}
.cinema-copy>p{line-height:1.75;margin-bottom:26px}
.cinema-slide--bureau .cinema-art img{object-position:70% 45%}
@keyframes cinema-arrive{from{opacity:0}to{opacity:1}}
@keyframes cinema-leave{from{opacity:1}to{opacity:0}}
.customer-reviews{background:#f8faf4;padding-block:44px}
.reviews-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}
.reviews-heading .eyebrow{margin-bottom:10px}
.reviews-heading h2{font-size:clamp(1.8rem,2.8vw,2.5rem);line-height:1.2;margin:0}
.reviews-heading .rule-link{flex:none;font-size:.875rem;min-height:44px}
.reviews-intro{font-size:.9375rem;line-height:1.65;color:var(--muted);margin:14px 0 22px;max-width:760px}
.customer-reviews .review-stage{padding:0;border:0;box-shadow:none;background:transparent;max-width:none}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.review-card{display:flex;flex-direction:column;min-width:0;min-height:256px;padding:22px 22px 12px;border:1px solid #cbd5c6;border-radius:14px;background:#fffdf8;box-shadow:0 5px 18px #133b2409;transition:border-color .2s,box-shadow .2s}
.review-card:hover{border-color:#a89570;box-shadow:0 9px 25px #133b2414}
.review-card-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.review-quote{font-family:var(--serif);font-size:2.2rem;line-height:.7;margin:0;color:#a38d65}
.review-card-top time{font-size:.875rem;color:var(--muted)}
.review-card h3{font-family:var(--sans);font-weight:600;font-size:1.0625rem;line-height:1.45;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.review-body{font-family:var(--sans);font-size:1rem;line-height:1.65;margin:0;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;overflow-wrap:anywhere}
.review-author{margin-top:auto;padding-top:18px;font-size:.875rem;line-height:1.5}
.review-author strong{font-size:.9375rem;font-weight:500}
.review-open{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;margin-top:14px;padding:8px 0 0;border:0;border-top:1px solid #d8dfd0;background:transparent;color:var(--bronze);font:inherit;font-size:.875rem;text-align:left}
.review-open .control-glyph{width:32px;height:32px}
.review-open:hover .control-glyph,.review-open:focus-visible .control-glyph{background:#123c2d;color:#efd0a0;border-color:#123c2d}
.review-card.is-expanded .review-body{display:block;-webkit-line-clamp:unset;max-height:260px;overflow:auto}
.customer-reviews .slider-controls{padding-top:12px;margin-top:18px;min-height:44px}
#review-count{font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums}
.review-empty{padding:20px 22px;border:1px dashed #b9c5af;border-radius:12px;font-size:1rem;background:#fffdf8}
.review-form-disclosure{margin-top:20px;border-radius:12px;overflow:hidden}
.review-form-disclosure>summary{padding:12px 20px;align-items:center;min-height:54px;font-size:1rem}
.review-form-body{padding:12px 24px 26px;max-width:880px}
.review-form-body h3{font-size:1.5rem}
.review-form-body .field{margin-bottom:16px}
.detail-dialog{width:min(640px,calc(100% - 32px));overflow-wrap:anywhere}
.detail-scroll{max-height:56dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9fac96 #eef1e9;padding-right:12px;white-space:normal;overflow-wrap:anywhere}
.detail-scroll .review-full-text{font-size:1rem;line-height:1.85;white-space:pre-wrap;margin:18px 0 8px}
.review-dialog-meta{font-size:.9375rem;color:var(--bronze);display:flex;gap:12px;flex-wrap:wrap}
html.has-detail-dialog{overflow:hidden;scrollbar-gutter:stable}
.team-coverflow{--card-width:300px}
.team-coverflow .person{overflow:hidden;background:#fffdf8;border-radius:15px;box-shadow:0 6px 24px #183c2409}
.team-coverflow .person-photo{position:relative;height:126px;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#eff3ea,#e2eadb);border-bottom:1px solid #d6dfcc;padding:14px}
.team-coverflow .person-photo:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#123c2d,#b9a079,#123c2d)}
.team-coverflow .person-photo img{width:90px;height:96px;object-fit:cover;border-radius:14px;border:1px solid #cbd6c0;box-shadow:0 4px 12px #133b2410}
.person-kind{position:absolute;bottom:10px;right:12px;color:#4c604b;font-size:.75rem;letter-spacing:.01em}
.team-coverflow .person-content{padding:18px 20px 14px}
.team-coverflow .person h3{font-size:1.35rem;margin-bottom:6px}
.team-coverflow .person-role{font-size:.875rem;font-weight:500;margin-bottom:10px}
.team-coverflow .person-summary{font-size:.9375rem;line-height:1.65;margin-bottom:10px}
.team-coverflow .person-experience{display:inline-block;background:#eff3e9;color:#4c604b;padding:4px 8px;border-radius:5px;font-size:.8125rem}
.team-coverflow .person-bio summary{min-height:48px;padding:8px 0;font-size:.875rem}
.team-coverflow .person-bio .control-glyph{width:32px;height:32px;background:#f1f5ec}
.team-coverflow .person-bio summary:hover .control-glyph{background:#123c2d;color:#e6c99d;border-color:#123c2d}
.team-coverflow .person-contact{padding-top:10px}
.people-section{padding:34px 0 10px}
.people-section+.people-section{padding-top:30px}
.people-heading h2{font-size:2rem}
.person-dialog-profile{display:flex;align-items:center;gap:18px;padding-bottom:20px;margin-bottom:18px;border-bottom:1px solid #d9dfcf}
.person-dialog-profile img{width:74px;height:80px;object-fit:cover;border-radius:12px;background:#edf2e7}
.person-dialog-profile p{margin:0;font-size:.9375rem;color:var(--bronze)}
.person-dialog-profile .person-experience{font-size:.875rem;display:block;margin-top:5px}
@media(max-width:1000px){.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reviews-heading{align-items:start}.reviews-heading h2{max-width:490px}.section{padding-block:50px}.customer-reviews{padding-block:38px}.about-grid{gap:36px}.cinema-copy{width:66%}}
@media(max-width:720px){.cinema-content{min-height:660px;padding-block:32px 230px}.cinema-copy{width:100%;max-width:550px}.cinema-copy h1,.cinema-copy h2{font-size:clamp(2.2rem,7.8vw,3.4rem)}.cinema-copy>p{font-size:1rem;line-height:1.65}.cinema-art{height:390px}.art-note{bottom:105px}.cinema-navigation .slider-controls{flex-wrap:wrap;gap:4px 12px}.cinema-navigation .slide-actions{margin-left:auto}.process-stage,.process-side{padding:24px}.process-slide{min-height:300px}.process-number{margin-bottom:14px}.process-slide h3{font-size:1.8rem}.reviews-heading{display:block}.reviews-heading .rule-link{margin-top:10px}.reviews-intro{margin:6px 0 18px}.reviews-heading h2{font-size:2rem}.review-card{padding:20px 20px 12px}.page-intro{padding-block:22px 30px}.people-section{padding-top:28px}.about-art{max-width:390px}.team-strip h2{font-size:1.7rem}.office-map,.office-map iframe{height:290px;min-height:290px}}
@media(max-width:600px){.review-grid{grid-template-columns:minmax(0,1fr)}.review-card{min-height:245px}.customer-reviews{padding-block:34px}.reviews-heading h2{font-size:1.85rem}.review-form-body{padding:10px 18px 22px}.detail-scroll{max-height:58dvh;padding-right:6px}.detail-dialog .practice-dialog-shell{padding:22px}.team-coverflow{--card-width:min(78vw,290px)}.team-coverflow .person-photo{height:116px}.team-coverflow .person-photo img{width:84px;height:90px}.person-kind{font-size:.75rem}.people-heading h2{font-size:1.75rem}.team-coverflow .person-content{padding:16px 18px 12px}.section-heading h2,.about-copy h2,.office-heading h2{font-size:2.05rem}}
@media(max-width:380px){.cinema-navigation .slide-actions{gap:5px}.cinema-navigation .slide-pause{max-width:90px;margin-right:0}.cinema-navigation .slide-dots button{min-width:33px}.person-kind{max-width:58px;text-align:right;line-height:1.3}.review-card{padding-inline:18px}}
@media(prefers-reduced-motion:reduce){.cinema-slide:not([hidden]),.review-enter,.detail-dialog[open]{animation:none!important}.review-card{transition:none}}
@media print{.review-grid{display:block}.review-card{break-inside:avoid;margin-bottom:16px}.review-body{display:block;-webkit-line-clamp:unset}.review-open,.detail-dialog{display:none!important}}
