/* ------------------------------------------------------------------
   Interaction / motion styling. Scoped to data-tw-* on <html>, set
   permanently by defaults.js. Companion to motion-styles.css.
   Behavioural pieces live in motion-effects.js.
   ------------------------------------------------------------------ */

/* =========== Button hover =========== */
html[data-tw-btnhover="sweep"] .btn { position: relative; overflow: hidden; isolation: isolate; }
html[data-tw-btnhover="sweep"] .btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,0.55) 50%, transparent 80%);
  transform: translateX(-120%); transition: transform 0.65s cubic-bezier(0.22,0.61,0.36,1);
}
html[data-tw-btnhover="sweep"] .btn:hover::before { transform: translateX(120%); }
html[data-tw-btnhover="sweep"] .btn-outline::before { background: linear-gradient(100deg, transparent 20%, rgba(201,162,39,0.35) 50%, transparent 80%); }

html[data-tw-btnhover="glow"] .btn-gold { transition: box-shadow 0.3s ease, background-color 0.2s ease, transform 0.2s ease; }
html[data-tw-btnhover="glow"] .btn-gold:hover { box-shadow: 0 0 0 4px rgba(201,162,39,0.22), 0 10px 28px rgba(201,162,39,0.4); }
html[data-tw-btnhover="glow"] .btn-outline:hover { box-shadow: 0 0 0 4px rgba(255,255,255,0.12); }

html[data-tw-btnhover="arrow"] .btn { position: relative; }
html[data-tw-btnhover="arrow"] .btn::after {
  content: "\2192"; display: inline-block; width: 0; overflow: hidden;
  margin-left: 0; opacity: 0; transform: translateX(-6px);
  transition: width 0.3s cubic-bezier(0.22,0.61,0.36,1), opacity 0.25s ease, transform 0.3s cubic-bezier(0.22,0.61,0.36,1), margin-left 0.3s ease;
  vertical-align: baseline;
}
html[data-tw-btnhover="arrow"] .btn:hover::after { width: 1em; opacity: 1; transform: translateX(0); margin-left: 0.45em; }

html[data-tw-btnhover="underline"] .btn { position: relative; }
html[data-tw-btnhover="underline"] .btn::after {
  content: ""; position: absolute; left: 1.6em; right: 1.6em; bottom: 0.7em; height: 2px;
  background: currentColor; opacity: 0.55; transform: scaleX(0); transform-origin: left;
  transition: transform 0.35s cubic-bezier(0.22,0.61,0.36,1);
}
html[data-tw-btnhover="underline"] .btn:hover::after { transform: scaleX(1); }

html[data-tw-btnhover="magnet"] .btn { will-change: transform; }

/* =========== Button press =========== */
html[data-tw-btnpress="squash"] .btn:active { transform: scale(0.96) !important; transition-duration: 0.06s !important; }
html[data-tw-btnpress="sink"] .btn:active { transform: translateY(2px) !important; box-shadow: inset 0 2px 6px rgba(0,0,0,0.22); transition-duration: 0.06s !important; }
html[data-tw-btnpress="ripple"] .btn { position: relative; overflow: hidden; }
.tw-ripple { position: absolute; border-radius: 50%; pointer-events: none; background: rgba(255,255,255,0.5); transform: translate(-50%,-50%) scale(0); animation: tw-ripple 0.55s ease-out forwards; }
.btn-gold .tw-ripple { background: rgba(11,31,20,0.28); }
@keyframes tw-ripple { to { transform: translate(-50%,-50%) scale(1); opacity: 0; } }

/* =========== Nav motion =========== */
html[data-tw-navmotion="slide"] .site-nav a:not(.nav-cta) { position: relative; }
html[data-tw-navmotion="slide"] .site-nav a:not(.nav-cta)::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -7px; height: 2px; background: var(--c-gold);
  transform: scaleX(0); transform-origin: center; transition: transform 0.35s cubic-bezier(0.22,0.61,0.36,1);
}
html[data-tw-navmotion="slide"] .site-nav a:not(.nav-cta):hover::after, html[data-tw-navmotion="slide"] .site-nav a.active::after { transform: scaleX(1); }

