/* Gold is reserved for commitment and the next step: consultation. */
:root { --gold:#d8b56c; --gold-light:#e8cb8b; --gold-ink:#87601d; --motion-ease:cubic-bezier(.22,.68,0,1.01); }
.hero-copy-panel { border-top:3px solid var(--gold); }
.hero-brand-mark { border-left:4px solid var(--gold); }
.hero-brand-mark span { color:var(--gold-light); }
.hero-copy-panel .eyebrow { color:var(--gold-ink); }
.message-copy .message-emphasis { color:var(--gold-light); }
.message-copy .section-label { color:var(--gold-light); }
a.button[href$="#contact"], .contact .button, .mobile-cta .button { background:var(--gold); color:var(--navy); border-color:var(--gold); }
a.button[href$="#contact"]:hover, .contact .button:hover, .mobile-cta .button:hover { background:var(--gold-light); color:var(--navy); }
a.button[href$="#contact"]:active, .contact .button:active { background:#caa35a; color:var(--navy); }
.contact-form-panel { border-top:3px solid var(--gold); }
.message-copy .section-title::after, .services-intro .section-title::after, #contact-title::after { content:""; display:block; width:64px; height:3px; background:var(--gold); margin-top:24px; transform-origin:left; }
.reading-progress { position:fixed; inset:0 0 auto; height:3px; background:var(--gold); z-index:1000; transform-origin:left; pointer-events:none; }
.motion-toggle { display:block; background:transparent; color:#dbe6f3; border:0; border-bottom:1px solid #687e94; padding:10px 0; min-height:44px; margin:12px 0 0; font:inherit; font-size:13px; cursor:pointer; }
.motion-toggle[hidden] { display:none; }
.motion-toggle:disabled { cursor:default; border-color:transparent; }
.motion-toggle:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.service-visual { overflow:hidden; }
.service-visual img { display:block; }
.hero-scene { transition:opacity 1.6s ease-in-out,visibility 1.6s; }
.hero-scene.is-outgoing { visibility:visible; }

@media(prefers-reduced-motion:no-preference) {
  html[data-motion] .hero-editorial.is-enhanced .hero-scene:is(.is-active,.is-outgoing) img { animation:hero-drift 9s linear both; }
  html[data-motion="running"] .hero-editorial[data-playback="paused"] .hero-scene img { animation-play-state:paused; }
  html[data-motion] .hero-copy-panel h1 span { animation:copy-arrive .85s var(--motion-ease) both; }
  html[data-motion] .hero-copy-panel h1 span:nth-child(2) { animation-delay:.12s; }
  html[data-motion] .hero-copy-panel .hero-copy { animation:copy-arrive .85s .24s var(--motion-ease) both; }
  html[data-motion] .hero-copy-panel .hero-links { animation:copy-arrive .85s .36s var(--motion-ease) both; }
  html[data-motion] :is(.representative-large,.detail-hero figure).motion-entered { animation:photo-arrive 1.15s var(--motion-ease) both; }
  html[data-motion] .service-visual.motion-entered { animation:photo-arrive 1.05s var(--entrance-delay,0ms) var(--motion-ease) both; }
  html[data-motion] .section-title.motion-entered::after { animation:rule-arrive .95s .15s var(--motion-ease) both; }
  html[data-motion] .steps > li.motion-entered { animation:step-accent 1.1s ease-out both; }
  .button { transition:background-color .24s ease,color .24s ease; }
  .button::after,.textlink::after { transition:transform .3s var(--motion-ease); }
  .service-visual img { transition:transform .65s var(--motion-ease); }
  .service-tile { transition:border-color .3s ease; }
  .sns-links img { transition:transform .28s var(--motion-ease); }
  @media(hover:hover) {
    html[data-motion="running"] .button:hover::after { transform:translateX(6px); }
    html[data-motion="running"] .textlink:hover::after { transform:translate(3px,-3px); }
    html[data-motion="running"] .service-tile:hover .service-visual img { transform:scale(1.045); }
    .service-tile:hover { border-color:var(--gold); }
    html[data-motion="running"] .sns-links a:hover img { transform:translateY(-3px); }
  }
}
@keyframes hero-drift { from { transform:scale(1.02) translate3d(-.3%,0,0); } to { transform:scale(1.12) translate3d(.5%,-.4%,0); } }
@keyframes copy-arrive { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes photo-arrive { from { clip-path:inset(0 12% 0 0); opacity:.35; } to { clip-path:inset(0); opacity:1; } }
@keyframes rule-arrive { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes step-accent { from { border-top-color:var(--gold); background:#fff7e5; } to { border-top-color:#a7bccc; background:transparent; } }
html[data-motion="paused"] *, html[data-motion="paused"] *::before, html[data-motion="paused"] *::after { animation-play-state:paused !important; transition:none !important; scroll-behavior:auto !important; }
html[data-motion="paused"] :is(.hero-copy-panel h1 span,.hero-copy-panel .hero-copy,.hero-copy-panel .hero-links,.motion-entered) { opacity:1; clip-path:none; transform:none; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

.mobile-menu nav { max-height:calc(100svh - 100px); overflow-y:auto; }
