/* Shared navigation and contact controls. Mobile rules live in this file. */
[hidden]{display:none!important}
html{scroll-padding-top:90px;scroll-padding-bottom:90px}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--accent-deep,#8a6010);outline-offset:4px}
.nav :focus-visible,.dsm-quick-contact :focus-visible{outline-color:var(--acid,#deb75a)}
.menu-btn{width:48px;height:48px;padding:12px;cursor:pointer}
.menu-btn svg{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.menu-btn .menu-close,.menu-btn[aria-expanded="true"] .menu-open{display:none}
.menu-btn[aria-expanded="true"] .menu-close{display:block}
.dsm-quick-contact{position:fixed;z-index:45;right:20px;bottom:20px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.dsm-contact-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 18px;background:var(--ink,#11110f);color:#fff;border:1px solid #ffffff40;font:500 14px/1.2 var(--sans,Arial,sans-serif);box-shadow:0 4px 20px #0002}
.dsm-contact-link svg{width:22px;height:22px;flex:none;fill:currentColor}
.dsm-contact-link.wa{background:var(--acid,#deb75a);color:var(--ink,#11110f);border-color:transparent}
.dsm-quick-label{display:none}
.dsm-footer-social{display:inline-flex;gap:8px;align-items:center;min-height:44px}
.dsm-footer-social svg{width:18px;height:18px;fill:currentColor}
.hero-mobile-visual,.mobile-contact-intro,.mobile-trust-link{display:none}
.home-swipe-hint{display:none}
@media(max-width:980px){
  .nav-inner{height:68px}
  .menu-btn{display:block}
  .nav-links{display:none;position:fixed;top:68px;left:0;right:0;max-height:calc(100dvh - 68px);overflow-y:auto;background:var(--ink);padding:16px 24px 24px;flex-direction:column;align-items:stretch;gap:0;font-size:16px;letter-spacing:.02em;text-transform:none;border-bottom:1px solid #ffffff30}
  .nav-links.open{display:flex}
  .nav-links a{display:flex;align-items:center;min-height:48px;padding:10px 0;border-bottom:1px solid #ffffff16}
  .nav-links a:after{display:none}
  .nav-links .nav-cta{margin-top:12px;padding:12px 16px;justify-content:center;background:var(--acid);color:var(--ink);border:0}
  body.menu-is-open{overflow:hidden}
  body.menu-is-open .dsm-quick-contact{visibility:hidden}
  .home-page .work-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:minmax(300px,auto)}
  .home-page .work-card:first-child{grid-row:auto}
  .home-page .hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:112px 0 0;background:#f1ece2}
  .home-page .hero-image,.home-page .hero:after{display:none}
  .home-page .hero-grid{display:block}
  .home-page .hero h1{max-width:620px}
  .hero-mobile-visual{display:block;width:min(100% - 48px,900px);margin:32px auto 0;overflow:hidden}
  .hero-mobile-visual img{width:100%;height:auto;aspect-ratio:16/7;object-fit:cover;object-position:center 50%}
}
@media(max-width:620px){
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .wrap{width:calc(100% - 40px)}
  .nav-inner{height:68px}
  .brand-mark{width:96px;height:41px}
  .dsm-quick-contact{inset:auto 0 0;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:#f4f0e8;border-top:1px solid #11110f25;box-shadow:0 -3px 18px #11110f08}
  .dsm-quick-label{display:block;color:#39352e;font:500 13px/1.3 var(--sans,Arial,sans-serif)}
  .dsm-contact-link{box-shadow:none;min-height:48px;padding:12px 18px;font-size:14px}
  .dsm-contact-link.ig{display:none}
  body:has(form:focus-within) .dsm-quick-contact{visibility:hidden}
  .home-page section{padding:40px 0}
  .home-page .hero{padding-top:100px;background:#f1ece2}
  .home-page .hero .eyebrow{font-size:10px;letter-spacing:.13em;gap:10px;line-height:1.4}
  .home-page .eyebrow:before{width:22px;flex-shrink:0}
  .home-page .hero h1{font-size:clamp(34px,9.2vw,42px);line-height:1.14!important;margin:22px 0 18px;max-width:500px;text-wrap:initial}
  .home-page .hero h1 .soft{display:block;margin:3px 0;font-size:1.12em}
  .home-page .hero-copy{font-size:16px;line-height:1.65;margin:0;max-width:38ch}
  .home-page .hero-actions{flex-direction:column;align-items:stretch;gap:12px;margin-top:24px}
  .home-page .hero-actions .btn{min-height:50px;font-size:13px;letter-spacing:.025em;text-transform:none}
  .home-page .hero-actions .btn:not(.primary){min-height:36px;padding:4px 0;border:0;background:none;justify-content:flex-start;text-decoration:underline;text-underline-offset:5px;color:#51442e}
  .hero-mobile-visual{width:100%;margin:26px 0 0}
  .hero-mobile-visual img{aspect-ratio:16/8;object-position:65% center}
  .home-page .section-head{display:block;padding-top:16px;margin-bottom:24px}
  .home-page .section-head .eyebrow{margin-bottom:18px}
  .home-page .section-title{font-size:32px!important;line-height:1.15!important}
  .home-page .section-intro{font-size:15px;line-height:1.6;margin:12px 0 0}
  .home-page .eyebrow{font-size:10px;line-height:1.5;letter-spacing:.12em}
  .home-page .btn{min-height:48px;padding:12px 16px;font-size:13px;letter-spacing:.025em;text-transform:none}
  /* Work previews: image above the description, without text over the image. */
  .home-page .work-grid{display:grid;gap:20px;grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:auto}
  .home-page .work-card{background:var(--white);color:var(--ink);min-height:0;overflow:hidden;border:1px solid var(--line)}
  .home-page .work-card:after{display:none}
  .home-page .work-card>img{position:static;display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;filter:none;opacity:1;transform:none}
  .home-page .work-card .profile-collage{position:static;display:block;height:auto}
  .home-page .work-card .profile-collage img{display:none}
  .home-page .work-card .profile-collage img:first-child{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center 32%;filter:none;opacity:1}
  .home-page .work-content{position:static;display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:14px;padding:20px;align-items:center}
  .home-page .work-card h3,.home-page .work-card:not(:first-child) h3{font-size:26px;line-height:1.15!important;margin:9px 0}
  .home-page .work-card p{font-size:14px;line-height:1.55;color:#56534d}
  .home-page .work-tag{font-size:10px;letter-spacing:.06em;line-height:1.4;color:#746241}
  .home-page .plus{font-size:24px}
  /* Services and process remain fully readable without oversized empty cards. */
  .home-page .service-list{grid-template-columns:1fr}
  .home-page .service{min-height:0;gap:16px;padding:22px}
  .home-page .service h3{font-size:29px;line-height:1.15!important}
  .home-page .service p{font-size:14px;line-height:1.65}
  .home-page .service .arrow{display:none}
  .home-page .logo-wall{grid-template-columns:repeat(3,minmax(0,1fr))}
  .home-page .logo-wall:not(.expanded) .logo:nth-child(n+10){display:none}
  .home-page .logo{height:82px;padding:10px}
  .home-page .reference-actions{display:flex;align-items:flex-start;flex-direction:column;gap:16px;margin-top:18px;font-size:14px}
  .home-page .logo-toggle{min-height:44px;font-size:12px}
  .home-page .system-home-grid{display:block}
  .home-page .system-home-visual{display:none}
  .home-page .system-home-copy{padding:22px}
  .home-page .system-home-copy h2{font-size:30px!important;margin:18px 0 12px}
  .home-page .system-home-copy>p{font-size:15px;line-height:1.65;margin:0}
  .home-page .system-mini-steps{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:22px 0}
  .home-page .system-mini-steps span{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:7px;min-height:36px;padding:7px 9px;border:1px solid var(--line);font-size:11px;letter-spacing:0}
  .home-page .system-actions{display:grid;grid-template-columns:1fr;gap:12px}
  .home-page .system-actions .btn:last-child{border:0;padding:0;min-height:36px;text-decoration:underline;text-underline-offset:4px}
  .home-page .compliance-home{padding:0}
  .home-page .compliance-home-grid{grid-template-columns:1fr}
  .home-page .compliance-home article{min-height:0;padding:20px;gap:12px;border-bottom:1px solid var(--line)}
  .home-page .compliance-home h2{margin:0;font-size:26px}
  .home-page .compliance-home p{font-size:14px;line-height:1.55}
  .home-page .compliance-home .wrap>a{display:flex;padding:20px 0;gap:14px;font-size:13px;line-height:1.6}
  .home-page .report-preview{display:block}
  .home-page .report-summary{padding:24px;min-height:0}
  .home-page .report-summary h3{margin:24px 0 12px;font-size:32px}
  .home-page .report-summary p{font-size:15px;margin:0 0 24px}
  .home-page .report-summary .btn{width:100%}
  .home-page .report-board{display:none}
  .home-page .hub-grid{grid-template-columns:1fr;gap:12px}
  .home-page .hub-card{min-height:0;padding:22px;gap:10px}
  .home-page .hub-card h3{font-size:28px;margin:4px 0}
  .home-page .hub-card p{font-size:14px;margin:0;line-height:1.6}
  .home-page .hub-card>b{margin-top:4px}
  .home-page .hub-media{display:block;padding:0;min-height:180px}
  .home-page .hub-media>img{display:none}
  .home-page .hub-media>img:first-child{display:block;width:100%;height:210px;object-fit:cover}
  .home-page .hub-media-overlay{inset:auto 14px 14px;padding:14px}
  .home-page .hub-media-overlay h3{font-size:25px;margin:5px 0 0}
  .home-page .about-grid{display:block}
  .home-page .about-statement{font-size:34px;line-height:1.16!important}
  .home-page .about-copy p{font-size:15px;line-height:1.65}
  .home-page .principles{grid-template-columns:1fr;margin-top:22px}
  .home-page .principle{min-height:54px;flex-direction:row;align-items:center;gap:14px;padding:12px}
  .home-page .principle b{font-size:24px}
  .home-page .principle span{font-size:12px;letter-spacing:.025em}
  .home-page .team-grid,.home-page .quote-grid-home{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:12px;gap:12px}
  .home-page .team-card,.home-page .quote-home{flex:0 0 88%;scroll-snap-align:start}
  .home-page .team-card{aspect-ratio:.83}
  .home-page .team-info{left:18px;right:18px;bottom:18px}
  .home-page .team-info h3{font-size:27px}
  .home-page .team-role{font-size:11px;letter-spacing:.045em}
  .home-page .team-bio{font-size:13px;line-height:1.55;color:#e0dfd9}
  .home-page .quote-home{min-height:260px;padding:22px}
  .home-page .quote-home>p{font-size:23px;line-height:1.35}
  .home-page .quote-home footer{padding-top:20px}
  .home-swipe-hint{display:block;font-size:12px;color:#58554d;margin:12px 0 0}
  .home-page .contact{padding:40px 0;border-top-width:4px}
  .home-page .contact h2{font-size:38px;line-height:1.15!important}
  .home-page .contact-top{display:block}
  .home-page .contact-arrow{display:none}
  .home-page .contact-layout{display:block;margin-top:24px;padding-top:24px}
  .home-page .contact-details{gap:24px}
  .home-page .contact-details a{font-size:15px;overflow-wrap:anywhere}
  .home-page .contact-result,.home-page .contact-assessment{display:none}
  .home-page .contact-details>div:nth-child(3){display:none}
  .mobile-contact-intro{display:block;border-top:1px solid #ffffff30;margin-top:28px;padding-top:24px}
  .mobile-contact-intro p{font-size:15px;line-height:1.65;color:#c9c7bf;margin:0 0 20px}
  .mobile-contact-intro .btn{width:100%}
  .mobile-trust-link{display:block;margin-top:20px;font-size:14px;text-decoration:underline;text-underline-offset:4px}
  .home-page .footer-inner{flex-direction:column;gap:16px;font-size:11px;line-height:1.8;letter-spacing:.05em}
  .home-page .footer-inner a{display:inline-block;padding-block:4px}
  /* Inner pages share the same mobile rhythm and menu. */
  .page-hero{min-height:0;padding:108px 0 36px}
  .page-hero h1{font-size:clamp(32px,8.5vw,40px)}
  .page-hero .hero-grid{gap:28px}
  .page-hero .hero-aside{min-height:0;padding:18px;font-size:14px}
  .page-hero .hero-aside b{font-size:28px;margin-bottom:10px}
  .page-section{padding:40px 0}
  .service-index-card,.cards-3 .card,.article-card{min-height:0;padding:24px;gap:18px}
  .service-index-card h2,.article-card h2{margin-top:12px}
  .assessment-form{padding:20px}
  .assessment-form legend{font-size:26px}
  .assessment-form fieldset{margin-bottom:28px}
  .assessment-result{min-height:0;padding:22px}
  .assessment-result h2{font-size:32px;margin:24px 0 14px}
  .assessment-result .btn{width:100%;font-size:13px;letter-spacing:.02em}
  .contact-detail-bar>div{padding:18px}
}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}.home-page .logo{animation:none!important;opacity:1!important;transform:none!important}}