html[data-tw-navmotion="swap"] .site-nav a:not(.nav-cta) { display: inline-block; }
html[data-tw-navmotion="swap"] .tw-swap-clip { display: block; overflow: hidden; }
html[data-tw-navmotion="swap"] .tw-swap { display: block; position: relative; transition: transform 0.32s cubic-bezier(0.22,0.61,0.36,1); }
html[data-tw-navmotion="swap"] .tw-swap-b { position: absolute; left: 0; top: 100%; color: var(--c-gold); }
html[data-tw-navmotion="swap"] .site-nav a:hover .tw-swap { transform: translateY(-100%); }

html[data-tw-navmotion="dot"] .site-nav a:not(.nav-cta) { position: relative; }
html[data-tw-navmotion="dot"] .site-nav a:not(.nav-cta)::after {
  content: ""; position: absolute; left: 50%; bottom: -9px; width: 5px; height: 5px; margin-left: -2.5px;
  border-radius: 50%; background: var(--c-gold); opacity: 0; transform: scale(0.2) translateY(4px);
  transition: opacity 0.25s ease, transform 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
html[data-tw-navmotion="dot"] .site-nav a:not(.nav-cta):hover::after, html[data-tw-navmotion="dot"] .site-nav a.active::after { opacity: 1; transform: scale(1) translateY(0); }

html[data-tw-navmotion="glide"] .site-nav { position: relative; }
.tw-nav-pill {
  position: absolute; z-index: 0; border-radius: 999px; background: rgba(201,162,39,0.16);
  pointer-events: none; opacity: 0; transition: opacity 0.2s ease;
}
html[data-tw-navmotion="glide"] .site-nav a { position: relative; z-index: 1; }
@media (max-width: 760px) { .tw-nav-pill { display: none; } }

html[data-tw-navmotion="lift"] .site-nav a:not(.nav-cta) { transition: transform 0.25s cubic-bezier(0.34,1.56,0.64,1), color 0.2s ease; }
html[data-tw-navmotion="lift"] .site-nav a:not(.nav-cta):hover { transform: translateY(-2px); }

/* header shadow once scrolled (JS adds .tw-scrolled) */
html[data-tw-headerfx="shadow"] .site-header { transition: box-shadow 0.3s ease, background-color 0.3s ease; }
html[data-tw-headerfx="shadow"] .site-header.tw-scrolled { box-shadow: 0 6px 24px rgba(0,0,0,0.35); }
html[data-tw-headerfx="shrink"] .site-header { transition: padding 0.3s ease; }
html[data-tw-headerfx="shrink"] .site-header .header-inner { transition: padding 0.3s ease; }
html[data-tw-headerfx="shrink"] .site-header.tw-scrolled .header-inner { padding-top: 8px; padding-bottom: 8px; }
html[data-tw-headerfx="shrink"] .site-header .logo img { transition: height 0.3s ease; }

html[data-tw-headerfx="hide"] .site-header { transition: transform 0.35s cubic-bezier(0.22,0.61,0.36,1); }
html[data-tw-headerfx="hide"] .site-header.tw-hidden { transform: translateY(-100%); }

/* =========== Card motion =========== */
html[data-tw-cardmotion="tilt"] .card { will-change: transform; transform-style: preserve-3d; }
html[data-tw-cardmotion="tilt"] .card:hover { transform: none; }

html[data-tw-cardmotion="spotlight"] .card { position: relative; overflow: hidden; }
html[data-tw-cardmotion="spotlight"] .card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0;
  transition: opacity 0.3s ease;
  background: radial-gradient(320px circle at var(--tw-mx, 50%) var(--tw-my, 50%), rgba(201,162,39,0.16), transparent 65%);
}
html[data-tw-cardmotion="spotlight"] .card:hover::after { opacity: 1; }
html[data-tw-cardmotion="spotlight"] .card:hover { transform: none; box-shadow: 0 10px 30px rgba(11,31,20,0.1); }

html[data-tw-cardmotion="trace"] .card { position: relative; }
html[data-tw-cardmotion="trace"] .card::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  padding: 1px; background: linear-gradient(120deg, var(--c-gold), transparent 40%, transparent 60%, var(--c-gold));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity 0.4s ease; background-size: 220% 220%; background-position: 0% 0%;
}
html[data-tw-cardmotion="trace"] .card:hover::before { opacity: 1; animation: tw-trace 2.4s linear infinite; }
@keyframes tw-trace { to { background-position: 220% 220%; } }

