/* Shared UI rhythm: small feedback, disclosure, one-time content entrance. */
:root {
  --motion-fast: 160ms;
  --motion-ui: 240ms;
  --motion-enter: 480ms;
  --motion-ease: cubic-bezier(.22, 1, .36, 1);
}
.icon { display:inline-block; width:20px; height:20px; flex:0 0 auto; vertical-align:middle; stroke-width:1.75; }
.icon-chevron-down { width:16px; height:16px; }
.service-menu > summary { gap:9px; }
.service-menu summary .icon { transition:transform var(--motion-ui) var(--motion-ease); }
.service-menu[open] summary .icon-chevron-down { transform:rotate(180deg); }
.service-menu.is-closing summary .icon-chevron-down { transform:none; }
.button .icon { width:20px; height:20px; }
.text-link .icon,.service-sub-links .icon { width:18px; height:18px; }
.service-card > .icon { color:var(--brass); margin-top:4px; }
.service-sub-links > a { gap:8px; }
.faq-items summary .icon { width:20px; height:20px; color:var(--brass); transition:transform var(--motion-ui) var(--motion-ease); }
.faq-items details[open] summary .icon-plus { transform:rotate(45deg); }
.faq-items details.is-closing summary .icon-plus { transform:none; }
.faq-answer > p { color:var(--muted); font-size:14px; padding:0 35px 24px 0; }
.dialog-close { display:flex; align-items:center; justify-content:center; }
.dialog-close .icon { width:22px; height:22px; }
.hero-scroll { gap:22px; }
.hero-scroll .icon-scroll-down { width:24px; height:32px; color:var(--accent); }
.icon-scroll-down path { transition:transform var(--motion-ui) var(--motion-ease); }
.button,.text-link,.service-card,.contact-links > a,.other-services > a,.related-links > a,.site-nav a,.article-nav > a,.header-phone,.mobile-actions > a,.dialog-close {
  transition:color var(--motion-fast) ease, background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}
:is(a,button) > .icon { transition:transform var(--motion-ui) var(--motion-ease); }
.site-nav > a,.service-menu > summary { position:relative; }
.site-nav > a:after,.service-menu > summary:after {
  content:""; position:absolute; bottom:6px; left:0; right:0; height:1px; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform var(--motion-ui) var(--motion-ease);
}
.site-nav > a[aria-current=page]:after,.service-menu[open] > summary:after { transform:scaleX(1); }
.intake-form :is(input,textarea) { transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease; }
.intake-form :is(input,textarea):focus-visible { border-color:var(--brass); box-shadow:0 0 0 3px #c4a67626; }
/* Text links on dark surfaces share a visible, layout-stable interaction cue. */
:is(.site-footer a:not(.footer-name, .community-links a),.header-phone,.hero-scroll,.breadcrumbs a,
    .hero .text-link,.inner-hero .text-link,.statement-photo .text-link,
    .contact-photo .contact-links > a) {
  text-decoration-line:underline;
  text-decoration-color:transparent;
  text-decoration-thickness:1px;
  text-underline-offset:.3em;
  text-decoration-skip-ink:auto;
  transition:color var(--motion-fast) ease,text-decoration-color var(--motion-fast) ease,border-color var(--motion-fast) ease;
}
:is(.site-footer a:not(.footer-name, .community-links a),.header-phone,.hero-scroll,.breadcrumbs a,
    .hero .text-link,.inner-hero .text-link,.statement-photo .text-link,
    .contact-photo .contact-links > a):is(:hover,:focus-visible) {
  color:#e2c69a;
  text-decoration-line:underline;
  text-decoration-color:currentColor;
}
:is(.site-footer a:not(.footer-name, .community-links a),.header-phone,.hero-scroll,.breadcrumbs a,
    .hero .text-link,.inner-hero .text-link,.statement-photo .text-link,
    .contact-photo .contact-links > a):focus-visible {
  outline-color:#e2c69a;
}
.button:active { box-shadow:inset 0 0 0 2px #141d2730; }
.menu-toggle .icon path { transition:transform var(--motion-ui) var(--motion-ease),opacity var(--motion-fast) ease; }
.menu-toggle .icon path:nth-child(1) { transform-origin:12px 6px; }
.menu-toggle .icon path:nth-child(3) { transform-origin:12px 18px; }
.menu-toggle[aria-expanded=true] .icon path:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded=true] .icon path:nth-child(2) { opacity:0; }
.menu-toggle[aria-expanded=true] .icon path:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
.booking-dialog[open]::backdrop { animation:veil-in var(--motion-ui) ease both; }
.booking-dialog.is-closing::backdrop { animation:veil-out var(--motion-fast) ease both; }
@keyframes veil-in { from { opacity:0; } to { opacity:1; } }
@keyframes veil-out { from { opacity:1; } to { opacity:0; } }
@media(hover:hover) and (pointer:fine) {
  .site-nav > a:hover:after,.service-menu > summary:hover:after { transform:scaleX(1); }
  :is(a,button):hover > .icon-arrow-right { transform:translateX(3px); }
  a:hover > .icon-arrow-up-right { transform:translate(2px,-2px); }
  a:hover > .icon-brand-telegram { transform:translate(2px,-1px); }
  .hero-scroll:hover .icon-scroll-down path { transform:translateY(2px); }
  .dialog-close:hover { background:#202a340d; }
}
:is(a,button):focus-visible > .icon-arrow-right { transform:translateX(3px); }
.hero-scroll:focus-visible .icon-scroll-down path { transform:translateY(2px); }
@media(max-width:760px) {
  .site-nav > a:after,.service-menu > summary:after { display:none; }
  .faq-answer > p { padding-right:10px; }
}
@media(prefers-reduced-motion:reduce) {
  :root { --motion-fast:0ms; --motion-ui:0ms; --motion-enter:0ms; }
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation:none!important; transition:none!important; }
  :is(a,button) > .icon,.icon-scroll-down path { transform:none!important; }
}
