/* MOVILITO ERFAN — interfaz pública */
@font-face {
  font-family: "Space Grotesk";
  src: url("/assets/fonts/space-grotesk.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Manrope";
  src: url("/assets/fonts/manrope.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --ink: #071b20;
  --ink-deep: #041217;
  --ink-soft: #0d2930;
  --surface: rgba(13, 42, 48, .66);
  --surface-soft: rgba(24, 59, 64, .48);
  --surface-light: rgba(214, 255, 244, .08);
  --line: rgba(210, 247, 240, .17);
  --line-strong: rgba(213, 255, 244, .34);
  --text: #f3faf8;
  --muted: #b7cec9;
  --muted-dark: #8fa9a4;
  --mint: #8ce7c2;
  --mint-light: #c3f7df;
  --amber: #e8b36b;
  --lilac: #b3a5e6;
  --heading: "Space Grotesk", "Arial Narrow", sans-serif;
  --body: "Manrope", Arial, sans-serif;
  --radius: 1.25rem;
  --shadow: 0 28px 80px rgba(0, 0, 0, .24);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6.6rem; }
body {
  min-width: 320px;
  margin: 0;
  overflow-x: hidden;
  color: var(--text);
  background: var(--ink-deep);
  font: 400 1rem/1.6 var(--body);
  text-rendering: optimizeLegibility;
}
body::before {
  position: fixed;
  z-index: -4;
  inset: 0;
  content: "";
  background:
    radial-gradient(circle at 79% 3%, rgba(108, 151, 191, .14), transparent 27rem),
    radial-gradient(circle at 2% 49%, rgba(17, 116, 109, .16), transparent 31rem),
    linear-gradient(125deg, #061a20 0%, #06191d 48%, #082328 100%);
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { color: inherit; font: inherit; }
button, a, select, textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
img { display: block; max-width: 100%; }
address { font-style: normal; }
[hidden] { display: none !important; }

.ambient {
  position: fixed;
  z-index: -3;
  inset: -22vmax;
  overflow: hidden;
  pointer-events: none;
}
.ambient::before,
.ambient::after {
  position: absolute;
  content: "";
  width: 67vmax;
  height: 37vmax;
  border-radius: 49% 51% 63% 37% / 47% 34% 66% 53%;
  filter: blur(64px);
  opacity: .42;
}
.ambient::before {
  top: 8%;
  left: 9%;
  background: radial-gradient(ellipse at center, rgba(46, 202, 167, .45), transparent 64%);
  animation: drift-one 20s ease-in-out infinite alternate;
}
.ambient::after {
  right: 5%;
  bottom: 4%;
  background: radial-gradient(ellipse at center, rgba(201, 157, 240, .25), transparent 59%), radial-gradient(ellipse at 18% 70%, rgba(242, 176, 95, .24), transparent 42%);
  animation: drift-two 26s ease-in-out infinite alternate;
}

.wrapper { width: min(100% - 3rem, 74rem); margin-inline: auto; }
.skip-link {
  position: fixed;
  z-index: 50;
  top: -5rem;
  left: 1rem;
  padding: .7rem 1rem;
  border-radius: .5rem;
  color: var(--ink-deep);
  background: var(--mint-light);
  transition: top .2s ease;
}
.skip-link:focus { top: 1rem; }

.site-header {
  position: sticky;
  z-index: 20;
  top: .9rem;
  display: flex;
  align-items: center;
  min-height: 4.65rem;
  margin-top: .9rem;
  padding: .55rem .62rem .55rem .9rem;
  border: 1px solid rgba(224, 255, 247, .17);
  border-radius: 1rem;
  background: rgba(6, 25, 30, .69);
  box-shadow: 0 14px 42px rgba(0, 0, 0, .18);
  backdrop-filter: blur(20px) saturate(130%);
}
.brand { display: inline-flex; align-items: center; min-height: 2.75rem; gap: .7rem; flex-shrink: 0; }
.brand-mark {
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  place-items: center;
  border: 1px solid rgba(155, 239, 210, .48);
  border-radius: .8rem;
  color: var(--mint);
  background: linear-gradient(140deg, rgba(126, 230, 195, .21), rgba(45, 81, 91, .22));
}
.brand-mark svg { width: 1.38rem; height: 1.38rem; }
.brand-text { display: grid; line-height: .94; letter-spacing: -.065em; }
.brand-text strong { font: 400 1.12rem/1 var(--heading); }
.brand-text span { margin-top: .18rem; color: var(--amber); font: 400 .59rem/1 var(--body); letter-spacing: .25em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 1.55rem); margin-left: auto; }
.desktop-nav a,
.footer-links a {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  color: var(--muted);
  font-size: .79rem;
  font-weight: 700;
}
.desktop-nav a:hover,
.footer-links a:hover { color: var(--mint-light); }
.header-actions { display: flex; align-items: center; gap: .55rem; margin-left: 1.25rem; }
.header-whatsapp { display: inline-flex; align-items: center; min-height: 2.75rem; gap: .38rem; color: var(--muted); font-size: .76rem; font-weight: 700; }
.header-whatsapp:hover { color: var(--mint-light); }
.header-whatsapp svg { width: 1rem; height: 1rem; color: var(--mint); }
.menu-toggle,
.mobile-menu { display: none; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 2.9rem;
  padding: .72rem 1.08rem;
  border: 1px solid transparent;
  border-radius: .76rem;
  font-size: .8rem;
  font-weight: 800;
  line-height: 1.15;
  transition: transform .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button svg { width: 1.06rem; height: 1.06rem; }
.button-primary { color: #08291f; background: var(--mint); box-shadow: 0 10px 26px rgba(79, 221, 175, .19); }
.button-primary:hover { background: var(--mint-light); box-shadow: 0 13px 30px rgba(79, 221, 175, .29); }
.button-secondary { border-color: var(--line-strong); color: var(--text); background: rgba(230, 255, 248, .07); }
.button-secondary:hover { border-color: rgba(160, 242, 215, .68); background: rgba(151, 237, 207, .12); }
.button-small { min-height: 2.7rem; padding-inline: .85rem; font-size: .72rem; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 1.05rem;
  color: var(--mint);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .145em;
  line-height: 1.25;
  text-transform: uppercase;
}
.status-dot { width: .48rem; height: .48rem; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 .22rem rgba(140, 231, 194, .13), 0 0 13px rgba(140, 231, 194, .8); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--heading); }

.hero {
  display: grid;
  grid-template-columns: minmax(0, .87fr) minmax(31rem, 1.13fr);
  align-items: center;
  gap: clamp(2.3rem, 5vw, 5.5rem);
  min-height: 42rem;
  padding-block: 5.5rem 4rem;
}
.hero-copy { position: relative; z-index: 1; }
h1 {
  max-width: 9.8ch;
  margin-bottom: 1.35rem;
  font-size: clamp(3.5rem, 6.3vw, 5.6rem);
  font-weight: 600;
  line-height: .94;
  letter-spacing: -.075em;
  text-wrap: balance;
}
h1 span { color: var(--mint); }
.hero-intro { max-width: 31rem; margin-bottom: 2rem; color: var(--muted); font-size: 1.08rem; line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero-trust { display: flex; align-items: center; gap: .72rem; margin-top: 2.35rem; color: var(--muted); font-size: .85rem; }
.google-g { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--text); background: rgba(255, 255, 255, .07); font-weight: 800; }
.rating { display: grid; gap: .15rem; line-height: 1.25; }
.rating strong { color: var(--text); }
.mini-stars { display: inline-flex; gap: .14rem; color: var(--amber); }
.mini-stars svg { width: .76rem; height: .76rem; fill: currentColor; stroke-width: 1; }
.rating-meta { color: var(--muted); }
.rating-date { max-width: 27rem; margin: .65rem 0 0; color: var(--muted-dark); font-size: .73rem; }
.rating-date a,
.small-note a,
.faq-item p a,
.map-loading a,
.legal-content p a,
.quote-footer a { color: var(--mint-light); text-decoration: underline; text-underline-offset: .22em; }

.hero-stage { position: relative; isolation: isolate; min-height: 31.5rem; }
.hero-stage::before {
  position: absolute;
  z-index: -2;
  inset: 1rem 0 1rem 2.5rem;
  content: "";
  border: 1px solid rgba(224, 255, 249, .19);
  border-radius: 2.1rem;
  background: linear-gradient(135deg, rgba(85, 211, 178, .12), rgba(14, 48, 59, .5) 58%, rgba(180, 158, 230, .12));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .11), var(--shadow);
  transform: rotate(2deg);
}
.reference-art { position: absolute; z-index: -1; inset: 1.5rem -.6rem 1.7rem 1.7rem; width: calc(100% - 1.1rem); height: calc(100% - 3.2rem); border-radius: 1.8rem; object-fit: cover; opacity: .91; box-shadow: 0 26px 50px rgba(0, 0, 0, .24); }
.hero-stage-wash { position: absolute; z-index: 0; inset: 1.5rem -.6rem 1.7rem 1.7rem; border-radius: 1.8rem; background: linear-gradient(137deg, rgba(3, 20, 26, .22) 8%, transparent 47%, rgba(6, 27, 31, .25)); pointer-events: none; }
.stage-panel {
  position: absolute;
  z-index: 1;
  top: 4.5rem;
  left: 0;
  width: min(72%, 19.5rem);
  padding: 1.55rem;
  border: 1px solid rgba(224, 255, 248, .29);
  border-radius: 1.2rem;
  background: linear-gradient(145deg, rgba(21, 67, 71, .82), rgba(9, 31, 39, .62));
  box-shadow: 0 18px 42px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .11);
  backdrop-filter: blur(16px) saturate(125%);
  transform: rotate(-4deg);
}
.stage-icon { display: grid; width: 3.15rem; height: 3.15rem; place-items: center; margin-bottom: 2.3rem; border: 1px solid rgba(180, 255, 227, .27); border-radius: .92rem; color: var(--mint); background: rgba(141, 235, 201, .12); }
.stage-icon svg { width: 1.55rem; height: 1.55rem; }
.stage-kicker { margin-bottom: .45rem; color: var(--mint); font-size: .63rem; font-weight: 800; letter-spacing: .135em; text-transform: uppercase; }
.stage-title { margin: 0; font: 400 clamp(1.5rem, 2.5vw, 2rem)/1.12 var(--heading); letter-spacing: -.055em; }
.stage-rule { display: flex; gap: .3rem; margin-top: 1.5rem; }
.stage-rule span { width: 1.7rem; height: .22rem; border-radius: 4rem; background: var(--mint); }
.stage-rule span:nth-child(2) { opacity: .55; }
.stage-rule span:nth-child(3) { opacity: .25; }
.stage-location {
  position: absolute;
  z-index: 1;
  right: -1.2rem;
  bottom: 3.3rem;
  display: flex;
  align-items: center;
  gap: .7rem;
  max-width: 16.7rem;
  padding: .84rem .92rem;
  border: 1px solid rgba(255, 237, 200, .34);
  border-radius: .95rem;
  color: var(--amber);
  background: rgba(45, 41, 31, .72);
  box-shadow: 0 15px 35px rgba(0, 0, 0, .23);
  backdrop-filter: blur(15px) saturate(125%);
}
.stage-location > svg { flex: 0 0 auto; width: 1.18rem; height: 1.18rem; }
.stage-location span { display: grid; gap: .1rem; color: var(--text); }
.stage-location small { color: var(--amber); font-size: .57rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.stage-location strong { font-size: .72rem; line-height: 1.3; }
.stage-location .stage-location-arrow { width: .85rem; height: .85rem; margin-left: .1rem; }

.service-strip { border-block: 1px solid rgba(213, 250, 241, .12); background: rgba(2, 17, 22, .22); }
.strip-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.25rem; color: #d0e7e1; }
.strip-inner span { display: inline-flex; align-items: center; gap: .48rem; font-size: .75rem; font-weight: 700; }
.strip-inner svg { width: 1.1rem; height: 1.1rem; color: var(--mint); }

.section { padding-block: 7rem; }
.section-heading { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(16rem, .78fr); gap: 3rem; align-items: end; margin-bottom: 2.75rem; }
.section-heading h2,
.quote-intro h2,
.cta-panel h2 { max-width: 14ch; margin: 0; font-size: clamp(2.35rem, 4.3vw, 3.8rem); font-weight: 600; line-height: .99; letter-spacing: -.07em; text-wrap: balance; }
.section-heading > p { max-width: 30rem; margin: 0 0 .12rem; color: var(--muted); font-size: 1rem; }
.glass-card { border: 1px solid var(--line); background: linear-gradient(135deg, rgba(37, 80, 84, .34), rgba(8, 31, 38, .65)); box-shadow: inset 0 1px 0 rgba(244, 255, 252, .08), var(--shadow); backdrop-filter: blur(18px) saturate(125%); }
.services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; }
.service-card { display: flex; min-height: 20rem; flex-direction: column; padding: 1.35rem; border-radius: var(--radius); transition: transform .2s ease, border-color .2s ease, background-color .2s ease; }
.service-card:hover { border-color: rgba(162, 241, 215, .48); background: linear-gradient(135deg, rgba(52, 108, 107, .46), rgba(8, 32, 39, .68)); transform: translateY(-4px); }
.service-number { color: rgba(205, 241, 230, .49); font-size: .66rem; font-weight: 800; letter-spacing: .14em; }
.service-icon { display: grid; width: 3.05rem; height: 3.05rem; place-items: center; margin: 2rem 0 1.35rem; border: 1px solid rgba(161, 240, 214, .2); border-radius: .87rem; color: var(--mint); background: rgba(137, 231, 194, .1); }
.service-icon svg { width: 1.36rem; height: 1.36rem; }
.service-card h3 { margin-bottom: .64rem; font-size: 1.26rem; font-weight: 600; line-height: 1.1; letter-spacing: -.045em; }
.service-card p { margin-bottom: 1.25rem; color: var(--muted); font-size: .95rem; line-height: 1.56; }
.card-action { display: flex; align-items: center; justify-content: space-between; gap: .45rem; margin-top: auto; color: var(--amber); font-size: .75rem; font-weight: 800; }
.card-action svg { width: 1rem; height: 1rem; }
.section-note { max-width: 47rem; margin: 1.35rem 0 0; color: var(--muted-dark); font-size: .85rem; }

.care-section { padding-bottom: 6.5rem; }
.care-panel { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(2rem, 6vw, 5rem); padding: clamp(1.8rem, 5vw, 4.2rem); border-radius: 1.8rem; }
.care-copy h2 { max-width: 11ch; margin-bottom: 1.25rem; font-size: clamp(2.1rem, 3.7vw, 3.2rem); font-weight: 600; line-height: 1.03; letter-spacing: -.064em; }
.care-copy h2 span { color: var(--mint); }
.care-copy > p { max-width: 26rem; margin-bottom: 1.3rem; color: var(--muted); }
.text-link { display: inline-flex; align-items: center; gap: .34rem; min-height: 2.75rem; color: var(--mint-light); font-size: .82rem; font-weight: 800; text-decoration: underline; text-underline-offset: .3em; }
.text-link svg { width: .95rem; height: .95rem; }
.care-steps { display: grid; align-content: center; gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.care-steps li { display: grid; grid-template-columns: 2.35rem 1fr; gap: 1rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.care-steps li:last-child { padding-bottom: 0; border-bottom: 0; }
.step-index { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid rgba(151, 232, 204, .4); border-radius: 50%; color: var(--mint); font-size: .7rem; font-weight: 800; }
.care-steps h3 { margin-bottom: .18rem; font-size: 1.05rem; font-weight: 600; letter-spacing: -.035em; }
.care-steps p { margin: 0; color: var(--muted); font-size: .93rem; }

.quote-section { display: grid; grid-template-columns: minmax(0, .78fr) minmax(31rem, 1.22fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; padding: clamp(2rem, 5vw, 4.35rem); border: 1px solid rgba(196, 247, 229, .25); border-radius: 1.9rem; background: linear-gradient(120deg, rgba(29, 94, 86, .58), rgba(10, 39, 46, .8) 60%, rgba(109, 91, 159, .2)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), var(--shadow); }
.quote-intro h2 { margin-bottom: 1.1rem; }
.quote-intro > p:not(.eyebrow) { max-width: 29rem; margin-bottom: 1.5rem; color: #d0e3de; }
.quote-callout { display: flex; align-items: flex-start; gap: .55rem; max-width: 24rem; padding: .82rem .9rem; border-left: 2px solid var(--amber); color: var(--muted); font-size: .86rem; line-height: 1.45; background: rgba(7, 25, 30, .18); }
.quote-callout svg { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; color: var(--amber); }
.quote-form-panel { padding: clamp(1.15rem, 3vw, 1.65rem); border: 1px solid rgba(230, 255, 247, .2); border-radius: 1.25rem; background: rgba(4, 24, 30, .48); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter: blur(15px); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.form-field { display: grid; gap: .44rem; }
.form-field-wide { grid-column: 1 / -1; }
.form-field label { color: #d8ece7; font-size: .82rem; font-weight: 800; }
.form-field label > span:not(.optional) { color: var(--amber); }
.optional { color: var(--muted-dark); font-weight: 400; }
.form-field select,
.form-field textarea { width: 100%; border: 1px solid rgba(220, 254, 246, .2); border-radius: .7rem; color: var(--text); background: rgba(237, 255, 250, .075); font-size: .93rem; outline: none; transition: border-color .18s ease, background-color .18s ease; }
.form-field select { min-height: 3.2rem; padding: 0 .9rem; }
.form-field textarea { min-height: 7.5rem; padding: .78rem .9rem; resize: vertical; }
.form-field select:invalid { color: var(--muted-dark); }
.form-field option { color: #102424; background: #f4fbf8; }
.form-field textarea::placeholder { color: #9ab2ad; opacity: 1; }
.form-field select:hover,
.form-field textarea:hover { border-color: rgba(189, 247, 224, .42); }
.form-field select:focus,
.form-field textarea:focus { border-color: var(--mint); background: rgba(184, 251, 224, .1); }
.field-hint { color: var(--muted-dark); font-size: .72rem; }
.quote-submit-row { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin-top: 1.15rem; }
.quote-fallback { margin: 0; }
#quote-feedback { min-height: 1.4em; margin: .8rem 0 0; color: var(--mint-light); font-size: .84rem; }
.quote-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--line); color: var(--muted-dark); font-size: .75rem; }
.quote-footer p { margin: 0; }

.store-section { padding-bottom: 6.5rem; }
.location-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(17rem, .9fr); gap: .9rem; }
.store-card,
.hours-card { min-height: 16rem; padding: clamp(1.45rem, 3.5vw, 2.15rem); border-radius: var(--radius); }
.store-card { grid-column: 2; grid-row: 1; }
.hours-card { grid-column: 2; grid-row: 2; }
.store-card .eyebrow svg { width: 1rem; height: 1rem; }
.store-card h3,
.hours-card h3 { margin-bottom: 1rem; font-size: 1.37rem; font-weight: 600; letter-spacing: -.048em; }
.store-card address { color: var(--muted); font-size: .95rem; }
.store-phone { display: inline-flex; align-items: center; gap: .75rem; margin-top: 1rem; color: var(--mint); font: 600 1.1rem/1.2 var(--heading); letter-spacing: -.025em; }
.store-phone svg { width: 1.1rem; height: 1.1rem; }
.store-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin-top: 1.4rem; }
.hours-card h3 { display: flex; align-items: center; gap: .6rem; }
.hours-card h3 svg { width: 1.17rem; height: 1.17rem; color: var(--mint); }
.hours-list { display: grid; gap: .65rem; }
.hours-row { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .62rem; border-bottom: 1px solid rgba(211, 249, 241, .12); color: var(--muted); font-size: .88rem; }
.hours-row span:last-child { color: var(--text); font-weight: 700; text-align: right; }
.small-note { margin: 1rem 0 0; color: var(--muted-dark); font-size: .74rem; }
.map-card { position: relative; grid-column: 1; grid-row: 1 / span 2; min-height: 33rem; overflow: hidden; border-radius: var(--radius); }
.map-placeholder { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; padding: 2rem; text-align: center; background-color: #0a2b31; background-image: linear-gradient(30deg, transparent 46%, rgba(170,255,224,.07) 47%, rgba(170,255,224,.07) 52%, transparent 53%), linear-gradient(132deg, transparent 42%, rgba(241,188,114,.08) 43%, rgba(241,188,114,.08) 48%, transparent 49%); background-size: 180px 115px, 150px 130px; }
.map-placeholder::before { position: absolute; inset: 14%; content: ""; border: 1px solid rgba(145,245,198,.12); border-radius: 48% 52% 49% 51%; transform: rotate(-12deg); }
.map-pin { position: relative; display: grid; width: 3.05rem; height: 3.05rem; place-items: center; margin-bottom: .8rem; border-radius: 50% 50% 50% 0; color: var(--ink-deep); background: var(--amber); transform: rotate(-45deg); box-shadow: 0 10px 28px rgba(0,0,0,.25); }
.map-pin svg { width: 1.32rem; height: 1.32rem; transform: rotate(45deg); }
.map-placeholder .eyebrow { position: relative; margin-bottom: .5rem; }
.map-placeholder h3 { position: relative; margin-bottom: .32rem; font-size: 1.35rem; letter-spacing: -.048em; }
.map-placeholder > p:not(.eyebrow) { position: relative; max-width: 25rem; margin-bottom: 1.15rem; color: var(--muted); font-size: .9rem; }
.map-placeholder button { position: relative; }
.map-placeholder .text-link { position: relative; margin-top: .55rem; font-size: .74rem; }
.map-card iframe { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; border: 0; }
.map-loading { position: absolute; z-index: 3; right: 1rem; bottom: 1rem; left: 1rem; margin: 0; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: .55rem; color: var(--text); background: #0c3033; font-size: .75rem; text-align: center; }

.faq-section { padding: clamp(1.7rem, 5vw, 4rem); border: 1px solid var(--line); border-radius: 1.8rem; background: rgba(7, 30, 36, .44); box-shadow: inset 0 1px 0 rgba(255,255,255,.05); backdrop-filter: blur(16px); }
.faq-section .section-heading { margin-bottom: 1.85rem; }
.faq-list { border-top: 1px solid rgba(211, 249, 241, .14); }
.faq-item { border-bottom: 1px solid rgba(211, 249, 241, .14); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.4rem; padding: .85rem 0; cursor: pointer; font: 600 1.04rem/1.35 var(--heading); letter-spacing: -.026em; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary svg { flex: 0 0 auto; width: 1.06rem; height: 1.06rem; color: var(--mint); transition: transform .18s ease; }
.faq-item[open] summary svg { transform: rotate(45deg); }
.faq-item p { max-width: 47rem; margin: -.1rem 2rem 1.25rem 0; color: var(--muted); font-size: .94rem; }

.cta-section { padding-block: 7rem; }
.cta-panel { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 5vw, 4.3rem); border: 1px solid rgba(178, 241, 217, .26); border-radius: 1.8rem; background: linear-gradient(115deg, rgba(39, 112, 104, .56), rgba(9, 41, 48, .79) 61%, rgba(125, 96, 178, .25)); box-shadow: inset 0 1px 0 rgba(255,255,255,.1), var(--shadow); }
.cta-panel h2 { max-width: 15ch; margin-bottom: .78rem; }
.cta-panel p:not(.eyebrow) { max-width: 32rem; margin: 0; color: #d0e7e1; }
.cta-panel .button { flex: 0 0 auto; }

.footer { padding-bottom: 2rem; }
.footer-main { display: flex; align-items: center; gap: 2rem; padding: 1.75rem 0; border-top: 1px solid rgba(211,249,241,.16); }
.footer-main > p { max-width: 25rem; margin: 0; color: var(--muted); font-size: .78rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: 1rem; margin-left: auto; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 3.7rem; color: var(--muted-dark); font-size: .69rem; }
.footer-bottom p { margin: 0; }
.legal-toggle { min-height: 2.75rem; padding: 0; border: 0; color: var(--muted); background: transparent; font-size: .72rem; text-align: right; text-decoration: underline; text-underline-offset: .22em; }

.legal-modal { width: min(100% - 2rem, 40rem); max-height: min(80vh, 44rem); padding: 0; border: 1px solid var(--line-strong); border-radius: 1.2rem; color: var(--text); background: #0a2930; box-shadow: var(--shadow); overscroll-behavior: contain; }
.legal-modal::backdrop { background: rgba(0,0,0,.67); backdrop-filter: blur(5px); }
.modal-close { float: right; width: 2.75rem; height: 2.75rem; margin: .9rem; border: 1px solid var(--line); border-radius: .65rem; color: var(--text); background: rgba(255,255,255,.05); font-size: 1.4rem; }
.legal-content { padding: 2.4rem; }
.legal-content h2 { margin-bottom: 1.3rem; font: 600 2rem/1 var(--heading); letter-spacing: -.055em; }
.legal-content h3 { margin: 1.55rem 0 .5rem; font-size: 1.02rem; }
.legal-content p { color: var(--muted); font-size: .89rem; }

.floating-whatsapp { position: fixed; z-index: 15; right: max(1.35rem, calc((100vw - 74rem) / 2)); bottom: 1.35rem; display: inline-flex; align-items: center; gap: .52rem; min-height: 2.85rem; padding: .68rem .95rem; border: 1px solid rgba(205,255,235,.31); border-radius: 99px; color: #06291f; background: var(--mint); box-shadow: 0 12px 32px rgba(0,0,0,.3); font-size: .75rem; font-weight: 800; transition: transform .2s ease, box-shadow .2s ease; }
.floating-whatsapp:hover { box-shadow: 0 15px 36px rgba(0,0,0,.35); transform: translateY(-3px); }
.floating-whatsapp svg { width: 1.2rem; height: 1.2rem; }

:focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; }
@keyframes drift-one { from { transform: translate3d(-3%, -2%, 0) scale(.94) rotate(-9deg); } to { transform: translate3d(5%, 4%, 0) scale(1.06) rotate(4deg); } }
@keyframes drift-two { from { transform: translate3d(4%, 3%, 0) scale(.95) rotate(14deg); } to { transform: translate3d(-4%, -3%, 0) scale(1.06) rotate(-5deg); } }

@media (max-width: 1000px) {
  .desktop-nav { gap: .85rem; }
  .header-actions { margin-left: .9rem; }
  .header-whatsapp span { display: none; }
  .hero { grid-template-columns: minmax(0, .92fr) minmax(25rem, 1.08fr); gap: 2.3rem; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .service-card { min-height: 17rem; }
}

@media (max-width: 820px) {
  .desktop-nav,
  .header-actions { display: none; }
  .menu-toggle { display: grid; width: 2.85rem; height: 2.85rem; margin-left: auto; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: .75rem; background: rgba(255,255,255,.05); }
  .menu-toggle svg { width: 1.3rem; height: 1.3rem; }
  .mobile-menu { position: fixed; z-index: 19; top: 5.82rem; right: max(1.5rem, calc((100vw - 74rem) / 2)); left: max(1.5rem, calc((100vw - 74rem) / 2)); grid-template-columns: 1fr 1fr; gap: .35rem; padding: .55rem; border: 1px solid var(--line); border-radius: .9rem; background: rgba(6,25,30,.96); box-shadow: var(--shadow); backdrop-filter: blur(20px); }
  .mobile-menu:not([hidden]) { display: grid; }
  .mobile-menu a { display: flex; align-items: center; min-height: 2.75rem; padding: .65rem .72rem; border-radius: .55rem; color: var(--muted); font-size: .8rem; font-weight: 700; }
  .mobile-menu a:hover { color: var(--mint-light); background: rgba(145,245,198,.1); }
  .hero { grid-template-columns: 1fr; min-height: 0; padding-top: 4.5rem; }
  .hero-copy { max-width: 41rem; }
  .hero-stage { width: min(100%, 39rem); margin-inline: auto; }
  .section-heading { grid-template-columns: 1fr; gap: 1rem; }
  .quote-section { grid-template-columns: 1fr; gap: 2rem; }
  .quote-intro { max-width: 39rem; }
  .location-layout { grid-template-columns: 1fr 1fr; }
  .map-card { grid-column: 1 / -1; grid-row: 3; min-height: 23rem; }
  .store-card { grid-column: 1; grid-row: 1; }
  .hours-card { grid-column: 2; grid-row: 1; }
}

@media (max-width: 580px) {
  .wrapper { width: min(100% - 2rem, 74rem); }
  .site-header { top: .5rem; min-height: 4.35rem; margin-top: .5rem; padding-left: .72rem; }
  .brand-mark { width: 2.35rem; height: 2.35rem; }
  .brand-text strong { font-size: 1rem; }
  .hero { gap: 1.5rem; padding-block: 3.8rem 3rem; }
  h1 { font-size: clamp(3.25rem, 15.5vw, 4.5rem); }
  .hero-intro { font-size: 1rem; }
  .hero-actions .button { width: 100%; }
  .hero-trust { align-items: flex-start; margin-top: 1.85rem; }
  .hero-stage { min-height: 24.3rem; }
  .hero-stage::before { inset: .8rem 0 .8rem 1.25rem; border-radius: 1.55rem; }
  .reference-art,
  .hero-stage-wash { inset: 1.2rem 0 1.35rem .8rem; width: calc(100% - .8rem); height: calc(100% - 2.55rem); border-radius: 1.35rem; }
  .stage-panel { top: 3rem; width: min(73%, 18rem); padding: 1.05rem; border-radius: 1rem; }
  .stage-icon { width: 2.55rem; height: 2.55rem; margin-bottom: 1.3rem; }
  .stage-icon svg { width: 1.25rem; height: 1.25rem; }
  .stage-title { font-size: 1.33rem; }
  .stage-rule { margin-top: 1rem; }
  .stage-location { right: -.35rem; bottom: 1.8rem; max-width: 14rem; gap: .48rem; padding: .67rem; }
  .stage-location strong { font-size: .64rem; }
  .stage-location small { font-size: .5rem; }
  .stage-location .stage-location-arrow { display: none; }
  .strip-inner { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem .75rem; padding-block: .75rem; }
  .strip-inner span { font-size: .68rem; }
  .section { padding-block: 5rem; }
  .section-heading h2,
  .quote-intro h2,
  .cta-panel h2 { font-size: clamp(2.2rem, 10.4vw, 3rem); }
  .services-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 15.5rem; }
  .service-icon { margin: 1.45rem 0 1.05rem; }
  .care-section { padding-bottom: 5rem; }
  .care-panel { grid-template-columns: 1fr; padding: 1.4rem; border-radius: 1.35rem; }
  .care-copy h2 { font-size: 2.22rem; }
  .quote-section { padding: 1.4rem; border-radius: 1.35rem; }
  .quote-form-panel { padding: 1rem; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field-wide { grid-column: auto; }
  .quote-submit-row .button { width: 100%; }
  .quote-footer { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .location-layout { grid-template-columns: 1fr; }
  .store-card,
  .hours-card,
  .map-card { grid-column: auto; grid-row: auto; }
  .store-card, .hours-card { min-height: auto; }
  .map-card { min-height: 20rem; }
  .faq-section { padding: 1.4rem; border-radius: 1.35rem; }
  .faq-item summary { font-size: .98rem; }
  .faq-item p { margin-right: 0; font-size: .91rem; }
  .cta-section { padding-block: 5rem; }
  .cta-panel { display: block; padding: 1.6rem; border-radius: 1.35rem; }
  .cta-panel .button { width: 100%; margin-top: 1.4rem; }
  .footer-main { display: grid; gap: 1rem; }
  .footer-links { margin-left: 0; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .legal-toggle { text-align: left; }
  .floating-whatsapp { right: 1rem; bottom: 1rem; width: 3rem; justify-content: center; padding: .65rem; }
  .floating-whatsapp span { display: none; }
  .legal-content { padding: 1.45rem; }
  .map-placeholder { padding: 1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