html[data-tw-cardmotion="iconspin"] .card .icon, html[data-tw-cardmotion="iconspin"] .tile .icon { transition: transform 0.5s cubic-bezier(0.22,0.61,0.36,1), color 0.3s ease; }
html[data-tw-cardmotion="iconspin"] .card:hover .icon { transform: rotate(-8deg) scale(1.12); color: var(--c-dark); }
html[data-tw-cardmotion="iconspin"] .section-dark .card:hover .icon, html[data-tw-cardmotion="iconspin"] .card-feature:hover .icon { color: var(--c-gold-light); }

html[data-tw-cardmotion="arrow"] .tile-cta, html[data-tw-cardmotion="arrow"] .card-wide a { display: inline-block; transition: transform 0.3s cubic-bezier(0.22,0.61,0.36,1), color 0.2s ease; }
html[data-tw-cardmotion="arrow"] .card:hover .tile-cta, html[data-tw-cardmotion="arrow"] .card:hover .card-wide a { transform: translateX(6px); }
html[data-tw-cardmotion="arrow"] .card { cursor: default; }

html[data-tw-cardmotion="rise"] .card > * { transition: transform 0.4s cubic-bezier(0.22,0.61,0.36,1); }
html[data-tw-cardmotion="rise"] .card:hover { transform: none; }
html[data-tw-cardmotion="rise"] .card:hover h3 { transform: translateY(-4px); }
html[data-tw-cardmotion="rise"] .card:hover .icon { transform: translateY(-6px) scale(1.06); }
html[data-tw-cardmotion="rise"] .card:hover .tile-links { transform: translateY(-2px); }

/* =========== Image interactions =========== */
html[data-tw-imghover] .post-body img, html[data-tw-imghover] .tw-img-wrap img { will-change: transform; }
html[data-tw-imghover="zoom"] .post-body img { transition: transform 0.7s cubic-bezier(0.22,0.61,0.36,1); }
html[data-tw-imghover="zoom"] .post-body img:hover { transform: scale(1.04); }
html[data-tw-imghover="zoom"] .tw-img-wrap { overflow: hidden; border-radius: var(--radius); }

html[data-tw-imghover="shine"] .tw-img-wrap { position: relative; overflow: hidden; border-radius: var(--radius); }
html[data-tw-imghover="shine"] .tw-img-wrap::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,0.4) 50%, transparent 65%);
  transform: translateX(-120%); transition: transform 0.9s cubic-bezier(0.22,0.61,0.36,1);
}
html[data-tw-imghover="shine"] .tw-img-wrap:hover::after { transform: translateX(120%); }

html[data-tw-imghover="mono"] .post-body img { filter: grayscale(1) contrast(1.05); transition: filter 0.6s ease; }
html[data-tw-imghover="mono"] .post-body img:hover { filter: grayscale(0) contrast(1); }

html[data-tw-imghover="frame"] .tw-img-wrap { position: relative; }
html[data-tw-imghover="frame"] .tw-img-wrap::before {
  content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255,255,255,0.65); border-radius: 4px;
  pointer-events: none; opacity: 0; transform: scale(1.04); transition: opacity 0.4s ease, transform 0.5s cubic-bezier(0.22,0.61,0.36,1); z-index: 1;
}
html[data-tw-imghover="frame"] .tw-img-wrap:hover::before { opacity: 1; transform: scale(1); }

html[data-tw-imghover="parallax"] .tw-img-wrap { overflow: hidden; border-radius: var(--radius); }
html[data-tw-imghover="parallax"] .tw-img-wrap img { transform: scale(1.14); }

/* =========== Reveals (JS-driven; these are only the static fallbacks) ====== */
/* nothing needed - tweaks-motion.js sets and animates inline */

