/* Hallmark · site-wide footer: task router + verified contact close · tone: technical · anchor hue: safety-orange */
.whatsapp-float { position:fixed; z-index:20; right:clamp(1rem,2.5vw,2rem); bottom:clamp(1rem,3vw,2rem); display:inline-flex; align-items:center; gap:.6rem; min-height:3.25rem; padding:.55rem .9rem .55rem .65rem; border:2px solid var(--color-paper); border-radius:999px; background:#25d366; color:#082b18; box-shadow:0 10px 24px rgba(0,0,0,.22); font-weight:800; text-decoration:none; }
.whatsapp-float:hover { background:#35e47a; color:#082b18; transform:translateY(-2px); }
.whatsapp-float:focus-visible { outline:3px solid var(--color-focus); outline-offset:4px; }
.whatsapp-float__icon { display:grid; place-items:center; width:2rem; height:2rem; border-radius:50%; background:#082b18; color:#25d366; font-size:1.35rem; line-height:1; transform:rotate(-25deg); }
.whatsapp-float__label { white-space:nowrap; }
@media (max-width:37.5rem) { .whatsapp-float { right:.75rem; bottom:.75rem; min-height:3rem; padding:.45rem .65rem .45rem .5rem; } .whatsapp-float__label { font-size:.82rem; } }
@media (prefers-reduced-motion:reduce) { .whatsapp-float { transition:none; } .whatsapp-float:hover { transform:none; } }
html, body { overflow-x: clip; }
.site-footer { padding: var(--space-2xl) 0 calc(var(--space-lg) + 4rem); background: var(--color-navy-deep); color: var(--color-light-muted); }
.site-footer__wrap { display: block; width: min(var(--layout-max), calc(100% - var(--space-lg))); margin-inline: auto; }
.site-footer__intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: var(--space-xl); padding-bottom: var(--space-xl); border-bottom: var(--rule-thin) solid var(--color-rule-strong); }
.site-footer__brand img { width: auto; max-width: var(--logo-width); max-height: var(--logo-height); padding: var(--space-2xs); background: var(--color-paper); border-radius: var(--radius-control); }
.site-footer__brand p { max-width: 58ch; margin: var(--space-md) 0 0; }
.site-footer__prompt b { display:block; color:var(--color-paper); font-family:var(--font-display); font-size:var(--text-lg); }
.site-footer__prompt p { max-width: 48ch; margin: var(--space-sm) 0 0; }
.site-footer__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-lg); padding-block:var(--space-xl); border-bottom:var(--rule-thin) solid var(--color-rule-strong); }
.site-footer__group { min-width:0; }
.site-footer__group > b, .site-footer__contact > b { display:block; min-height:2.5em; color:var(--color-paper); }
.site-footer__group a, .site-footer__contact a { display:block; width:fit-content; margin-bottom:var(--space-xs); color:var(--color-light-muted); text-decoration-color:transparent; text-underline-offset:var(--space-3xs); }
.site-footer__group a:hover, .site-footer__contact a:hover { color:var(--color-paper); text-decoration-color:currentColor; }
.site-footer__group a:active, .site-footer__contact a:active { color:var(--color-accent); }
.site-footer__group a:focus-visible, .site-footer__contact a:focus-visible { outline:var(--rule-focus) solid var(--color-focus); outline-offset:var(--space-3xs); }
.site-footer__all { margin-top:var(--space-sm); color:var(--color-paper) !important; font-weight:700; }
.site-footer__close { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:var(--space-xl); align-items:start; padding-block:var(--space-xl); }
.site-footer__close h2 { max-width:20ch; margin:0 0 var(--space-sm); color:var(--color-paper); font-family:var(--font-display); font-size:var(--text-3xl); line-height:1.05; overflow-wrap:anywhere; }
.site-footer__close p { max-width:58ch; margin:0 0 var(--space-md); }
.site-footer__actions { display:flex; flex-wrap:wrap; gap:var(--space-sm); align-items:center; }
.site-footer__actions .button { display:inline-flex; min-height:var(--control-height); align-items:center; justify-content:center; margin:0; padding:var(--space-xs) var(--space-md); border:var(--rule-thin) solid var(--color-accent); background:var(--color-accent); color:var(--color-accent-ink); font-weight:800; line-height:1; text-decoration:none; white-space:nowrap; }
@media (hover:hover) { .site-footer__actions .button:hover { border-color:var(--color-accent-dark); background:var(--color-accent-dark); color:var(--color-paper); transform:translateY(-1px); } }
.site-footer__actions .button:focus-visible { outline:var(--rule-focus) solid var(--color-focus); outline-offset:var(--space-3xs); }
.site-footer__actions .button:active { transform:translateY(1px); }
.site-footer__actions .button[aria-disabled="true"], .site-footer__actions .button[data-state="loading"] { cursor:not-allowed; opacity:.55; pointer-events:none; }
.site-footer__actions .button[data-state="error"], .site-footer__actions .button[data-state="success"] { border-color:var(--color-paper); }
.site-footer__actions .button.secondary { border-color:var(--color-light-muted); background:transparent; color:var(--color-paper); white-space:nowrap; }
@media (hover:hover) { .site-footer__actions .button.secondary:hover { border-color:var(--color-paper); background:var(--color-paper); color:var(--color-navy-deep); transform:translateY(-1px); } }
.site-footer__actions .button.secondary:focus-visible { outline:var(--rule-focus) solid var(--color-focus); outline-offset:var(--space-3xs); }
.site-footer__actions .button.secondary:active { border-color:var(--color-paper-2); background:var(--color-paper-2); color:var(--color-navy-deep); transform:translateY(1px); }
.site-footer__actions .button.secondary[aria-disabled="true"], .site-footer__actions .button.secondary[data-state="loading"] { cursor:not-allowed; opacity:.55; pointer-events:none; }
.site-footer__actions .button.secondary[data-state="error"] { border-color:var(--color-accent); color:var(--color-paper); }
.site-footer__actions .button.secondary[data-state="success"] { border-color:var(--color-paper); background:var(--color-paper); color:var(--color-navy-deep); }
.site-footer__contact-line { margin:0 0 var(--space-xs); }
.site-footer__contact-line a { display:inline; margin:0; color:var(--color-paper); }
.site-footer__social { margin-top:var(--space-md); }
.site-footer__social-label { display:block; margin-bottom:var(--space-xs); color:var(--color-paper); font-size:var(--text-xs); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.site-footer__social-links { display:flex; flex-wrap:wrap; gap:var(--space-xs); }
.site-footer__social-links a { display:inline-flex; width:2.75rem; height:2.75rem; margin:0; align-items:center; justify-content:center; border:var(--rule-thin) solid rgba(255,255,255,.28); border-radius:50%; color:var(--color-paper); text-decoration:none; }
.site-footer__social-links svg { width:1.2rem; height:1.2rem; fill:currentColor; }
@media (hover:hover) { .site-footer__social-links a:hover { border-color:var(--color-accent); background:var(--color-accent); color:var(--color-accent-ink); transform:translateY(-1px); } }
.site-footer__social-links a:focus-visible { outline:var(--rule-focus) solid var(--color-focus); outline-offset:var(--space-3xs); }
.site-footer__social-links a:active { transform:translateY(1px); }
.site-footer__address { max-width:42ch; margin:var(--space-md) 0 0; color:var(--color-light-muted); font-style:normal; line-height:1.55; }
.site-footer__address b { display:block; margin-bottom:var(--space-2xs); color:var(--color-paper); }
.site-footer__codes { display:flex; flex-wrap:wrap; gap:var(--space-lg); margin-top:var(--space-md); }
.site-footer__code { margin:0; }
.site-footer__code > a, .site-footer__code > img { display:block; width:160px; height:160px; min-width:160px; min-height:160px; max-width:160px; max-height:160px; aspect-ratio:1 / 1; object-fit:contain; object-position:center; background:#fff; }
.site-footer__code > a { margin:0; }
.site-footer__code > a img { display:block; width:160px; height:160px; min-width:160px; min-height:160px; max-width:160px; max-height:160px; aspect-ratio:1 / 1; object-fit:contain; object-position:center; background:#fff; }
.site-footer__code > a:focus-visible { outline:var(--rule-focus) solid var(--color-focus); outline-offset:var(--space-3xs); }
.site-footer__code figcaption { margin-top:var(--space-xs); color:var(--color-paper); font-weight:700; }
.site-footer__code figcaption span { display:block; margin-top:var(--space-3xs); color:var(--color-light-muted); font-size:var(--text-xs); font-weight:400; }
.site-footer__legal { display:flex; justify-content:space-between; gap:var(--space-md); flex-wrap:wrap; padding-top:var(--space-md); border-top:1px solid rgba(255,255,255,.16); font-size:.86rem; }
.site-footer__identity { display:flex; flex-wrap:wrap; gap:var(--space-xs) var(--space-md); }
.site-footer__heritage { color:var(--color-paper); font-weight:700; white-space:nowrap; }
.site-footer__legal-links { display:flex; gap:var(--space-md); flex-wrap:wrap; }
.site-footer__legal a { display:inline; margin:0; color:var(--color-light-muted); }
@media (min-width:48rem) { .site-footer__wrap { width:min(var(--layout-max),calc(100% - var(--space-xl))); } }
@media (max-width:64rem) { .site-footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:48rem) { .site-footer__intro,.site-footer__close { grid-template-columns:minmax(0,1fr); } .site-footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:37.5rem) { .site-footer__grid { grid-template-columns:minmax(0,1fr); } .site-footer__actions { display:grid; } .site-footer__actions .button { width:100%; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior:auto !important; transition-duration:var(--dur-reduced) !important; animation-duration:var(--dur-reduced) !important; } }
