/* Shared editorial grid and spacing for the website's two main pages. */
:root{--page-gutter:clamp(20px,4vw,48px);--section-gap:clamp(56px,7vw,88px);--grid-gap:32px;--radius:12px}
.wrap{width:min(1240px,calc(100% - 2 * var(--page-gutter)))}
section{padding-block:var(--section-gap)}
.nav{min-height:112px;gap:32px;position:relative}
nav#navigation{gap:24px;line-height:1.4;flex-wrap:nowrap;max-width:none}
.nav-contact,.button,.contact-actions a{min-height:48px;line-height:1.4}
.button{gap:20px;padding:15px 22px;justify-content:space-between;max-width:100%;text-align:left}
.button:hover{transform:none}
.eyebrow{font-size:14px;line-height:1.5;font-weight:600;letter-spacing:.035em}
.hero{padding-block:56px 48px}
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:40px;align-items:start;margin-top:24px}
.hero-grid>div{min-width:0}
.hero-grid h1{font-size:clamp(48px,4.6vw,64px);line-height:1.08;margin-bottom:24px}
.hero-art{align-self:start;margin-top:8px}
.hero-media-controls{margin-top:12px}
.hero-media-controls .video-toggle{min-height:36px;padding:7px 14px}
.professional-heading{font-size:16px;line-height:1.5;margin-bottom:22px}
.intro{font-size:17px;line-height:1.65;margin-bottom:26px}
.hero-footer{margin-top:36px;padding-top:18px;align-items:baseline}
.proof-band{padding-bottom:48px}
.proof-grid{gap:24px;align-items:stretch}
.proof-grid>a{padding-top:20px;gap:12px}
.proof-grid strong{min-height:2.5em;font-size:clamp(23px,2.3vw,29px);line-height:1.25}
.proof-grid span{font-size:16px;line-height:1.6;margin-bottom:8px}
.proof-grid small{min-height:24px;line-height:1.5}
.section-top,.faq{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:40px;align-items:start}
.section-top{margin-bottom:40px}
.section-top>.eyebrow{padding-top:8px}
h2,.faq h2{font-size:clamp(40px,4.2vw,60px);line-height:1.12;margin-bottom:22px;text-wrap:balance}
.section-copy{font-size:17px;line-height:1.65;margin-bottom:0;max-width:680px}
.services{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.card{padding:28px;min-height:0;border-radius:var(--radius)}
.card .number{font-size:14px;line-height:1.5;margin-bottom:16px}
.card-art{height:136px;flex-shrink:0;margin-bottom:24px;border-radius:8px}
.card h3{font-size:28px;line-height:1.2;min-height:2.4em;margin-bottom:18px;text-wrap:balance}
.card p{font-size:16px;line-height:1.65;margin-bottom:20px}
.card>p:first-of-type{min-height:112px}
.service-case-link{font-size:14px;line-height:1.5;margin-top:auto;margin-bottom:0;min-height:42px}
.tag{font-size:14px;line-height:1.5;padding-top:16px;margin-top:auto}
.service-case-link+.tag{margin-top:20px}
.experience{margin-top:36px;padding-top:28px}
.experience h3{font-size:25px;margin-bottom:14px}
.steps{gap:32px;align-items:start}
.step{padding-top:22px}
.step-label{margin-bottom:18px}
.step h3{font-size:29px;line-height:1.2;min-height:2.4em;margin-bottom:16px;text-wrap:balance}
.step p{font-size:16px;line-height:1.65;max-width:none;margin-bottom:0}
.channel-cloud{margin-top:36px;padding:24px;border-radius:var(--radius)}
.channel-cloud-footer{gap:16px;padding-top:16px;align-items:center}
.cloud-toggle{min-height:40px;padding:8px 14px;font-size:14px}
.practice-teaser{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:40px;align-items:start}
.practice-teaser .eyebrow{margin-bottom:18px}
.practice-teaser p{font-size:17px;line-height:1.65;margin-top:32px;margin-bottom:24px;max-width:680px}
.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:40px;align-items:start}
.about-portrait{width:min(100%,280px);margin:0 auto}
.about-copy .eyebrow{margin-bottom:20px}
.about-copy p{font-size:17px;line-height:1.65;margin-bottom:20px}
.about-copy .brand-note p{font-size:14px;line-height:1.6;margin:8px 0 0}
.questions details{padding:22px 0}
.questions summary{font-size:17px;line-height:1.5;align-items:baseline}
.questions summary::after{flex:0 0 16px;text-align:right}
.questions details p{font-size:16px;line-height:1.65;margin:16px 30px 0 0}
.contact{padding-block:var(--section-gap)}
.contact-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:64px;align-items:start}
.contact h2{font-size:clamp(40px,4.2vw,60px);line-height:1.12}
.contact-grid>div{min-width:0}
.contact-meta{padding-top:8px;padding-left:32px;min-height:300px}
.contact-meta strong{font-size:25px;line-height:1.3}
.contact-meta p,.contact-address{font-size:16px;line-height:1.65}
.contact-actions{gap:12px;margin-top:24px}
.contact-actions a{padding:12px 20px}
.contact-form{margin-top:36px}
.contact-form h3{font-size:25px;line-height:1.3;margin-bottom:22px}
.contact-form label{line-height:1.5;margin-bottom:18px}
.contact-form input,.contact-form textarea{padding:12px 14px;margin-top:8px;border-radius:8px}
.contact-form-status{min-height:24px;margin-bottom:0}
.footer-inner{font-size:14px;line-height:1.5;align-items:baseline;flex-wrap:wrap}
.practice-page .section-top{grid-template-columns:1fr;gap:14px;margin-bottom:28px}
.practice-page .section-top>.eyebrow{padding-top:0}
.practice-page h1{font-size:clamp(40px,4.6vw,60px);line-height:1.12;margin-bottom:22px}
.practice-page .section-copy{max-width:720px}
.practice-section-nav{position:static;display:flex;gap:12px;max-width:none;padding:18px 0;margin-bottom:36px}
.practice-section-nav a{min-height:44px;padding:10px 16px;line-height:1.4}
.case-detail{padding:32px;margin-bottom:24px;border-radius:var(--radius)}
.case-detail h3,.practice-copy h3{font-size:30px;line-height:1.25;margin-bottom:22px}
.case-detail .eyebrow{margin-bottom:16px}
.case-facts{gap:32px}
.case-facts p,.practice-copy p,.practice-summary p{font-size:16px;line-height:1.65}
.case-facts strong{font-size:14px;line-height:1.5;margin-bottom:10px}
.practice-grid{gap:24px}
.practice-summary{padding:28px;border-radius:var(--radius)}
.practice-summary h3{font-size:25px;line-height:1.25}
.practice-feature{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:40px;align-items:start}
.practice-copy,.practice-video,.book-gallery{min-width:0}
.practice-next{margin-top:44px;padding-top:36px}
.more-practice,.media-intro{margin-top:48px}
@media(max-width:1180px){.logo{width:270px;height:90px}.nav{gap:24px}nav#navigation{gap:16px;font-size:14px}.contact-grid{gap:40px}.card{padding:24px}.card h3{font-size:26px}}
@media(max-width:1000px){.nav{min-height:100px}.logo{width:270px;height:90px}.menu{display:block;min-height:44px;padding:9px 16px}.nav nav#navigation{display:none;position:absolute;top:100%;left:calc(-1 * var(--page-gutter));right:calc(-1 * var(--page-gutter));max-width:none;padding:24px var(--page-gutter);z-index:10;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:18px}.nav nav#navigation.open{display:flex}.nav-contact{text-align:center}.services{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-grid{grid-template-columns:1fr;gap:32px}.hero-grid h1{font-size:clamp(48px,6vw,62px)}.hero-art{margin-top:0;width:100%}.hero-grid>div:first-child{max-width:760px}.intro{max-width:680px}.case-facts{grid-template-columns:1fr;gap:20px}}
@media(max-width:800px){.proof-grid{grid-template-columns:1fr}.proof-grid strong{min-height:0}.section-top,.faq,.practice-teaser,.about-grid,.contact-grid,.practice-feature{grid-template-columns:1fr;gap:28px}.section-top>.eyebrow{padding-top:0}.practice-teaser p{margin-top:0}.steps{grid-template-columns:1fr;gap:24px}.step h3{min-height:0}.about-portrait{margin:0;width:min(100%,240px)}.contact-meta{padding:28px 0 0;border-left:0;border-top:1px solid #c2b5a8;min-height:280px}.contact-meta::before{top:32px}.practice-section-nav{position:static;gap:10px}.practice-page .section-top{gap:14px}}
@media(max-width:600px){.logo{width:min(240px,calc(100vw - 136px));height:80px}.nav{min-height:90px;gap:16px}.hero{padding-block:36px 40px}.hero-grid{margin-top:20px;gap:28px}.hero-grid h1{font-size:clamp(36px,9vw,48px);line-height:1.1}.hero-footer{margin-top:28px;flex-direction:column;gap:8px}.hero-art .hero-video{border-radius:12px}.proof-grid,.services{grid-template-columns:1fr}.proof-grid strong{min-height:0;font-size:27px}.card{padding:24px}.card h3{min-height:0;font-size:28px}.card>p:first-of-type{min-height:0}.service-case-link{min-height:0;margin-top:8px}.card-art{height:136px}.section-top{margin-bottom:32px}h2,.faq h2,.contact h2{font-size:clamp(36px,8.5vw,46px)}.case-detail,.practice-summary{padding:24px}.case-detail h3,.practice-copy h3{font-size:28px}.contact-actions{align-items:stretch}.contact-actions a{justify-content:center}.contact-form .button{justify-content:center;font-size:14px}.channel-cloud{padding:20px}.channel-cloud-footer{align-items:flex-start}.cloud-contact{margin-left:0;flex:1 1 100%}.footer-inner{align-items:flex-start;gap:8px}.practice-section-nav a{font-size:14px;padding:10px 14px}}

/* Let the decorative photograph end at the final LinkedIn link. */
.contact-meta::before{bottom:0;height:auto}

/* Readability, keyboard focus and transparent media activation. */
:root{--taupe:#725D4C}
.business-details{font-size:14px;color:var(--ink)}
.footer-inner{flex-wrap:wrap;justify-content:flex-start;gap:12px 24px}
.footer-inner a,.contact-form-note a{text-decoration:underline;text-underline-offset:3px}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid #356F98;outline-offset:4px}
.card .number,.step-label,.eyebrow{font-size:14px}
.video-consent{min-height:250px;width:100%;padding:32px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:#e9e3da;color:#252622;gap:14px}
.video-consent p{margin:0;max-width:50ch;font-size:15px;line-height:1.6}
.video-consent button,.video-revoke{min-height:44px;padding:10px 18px;border:1px solid #252622;background:#252622;color:#fffdfa;font:inherit;cursor:pointer}
.video-consent a{text-decoration:underline;font-size:14px}
.video-revoke{display:block;width:100%;background:#fffdfa;color:#252622;font-size:14px}
.privacy-content{max-width:860px;padding-block:48px 64px}
.privacy-content h1{font-size:clamp(36px,6vw,56px)}
.privacy-content h2{font-size:26px;margin:32px 0 12px}
.privacy-content p,.privacy-content li{font-size:17px;line-height:1.75}
.privacy-content a{text-decoration:underline;text-underline-offset:3px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.practice-video{height:auto;aspect-ratio:auto;overflow:visible}
/* Two clearly spaced footer rows sharing the page grid. */
footer{padding-block:28px}
footer .footer-inner{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px 32px;align-items:baseline;font-size:14px;line-height:1.6}
footer .footer-inner>a{justify-self:end;white-space:nowrap}
footer .legal-footer{display:flex;justify-content:space-between;align-items:baseline;gap:16px 32px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:14px;line-height:1.6}
footer .business-details{font-size:14px}
footer .legal-footer a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media(max-width:800px){footer .footer-inner{grid-template-columns:minmax(0,1fr) auto;gap:10px 24px}footer .footer-inner>span:nth-child(2){grid-column:1;grid-row:2}footer .footer-inner>a{grid-column:2;grid-row:1}}
@media(max-width:600px){footer .footer-inner{grid-template-columns:1fr;gap:8px}footer .footer-inner>span:nth-child(2),footer .footer-inner>a{grid-column:auto;grid-row:auto}footer .footer-inner>a{justify-self:start;margin-top:4px}footer .legal-footer{flex-direction:column;align-items:flex-start;gap:8px;margin-top:20px;padding-top:16px}footer .business-details{line-height:1.8}}

/* New editorial artwork retains a consistent full composition on every card. */
.card .card-art{display:block;width:100%;height:auto;max-height:none;aspect-ratio:3/2;object-fit:contain;margin:0 0 24px;border-radius:5px}

/* Archived journalism sits with the other editorial work examples. */
.article-feature{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,0.8fr);gap:40px;align-items:start}
.article-feature .article-age{font-size:15px;line-height:1.6;color:#5b564e;border-left:3px solid #725d4c;padding-left:16px;margin-block:20px}
.article-preview{margin:0;max-width:280px;justify-self:end}
.article-preview img{display:block;width:100%;height:auto;border-radius:4px}
.article-preview figcaption{font-size:14px;color:#5b564e;margin-top:8px}
@media(max-width:800px){.article-feature{grid-template-columns:1fr;gap:24px}.article-preview{justify-self:start;width:min(100%,240px)}}

/* Confirmation after successful contact delivery. Native dialog supports Escape and focus containment. */
.contact-thanks{width:min(520px,calc(100vw - 40px));max-height:calc(100dvh - 40px);margin:auto;padding:clamp(28px,5vw,44px);border:1px solid #cfc3b5;border-radius:16px;background:#fffdfa;color:#252622;box-shadow:0 24px 80px #25262230}
.contact-thanks::backdrop{background:rgba(25,35,45,.55)}
.contact-thanks .eyebrow{display:block;margin-bottom:20px}
.contact-thanks h2{font-size:clamp(28px,5vw,36px);line-height:1.15;margin:0 0 18px}
.contact-thanks p{font-size:16px;line-height:1.6;margin:0 0 26px}
.contact-thanks .button{border:0;cursor:pointer}

/* One primary invitation, with scans as a quiet secondary route. */
.scan-secondary{font-size:14px!important;line-height:1.6;margin:22px 0 0;color:#4d4943}
.scan-secondary a{text-decoration:underline;text-underline-offset:4px}
.scan-secondary a:hover{color:#252622}
.contact-actions a:nth-child(2){border:0;background:transparent;color:var(--ink);padding:10px 0;text-decoration:underline;text-underline-offset:4px;border-radius:0}
.contact-actions a:nth-child(2):hover{background:transparent;color:#725d4c}
.practice-teaser .button{background:transparent;color:var(--ink);border:1px solid #b7aba0}
.practice-teaser .button:hover{background:#e9e3da}

/* The person behind Acapella is visible on arrival. */
.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:64px;align-items:center}
.hero-grid h1{font-size:clamp(48px,5vw,66px)}
.hero-portrait{margin:0;overflow:hidden;border-radius:16px;background:#e9e3da}
.hero-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%}
#over .about-grid{grid-template-columns:1fr;max-width:860px}
@media(max-width:950px) and (min-width:701px){.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:30px}.hero-grid h1{font-size:48px}.hero-portrait img{aspect-ratio:3/4}}
@media(max-width:700px){.hero{padding-top:26px}.hero-grid{grid-template-columns:1fr;gap:24px;margin-top:20px}.hero-portrait{grid-row:1;border-radius:12px}.hero-portrait img{aspect-ratio:auto;height:210px;object-position:50% 15%}.hero-grid h1{font-size:clamp(38px,10vw,48px)}}

.hero-story{width:100%;margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.hero-story .hero-video{width:100%;height:auto;aspect-ratio:16/9;border-radius:16px}
@media(max-width:700px){.hero-story{margin-top:30px;padding-top:24px}.hero-story .hero-video{border-radius:10px}}

/* A separate reflection section, visibly distinct from client assignments. */
.team-reflection{background:#233a42;color:#fffdfa;border:0;padding:64px 0;scroll-margin-top:100px}
.team-reflection-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:72px;align-items:start}
.team-reflection-heading{border-left:4px solid #d4ad72;padding-left:28px}
.team-reflection .eyebrow{color:#dfc5a0;margin-bottom:24px}
.team-reflection h2{font-size:clamp(34px,3.6vw,46px);line-height:1.16;margin-bottom:24px;max-width:490px}
.team-reflection h2 em{color:#dfc5a0}
.team-reflection-label{display:inline-block;color:#dfc5a0;font-size:14px}
.team-reflection-copy p{font-size:17px;line-height:1.7;color:#f0efeb;margin-bottom:20px}
.team-reflection-copy .team-reflection-note{border-top:1px solid #65777c;padding-top:20px;color:#dfc5a0}
.team-reflection .scan-secondary{margin-top:26px;color:#fffdfa}
.team-reflection .scan-secondary a{color:#fffdfa}
.team-reflection .scan-secondary a:hover{color:#dfc5a0}
.practice-media{border-top:0}
@media(max-width:800px){.team-reflection{padding:44px 0}.team-reflection-grid{grid-template-columns:1fr;gap:30px}.team-reflection-heading{padding-left:20px}.team-reflection h2{font-size:36px}.team-reflection-copy p{font-size:16px}}

/* Readable secondary text and comfortable touch targets. */
:root{--muted:#4d4943}
body{font-size:17px;line-height:1.65}
a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
button,summary{min-height:44px;min-width:44px}
nav#navigation a{padding-block:10px;font-size:14px}
.tag,.eyebrow,.card .number,.step-label,.case-facts strong,.hero-footer,.art-caption{font-size:14px}
.hero-footer,.section-copy,.intro,.card p,.about-copy p,.questions details p{color:#4d4943}
.contact p,.contact-form-note,.contact-form-status{color:#4d4943}
.contact-form-note,.contact-form-status{font-size:14px!important}
footer .footer-inner,footer .legal-footer,footer .business-details,.article-preview figcaption{font-size:14px;color:#4d4943}
.hero-media-controls .video-toggle,.cloud-toggle{min-height:44px;font-size:14px}
.approach .step-label,.approach .eyebrow{color:#dfc5a0}
.approach .step p,.approach .section-copy{color:#e0ded8}

.team-reflection-copy .reflection-scan h3{font-size:25px;line-height:1.25;color:#fffdfa;margin:0 0 16px}
.team-reflection-copy .reflection-scan+.reflection-scan{margin-top:28px;padding-top:26px;border-top:1px solid #65777c}
.team-reflection-copy .reflection-scan .scan-secondary{margin-top:12px;margin-bottom:0}
.team-reflection-copy .team-reflection-note{margin-top:28px}