/* =========== Section transitions =========== */
html[data-tw-sectionfx="scalesettle"] .section-dark { will-change: transform; }
html[data-tw-sectionfx="curtain"] .section-dark { position: relative; }
html[data-tw-sectionfx="fadeedge"] .section-dark::after {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 90px; pointer-events: none;
  background: linear-gradient(to bottom, rgba(11,31,20,0.9), transparent);
}
html[data-tw-sectionfx="fadeedge"] .section-dark { position: relative; }
html[data-tw-sectionfx="rule"] .section:not(.section-dark) + .section-dark, html[data-tw-sectionfx="rule"] .section-dark + .section:not(.section-dark) { position: relative; }
html[data-tw-sectionfx="rule"] .section:not(.section-dark) + .section-dark::before, html[data-tw-sectionfx="rule"] .section-dark + .section:not(.section-dark)::before {
  content: ""; position: absolute; top: 0; left: 0; height: 2px; width: 0; background: var(--c-gold); transition: width 1.1s cubic-bezier(0.22,0.61,0.36,1);
}
html[data-tw-sectionfx="rule"] .tw-rule-drawn::before { width: 100% !important; }

/* =========== Background movement =========== */
html[data-tw-bgmotion="swoosh"] .hero-swoosh { animation: tw-swoosh-drift 18s ease-in-out infinite alternate; }
@keyframes tw-swoosh-drift { from { transform: translate3d(0,0,0) rotate(0deg); } to { transform: translate3d(-2.5%, 2%, 0) rotate(-1.5deg); } }
html[data-tw-bgmotion="gradient"] .section-dark { background-size: 180% 180%, auto; animation: tw-grad 24s ease-in-out infinite alternate; }
@keyframes tw-grad { from { background-position: 0% 0%, 0 0; } to { background-position: 100% 60%, 0 0; } }
html[data-tw-bgmotion="dots"] .hero { position: relative; }
html[data-tw-bgmotion="dots"] .hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
  background-image: radial-gradient(rgba(201,162,39,0.35) 1px, transparent 1.4px);
  background-size: 34px 34px; animation: tw-dots 40s linear infinite;
}
@keyframes tw-dots { to { background-position: 340px -170px; } }
html[data-tw-bgmotion="grid"] .section-dark { position: relative; overflow: hidden; }
html[data-tw-bgmotion="grid"] .section-dark::after {
  content: ""; position: absolute; inset: -50%; pointer-events: none; opacity: 0.6;
  background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 56px 56px; animation: tw-gridpan 60s linear infinite;
}
@keyframes tw-gridpan { to { transform: translate3d(56px, 56px, 0); } }
html[data-tw-bgmotion="glow"] .hero { position: relative; }
html[data-tw-bgmotion="glow"] .hero::after {
  content: ""; position: absolute; width: 60vw; height: 60vw; left: 10%; top: -30%; pointer-events: none;
  background: radial-gradient(circle, rgba(201,162,39,0.13), transparent 62%);
  animation: tw-breathe 12s ease-in-out infinite alternate;
}
@keyframes tw-breathe { from { transform: scale(0.9) translateY(0); opacity: 0.6; } to { transform: scale(1.15) translateY(-4%); opacity: 1; } }

/* =========== Cursor details =========== */
.tw-cursor-dot {
  position: fixed; top: 0; left: 0; z-index: 9998; pointer-events: none;
  width: 10px; height: 10px; border-radius: 50%; background: var(--c-gold);
  transform: translate(-50%,-50%); mix-blend-mode: normal; opacity: 0;
  transition: opacity 0.3s ease, width 0.25s ease, height 0.25s ease, background-color 0.25s ease;
}
.tw-cursor-dot.tw-on { opacity: 1; }
.tw-cursor-dot.tw-big { width: 42px; height: 42px; background: rgba(201,162,39,0.28); }
.tw-cursor-ring {
  position: fixed; top: 0; left: 0; z-index: 9998; pointer-events: none;
  width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(201,162,39,0.7);
  transform: translate(-50%,-50%); opacity: 0; transition: opacity 0.3s ease, width 0.3s ease, height 0.3s ease;
}
.tw-cursor-ring.tw-on { opacity: 1; }
.tw-cursor-ring.tw-big { width: 56px; height: 56px; border-color: var(--c-gold); }
.tw-spotlight {
  position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity 0.4s ease;
  background: radial-gradient(420px circle at var(--tw-cx, 50%) var(--tw-cy, 50%), rgba(201,162,39,0.1), transparent 70%);
}
.tw-spotlight.tw-on { opacity: 1; }
html[data-tw-cursor="dot"] .section-dark, html[data-tw-cursor="ring"] .section-dark { cursor: none; }
html[data-tw-cursor="dot"] .section-dark a, html[data-tw-cursor="dot"] .section-dark button,
html[data-tw-cursor="ring"] .section-dark a, html[data-tw-cursor="ring"] .section-dark button { cursor: none; }

/* =========== Figures / demo interactions =========== */
html[data-tw-figurefx="bars"] .compare-card-figure { position: relative; }
html[data-tw-figurefx="bars"] .compare-card-cost .compare-card-figure::after,
html[data-tw-figurefx="bars"] .compare-card-relief .compare-card-figure::after {
  content: ""; display: block; height: 6px; border-radius: 3px; margin-top: 14px;
  width: 0; transition: width 1.3s cubic-bezier(0.22,0.61,0.36,1);
}
html[data-tw-figurefx="bars"] .compare-card-cost .compare-card-figure::after { background: #A3431F; }
html[data-tw-figurefx="bars"] .compare-card-relief .compare-card-figure::after { background: #1F6E5C; }
html[data-tw-figurefx="bars"] .tw-bars-on .compare-card-cost .compare-card-figure::after { width: 100%; }
html[data-tw-figurefx="bars"] .tw-bars-on .compare-card-relief .compare-card-figure::after { width: 24%; }
html[data-tw-figurefx="pulse"] .tw-pulsed { animation: tw-pulse 0.6s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes tw-pulse { 0% { transform: scale(1); } 40% { transform: scale(1.07); } 100% { transform: scale(1); } }
html[data-tw-figurefx="roll"] .compare-card-figure span[data-countup-target] { display: inline-block; }

html[data-tw-calcfx="live"] .loan-calc-result { transition: box-shadow 0.3s ease, transform 0.3s ease; }
html[data-tw-calcfx="live"] .loan-calc-result.tw-calc-active { box-shadow: 0 0 0 2px var(--c-gold), 0 12px 30px rgba(201,162,39,0.18); }
html[data-tw-calcfx="live"] .big-figure { transition: color 0.25s ease; }
html[data-tw-calcfx="live"] .tw-calc-active .big-figure { color: var(--c-gold-deep); }
html[data-tw-calcfx="tick"] .big-figure { display: inline-block; }
html[data-tw-calcfx="tick"] .tw-ticked { animation: tw-tick 0.35s ease-out; }
@keyframes tw-tick { from { transform: translateY(6px); opacity: 0.4; } to { transform: translateY(0); opacity: 1; } }
html[data-tw-calcfx] .loan-calc-field input[type="range"] { transition: filter 0.2s ease; }
html[data-tw-calcfx] .loan-calc-field input[type="range"]:active { filter: saturate(1.4); }

/* =========== Delight =========== */
.tw-progress { position: fixed; top: 0; left: 0; height: 3px; background: var(--c-gold); z-index: 9997; width: 0; pointer-events: none; }
html[data-tw-progress="side"] .tw-progress { top: 0; left: 0; width: 3px !important; height: 0; }
.tw-totop {
  position: fixed; left: 18px; bottom: 18px; z-index: 9997; width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(201,162,39,0.5); background: rgba(11,31,20,0.9); color: var(--c-gold);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  opacity: 0; transform: translateY(12px); pointer-events: none;
  transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.34,1.56,0.64,1), background-color 0.2s ease;
  font: 700 16px/1 system-ui, sans-serif;
}
.tw-totop.tw-on { opacity: 1; transform: translateY(0); pointer-events: auto; }
.tw-totop:hover { background: var(--c-dark-2); }

html[data-tw-faqfx="chevron"] details.faq-item summary::after { transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1); }
html[data-tw-faqfx="chevron"] details.faq-item[open] summary::after { content: "+"; transform: rotate(135deg); }
html[data-tw-faqfx="smooth"] details.faq-item p { animation: tw-faq-open 0.4s cubic-bezier(0.22,0.61,0.36,1); }
@keyframes tw-faq-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
html[data-tw-faqfx="row"] details.faq-item { transition: background-color 0.25s ease, padding-left 0.25s ease; }
html[data-tw-faqfx="row"] details.faq-item:hover { background: rgba(201,162,39,0.06); padding-left: 12px; }
html[data-tw-faqfx="row"] details.faq-item[open] { background: rgba(201,162,39,0.06); padding-left: 12px; }

html[data-tw-phonefx="pulse"] .mobile-call-btn, html[data-tw-phonefx="pulse"] .nav-cta { position: relative; }
html[data-tw-phonefx="pulse"] .mobile-call-btn::after, html[data-tw-phonefx="pulse"] .nav-cta::after {
  content: ""; position: absolute; inset: -3px; border-radius: inherit; border: 2px solid var(--c-gold);
  animation: tw-ring 2.6s ease-out infinite; pointer-events: none;
}
@keyframes tw-ring { 0% { opacity: 0.6; transform: scale(1); } 70%, 100% { opacity: 0; transform: scale(1.35); } }
html[data-tw-phonefx="shake"] .mobile-call-btn svg { animation: tw-shake 4s ease-in-out infinite; transform-origin: center; }
@keyframes tw-shake { 0%, 88%, 100% { transform: rotate(0); } 90% { transform: rotate(-12deg); } 92% { transform: rotate(12deg); } 94% { transform: rotate(-8deg); } 96% { transform: rotate(8deg); } }

html[data-tw-linkfx="draw"] .post-body a, html[data-tw-linkfx="draw"] .card p a, html[data-tw-linkfx="draw"] .footer-links a, html[data-tw-linkfx="draw"] .footer-contact a {
  position: relative; text-decoration: none;
}
html[data-tw-linkfx="draw"] .post-body a::after, html[data-tw-linkfx="draw"] .card p a::after, html[data-tw-linkfx="draw"] .footer-links a::after, html[data-tw-linkfx="draw"] .footer-contact a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1.5px; background: var(--c-gold);
  transform: scaleX(0); transform-origin: left; transition: transform 0.35s cubic-bezier(0.22,0.61,0.36,1);
}
html[data-tw-linkfx="draw"] .post-body a:hover::after, html[data-tw-linkfx="draw"] .card p a:hover::after, html[data-tw-linkfx="draw"] .footer-links a:hover::after, html[data-tw-linkfx="draw"] .footer-contact a:hover::after { transform: scaleX(1); }

html[data-tw-focusfx="gold"] a:focus-visible, html[data-tw-focusfx="gold"] button:focus-visible, html[data-tw-focusfx="gold"] input:focus-visible, html[data-tw-focusfx="gold"] select:focus-visible, html[data-tw-focusfx="gold"] textarea:focus-visible, html[data-tw-focusfx="gold"] summary:focus-visible {
  outline: 2px solid var(--c-gold); outline-offset: 3px; border-radius: 4px;
}
html[data-tw-focusfx="fieldglow"] .form-field input:focus, html[data-tw-focusfx="fieldglow"] .form-field select:focus, html[data-tw-focusfx="fieldglow"] .form-field textarea:focus {
  outline: none; border-color: var(--c-gold); box-shadow: 0 0 0 3px rgba(201,162,39,0.2);
}
html[data-tw-focusfx="fieldglow"] .form-field { transition: transform 0.2s ease; }
html[data-tw-focusfx="fieldglow"] .form-field:focus-within label { color: var(--c-gold-deep); }
html[data-tw-focusfx] .form-field label { transition: color 0.2s ease; }

/* reduced motion: opt everything decorative out */
@media (prefers-reduced-motion: reduce) {
  html[data-tw-bgmotion] .hero-swoosh, html[data-tw-bgmotion] .section-dark::after, html[data-tw-bgmotion] .hero::after { animation: none !important; }
  .tw-cursor-dot, .tw-cursor-ring, .tw-spotlight { display: none !important; }
  html[data-tw-phonefx] .mobile-call-btn::after, html[data-tw-phonefx] .nav-cta::after, html[data-tw-phonefx] .mobile-call-btn svg { animation: none !important; }
}
