:root {
  color-scheme: light;
  --navy-950: #03112d;
  --navy-900: #041a43;
  --navy-800: #05275f;
  --blue-700: #053188;
  --blue-600: #154ba8;
  --blue-300: #9bb7e5;
  --blue-150: #d6e2f5;
  --blue-75: #edf3fc;
  --orange: #fa5c08;
  --orange-dark: #b83a00;
  --orange-soft: #fff0e7;
  --paper: #f4f2eb;
  --white: #fff;
  --ink: #101827;
  --ink-70: #485164;
  --muted: #5d6572;
  --orange-700: #c94705;
  --line: rgba(5, 49, 136, .16);
  --success: #087859;
  --danger: #b42318;
  --display: "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --body: "Segoe UI", Inter, Arial, sans-serif;
  --mono: "Cascadia Mono", "IBM Plex Mono", Consolas, monospace;
  --shell: min(1220px, calc(100% - 40px));
  --radius-sm: 8px;
  --radius: 16px;
  --radius-lg: 28px;
  --shadow: 0 24px 64px rgba(3, 17, 45, .12);
  --shadow-deep: 0 34px 90px rgba(3, 17, 45, .22);
  --fast: 160ms cubic-bezier(.2, .7, .2, 1);
  --smooth: 520ms cubic-bezier(.16, 1, .3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; min-width: 320px; background: var(--white); color: var(--ink); font-family: var(--body); font-size: 1rem; line-height: 1.65; overflow-x: clip; }
body.menu-open { overflow: hidden; }
img, picture { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
p, h1, h2, h3, h4, blockquote, dl, dd { margin: 0; }
ul, ol { margin: 0; padding: 0; }
button { color: inherit; }
::selection { color: var(--navy-950); background: #ffb185; }

:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
.section--orange :focus-visible { outline-color: var(--navy-950); }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; padding: 12px 18px; border-radius: var(--radius-sm); background: var(--white); color: var(--navy-900); font-weight: 800; transition: top var(--fast); }
.skip-link:focus { top: 16px; }
.shell { width: var(--shell); margin-inline: auto; }
.narrow { max-width: 860px; }

h1, h2, h3 { color: var(--navy-900); font-family: var(--display); font-stretch: condensed; font-weight: 800; letter-spacing: -.035em; line-height: 1.02; text-wrap: balance; }
h1 { font-size: clamp(3.2rem, 6.6vw, 6.4rem); }
h2 { font-size: clamp(2.25rem, 4vw, 4rem); }
h3 { font-size: clamp(1.35rem, 2.2vw, 2rem); line-height: 1.06; }
p { text-wrap: pretty; }
.kicker { display: flex; gap: 11px; align-items: center; margin-bottom: 18px; color: var(--orange-dark); font-family: var(--mono); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.kicker::before { width: 28px; height: 2px; content: ""; background: currentColor; }
.kicker--light { color: #ff8a4c; }
.section { padding: clamp(72px, 7vw, 112px) 0; position: relative; }
.section--paper { background-color: var(--paper); background-image: linear-gradient(rgba(5,49,136,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(5,49,136,.045) 1px, transparent 1px); background-size: 32px 32px; }
.section--night { overflow: hidden; background: var(--navy-900); color: var(--white); }
.section--night::after { position: absolute; pointer-events: none; inset: auto -10% -40% auto; width: 640px; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.02); content: ""; }
.section--night h2, .section--night h3 { color: var(--white); }
.section--orange { background: var(--orange); color: var(--navy-950); }
.section--orange .kicker { color: var(--navy-950); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 34px; align-items: end; margin-bottom: 48px; }
.section-heading h2 { max-width: 17ch; }
.section-lead { max-width: 62ch; margin-top: 24px; color: var(--ink-70); font-size: clamp(1.05rem, 1.5vw, 1.25rem); }

.utility-bar { position: relative; z-index: 60; background: var(--navy-950); color: #c2d0e8; font-family: var(--mono); font-size: .72rem; letter-spacing: .03em; }
.utility-bar__inner { min-height: 38px; display: flex; gap: 20px; justify-content: space-between; align-items: center; }
.utility-bar__inner p, .utility-bar__inner div { display: flex; gap: 10px; align-items: center; }
.utility-bar a { color: var(--white); font-weight: 700; text-decoration: none; }
.utility-bar a:hover { color: #ff9560; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgba(250,92,8,.14); }

.site-header { position: sticky; z-index: 50; top: 0; border-bottom: 1px solid rgba(5,49,136,.1); background: rgba(255,255,255,.94); backdrop-filter: blur(18px); transition: box-shadow var(--fast), background var(--fast); }
.site-header.is-scrolled { box-shadow: 0 12px 36px rgba(3,17,45,.1); background: rgba(255,255,255,.985); }
.site-header__inner { min-height: 84px; display: flex; align-items: center; gap: 34px; }
.wordmark { min-height: 44px; display: inline-flex; flex-direction: column; flex: none; justify-content: center; color: var(--navy-900); text-decoration: none; }
.wordmark__name { font-family: var(--display); font-size: 1.56rem; font-weight: 900; letter-spacing: -.055em; line-height: 1; }
.wordmark__name span { color: var(--orange); }
.wordmark__line { margin-top: 5px; font-family: var(--mono); font-size: .56rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.site-nav { margin-left: auto; display: flex; gap: clamp(16px, 2vw, 28px); align-items: center; }
.site-nav > a:not(.button) { position: relative; min-height: 48px; display: inline-flex; align-items: center; color: var(--navy-900); font-family: var(--display); font-size: .95rem; font-weight: 800; text-decoration: none; }
.site-nav > a:not(.button)::after { position: absolute; right: 0; bottom: 5px; left: 0; height: 2px; content: ""; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform var(--fast); }
.site-nav > a:hover::after, .site-nav > a[aria-current="page"]::after { transform: scaleX(1); }
.menu-toggle { width: 54px; min-height: 50px; margin-left: auto; display: none; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); cursor: pointer; }
.menu-toggle span { width: 19px; height: 2px; display: block; margin: 4px auto; background: var(--navy-900); transition: transform var(--fast), opacity var(--fast); }
.menu-toggle b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.button-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.button { min-height: 52px; padding: 13px 20px; display: inline-flex; gap: 11px; justify-content: center; align-items: center; border: 1px solid transparent; border-radius: var(--radius-sm); font-family: var(--display); font-size: .98rem; font-weight: 900; line-height: 1.1; text-align: center; text-decoration: none; cursor: pointer; transition: transform var(--fast), box-shadow var(--fast), color var(--fast), background var(--fast), border-color var(--fast); }
.button:hover { transform: translateY(-2px); }
.button:disabled, .button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.button--small { min-height: 48px; padding: 11px 16px; }
.button--signal { background: var(--orange); color: var(--navy-950); box-shadow: 0 12px 30px rgba(250,92,8,.23); }
.button--signal:hover { background: #ff7130; box-shadow: 0 16px 34px rgba(250,92,8,.3); }
.button--ink { background: var(--navy-900); color: var(--white); }
.button--ink:hover { background: var(--blue-700); }
.button--glass { border-color: rgba(255,255,255,.38); background: rgba(255,255,255,.06); color: var(--white); }
.button--glass:hover { border-color: var(--white); background: rgba(255,255,255,.12); }
.button--outline { border-color: var(--blue-700); background: transparent; color: var(--blue-700); }
.button--outline:hover { background: var(--blue-700); color: var(--white); }
[data-prepare][aria-disabled="true"], [data-coverage-prepare][aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.text-link { min-height: 48px; display: inline-flex; gap: 9px; align-items: center; color: var(--blue-700); font-family: var(--display); font-weight: 900; text-decoration: none; }
.text-link i { color: var(--orange); font-style: normal; transition: transform var(--fast); }
.text-link:hover i { transform: translateX(3px); }

.hero-home { position: relative; overflow: hidden; padding: clamp(68px, 6vw, 92px) 0 0; background-color: var(--navy-900); background-image: linear-gradient(rgba(147,182,232,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(147,182,232,.07) 1px, transparent 1px); background-size: 42px 42px; color: var(--white); }
.hero-home::before { position: absolute; inset: 0; content: ""; background: radial-gradient(circle at 75% 42%, rgba(21,75,168,.48), transparent 32%), linear-gradient(100deg, rgba(3,17,45,.6), transparent 72%); }
.hero-home__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(370px, .75fr); gap: clamp(44px, 6vw, 96px); align-items: center; }
.hero-copy h1 { max-width: 14ch; color: var(--white); }
.hero-copy h1 em { color: #ff8a4c; font-style: normal; }
.hero-lead { max-width: 57ch; margin: 30px 0 28px; color: #c6d5ed; font-size: clamp(1.1rem, 1.7vw, 1.34rem); }
.hero-note { margin-top: 20px; color: #9fb4d5; font-family: var(--mono); font-size: .72rem; letter-spacing: .025em; }
.hero-ruler { position: relative; z-index: 1; width: var(--shell); min-height: 64px; margin: 58px auto 0; display: grid; grid-template-columns: auto 1fr auto 1fr auto; gap: 16px; align-items: center; color: #91a7c7; font-family: var(--mono); font-size: .65rem; letter-spacing: .1em; }
.hero-ruler i { height: 1px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.3) 0 2px, transparent 2px 8px); }

.signal-panel { position: relative; min-height: 450px; padding: 22px; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-lg); background: rgba(3,17,45,.58); box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 36px 80px rgba(0,0,0,.25); backdrop-filter: blur(10px); }
.signal-panel::before { position: absolute; inset: 0; content: ""; background: linear-gradient(110deg, transparent 45%, rgba(255,255,255,.05) 50%, transparent 55%); transform: translateX(120%); animation: panel-scan 1.45s ease-out 1; }
.signal-panel__top { position: relative; z-index: 2; display: flex; justify-content: space-between; color: #8aa2c7; font-family: var(--mono); font-size: .66rem; letter-spacing: .08em; }
.signal-live { display: flex; gap: 7px; align-items: center; color: #d5e2f5; }
.signal-live i { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px rgba(250,92,8,.13); }
.signal-field { position: relative; width: min(275px, 86%); aspect-ratio: 1; margin: 30px auto 22px; }
.ring { position: absolute; inset: 50%; border: 1px solid rgba(147,182,232,.25); border-radius: 50%; transform: translate(-50%,-50%); }
.ring--one { width: 100%; height: 100%; border-style: dashed; }
.ring--two { width: 72%; height: 72%; border-color: rgba(250,92,8,.48); box-shadow: 0 0 32px rgba(250,92,8,.08); }
.ring--three { width: 45%; height: 45%; border-style: dashed; }
.signal-core { position: absolute; inset: 50%; width: 92px; height: 92px; display: grid; place-items: center; border: 2px solid var(--orange); border-radius: 50%; background: var(--navy-900); color: var(--white); font-family: var(--display); font-size: 2rem; font-weight: 900; transform: translate(-50%,-50%); box-shadow: 0 0 0 12px rgba(250,92,8,.06), 0 0 42px rgba(250,92,8,.18); }
.trace { position: absolute; height: 2px; background: linear-gradient(90deg, transparent, var(--orange)); transform-origin: right; }
.trace::before { position: absolute; left: 0; top: -4px; width: 10px; height: 10px; border: 2px solid var(--orange); border-radius: 50%; content: ""; background: var(--navy-900); }
.trace--a { width: 34%; top: 30%; left: 3%; transform: rotate(16deg); }
.trace--b { width: 28%; top: 64%; left: 4%; transform: rotate(-12deg); }
.trace--c { width: 30%; top: 25%; right: 2%; transform: rotate(150deg); }
.signal-metrics { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); }
.signal-metrics div { padding: 14px 10px; border-right: 1px solid rgba(255,255,255,.12); }
.signal-metrics div:last-child { border: 0; }
.signal-metrics dt { color: var(--orange); font-family: var(--mono); font-size: .72rem; }
.signal-metrics dd { color: #d2def0; font-size: .76rem; }
.signal-panel > p { position: relative; z-index: 2; margin-top: 18px; color: #92a8c8; font-size: .84rem; text-align: center; }

.trust-strip { border-bottom: 1px solid var(--line); background: var(--white); }
.trust-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.trust-grid article { min-height: 150px; padding: 28px 24px; display: flex; gap: 16px; align-items: flex-start; border-right: 1px solid var(--line); }
.trust-grid article:first-child { border-left: 1px solid var(--line); }
.trust-grid article > span { color: var(--orange-dark); font-family: var(--mono); font-size: .68rem; }
.trust-grid h2 { margin-bottom: 6px; font-size: 1.15rem; letter-spacing: -.01em; }
.trust-grid p { color: var(--ink-70); font-size: .86rem; line-height: 1.5; }

.availability-strip { border-bottom: 1px solid rgba(147,182,232,.18); background: var(--navy-950); color: var(--white); }
.availability-grid { display: grid; grid-template-columns: repeat(3,1fr); }
.availability-grid article { position: relative; min-height: 132px; padding: 24px 28px; border-right: 1px solid rgba(147,182,232,.16); }
.availability-grid article:first-child { border-left: 1px solid rgba(147,182,232,.16); }
.availability-grid article::before { position: absolute; top: 30px; right: 26px; width: 8px; height: 8px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px rgba(250,92,8,.14); content: ""; }
.availability-grid span { color: #ff8a4c; font-family: var(--mono); font-size: .66rem; font-weight: 700; letter-spacing: .08em; }
.availability-grid h2 { margin-top: 7px; color: var(--white); font-size: 1.2rem; letter-spacing: -.01em; }
.availability-grid p { margin-top: 7px; color: #aebed7; font-size: .8rem; line-height: 1.45; }

.finder-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(330px, .7fr); gap: clamp(42px, 8vw, 120px); align-items: start; }
.finder-grid h2 { max-width: 13ch; }
.finder-options { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 9px; }
.finder-options button { position: relative; min-height: 48px; padding: 10px 15px; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--navy-900); font-weight: 700; cursor: pointer; box-shadow: 0 0 0 rgba(3,17,45,0); transition: color var(--fast), background var(--fast), border-color var(--fast), transform var(--fast), box-shadow var(--fast); }
.finder-options button:hover, .finder-options button[aria-pressed="true"] { border-color: var(--navy-900); background: var(--navy-900); color: var(--white); transform: translateY(-2px); box-shadow: 0 10px 26px rgba(3,17,45,.13); }
.finder-options button[aria-pressed="true"]::after { position: absolute; right: 11px; top: 50%; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgba(250,92,8,.16); content: ""; transform: translateY(-50%); }
.finder-result { position: sticky; top: 122px; min-height: 390px; padding: clamp(28px, 4vw, 48px); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: var(--radius-lg); background: radial-gradient(circle at 22% 15%, rgba(21,75,168,.5), transparent 35%), linear-gradient(145deg, var(--navy-800), var(--navy-950)); color: var(--white); box-shadow: var(--shadow-deep); }
.finder-result::before { position: absolute; left: 40px; top: 40px; width: 120px; height: 120px; border: 1px dashed rgba(255,255,255,.18); border-radius: 50%; content: ""; box-shadow: 0 0 0 28px rgba(255,255,255,.025), 0 0 0 56px rgba(255,255,255,.02); }
.finder-result > * { position: relative; z-index: 1; }
.finder-result > span { margin-bottom: auto; color: #93a9ca; font-family: var(--mono); font-size: .65rem; letter-spacing: .12em; }
.finder-result h3 { color: var(--white); font-size: clamp(2rem, 3vw, 3.1rem); }
.finder-result > p { margin-top: 14px; color: #bdcce3; }
.finder-result dl { margin: 26px 0 10px; padding-top: 18px; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.14); }
.finder-result dt { color: #879ebf; font-family: var(--mono); font-size: .68rem; text-transform: uppercase; }
.finder-result dd { color: #ff8b50; font-family: var(--mono); font-weight: 700; }
.finder-result .text-link { color: var(--white); }
.finder-result--pulse { animation: result-pulse 360ms ease-out; }

.service-bento { display: grid; grid-template-columns: repeat(12,1fr); gap: 16px; }
.service-card { position: relative; min-height: 300px; padding: 28px; display: flex; flex-direction: column; overflow: hidden; isolation: isolate; border: 1px solid rgba(5,49,136,.18); border-radius: var(--radius); background: linear-gradient(150deg, rgba(255,255,255,.98), rgba(237,243,252,.66)); color: var(--ink); text-decoration: none; box-shadow: 0 1px 0 rgba(255,255,255,.9) inset; transition: border-color var(--fast), transform var(--smooth), box-shadow var(--smooth), background var(--smooth); }
.service-card::before { position: absolute; z-index: -1; right: 28px; bottom: 0; left: 28px; height: 3px; background: linear-gradient(90deg, var(--orange) 0 20%, var(--blue-700) 20% 68%, transparent 68%); content: ""; transform: scaleX(.32); transform-origin: left; opacity: .7; transition: transform var(--smooth), opacity var(--fast); }
.service-card::after { position: absolute; right: -46px; top: -46px; width: 128px; height: 128px; border: 1px solid var(--line); border-radius: 50%; content: ""; box-shadow: 0 0 0 24px rgba(5,49,136,.025); transition: border-color var(--fast), transform var(--fast); }
.service-card:hover { z-index: 2; border-color: rgba(250,92,8,.72); transform: translateY(-6px); box-shadow: 0 26px 66px rgba(3,17,45,.16); }
.service-card:hover::before, .service-card:focus-visible::before { transform: scaleX(1); opacity: 1; }
.service-card:hover::after { border-color: var(--orange); transform: scale(1.08); }
.service-card--1, .service-card--4 { grid-column: span 7; }
.service-card--2, .service-card--3 { grid-column: span 5; }
.service-card:nth-child(5), .service-card:nth-child(6), .service-card:nth-child(7) { grid-column: span 4; }
.service-card:nth-child(1) { min-height: 360px; background: var(--navy-900); color: var(--white); }
.service-card:nth-child(1) h3 { color: var(--white); }
.service-card:nth-child(1) p { color: #b7c7df; }
.service-card:nth-child(1) b { color: #ff8b50; }
.service-card:nth-child(1) .service-card__signal, .service-card:nth-child(1) > div > span { color: #ff8a4c; }
.service-card__signal { color: var(--orange-dark); font-family: var(--mono); font-size: .66rem; letter-spacing: .08em; }
.service-card h3 { max-width: 14ch; margin-top: auto; }
.service-card p { max-width: 50ch; margin-top: 13px; color: var(--ink-70); font-size: .92rem; }
.service-card > div { margin-top: 26px; padding-top: 15px; display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid rgba(5,49,136,.13); }
.service-card b, .service-card > div > span { font-family: var(--mono); font-size: .72rem; }
.service-card b { color: var(--blue-700); }
.service-card > div > span { color: var(--orange-dark); font-weight: 700; }

.method-track { position: relative; display: grid; grid-template-columns: repeat(5,1fr); list-style: none; }
.method-track::before { position: absolute; left: 5%; right: 5%; top: 31px; height: 2px; content: ""; background: linear-gradient(90deg, var(--orange), var(--blue-700)); }
.method-track li { position: relative; padding: 0 20px; }
.method-track li:first-child { padding-left: 0; }
.method-track li:last-child { padding-right: 0; }
.method-track span { width: 64px; height: 64px; display: grid; place-items: center; border: 2px solid var(--orange); border-radius: 50%; background: var(--white); color: var(--orange-dark); font-family: var(--mono); font-weight: 700; }
.method-track h3 { margin-top: 28px; font-size: 1.35rem; }
.method-track p { margin-top: 10px; color: var(--ink-70); font-size: .9rem; }

.coverage-teaser__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,.8fr) minmax(480px,1.2fr); gap: clamp(54px,9vw,130px); align-items: center; }
.coverage-teaser h2 { max-width: 12ch; }
.coverage-teaser > .shell > div:first-child > p:not(.kicker) { max-width: 54ch; margin: 24px 0 30px; color: #b8c7df; }
.corridor { position: relative; padding: 54px 22px 30px; border: 1px solid rgba(255,255,255,.15); border-radius: var(--radius-lg); background: rgba(255,255,255,.04); }
.corridor-line { position: absolute; left: 9%; right: 9%; top: 82px; height: 2px; background: linear-gradient(90deg, rgba(250,92,8,.4), var(--orange), rgba(250,92,8,.35)); }
.corridor ol { position: relative; display: grid; grid-template-columns: repeat(5,1fr); list-style: none; }
.corridor li { display: flex; flex-direction: column; align-items: center; text-align: center; }
.corridor li::before { width: 15px; height: 15px; margin-bottom: 20px; border: 3px solid var(--orange); border-radius: 50%; background: var(--navy-900); content: ""; box-shadow: 0 0 0 7px rgba(250,92,8,.1); }
.corridor li.is-base::before { width: 24px; height: 24px; margin-top: -5px; margin-bottom: 16px; background: var(--orange); box-shadow: 0 0 0 8px rgba(250,92,8,.16); }
.corridor b { color: var(--white); font-family: var(--mono); font-size: .72rem; }
.corridor li span { margin-top: 4px; color: #a9bbd6; font-size: .78rem; }
.corridor > p { margin-top: 36px; color: #8298b9; font-size: .78rem; text-align: center; }

.prices-teaser__grid { display: grid; grid-template-columns: minmax(0,.7fr) minmax(500px,1.3fr); gap: clamp(50px,9vw,130px); align-items: start; }
.prices-teaser h2 { max-width: 11ch; }
.prices-teaser .button { margin-top: 30px; }
.price-ledger { border-top: 2px solid var(--navy-900); list-style: none; }
.price-ledger li { min-height: 74px; padding: 14px 0; display: flex; justify-content: space-between; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); }
.price-ledger li span { display: flex; gap: 18px; align-items: center; font-family: var(--display); font-weight: 800; }
.price-ledger i { color: var(--orange-dark); font-family: var(--mono); font-size: .67rem; font-style: normal; }
.price-ledger b { color: var(--blue-700); font-family: var(--mono); white-space: nowrap; }

.partner-teaser__grid { display: grid; grid-template-columns: .65fr 1.35fr; gap: 50px; align-items: center; }
.big-code { display: block; color: rgba(3,17,45,.16); font-family: var(--display); font-size: clamp(8rem,22vw,20rem); font-weight: 900; letter-spacing: -.1em; line-height: .7; }
.partner-teaser h2 { max-width: 14ch; }
.partner-teaser p:not(.kicker) { max-width: 56ch; margin: 24px 0 28px; }

.founder-grid { display: grid; grid-template-columns: minmax(360px,.85fr) minmax(0,1.15fr); gap: clamp(48px,9vw,130px); align-items: center; }
.founder-visual { position: relative; min-height: 430px; padding: 32px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; border: 1px solid rgba(5,49,136,.14); border-radius: var(--radius-lg); background-color: var(--blue-75); background-image: linear-gradient(rgba(5,49,136,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(5,49,136,.08) 1px, transparent 1px); background-size: 28px 28px; }
.founder-visual::before { position: absolute; left: 32px; right: 32px; top: 78px; height: 3px; background: linear-gradient(90deg, var(--orange) 0 22%, transparent 22% 25%, var(--blue-700) 25% 100%); content: ""; }
.founder-visual::after { position: absolute; right: -12px; bottom: -48px; color: rgba(5,49,136,.07); content: "PED"; font-family: var(--display); font-size: 12rem; font-weight: 900; letter-spacing: -.09em; line-height: 1; }
.founder-visual .poster-code { position: relative; z-index: 1; color: var(--orange-dark); font-family: var(--mono); font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.founder-visual > strong { position: relative; z-index: 1; max-width: 8ch; margin: 70px 0 40px; color: var(--navy-900); font-family: var(--display); font-size: clamp(3rem,6vw,5.6rem); letter-spacing: -.055em; line-height: .82; }
.founder-visual ul { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,1fr); list-style: none; border-top: 1px solid rgba(5,49,136,.18); }
.founder-visual li { padding: 13px 8px 0; border-right: 1px solid rgba(5,49,136,.18); color: var(--blue-700); font-family: var(--mono); font-size: .66rem; text-align: center; }
.founder-visual li:last-child { border: 0; }
.founder-visual--large { min-height: 520px; }
.founder-grid h2 { max-width: 13ch; }
.founder-grid blockquote { max-width: 46ch; margin: 28px 0; padding-left: 24px; border-left: 4px solid var(--orange); color: var(--navy-900); font-family: var(--display); font-size: clamp(1.35rem,2vw,1.85rem); font-weight: 800; line-height: 1.25; }
.founder-grid article > p, .founder-grid > div:last-child > p { max-width: 60ch; margin-top: 18px; color: var(--ink-70); }
.founder-grid .text-link { margin-top: 20px; }

.faq-section h2 { max-width: 14ch; }
.faq-list { margin-top: 42px; border-top: 2px solid var(--navy-900); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { min-height: 72px; padding: 18px 0; display: grid; grid-template-columns: 1fr 48px; gap: 20px; align-items: center; color: var(--navy-900); font-family: var(--display); font-size: 1.15rem; font-weight: 900; list-style: none; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--orange-dark); font-family: var(--mono); font-size: 1.3rem; transition: transform var(--fast), background var(--fast); }
.faq-list details[open] summary span { background: var(--navy-900); color: var(--white); transform: rotate(45deg); }
.faq-list details > p { max-width: 68ch; padding: 0 68px 24px 0; color: var(--ink-70); }

.page-hero, .service-hero { position: relative; overflow: hidden; background-color: var(--navy-900); background-image: linear-gradient(rgba(147,182,232,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(147,182,232,.07) 1px, transparent 1px); background-size: 42px 42px; color: var(--white); }
.page-hero { padding: clamp(76px,8vw,122px) 0; }
.page-hero::after, .service-hero::after { position: absolute; pointer-events: none; right: -8%; top: -38%; width: 580px; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; box-shadow: 0 0 0 75px rgba(255,255,255,.025), 0 0 0 150px rgba(255,255,255,.018); }
.page-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.4fr) minmax(240px,.6fr); gap: 50px; align-items: end; }
.page-hero h1 { max-width: 14ch; color: var(--white); font-size: clamp(3.25rem,6vw,5.6rem); }
.service-hero h1 { max-width: 16ch; color: var(--white); font-size: clamp(3rem,4.4vw,4.65rem); }
.page-hero__grid > div:first-child > p:last-child, .service-hero__grid > div:first-child > p:last-of-type { max-width: 60ch; margin-top: 28px; color: #c4d2e8; font-size: clamp(1.08rem,1.6vw,1.3rem); }
.page-hero__index { padding: 24px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius); background: rgba(255,255,255,.04); }
.page-hero__index span { color: #91a7c7; font-family: var(--mono); font-size: .66rem; letter-spacing: .1em; }
.page-hero__index b { display: block; color: var(--orange); font-family: var(--display); font-size: clamp(4rem,8vw,7rem); letter-spacing: -.07em; line-height: 1; }
.page-hero__index p { color: #c4d2e8; font-size: .83rem; }
.page-hero .signal-panel { min-height: 430px; }
.page-hero--legal h1 { font-size: clamp(3rem,6vw,5.5rem); }

.service-directory { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.service-directory article { min-height: 330px; padding: 28px; display: grid; grid-template-columns: 50px 1fr; gap: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(237,243,252,.48)); box-shadow: 0 1px 0 rgba(255,255,255,.9) inset; transition: transform var(--smooth), border-color var(--fast), box-shadow var(--smooth); }
.service-directory article:hover { border-color: rgba(250,92,8,.55); transform: translateY(-4px); box-shadow: 0 22px 52px rgba(3,17,45,.11); }
.service-directory article > span { color: var(--orange-dark); font-family: var(--mono); font-size: .7rem; }
.service-directory article > div { display: flex; flex-direction: column; }
.service-directory article > div > p:first-child { color: var(--orange-dark); font-family: var(--mono); font-size: .67rem; letter-spacing: .08em; text-transform: uppercase; }
.service-directory article h2 { margin-top: auto; font-size: clamp(2rem,3.5vw,3.6rem); }
.service-directory article h2 + p { margin-top: 14px; color: var(--ink-70); }
.service-directory dl { margin: 20px 0; padding-top: 14px; display: flex; justify-content: space-between; border-top: 1px solid var(--line); font-family: var(--mono); font-size: .72rem; }
.service-directory dt { color: var(--ink-70); text-transform: uppercase; }
.service-directory dd { color: var(--blue-700); font-weight: 700; }
.service-directory .button { align-self: flex-start; }
.notice-grid { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: clamp(40px,9vw,130px); align-items: start; }
.notice-grid h2 { max-width: 13ch; }
.notice-grid > div:last-child { color: var(--ink-70); font-size: 1.08rem; }
.section--night .notice-grid > div:last-child { color: #c4d2e8; }

.page-breadcrumbs { border-bottom: 1px solid rgba(255,255,255,.08); background: var(--navy-900); color: #a9bbd6; font-family: var(--mono); font-size: .7rem; }
.page-breadcrumbs > div { min-height: 50px; display: flex; gap: 10px; align-items: center; }
.page-breadcrumbs a { min-height: 44px; display: inline-flex; align-items: center; color: var(--white); text-underline-offset: 4px; }
.page-breadcrumbs i { color: var(--orange); font-style: normal; }

.service-hero { padding: clamp(70px,8vw,112px) 0; }
.service-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); gap: clamp(46px,8vw,110px); align-items: end; }
.breadcrumbs { min-height: 48px; margin-bottom: 22px; display: flex; flex-wrap: wrap; gap: 9px; align-items: center; color: #a9bbd6; font-family: var(--mono); font-size: .7rem; }
.breadcrumbs a { min-height: 44px; display: inline-flex; align-items: center; color: var(--white); text-underline-offset: 4px; }
.breadcrumbs i { color: var(--orange); font-style: normal; }
.breadcrumbs span { overflow-wrap: anywhere; }
.service-hero .button-row { margin-top: 32px; }
.service-hero .button-row > a:not(.button) { min-height: 52px; padding: 13px 18px; display: inline-flex; align-items: center; border: 1px solid rgba(255,255,255,.32); border-radius: var(--radius-sm); color: var(--white); font-family: var(--display); font-weight: 900; text-decoration: none; }
.service-safety { max-width: 62ch; margin-top: 24px; padding: 14px 16px; border-left: 3px solid var(--orange); background: rgba(250,92,8,.1); color: #dce6f5 !important; font-size: .82rem; }
.service-safety b { color: var(--white); }
.service-hero aside { padding: 30px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 24px 60px rgba(0,0,0,.18); backdrop-filter: blur(10px); }
.service-hero aside span { color: #91a7c7; font-family: var(--mono); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; }
.service-hero aside strong { margin: 16px 0; display: block; color: var(--orange); font-family: var(--display); font-size: clamp(3rem,6vw,5.2rem); letter-spacing: -.06em; line-height: .95; }
.service-hero aside p { color: #c5d2e6; font-size: .9rem; }
.service-price-lines { margin: 4px 0 20px; list-style: none; border-top: 1px solid rgba(255,255,255,.14); }
.service-price-lines li { min-height: 46px; padding: 8px 0; display: flex; justify-content: space-between; gap: 14px; align-items: center; border-bottom: 1px solid rgba(255,255,255,.12); color: #c5d2e6; font-size: .75rem; }
.service-price-lines b { color: #ff8a4c; font-family: var(--mono); font-size: .72rem; text-align: right; }
.service-hero aside .availability-note { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12); color: #aebed7; font-size: .78rem; }
.service-hero aside .availability-note b { display: block; margin-bottom: 3px; color: #ff8a4c; font-family: var(--mono); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }
.detail-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(320px,.8fr); gap: clamp(54px,8vw,110px); align-items: start; }
.detail-grid article > h2 { max-width: 13ch; }
.check-list { margin-top: 40px; display: grid; gap: 0; list-style: none; border-top: 2px solid var(--navy-900); }
.check-list li { min-height: 68px; padding: 14px 0 14px 38px; display: flex; align-items: center; border-bottom: 1px solid var(--line); position: relative; }
.check-list li::before { position: absolute; left: 0; width: 17px; height: 9px; border-left: 2px solid var(--orange-dark); border-bottom: 2px solid var(--orange-dark); content: ""; transform: rotate(-45deg); }
.detail-note { margin-top: 38px; padding: 26px; border-left: 4px solid var(--orange); background: var(--orange-soft); }
.detail-note > span, .needs-card > span { color: var(--orange-dark); font-family: var(--mono); font-size: .68rem; letter-spacing: .1em; }
.detail-note h3 { margin-top: 8px; }
.detail-note ul { margin-top: 16px; padding-left: 20px; color: var(--ink-70); }
.needs-card { position: sticky; top: 122px; padding: 32px; border-radius: var(--radius-lg); background: var(--navy-900); color: var(--white); box-shadow: var(--shadow); }
.needs-card h2 { margin-top: 10px; color: var(--white); font-size: clamp(2rem,3.5vw,3.2rem); }
.needs-card ol { margin-top: 30px; display: grid; list-style: none; }
.needs-card li { min-height: 58px; display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: center; border-top: 1px solid rgba(255,255,255,.12); color: #d0dced; font-size: .9rem; }
.needs-card li b { color: var(--orange); font-family: var(--mono); font-size: .66rem; }
.needs-card > p { margin-top: 22px; color: #95a9c7; font-size: .78rem; }
.service-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 40px; list-style: none; }
.service-steps li { min-height: 260px; padding: 24px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.9); }
.service-steps span { color: var(--orange-dark); font-family: var(--mono); font-size: .7rem; }
.service-steps h3 { margin-top: auto; }
.service-steps p { margin-top: 10px; color: var(--ink-70); font-size: .88rem; }
.related-grid { margin-top: 28px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.related-grid .service-card { min-height: 280px; grid-column: auto; background: linear-gradient(145deg, var(--white), var(--blue-75)); color: var(--ink); }
.related-grid .service-card h3 { color: var(--navy-900); }
.related-service-list { margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: clamp(24px,4vw,52px); border-top: 1px solid var(--line); list-style: none; }
.related-service-list > * { min-width: 0; border-bottom: 1px solid var(--line); }
.related-service-link { min-height: 64px; padding: 14px 7px 14px 4px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; align-items: center; border-radius: 6px; color: var(--navy-900); font-family: var(--display); font-size: 1.03rem; font-weight: 900; letter-spacing: -.015em; line-height: 1.25; text-decoration: none; transition: padding var(--fast), color var(--fast), background var(--fast); }
.related-service-link > span { display: none; }
.related-service-link > strong { min-width: 0; font: inherit; overflow-wrap: anywhere; }
.related-service-link > i { color: var(--orange-dark); font-family: var(--mono); font-size: 1.05rem; font-style: normal; font-weight: 700; line-height: 1; transition: color var(--fast), transform var(--fast); }
.related-service-link:hover { padding-left: 10px; background: var(--blue-75); color: var(--blue-700); }
.related-service-link:hover > i, .related-service-link:focus-visible > i { color: var(--orange); transform: translateX(4px); }
.related-service-link:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; background: var(--blue-75); color: var(--blue-700); }
.section--night .related-service-list, .section--night .related-service-list > * { border-color: rgba(255,255,255,.15); }
.section--night .related-service-link { color: var(--white); }
.section--night .related-service-link:hover, .section--night .related-service-link:focus-visible { background: rgba(255,255,255,.07); color: var(--white); }

.price-ledger--full { border-top: 3px solid var(--navy-900); }
.price-row { min-height: 116px; padding: 20px 0; display: grid; grid-template-columns: 54px minmax(0,1fr) auto; gap: 26px; align-items: center; border-bottom: 1px solid var(--line); }
.price-row > span { color: var(--orange-dark); font-family: var(--mono); font-size: .7rem; }
.price-row h2 { font-size: clamp(1.45rem,2.5vw,2.25rem); letter-spacing: -.02em; }
.price-row p { margin-top: 7px; color: var(--ink-70); font-size: .88rem; }
.price-row strong { color: var(--blue-700); font-family: var(--mono); font-size: clamp(1.1rem,2vw,1.45rem); white-space: nowrap; }
.price-formula { margin-top: 32px; padding: 26px; display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; border-radius: var(--radius); background: var(--navy-900); color: var(--white); }
.price-formula span { color: var(--orange); font-family: var(--mono); font-size: .7rem; }
.price-formula p { font-family: var(--mono); font-size: .85rem; }
.legal-note { margin-top: 18px; color: var(--ink-70); font-size: .8rem; }
.split-content { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: clamp(44px,8vw,110px); }
.split-content h2 { max-width: 12ch; }
.definition-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.definition-grid article { min-height: 190px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.86); }
.definition-grid b { color: var(--orange-dark); font-family: var(--mono); font-size: .68rem; letter-spacing: .08em; }
.definition-grid p { margin-top: 46px; color: var(--ink-70); font-size: .9rem; }

.method-long { display: grid; list-style: none; border-top: 3px solid var(--navy-900); }
.method-long li { min-height: 210px; padding: 28px 0; display: grid; grid-template-columns: minmax(100px,.35fr) minmax(0,1.65fr); align-items: center; border-bottom: 1px solid var(--line); }
.method-long li > span { color: var(--orange); font-family: var(--display); font-size: clamp(4rem,8vw,7rem); font-weight: 900; letter-spacing: -.07em; }
.method-long h2 { max-width: 15ch; font-size: clamp(2rem,4vw,4rem); }
.method-long p { max-width: 64ch; margin-top: 14px; color: var(--ink-70); }

.coverage-page-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(360px,.85fr); gap: clamp(40px,7vw,90px); align-items: start; }
.corridor--light { border-color: var(--line); background: var(--paper); }
.corridor--light li::before { background: var(--paper); }
.corridor--light b { color: var(--navy-900); }
.corridor--light li span, .corridor--light > p { color: var(--ink-70); }
.coverage-check { padding: clamp(26px,4vw,42px); border-radius: var(--radius-lg); background: var(--blue-75); }
.coverage-check h2 { max-width: 12ch; font-size: clamp(2rem,3.3vw,3.25rem); }
.coverage-check label { margin: 28px 0 7px; display: block; color: var(--navy-900); font-family: var(--display); font-weight: 900; }
.coverage-form-grid { margin-top: 28px; }
.coverage-check .coverage-form-grid label { margin: 0 0 7px; }
.coverage-check > .button { margin-top: 22px; }
.input-action { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.input-action input { min-width: 0; }
.field-hint { display: block; margin-top: 6px; color: var(--ink-70); font-size: .77rem; }
.coverage-result { min-height: 0; margin-top: 22px; }
.coverage-result.is-visible { min-height: 126px; padding: 18px; border-left: 4px solid var(--success); background: var(--white); }
.coverage-result.is-consult { border-left-color: var(--orange); }
.coverage-result strong { display: block; color: var(--navy-900); font-family: var(--display); font-size: 1.25rem; }
.coverage-result p { margin-top: 6px; color: var(--ink-70); font-size: .88rem; }
.place-list { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; }
.place-list li { min-height: 48px; padding: 10px 16px; display: flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--blue-700); font-family: var(--mono); font-size: .75rem; }

.value-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.value-grid article { min-height: 330px; padding: 28px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); }
.value-grid span { color: var(--orange-dark); font-family: var(--mono); font-size: .7rem; }
.value-grid h2 { margin-top: auto; font-size: clamp(1.75rem,3vw,3rem); }
.value-grid p { margin-top: 14px; color: var(--ink-70); }
.form-layout { display: grid; grid-template-columns: minmax(300px,.65fr) minmax(0,1.35fr); gap: clamp(46px,8vw,110px); align-items: start; }
.form-layout > div:first-child { position: sticky; top: 122px; }
.form-layout > div:first-child h2 { max-width: 12ch; }
.form-layout > div:first-child > p:last-child { max-width: 46ch; margin-top: 20px; color: var(--ink-70); }
.contact-grid { display: grid; grid-template-columns: minmax(320px,.65fr) minmax(0,1.35fr); gap: clamp(48px,8vw,100px); align-items: start; }
.contact-cards { display: grid; gap: 12px; }
.contact-cards article { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.contact-cards article > span { color: var(--orange-dark); font-family: var(--mono); font-size: .68rem; letter-spacing: .08em; }
.contact-cards h2 { margin-top: 10px; font-size: 2rem; }
.contact-cards p { margin: 10px 0 18px; color: var(--ink-70); }
.contact-cards article > a:not(.button) { min-height: 48px; display: inline-flex; align-items: center; color: var(--blue-700); font-weight: 800; }
.contact-info-block { margin-top: 42px; padding-top: 34px; border-top: 1px solid var(--line); }
.contact-info-block h2 { max-width: 18ch; font-size: clamp(1.8rem,3vw,2.7rem); }
.contact-info-block > p:not(.kicker) { max-width: 66ch; margin-top: 14px; color: var(--ink-70); }
.contact-grid .legal-warning { margin: 26px 0 28px; border-radius: var(--radius-sm); }


.lead-form { padding: clamp(24px,4vw,46px); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: 0 20px 60px rgba(3,17,45,.08); }
.form-error-summary { margin-bottom: 22px; padding: 15px 18px; border-left: 4px solid var(--danger); background: #fff0ef; color: #7a271a; font-weight: 800; }
.form-error-summary[hidden] { display: none; }
.form-error-summary ul { margin-top: 10px; padding-left: 20px; font-weight: 600; }
.form-error-summary a { min-height: 40px; display: inline-flex; align-items: center; color: #621d14; text-underline-offset: 3px; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 16px; }
.field { min-width: 0; }
.field--full { grid-column: 1 / -1; }
.field label, .field legend { margin-bottom: 7px; display: block; color: var(--navy-900); font-family: var(--display); font-weight: 900; }
.field label span { color: var(--ink-70); font-family: var(--body); font-size: .8rem; font-weight: 400; }
.field input, .field select, .field textarea, .coverage-check input { width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid rgba(5,49,136,.28); border-radius: var(--radius-sm); background: var(--white); color: var(--ink); transition: border-color var(--fast), box-shadow var(--fast); }
.field input[type="checkbox"], .field input[type="radio"] { width: auto; min-height: 0; padding: 0; }
.field input[type="file"] { min-height: 52px; padding: 9px 12px; }
.field textarea { min-height: 126px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover, .coverage-check input:hover { border-color: var(--blue-700); }
.field input:focus, .field select:focus, .field textarea:focus, .coverage-check input:focus { border-color: var(--blue-700); outline: 0; box-shadow: 0 0 0 4px rgba(5,49,136,.12); }
.field[aria-invalid="true"] input, .field[aria-invalid="true"] select, .field[aria-invalid="true"] textarea, .field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(180,35,24,.08); }
.field-error { display: none; margin-top: 6px; color: var(--danger); font-size: .78rem; font-weight: 700; }
.field.is-invalid > .field-error, .field.is-invalid .field-error { display: block; }
.field fieldset, fieldset.field { border: 0; padding: 0; margin: 0; }
.choice-row { display: flex; gap: 8px; }
.choice-row label { min-height: 52px; flex: 1; margin: 0; position: relative; }
.choice-row input { position: absolute; opacity: 0; }
.choice-row span { width: 100%; height: 100%; padding: 12px 16px; display: grid; place-items: center; border: 1px solid rgba(5,49,136,.28); border-radius: var(--radius-sm); color: var(--navy-900); font-family: var(--body); font-size: 1rem; font-weight: 700; cursor: pointer; }
.choice-row input:checked + span { border-color: var(--orange); background: var(--orange-soft); box-shadow: inset 0 0 0 1px var(--orange); }
.choice-row input:focus-visible + span { outline: 3px solid var(--orange); outline-offset: 3px; }
.privacy-first { margin: 24px 0; padding: 16px; border-left: 3px solid var(--blue-700); background: var(--blue-75); color: var(--ink-70); font-size: .82rem; }
.privacy-first a { color: var(--blue-700); font-weight: 800; }
.mg-privacy-info { margin: 18px 0 14px; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--blue-75); color: var(--ink-70); font-size: .84rem; line-height: 1.6; }
.mg-privacy-info > strong { display: block; margin-bottom: 10px; color: var(--navy-900); font-family: var(--display); font-size: 1.05rem; }
.mg-privacy-info p + p { margin-top: 7px; }
.mg-privacy-info a { color: var(--blue-700); font-weight: 800; text-underline-offset: 3px; }
.mg-privacy-check { margin: 0 0 22px; }
.mg-privacy-check > label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.mg-privacy-check input[type="checkbox"] { width: 18px; height: 18px; min-height: 18px; flex: 0 0 18px; margin-top: 4px; accent-color: var(--blue-700); }
.mg-privacy-check label > span { color: var(--ink); font-family: var(--body); font-size: .9rem; font-weight: 400; line-height: 1.55; }
.mg-privacy-check a { color: var(--blue-700); font-weight: 800; text-underline-offset: 3px; }

.safety-note { margin: -10px 0 24px; padding: 14px 16px; border-left: 3px solid var(--orange); background: var(--orange-soft); color: var(--ink-70); font-size: .8rem; }
.safety-note b { color: var(--navy-900); }
.no-script-note { margin-bottom: 22px; padding: 16px; border: 2px solid var(--orange); background: var(--orange-soft); color: var(--navy-900); font-weight: 800; }
.form-result { margin-top: 34px; padding: 26px; border: 1px solid rgba(8,120,89,.25); border-radius: var(--radius); background: #ecf9f5; }
.form-result[hidden] { display: none; }
.result-code { color: var(--success); font-family: var(--mono); font-size: .7rem; letter-spacing: .08em; }
.form-result h2 { margin-top: 7px; font-size: 2rem; }
.form-result > p { margin-top: 10px; color: var(--ink-70); }
.form-result textarea { width: 100%; min-height: 180px; margin: 18px 0; padding: 14px; border: 1px solid rgba(8,120,89,.25); border-radius: var(--radius-sm); background: var(--white); color: var(--ink); font-family: var(--mono); font-size: .78rem; resize: vertical; }
.form-result .button-row > a:not(.button) { min-height: 52px; padding: 13px 20px; display: inline-flex; align-items: center; border-radius: var(--radius-sm); background: #0c8061; color: var(--white); font-family: var(--display); font-weight: 900; text-decoration: none; }
.copy-status { min-height: 24px; color: var(--success) !important; font-size: .78rem; font-weight: 700; }
.plain-steps { margin-top: 34px; display: grid; list-style: none; border-top: 2px solid var(--navy-900); }
.plain-steps li { min-height: 70px; display: grid; grid-template-columns: 42px 1fr; gap: 16px; align-items: center; border-bottom: 1px solid var(--line); }
.plain-steps span { color: var(--orange-dark); font-family: var(--mono); font-size: .7rem; }
.plain-steps p { color: var(--ink-70); }

.legal-document { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: clamp(40px,8vw,100px); align-items: start; }
.legal-document > aside { position: sticky; top: 122px; padding: 20px; border-left: 3px solid var(--orange); background: var(--paper); color: var(--ink-70); font-size: .8rem; }
.legal-document > aside p + p { margin-top: 18px; }
.legal-document > aside b { color: var(--navy-900); }
.legal-document article { max-width: 780px; }
.legal-warning { margin-bottom: 50px; padding: 24px; border: 1px solid #efb29a; background: var(--orange-soft); }
.legal-warning strong { color: var(--orange-dark); font-family: var(--mono); font-size: .72rem; letter-spacing: .08em; }
.legal-warning p { margin-top: 8px; }
.legal-document article > section { padding: 34px 0; border-top: 1px solid var(--line); }
.legal-document article h2 { font-size: 2rem; }
.legal-document article h2 + p { margin-top: 16px; color: var(--ink-70); }

/* Documento legal extenso · Política de privacidad y páginas equivalentes */
.mg-legal-page {
  width: min(940px, calc(100% - 40px));
  margin-inline: auto;
  padding: clamp(52px, 6vw, 82px) 0 clamp(76px, 8vw, 112px);
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.72;
}
.mg-legal-page .mg-legal-header {
  margin-bottom: 24px;
  padding: clamp(28px, 4vw, 42px);
  border: 1px solid var(--line);
  border-top: 4px solid var(--orange);
  border-radius: var(--radius);
  background: linear-gradient(145deg, var(--white), var(--blue-75));
}
.mg-legal-page .mg-legal-header h1 {
  max-width: 15ch;
  margin: 0 0 22px;
  color: var(--navy-900);
  font-size: clamp(2.6rem, 5vw, 4.6rem);
  line-height: .98;
}
.mg-legal-page .mg-legal-header > p {
  max-width: 76ch;
  margin-top: 12px;
  color: var(--ink-70);
}
.mg-legal-page .mg-legal-header > p:first-of-type {
  margin-top: 0;
}
.mg-legal-page > section {
  padding: 30px 0;
  border-top: 1px solid var(--line);
}
.mg-legal-page > section:first-of-type {
  border-top: 0;
}
.mg-legal-page h2 {
  max-width: 28ch;
  margin: 0 0 16px;
  color: var(--navy-900);
  font-size: clamp(1.75rem, 2.8vw, 2.35rem);
  line-height: 1.08;
  letter-spacing: -.025em;
  scroll-margin-top: 130px;
}
.mg-legal-page h3 {
  max-width: 34ch;
  margin: 26px 0 12px;
  color: var(--navy-900);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  line-height: 1.18;
  letter-spacing: -.015em;
  scroll-margin-top: 130px;
}
.mg-legal-page h4 {
  margin: 22px 0 10px;
  color: var(--navy-900);
  font-family: var(--display);
  font-size: 1.08rem;
  font-weight: 800;
}
.mg-legal-page p {
  max-width: 78ch;
  margin: 0 0 14px;
  color: var(--ink-70);
  overflow-wrap: anywhere;
}
.mg-legal-page strong {
  color: var(--navy-900);
}
.mg-legal-page ul,
.mg-legal-page ol {
  max-width: 76ch;
  margin: 10px 0 20px;
  padding-left: 1.45rem;
}
.mg-legal-page li {
  margin: 7px 0;
  color: var(--ink-70);
  line-height: 1.65;
}
.mg-legal-page li::marker {
  color: var(--orange-dark);
  font-weight: 800;
}
.mg-legal-page a {
  color: var(--blue-700);
  font-weight: 700;
  text-decoration-color: rgba(250,92,8,.72);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}
.mg-legal-page a:hover,
.mg-legal-page a:focus-visible {
  color: var(--orange-dark);
}
.mg-legal-page blockquote,
.mg-legal-page .legal-warning,
.mg-legal-page .legal-note {
  max-width: 78ch;
  margin: 24px 0;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--orange);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--ink-70);
}
.mg-legal-page blockquote p:last-child,
.mg-legal-page .legal-warning p:last-child,
.mg-legal-page .legal-note p:last-child {
  margin-bottom: 0;
}
.mg-legal-page table {
  width: 100%;
  max-width: 100%;
  margin: 22px 0 30px;
  border-collapse: collapse;
  font-size: .92rem;
}
.mg-legal-page th,
.mg-legal-page td {
  padding: 12px 14px;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.mg-legal-page th {
  background: var(--navy-900);
  color: var(--white);
  font-weight: 800;
}
.mg-legal-page hr {
  margin: 34px 0;
  border: 0;
  border-top: 1px solid var(--line);
}

/* Editorial diagnostic system · v2 */
.hero-home--v2 { min-height: 760px; padding-top: clamp(76px,7vw,108px); }
.hero-home--v2::before { background: radial-gradient(circle at 79% 32%, rgba(21,75,168,.58), transparent 28%), radial-gradient(circle at 9% 88%, rgba(250,92,8,.08), transparent 25%), linear-gradient(104deg, rgba(3,17,45,.92) 0 45%, rgba(4,26,67,.7) 74%, rgba(3,17,45,.88)); }
.hero-home--v2::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(116deg, transparent 0 67%, rgba(255,255,255,.055) 67% 67.1%, transparent 67.1%), linear-gradient(90deg, transparent 0 14%, rgba(250,92,8,.18) 14% 14.12%, transparent 14.12%); }
.hero-home--v2 .hero-home__grid { grid-template-columns: minmax(0,1.02fr) minmax(430px,.98fr); gap: clamp(46px,6vw,92px); }
.hero-home--v2 .hero-copy h1 { max-width: 15.5ch; font-size: clamp(3.65rem,5.2vw,5.55rem); }
.hero-home--v2 .hero-lead { max-width: 54ch; }

.vehicle-console { position: relative; min-height: 510px; padding: 20px; overflow: hidden; isolation: isolate; border: 1px solid rgba(180,205,243,.22); border-radius: 30px; background: linear-gradient(150deg, rgba(13,45,99,.74), rgba(3,17,45,.88)); box-shadow: inset 0 1px 0 rgba(255,255,255,.11), inset 0 -30px 70px rgba(0,0,0,.12), 0 42px 100px rgba(0,0,0,.3); backdrop-filter: blur(14px); }
.vehicle-console::before { position: absolute; z-index: -1; inset: 0; content: ""; background-image: linear-gradient(rgba(155,183,229,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(155,183,229,.07) 1px, transparent 1px), radial-gradient(circle at 50% 43%, rgba(21,75,168,.28), transparent 48%); background-size: 24px 24px, 24px 24px, auto; }
.vehicle-console::after { position: absolute; z-index: 3; right: 0; left: 0; top: 18%; height: 1px; content: ""; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(250,92,8,.58), transparent); opacity: 0; animation: console-scan 2.2s 500ms cubic-bezier(.16,1,.3,1) 1 both; }
.vehicle-console__head { position: relative; z-index: 4; min-height: 38px; padding-bottom: 12px; display: flex; justify-content: space-between; gap: 16px; align-items: center; border-bottom: 1px solid rgba(255,255,255,.12); color: #a8bddb; font-family: var(--mono); font-size: .65rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.vehicle-console__head strong, .vehicle-console__head b { color: #eef5ff; font-family: inherit; }
.vehicle-console__head span:last-child { display: inline-flex; gap: 8px; align-items: center; }
.vehicle-console__head span:last-child::before { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px rgba(250,92,8,.14); content: ""; }
.vehicle-map { position: relative; min-height: 345px; margin: 12px 0 8px; display: grid; place-items: center; }
.vehicle-map__core { position: relative; z-index: 3; width: 112px; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.44); border-radius: 50%; background: radial-gradient(circle at 38% 30%, rgba(255,255,255,.12), transparent 30%), var(--navy-900); color: var(--white); font-family: var(--display); font-size: 1.8rem; font-weight: 900; letter-spacing: -.04em; text-align: center; box-shadow: 0 0 0 11px rgba(250,92,8,.08), 0 0 46px rgba(250,92,8,.2); }
.vehicle-map__core::after { position: absolute; right: 5px; top: 8px; width: 8px; height: 8px; border: 2px solid var(--navy-900); border-radius: 50%; background: var(--orange); content: ""; }
.vehicle-map__orbit { position: absolute; z-index: 1; inset: 50%; width: min(330px,82%); aspect-ratio: 1; border: 1px dashed rgba(155,183,229,.3); border-radius: 50%; transform: translate(-50%,-50%); box-shadow: 0 0 0 44px rgba(155,183,229,.055), 0 0 0 88px rgba(155,183,229,.03); animation: console-orbit 32s linear infinite; }
.vehicle-map__orbit::before, .vehicle-map__orbit::after { position: absolute; width: 10px; height: 10px; border: 2px solid var(--orange); border-radius: 50%; background: var(--navy-900); content: ""; }
.vehicle-map__orbit::before { left: 12%; top: 12%; }
.vehicle-map__orbit::after { right: 8%; bottom: 19%; }
.system-node { position: absolute; z-index: 4; min-height: 38px; padding: 8px 11px 8px 25px; display: inline-flex; gap: 5px; align-items: center; border: 1px solid rgba(155,183,229,.24); border-radius: 999px; background: rgba(3,17,45,.82); color: #d9e5f5; font-family: var(--mono); font-size: .62rem; font-weight: 700; letter-spacing: .055em; line-height: 1.15; text-transform: uppercase; box-shadow: 0 12px 24px rgba(0,0,0,.18); transition: border-color var(--fast), background var(--fast), color var(--fast), transform var(--smooth); }
.system-node::before { position: absolute; left: 10px; width: 7px; height: 7px; border-radius: 50%; background: var(--blue-300); content: ""; box-shadow: 0 0 0 4px rgba(155,183,229,.1); }
a.system-node { text-decoration: none; }
.system-node:hover, .system-node:focus-visible { border-color: rgba(250,92,8,.68); background: var(--navy-950); color: var(--white); transform: translateY(-3px); }
.system-node:hover::before, .system-node:focus-visible::before { background: var(--orange); box-shadow: 0 0 0 5px rgba(250,92,8,.14); }
.system-node--lost { left: 50%; top: 1%; white-space: nowrap; transform: translateX(-50%); }
.system-node--lost b::after { content: " /"; }
.system-node--keys { left: 2%; top: 20%; }
.system-node--access { right: 2%; top: 20%; }
.system-node--diag { left: 2%; bottom: 18%; }
.system-node--ecu { right: 2%; bottom: 18%; }
.system-node--mercedes { left: 50%; bottom: 1%; transform: translateX(-50%); }
.system-node--lost:hover, .system-node--lost:focus-visible, .system-node--mercedes:hover, .system-node--mercedes:focus-visible { transform: translate(-50%,-3px); }
.vehicle-console__status { position: relative; z-index: 4; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.08); }
.vehicle-console__status > * { min-width: 0; padding: 13px 12px; border-right: 1px solid rgba(255,255,255,.1); color: #91a9ca; font-family: var(--mono); font-size: .61rem; line-height: 1.35; }
.vehicle-console__status > *:last-child { border-right: 0; }
.vehicle-console__status strong, .vehicle-console__status b, .vehicle-console__status span { display: block; margin-bottom: 3px; overflow-wrap: anywhere; color: #f3f7fd; font-family: inherit; font-size: .67rem; }

.audience-bar { position: relative; z-index: 3; border-bottom: 1px solid var(--line); background: var(--white); box-shadow: 0 18px 50px rgba(3,17,45,.06); }
.audience-bar__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.audience-bar__grid > * { position: relative; min-height: 116px; padding: 24px 28px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: background var(--fast), transform var(--smooth); }
.audience-bar__grid > *:first-child { border-left: 1px solid var(--line); }
.audience-bar__grid > *::before { position: absolute; left: 28px; top: 19px; width: 20px; height: 2px; background: var(--orange); content: ""; transition: width var(--smooth); }
.audience-bar__grid > *:hover, .audience-bar__grid > *:focus-within { z-index: 1; background: var(--blue-75); transform: translateY(-3px); }
.audience-bar__grid > *:hover::before, .audience-bar__grid > *:focus-within::before { width: 52px; }
.audience-bar__grid span { color: var(--orange-dark); font-family: var(--mono); font-size: .63rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.audience-bar__grid strong, .audience-bar__grid h2, .audience-bar__grid h3 { margin-top: 7px; color: var(--navy-900); font-family: var(--display); font-size: 1.2rem; font-weight: 900; letter-spacing: -.02em; }
.audience-bar__grid p { margin-top: 5px; color: var(--ink-70); font-size: .8rem; line-height: 1.45; }

.service-families { display: grid; gap: clamp(28px,4vw,46px); }
.service-family { position: relative; padding: clamp(24px,4vw,46px); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(237,243,252,.7)); box-shadow: 0 20px 64px rgba(3,17,45,.07); }
.service-family::after { position: absolute; right: -120px; top: -150px; width: 320px; aspect-ratio: 1; border: 1px solid rgba(5,49,136,.08); border-radius: 50%; content: ""; box-shadow: 0 0 0 48px rgba(5,49,136,.022), 0 0 0 96px rgba(5,49,136,.015); pointer-events: none; }
.service-family:nth-child(even) { background: linear-gradient(145deg, rgba(244,242,235,.96), rgba(255,255,255,.98)); }
.service-family__head { position: relative; z-index: 1; margin-bottom: 26px; padding-bottom: 22px; display: grid; grid-template-columns: minmax(0,1fr) minmax(220px,.55fr); gap: 32px; align-items: end; border-bottom: 1px solid var(--line); }
.service-family__head h2, .service-family__head h3 { max-width: 13ch; font-size: clamp(2rem,3.5vw,3.55rem); }
.service-family__head > p { max-width: 52ch; color: var(--ink-70); font-size: .92rem; }
.service-family__head > span { color: var(--orange-dark); font-family: var(--mono); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.service-bento--wide { position: relative; z-index: 1; grid-template-columns: repeat(auto-fit,minmax(min(100%,250px),1fr)); }
.service-bento--wide .service-card, .service-bento--wide .service-card:nth-child(1), .service-bento--wide .service-card--1, .service-bento--wide .service-card--2, .service-bento--wide .service-card--3, .service-bento--wide .service-card--4, .service-bento--wide .service-card:nth-child(5), .service-bento--wide .service-card:nth-child(6), .service-bento--wide .service-card:nth-child(7) { min-height: 290px; grid-column: auto; }

.expertise-stage { position: relative; padding: clamp(76px,8vw,124px) 0; overflow: hidden; background-color: var(--navy-950); background-image: linear-gradient(rgba(155,183,229,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(155,183,229,.055) 1px, transparent 1px), radial-gradient(circle at 78% 16%, rgba(21,75,168,.42), transparent 32%); background-size: 34px 34px, 34px 34px, auto; color: var(--white); }
.expertise-stage::after { position: absolute; left: -180px; bottom: -280px; width: 620px; aspect-ratio: 1; border: 1px solid rgba(250,92,8,.13); border-radius: 50%; content: ""; box-shadow: 0 0 0 70px rgba(250,92,8,.025), 0 0 0 140px rgba(250,92,8,.018); }
.expertise-stage h2, .expertise-stage h3 { color: var(--white); }
.expertise-stage .section-lead { color: #b9c9df; }
.expertise-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.expertise-grid > .section-heading, .expertise-grid > header { grid-column: 1 / -1; }
.expertise-card { position: relative; min-height: 400px; padding: clamp(28px,4vw,42px); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(155,183,229,.2); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); transition: border-color var(--fast), transform var(--smooth), background var(--smooth), box-shadow var(--smooth); }
.expertise-card::after { position: absolute; right: -20px; bottom: -45px; color: rgba(255,255,255,.055); font-family: var(--display); font-size: clamp(8rem,17vw,14rem); font-weight: 900; letter-spacing: -.1em; line-height: .8; pointer-events: none; }
.expertise-card--ecu::after { content: "ECU"; }
.expertise-card--mercedes::after { content: "MB"; }
.expertise-card--ecu { background: linear-gradient(145deg, rgba(21,75,168,.24), rgba(255,255,255,.025)); }
.expertise-card--mercedes { background: linear-gradient(145deg, rgba(250,92,8,.08), rgba(255,255,255,.025)); }
.expertise-card:hover { border-color: rgba(250,92,8,.55); transform: translateY(-6px); background-color: rgba(255,255,255,.035); box-shadow: 0 30px 80px rgba(0,0,0,.22); }
.expertise-card > span { position: relative; z-index: 1; color: #ff9560; font-family: var(--mono); font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.expertise-card h2, .expertise-card h3 { position: relative; z-index: 1; max-width: 12ch; margin-top: auto; font-size: clamp(2.35rem,4vw,4rem); }
.expertise-card p { position: relative; z-index: 1; max-width: 55ch; margin-top: 18px; color: #bdcce1; }
.expertise-card .text-link, .expertise-card .button { position: relative; z-index: 1; align-self: flex-start; margin-top: 22px; color: var(--white); }

.service-hero::before { position: absolute; inset: 0; content: ""; background: radial-gradient(circle at 78% 42%, rgba(21,75,168,.38), transparent 30%), linear-gradient(110deg, rgba(3,17,45,.15), rgba(3,17,45,.62)); pointer-events: none; }
.service-hero .button-row > a:not(.button) { transition: border-color var(--fast), background var(--fast), transform var(--fast); }
.service-hero .button-row > a:not(.button):hover { border-color: rgba(255,255,255,.72); background: rgba(255,255,255,.08); transform: translateY(-2px); }
.service-hero__visual { position: relative; min-height: 420px; padding: 22px; overflow: hidden; border: 1px solid rgba(155,183,229,.22); border-radius: var(--radius-lg); background: linear-gradient(150deg, rgba(21,75,168,.22), rgba(3,17,45,.68)); box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 34px 80px rgba(0,0,0,.22); }
.service-hero__visual::before { position: absolute; inset: 0; content: ""; background-image: linear-gradient(rgba(155,183,229,.065) 1px, transparent 1px), linear-gradient(90deg, rgba(155,183,229,.065) 1px, transparent 1px); background-size: 26px 26px; }
.service-hero__visual-code { position: relative; z-index: 2; color: #9eb4d4; font-family: var(--mono); font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.service-hero__visual-orbit { position: absolute; z-index: 1; inset: 50%; width: min(255px,68%); aspect-ratio: 1; border: 1px dashed rgba(155,183,229,.34); border-radius: 50%; transform: translate(-50%,-50%); box-shadow: 0 0 0 42px rgba(155,183,229,.045), 0 0 0 84px rgba(155,183,229,.025); animation: console-orbit 28s linear infinite reverse; }
.service-hero__visual-orbit::before { position: absolute; inset: 27%; display: grid; place-items: center; border: 1px solid rgba(250,92,8,.58); border-radius: 50%; background: var(--navy-900); color: var(--white); content: "MG"; font-family: var(--display); font-size: 1.75rem; font-weight: 900; box-shadow: 0 0 32px rgba(250,92,8,.16); }
.service-hero__visual-orbit::after { position: absolute; right: 10%; top: 14%; width: 11px; height: 11px; border: 2px solid var(--orange); border-radius: 50%; background: var(--navy-900); content: ""; }
.service-hero__visual-status { position: absolute; z-index: 2; right: 22px; bottom: 22px; left: 22px; min-height: 64px; padding: 13px 15px; display: flex; justify-content: space-between; gap: 16px; align-items: center; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.08); color: #a6bad7; font-family: var(--mono); font-size: .64rem; letter-spacing: .045em; }
.service-hero__visual-status strong, .service-hero__visual-status b { color: #f0f5fc; font-family: inherit; }

.symptom-section { position: relative; overflow: hidden; background-color: var(--blue-75); background-image: linear-gradient(rgba(5,49,136,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(5,49,136,.045) 1px, transparent 1px); background-size: 30px 30px; }
.symptom-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.symptom-card { position: relative; min-height: 205px; padding: 25px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(5,49,136,.16); border-radius: var(--radius); background: rgba(255,255,255,.88); box-shadow: inset 0 1px 0 var(--white); transition: border-color var(--fast), transform var(--smooth), box-shadow var(--smooth); }
.symptom-card::before { width: 34px; height: 3px; margin-bottom: 34px; background: linear-gradient(90deg, var(--orange) 0 38%, var(--blue-700) 38%); content: ""; transition: width var(--smooth); }
.symptom-card:hover { border-color: rgba(250,92,8,.55); transform: translateY(-4px); box-shadow: 0 20px 48px rgba(3,17,45,.1); }
.symptom-card:hover::before { width: 64px; }
.symptom-card > span { color: var(--orange-dark); font-family: var(--mono); font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.symptom-card h2, .symptom-card h3, .symptom-card strong { margin-top: auto; color: var(--navy-900); font-family: var(--display); font-size: 1.5rem; font-weight: 900; letter-spacing: -.025em; line-height: 1.05; }
.symptom-card p { margin-top: 10px; color: var(--ink-70); font-size: .86rem; line-height: 1.5; }

.service-mode { position: relative; }
.service-mode__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.service-mode__grid > * { min-height: 210px; padding: 25px; display: flex; flex-direction: column; border: 1px solid var(--line); border-top: 3px solid var(--blue-700); border-radius: 0 0 var(--radius) var(--radius); background: var(--white); transition: border-color var(--fast), transform var(--smooth), box-shadow var(--smooth); }
.service-mode__grid > *:hover { border-top-color: var(--orange); transform: translateY(-4px); box-shadow: 0 18px 46px rgba(3,17,45,.1); }
.service-mode__grid span { color: var(--orange-dark); font-family: var(--mono); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.service-mode__grid h2, .service-mode__grid h3, .service-mode__grid strong { margin-top: auto; color: var(--navy-900); font-family: var(--display); font-size: 1.55rem; font-weight: 900; line-height: 1.05; }
.service-mode__grid p { margin-top: 10px; color: var(--ink-70); font-size: .86rem; }
.service-outcome { position: relative; margin-top: clamp(28px,4vw,48px); padding: clamp(28px,5vw,54px); overflow: hidden; border-radius: var(--radius-lg); background: radial-gradient(circle at 88% 20%, rgba(21,75,168,.46), transparent 30%), var(--navy-900); color: var(--white); box-shadow: var(--shadow); }
.service-outcome::after { position: absolute; right: -70px; bottom: -90px; width: 250px; aspect-ratio: 1; border: 1px dashed rgba(255,255,255,.15); border-radius: 50%; content: ""; box-shadow: 0 0 0 38px rgba(255,255,255,.025), 0 0 0 76px rgba(255,255,255,.018); }
.service-outcome > * { position: relative; z-index: 1; }
.service-outcome h2, .service-outcome h3 { max-width: 14ch; color: var(--white); }
.service-outcome p { max-width: 62ch; margin-top: 18px; color: #bdcce1; }
.service-outcome ul { margin-top: 22px; padding-left: 20px; color: #d6e1f0; }
.service-facts { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 9px; }
.fact-chip { min-height: 44px; padding: 9px 13px; display: inline-flex; gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--ink-70); font-size: .78rem; line-height: 1.25; }
.fact-chip::before { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgba(250,92,8,.1); content: ""; }
.fact-chip strong, .fact-chip b { color: var(--navy-900); font-family: var(--mono); font-size: .68rem; }
.section--night .fact-chip, .service-outcome .fact-chip { border-color: rgba(255,255,255,.15); background: rgba(255,255,255,.055); color: #c4d2e6; }
.section--night .fact-chip strong, .section--night .fact-chip b, .service-outcome .fact-chip strong, .service-outcome .fact-chip b { color: var(--white); }

.service-directory--grouped { display: grid; grid-template-columns: 1fr; gap: 30px; }
.service-directory__group { padding: clamp(22px,4vw,38px); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255,255,255,.68); }
.service-directory__group > header, .service-directory__group > .service-family__head, .service-directory__group > h2, .service-directory__group > h3, .service-directory__group > p, .service-directory__group > .service-directory { grid-column: 1 / -1; }
.service-directory__group > header { margin-bottom: 6px; padding-bottom: 20px; display: flex; justify-content: space-between; gap: 28px; align-items: end; border-bottom: 1px solid var(--line); }
.service-directory__group > header h2, .service-directory__group > h2 { max-width: 14ch; font-size: clamp(2rem,3.5vw,3.5rem); }
.service-directory__group > header p { max-width: 50ch; color: var(--ink-70); font-size: .9rem; }
.service-directory__group > article { min-width: 0; }

.contact-socials { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 9px; }
.contact-socials a { min-height: 46px; padding: 10px 14px; display: inline-flex; gap: 9px; align-items: center; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--blue-700); font-family: var(--mono); font-size: .7rem; font-weight: 700; text-decoration: none; transition: border-color var(--fast), background var(--fast), color var(--fast), transform var(--fast); }
.contact-socials a::before { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); content: ""; box-shadow: 0 0 0 4px rgba(250,92,8,.1); }
.contact-socials a:hover, .contact-socials a:focus-visible { border-color: var(--navy-900); background: var(--navy-900); color: var(--white); transform: translateY(-2px); }

.professional-capabilities { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.professional-capabilities li { border-bottom: 1px solid var(--line); }
.professional-capabilities a { padding: 17px 4px; display: grid; grid-template-columns: minmax(150px,.8fr) 1.2fr; gap: 20px; color: var(--ink); text-decoration: none; transition: color var(--fast), padding var(--fast); }
.professional-capabilities b { color: var(--blue-700); }
.professional-capabilities span { color: var(--muted); }
.professional-capabilities a:hover, .professional-capabilities a:focus-visible { padding-left: 12px; color: var(--orange-700); }

.redirect-page { min-height: 100vh; display: grid; place-items: center; padding: 48px 0; background: radial-gradient(circle at 80% 10%,rgba(19,82,153,.3),transparent 38%),var(--navy-950); color: var(--white); }
.redirect-page .shell { max-width: 780px; }
.redirect-page h1 { max-width: 720px; margin: 12px 0 18px; color: var(--white); font-size: clamp(2.7rem,7vw,5.8rem); }
.redirect-page p:not(.kicker) { max-width: 620px; margin-bottom: 28px; color: #c9d6e9; font-size: 1.08rem; }

.faq-list summary:hover span { border-color: rgba(250,92,8,.55); background: var(--orange-soft); }
.faq-list details[open] summary:hover span { background: var(--navy-900); }

.final-cta { padding: clamp(66px,8vw,110px) 0; background: var(--navy-800); color: var(--white); }
.final-cta__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(44px,8vw,110px); align-items: center; }
.final-cta h2 { max-width: 14ch; color: var(--white); }
.final-cta__grid > div:last-child > p { max-width: 54ch; margin-bottom: 24px; color: #bdcce3; }
.final-cta .button-row > a:not(.button) { min-height: 52px; padding: 13px 20px; display: inline-flex; align-items: center; border: 1px solid rgba(255,255,255,.34); border-radius: var(--radius-sm); color: var(--white); font-family: var(--display); font-weight: 900; text-decoration: none; }
.site-footer { padding: 70px 0 32px; background: var(--navy-950); color: #9fb1cd; }
.footer-grid { display: grid; grid-template-columns: 1.6fr repeat(3,1fr); gap: 48px; }
.footer-grid h2 { margin-bottom: 18px; color: var(--white); font-size: .85rem; font-family: var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; }
.footer-grid a { min-height: 40px; display: inline-flex; align-items: center; color: #b5c4dc; font-size: .88rem; text-decoration: none; }
.footer-grid a:hover { color: var(--white); }
.footer-brand .wordmark__name { color: var(--white); font-size: 2rem; }
.footer-brand > p:last-child { max-width: 34ch; margin-top: 18px; font-size: .88rem; }
.footer-grid > div:last-child p { margin-top: 8px; font-size: .8rem; }
.footer-legal { margin-top: 54px; padding-top: 24px; display: flex; justify-content: space-between; gap: 24px; border-top: 1px solid rgba(255,255,255,.12); font-size: .72rem; }
.footer-legal div { display: flex; flex-wrap: wrap; gap: 20px; }
.footer-legal a { color: #aebdd4; }
.mobile-dock { display: none; }

.not-found { min-height: 72vh; padding: 110px 0; display: grid; align-items: center; background: var(--navy-900); color: var(--white); }
.not-found span { color: var(--orange); font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; }
.not-found h1 { max-width: 12ch; margin-top: 18px; color: var(--white); }
.not-found p { max-width: 50ch; margin: 26px 0; color: #bac9df; }

[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity 560ms ease, transform 560ms ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }

@keyframes panel-scan { 0%,45% { transform: translateX(-120%); } 70%,100% { transform: translateX(120%); } }
@keyframes ring-rotate { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes result-pulse { 0% { box-shadow: 0 0 0 0 rgba(250,92,8,.35), var(--shadow); } 100% { box-shadow: 0 0 0 18px rgba(250,92,8,0), var(--shadow); } }
@keyframes console-scan { 0% { top: 16%; opacity: 0; } 18% { opacity: .75; } 82% { opacity: .45; } 100% { top: 83%; opacity: 0; } }
@keyframes console-orbit { to { transform: translate(-50%,-50%) rotate(360deg); } }

@media (max-width: 1100px) {
  :root { --shell: min(100% - 32px, 1040px); }
  .js .menu-toggle { display: block; }
  .site-nav { position: absolute; inset: 100% 0 auto; max-height: calc(100dvh - 84px); padding: 26px max(20px, calc((100% - var(--shell))/2)); display: grid; gap: 4px; overflow-y: auto; border-top: 1px solid var(--line); background: var(--white); box-shadow: 0 28px 50px rgba(3,17,45,.16); opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity var(--fast), transform var(--fast), visibility var(--fast); }
  .site-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  html:not(.js) .site-header__inner { flex-wrap: wrap; padding-bottom: 14px; }
  html:not(.js) .site-nav { position: static; inset: auto; width: 100%; max-height: none; margin: 0; padding: 10px 0 0; overflow: visible; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .site-nav > a:not(.button) { min-height: 52px; border-bottom: 1px solid var(--line); font-size: 1.1rem; }
  .site-nav > a:not(.button)::after { display: none; }
  .site-nav .button { margin-top: 10px; }
  .hero-home__grid { grid-template-columns: 1.05fr .95fr; gap: 38px; }
  .hero-home--v2 .hero-home__grid { grid-template-columns: minmax(0,1fr) minmax(390px,.9fr); gap: 34px; }
  .hero-home--v2 .hero-copy h1 { max-width: 14.5ch; font-size: clamp(3.55rem,5.8vw,5.1rem); }
  .vehicle-console { min-height: 485px; }
  .audience-bar__grid > * { padding-inline: 22px; }
  .audience-bar__grid > *::before { left: 22px; }
  .trust-grid { grid-template-columns: repeat(2,1fr); }
  .trust-grid article:nth-child(3) { border-left: 1px solid var(--line); }
  .trust-grid article { border-bottom: 1px solid var(--line); }
  .service-card--1, .service-card--2, .service-card--3, .service-card--4 { grid-column: span 6; }
  .service-card:nth-child(5), .service-card:nth-child(6), .service-card:nth-child(7) { grid-column: span 4; }
  .service-bento--wide .service-card, .service-bento--wide .service-card:nth-child(1), .service-bento--wide .service-card--1, .service-bento--wide .service-card--2, .service-bento--wide .service-card--3, .service-bento--wide .service-card--4, .service-bento--wide .service-card:nth-child(5), .service-bento--wide .service-card:nth-child(6), .service-bento--wide .service-card:nth-child(7) { grid-column: auto; }
  .expertise-card { min-height: 370px; }
  .service-hero__visual { min-height: 390px; }
  .coverage-teaser__grid, .prices-teaser__grid { grid-template-columns: 1fr; }
  .coverage-teaser h2, .prices-teaser h2 { max-width: 15ch; }
  .prices-teaser__grid > div:first-child { display: grid; grid-template-columns: 1fr 1fr; gap: 0 34px; }
  .prices-teaser__grid > div:first-child .kicker, .prices-teaser__grid > div:first-child h2 { grid-column: 1 / -1; }
  .footer-grid { grid-template-columns: 1.5fr repeat(2,1fr); }
  .footer-grid > div:last-child { grid-column: 2; }
}

@media (max-width: 860px) {
  :root { --shell: min(100% - 28px, 760px); }
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .utility-bar__inner > p { max-width: 32ch; }
  .utility-bar__inner div span { display: none; }
  .site-header__inner { min-height: 76px; }
  .site-nav { max-height: calc(100dvh - 76px); }
  .hero-home { padding-top: 70px; }
  .hero-home__grid, .finder-grid, .page-hero__grid, .service-hero__grid, .detail-grid, .coverage-page-grid, .form-layout, .contact-grid, .founder-grid, .final-cta__grid, .notice-grid, .split-content { grid-template-columns: 1fr; }
  .hero-home--v2 { min-height: 0; padding-top: 72px; }
  .hero-home--v2 .hero-home__grid { grid-template-columns: 1fr; }
  .hero-home--v2 .hero-copy h1 { max-width: 13.5ch; font-size: clamp(3.5rem,9vw,5rem); }
  .hero-copy h1 { font-size: clamp(3.4rem,12vw,5.3rem); }
  .signal-panel { min-height: 400px; }
  .vehicle-console { width: min(100%,620px); min-height: 500px; margin-inline: auto; }
  .vehicle-map { min-height: 340px; }
  .hero-ruler { margin-top: 48px; }
  .finder-result, .needs-card, .form-layout > div:first-child, .legal-document > aside { position: static; }
  .section-heading { grid-template-columns: 1fr; align-items: start; }
  .section-heading .text-link { justify-self: start; }
  .method-track { grid-template-columns: 1fr; gap: 0; }
  .method-track::before { left: 31px; right: auto; top: 32px; bottom: 32px; width: 2px; height: auto; background: linear-gradient(var(--orange), var(--blue-700)); }
  .method-track li, .method-track li:first-child, .method-track li:last-child { min-height: 132px; padding: 0 0 30px 90px; }
  .method-track span { position: absolute; left: 0; top: 0; }
  .method-track h3 { margin-top: 0; padding-top: 8px; }
  .partner-teaser__grid { grid-template-columns: 1fr; }
  .big-code { font-size: 9rem; }
  .audience-bar__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .audience-bar__grid > *:nth-child(3) { grid-column: 1 / -1; border-left: 1px solid var(--line); }
  .service-family__head { grid-template-columns: 1fr; gap: 12px; align-items: start; }
  .service-bento--wide { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .expertise-grid { grid-template-columns: 1fr; }
  .expertise-card { min-height: 340px; }
  .service-hero__visual { width: min(100%,560px); min-height: 420px; }
  .symptom-grid, .service-mode__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-directory__group { grid-template-columns: 1fr; }
  .service-directory__group > header, .service-directory__group > .service-family__head, .service-directory__group > h2, .service-directory__group > h3, .service-directory__group > p, .service-directory__group > .service-directory { grid-column: 1; }
  .service-directory, .service-steps, .value-grid { grid-template-columns: 1fr; }
  .service-directory article, .service-steps li, .value-grid article { min-height: 260px; }
  .page-hero__index { max-width: 330px; }
  .service-hero aside { max-width: 440px; }
  .founder-grid { align-items: start; }
  .founder-visual { min-height: 420px; }
  .legal-document { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(2,1fr); }
  .footer-brand { grid-column: 1 / -1; }
  .footer-grid > div:last-child { grid-column: auto; }
  .mobile-dock { position: fixed; z-index: 90; right: 0; bottom: 0; left: 0; min-height: calc(64px + env(safe-area-inset-bottom)); padding: 7px 10px calc(7px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; border-top: 1px solid var(--line); background: rgba(255,255,255,.96); box-shadow: 0 -14px 36px rgba(3,17,45,.13); backdrop-filter: blur(16px); }
  .mobile-dock a { min-height: 50px; display: flex; flex-direction: column; justify-content: center; align-items: center; border-radius: var(--radius-sm); background: var(--navy-900); color: var(--white); font-size: .7rem; line-height: 1.25; text-decoration: none; }
  .mobile-dock a:last-child { background: var(--orange); color: var(--navy-950); }
  .mobile-dock b { font-family: var(--display); font-size: .9rem; }
  body.form-focused .mobile-dock { display: none; }
}

@media (max-width: 640px) {
  .professional-capabilities a { grid-template-columns: 1fr; gap: 6px; }
  :root { --shell: min(100% - 24px, 560px); }
  h1 { font-size: clamp(3rem,14vw,4.15rem); }
  h2 { font-size: clamp(2.1rem,10vw,3.2rem); }
  .utility-bar { display: none; }
  .site-header__inner { min-height: 72px; }
  .site-nav { max-height: calc(100dvh - 72px); }
  .wordmark__line { display: none; }
  .hero-home { padding-top: 58px; }
  .hero-home--v2 { padding-top: 58px; }
  .hero-copy h1 { font-size: clamp(3.15rem,15vw,4.2rem); }
  .hero-home--v2 .hero-copy h1 { font-size: clamp(3.05rem,14.7vw,4.25rem); }
  .hero-lead { margin-top: 22px; }
  .button-row .button, .button-row > a:not(.button), .button-row > button { width: 100%; }
  .hero-ruler { grid-template-columns: auto 1fr auto; }
  .hero-ruler span:last-child, .hero-ruler i:nth-of-type(2) { display: none; }
  .signal-panel { min-height: 320px; padding: 17px; }
  .vehicle-console { min-height: 445px; padding: 16px; border-radius: 22px; }
  .vehicle-console__head { align-items: flex-start; font-size: .58rem; }
  .vehicle-map { min-height: 300px; margin-top: 6px; }
  .vehicle-map__core { width: 94px; font-size: 1.45rem; }
  .vehicle-map__orbit { width: min(245px,76%); box-shadow: 0 0 0 34px rgba(155,183,229,.045), 0 0 0 68px rgba(155,183,229,.025); }
  .system-node { min-height: 34px; padding: 7px 9px 7px 22px; font-size: .55rem; }
  .system-node::before { left: 8px; width: 6px; height: 6px; }
  .system-node--lost { top: 0; }
  .system-node--keys, .system-node--access { top: 18%; }
  .system-node--keys, .system-node--diag { left: 0; }
  .system-node--access, .system-node--ecu { right: 0; }
  .system-node--diag, .system-node--ecu { bottom: 20%; }
  .system-node--mercedes { bottom: 0; }
  .vehicle-console__status > * { padding: 10px 8px; font-size: .55rem; }
  .vehicle-console__status strong, .vehicle-console__status b, .vehicle-console__status span { font-size: .6rem; }
  .signal-field { width: 190px; margin: 22px auto 16px; }
  .signal-panel > p { display: none; }
  .trust-grid { grid-template-columns: repeat(2,1fr); }
  .trust-grid article, .trust-grid article:first-child, .trust-grid article:nth-child(3) { min-height: 112px; border-left: 1px solid var(--line); }
  .availability-grid { grid-template-columns: 1fr; }
  .availability-grid article, .availability-grid article:first-child { min-height: 104px; border-right: 1px solid rgba(147,182,232,.16); border-bottom: 1px solid rgba(147,182,232,.16); border-left: 1px solid rgba(147,182,232,.16); }
  .audience-bar__grid { grid-template-columns: 1fr; }
  .audience-bar__grid > *, .audience-bar__grid > *:first-child, .audience-bar__grid > *:nth-child(3) { min-height: 102px; grid-column: 1; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); }
  .section { padding: 60px 0; }
  .finder-options { display: grid; grid-template-columns: 1fr; }
  .finder-options button { border-radius: var(--radius-sm); text-align: left; }
  .finder-result { min-height: 350px; }
  .service-bento { grid-template-columns: 1fr; }
  .service-card, .service-card:nth-child(1), .service-card--1, .service-card--2, .service-card--3, .service-card--4, .service-card:nth-child(5), .service-card:nth-child(6), .service-card:nth-child(7) { min-height: 230px; grid-column: 1; }
  .service-family { padding: 20px; border-radius: 20px; }
  .service-bento--wide { grid-template-columns: 1fr; }
  .service-bento--wide .service-card, .service-bento--wide .service-card:nth-child(1), .service-bento--wide .service-card--1, .service-bento--wide .service-card--2, .service-bento--wide .service-card--3, .service-bento--wide .service-card--4, .service-bento--wide .service-card:nth-child(5), .service-bento--wide .service-card:nth-child(6), .service-bento--wide .service-card:nth-child(7) { min-height: 230px; grid-column: 1; }
  .expertise-stage { padding: 66px 0; }
  .expertise-card { min-height: 310px; padding: 24px; }
  .expertise-card::after { font-size: 8rem; }
  .service-hero__visual { min-height: 360px; padding: 18px; }
  .service-hero__visual-orbit { width: min(215px,66%); box-shadow: 0 0 0 32px rgba(155,183,229,.04), 0 0 0 64px rgba(155,183,229,.022); }
  .service-hero__visual-status { right: 18px; bottom: 18px; left: 18px; padding-inline: 10px; font-size: .57rem; }
  .symptom-grid, .service-mode__grid { grid-template-columns: 1fr; }
  .symptom-card, .service-mode__grid > * { min-height: 180px; }
  .service-outcome { border-radius: 20px; }
  .service-facts { display: grid; grid-template-columns: 1fr; }
  .fact-chip { width: 100%; border-radius: var(--radius-sm); }
  .service-directory__group { padding: 18px; }
  .service-directory__group > header { flex-direction: column; align-items: flex-start; }
  .contact-socials { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .contact-socials a { justify-content: center; border-radius: var(--radius-sm); }
  .corridor { padding: 28px 24px; }
  .corridor-line { left: 36px; right: auto; top: 10%; bottom: 14%; width: 2px; height: auto; }
  .corridor ol { grid-template-columns: 1fr; gap: 18px; }
  .corridor li { min-height: 58px; display: grid; grid-template-columns: 24px 54px 1fr; gap: 12px; align-items: center; text-align: left; }
  .corridor li::before, .corridor li.is-base::before { width: 15px; height: 15px; margin: 0; }
  .corridor li.is-base::before { background: var(--orange); }
  .corridor li span { margin: 0; }
  .corridor > p { margin-top: 22px; text-align: left; }
  .prices-teaser__grid > div:first-child { display: block; }
  .price-ledger li { align-items: flex-start; }
  .price-ledger li span { align-items: flex-start; }
  .price-ledger i { margin-top: 4px; }
  .partner-teaser__grid { gap: 28px; }
  .big-code { font-size: 7.5rem; }
  .founder-visual { min-height: 340px; }
  .faq-list summary { font-size: 1.05rem; }
  .faq-list details > p { padding-right: 0; }
  .page-hero, .service-hero { padding: 68px 0; }
  .page-hero h1, .service-hero h1 { font-size: clamp(3rem,14vw,4.1rem); }
  .service-directory article { grid-template-columns: 34px 1fr; gap: 12px; padding: 22px; }
  .service-hero aside { padding: 24px; }
  .check-list li { align-items: flex-start; }
  .needs-card { padding: 26px; }
  .related-grid, .related-service-list, .definition-grid, .form-grid { grid-template-columns: 1fr; }
  .related-service-list { column-gap: 0; }
  .related-service-link { min-height: 58px; }
  .field--full { grid-column: auto; }
  .price-row { grid-template-columns: 34px 1fr; gap: 12px; }
  .price-row strong { grid-column: 2; }
  .price-formula { grid-template-columns: 1fr; gap: 10px; }
  .method-long li { grid-template-columns: 70px 1fr; }
  .method-long li > span { font-size: 3.2rem; }
  .input-action { grid-template-columns: 1fr; }
  .input-action .button { width: 100%; }
  .choice-row { display: grid; grid-template-columns: repeat(2,1fr); }
  .lead-form { padding: 22px 16px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand, .footer-grid > div:last-child { grid-column: auto; }
  .footer-legal { flex-direction: column; }
  .final-cta { text-align: left; }
}

@media (max-width: 390px) {
  .signal-panel__top { flex-direction: column; gap: 6px; }
  .signal-field { width: 175px; }
  .signal-metrics dd { font-size: .66rem; }
  .service-card, .service-directory article { min-width: 0; }
  .vehicle-console { min-height: 420px; }
  .vehicle-console__head { flex-direction: column; gap: 5px; }
  .vehicle-map { min-height: 282px; }
  .vehicle-map__orbit { width: 210px; }
  .system-node { max-width: 106px; white-space: normal; }
  .system-node--lost { max-width: none; white-space: nowrap; }
  .system-node--mercedes { bottom: 0; }
  .service-hero__visual { min-height: 335px; }
  .contact-socials { grid-template-columns: 1fr; }
}

@media (max-width: 350px) {
  .trust-grid { grid-template-columns: 1fr; }
}

@media (max-height: 560px) and (max-width: 860px) {
  body { padding-bottom: 0; }
  .mobile-dock { display: none; }
}


@media (max-width: 760px) {
  .mg-legal-page {
    width: min(100% - 28px, 940px);
    padding: 38px 0 70px;
    font-size: .95rem;
  }
  .mg-legal-page .mg-legal-header {
    padding: 24px 20px;
  }
  .mg-legal-page .mg-legal-header h1 {
    font-size: clamp(2.35rem, 11vw, 3.5rem);
  }
  .mg-legal-page > section {
    padding: 25px 0;
  }
  .mg-legal-page h2 {
    font-size: clamp(1.55rem, 7vw, 2rem);
  }
  .mg-legal-page h3 {
    font-size: 1.2rem;
  }
  .mg-legal-page table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .contact-info-block {
    margin-top: 34px;
    padding-top: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

@media print {
  .utility-bar, .site-header, .mobile-dock, .final-cta, .site-footer, .button-row { display: none !important; }
  body { padding: 0; color: #000; }
  .page-hero, .service-hero { padding: 28px 0; background: none; color: #000; }
  .page-hero h1, .service-hero h1 { color: #000; }
  .section { padding: 28px 0; }
  .mg-legal-page { width: 100%; padding: 0; font-size: 11pt; line-height: 1.5; }
  .mg-legal-page .mg-legal-header { padding: 0 0 18pt; border: 0; border-bottom: 1px solid #bbb; background: none; }
  .mg-legal-page h1, .mg-legal-page h2, .mg-legal-page h3 { color: #000; break-after: avoid; }
  .mg-legal-page p, .mg-legal-page li { color: #000; }
  .mg-legal-page > section { break-inside: avoid-page; }
}

/* V2 · 2026-08-08 · arquitectura comercial, SEO local y B2B */
.technical-proof { overflow: hidden; background: var(--white); }
.technical-proof__grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(520px,1.15fr); gap: clamp(42px,7vw,96px); align-items: start; }
.technical-proof__grid > div:first-child { position: sticky; top: 128px; }
.capability-matrix { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.capability-matrix article { min-height: 220px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: linear-gradient(145deg,#fff,#f9fbff); }
.capability-matrix span, .equipment-grid span, .case-template-grid span { color: var(--orange-dark); font-family: var(--mono); font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.capability-matrix h3, .equipment-grid h3 { margin-top: 16px; font-size: 1.6rem; }
.capability-matrix p, .equipment-grid p { margin-top: 12px; color: var(--ink-70); }

.specialization-grid { margin-top: 34px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.specialization-grid a { min-height: 112px; padding: 22px 24px; display: grid; grid-template-columns: 1fr auto; gap: 7px 20px; align-content: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.7); text-decoration: none; transition: background var(--fast), transform var(--fast); }
.specialization-grid a:hover { background: var(--white); transform: translateY(-2px); }
.specialization-grid span { grid-column: 1 / -1; color: var(--orange-dark); font-family: var(--mono); font-size: .66rem; letter-spacing: .08em; }
.specialization-grid strong { color: var(--navy-900); font-family: var(--display); font-size: 1.3rem; }
.specialization-grid i { color: var(--orange); font-style: normal; font-weight: 900; }

.service-hero--landing .service-hero__grid { align-items: stretch; }
.landing-console { min-height: 420px; }
.service-steps--compact { margin-top: 26px; display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--line); }
.service-steps--compact li { min-height: 92px; padding: 20px 0; display: grid; grid-template-columns: 56px 1fr; gap: 16px; align-items: start; border-bottom: 1px solid var(--line); }
.service-steps--compact li > span { color: var(--orange-dark); font-family: var(--mono); font-size: .72rem; }
.service-steps--compact p { color: var(--ink-70); }

.equipment-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.equipment-grid article { min-height: 260px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.76); }

.area-points { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--line); }
.area-points li { position: relative; min-height: 78px; padding: 22px 18px 22px 48px; border-bottom: 1px solid var(--line); color: var(--navy-900); font-weight: 750; }
.area-points li::before { position: absolute; left: 15px; top: 27px; width: 12px; height: 12px; border: 2px solid var(--orange); border-radius: 50%; content: ""; }
.corridor a { color: inherit; text-decoration: underline; text-decoration-color: rgba(250,92,8,.45); text-underline-offset: 3px; }

.professional-flow { grid-template-columns: repeat(3,minmax(0,1fr)); }
.professional-flow li { min-height: 240px; }

.case-template-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.case-template-grid article { min-height: 220px; padding: 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.case-template-grid h2 { margin-top: 18px; font-size: 2rem; }
.case-template-grid p { margin-top: 12px; color: var(--ink-70); }
.case-warning { margin-top: 34px; }

.form-result [data-send-whatsapp] { background: var(--orange); color: var(--navy-950); }
.form-result [data-send-whatsapp]:hover { background: #ff7130; }

@media (max-width: 1100px) {
  .technical-proof__grid { grid-template-columns: 1fr; }
  .technical-proof__grid > div:first-child { position: static; }
  .equipment-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .professional-flow { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 640px) {
  .capability-matrix, .specialization-grid, .equipment-grid, .case-template-grid, .professional-flow { grid-template-columns: 1fr; }
  .capability-matrix article, .equipment-grid article, .case-template-grid article { min-height: auto; }
  .specialization-grid a { min-height: 96px; }
  .professional-flow li { min-height: 190px; }
  .service-steps--compact li { grid-template-columns: 42px 1fr; }
}


/* ===== V3 · identidad real, fotografía y casos técnicos ===== */
.wordmark--official{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit;min-width:220px}
.wordmark--official img{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:12px;padding:3px;box-shadow:0 0 0 1px rgba(4,26,67,.08)}
.wordmark--official span{display:flex;flex-direction:column;line-height:1}
.wordmark--official strong{font-size:1.04rem;letter-spacing:.01em;color:var(--ink,#041a43)}
.wordmark--official small{font-size:.66rem;margin-top:.35rem;color:var(--muted,#5d6572);letter-spacing:.015em}
.footer-logo{display:block;width:148px;height:auto;background:#fff;border-radius:16px;padding:8px;margin-bottom:1rem}
.footer-cookie-link{font:inherit;color:inherit;background:none;border:0;padding:0;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

.visual-proof__grid,.brand-proof__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.brand-proof__grid{grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr)}
.brand-proof__grid>img{max-height:560px;width:auto;max-width:100%;margin-inline:auto;object-fit:contain;background:#fff;border-radius:28px;padding:22px;box-shadow:0 18px 60px rgba(4,26,67,.12)}
.photo-slot{margin:0}
.photo-slot__frame{min-height:340px;border:1px dashed rgba(4,26,67,.35);border-radius:24px;background:linear-gradient(145deg,#f7f9fc,#eef3f8);display:grid;place-items:center;position:relative;overflow:hidden}
.photo-slot--vertical .photo-slot__frame{min-height:500px;aspect-ratio:4/5}
.photo-slot__frame:before,.photo-slot__frame:after{content:"";position:absolute;background:rgba(250,92,8,.16)}
.photo-slot__frame:before{width:160%;height:1px;transform:rotate(24deg)}
.photo-slot__frame:after{height:160%;width:1px;transform:rotate(24deg)}
.photo-slot__frame img{width:110px;height:110px;object-fit:contain;opacity:.22;filter:grayscale(.4)}
.photo-slot__frame span{position:absolute;left:18px;bottom:16px;font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#041a43;background:#fff;padding:.55rem .7rem;border-radius:999px;box-shadow:0 4px 16px rgba(4,26,67,.08)}
.photo-slot figcaption{padding:.9rem .2rem 0}
.photo-slot figcaption strong{display:block;color:#041a43}
.photo-slot figcaption p{margin:.3rem 0 0;color:#636b78;font-size:.9rem}
.service-photo-section{padding-top:0}
.credential-list{display:grid;gap:.55rem;margin:1.2rem 0;padding:0;list-style:none}
.credential-list li{position:relative;padding-left:1.6rem}
.credential-list li:before{content:"✓";position:absolute;left:0;color:#fa5c08;font-weight:900}

.case-teaser__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.case-teaser__grid article{border:1px solid rgba(4,26,67,.12);border-radius:20px;padding:1.4rem;background:#fff}
.case-teaser__grid span,.reference-case header span{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#fa5c08}
.case-teaser__grid h3{font-size:1.12rem;margin:.55rem 0}
.case-teaser__grid p{font-size:.92rem;color:#636b78}
.case-teaser__grid a{font-weight:800;color:#041a43;text-decoration:none}
.reference-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.reference-case{background:#fff;border:1px solid rgba(4,26,67,.12);border-radius:24px;padding:clamp(1.3rem,3vw,2rem);box-shadow:0 12px 32px rgba(4,26,67,.05)}
.reference-case header{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(4,26,67,.08);padding-bottom:.8rem}
.reference-case header p{margin:0;font-size:.8rem;text-align:right;color:#646b76}
.reference-case h2{font-size:1.35rem;margin:1.2rem 0}
.reference-case dl{display:grid;gap:1rem}
.reference-case dt{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#041a43}
.reference-case dd{margin:.25rem 0 0;color:#5f6772}
.reference-source{font-size:.78rem;color:#69717d;border-top:1px solid rgba(4,26,67,.08);padding-top:1rem;margin-top:1.2rem}
.reference-source a{color:#041a43}
.integration-note{border-left:3px solid #fa5c08;padding-left:1rem;font-size:.9rem;color:#dce5f2}

.cookie-consent{position:fixed;z-index:9999;left:16px;right:16px;bottom:16px;max-width:720px;margin:auto;background:#fff;color:#041a43;border-radius:20px;box-shadow:0 20px 80px rgba(4,26,67,.28);border:1px solid rgba(4,26,67,.12);padding:1.2rem}
.cookie-consent[hidden]{display:none}
.cookie-consent h2{font-size:1.05rem;margin:0 0 .45rem}
.cookie-consent p{font-size:.88rem;margin:.2rem 0 .9rem;color:#58616d}
.cookie-consent__actions{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.cookie-consent__actions button{min-height:46px;border-radius:999px;font:inherit;font-weight:800;cursor:pointer;padding:.7rem 1rem}
.cookie-consent__accept,.cookie-consent__reject{border:2px solid #041a43}
.cookie-consent__accept{background:#041a43;color:#fff}
.cookie-consent__reject{background:#fff;color:#041a43}
.cookie-consent__more{display:inline-block;margin-top:.75rem;font-size:.82rem;color:#041a43}

@media (max-width:850px){
  .wordmark--official small{display:none}
  .wordmark--official{min-width:0}
  .visual-proof__grid,.brand-proof__grid{grid-template-columns:1fr}
  .case-teaser__grid,.reference-case-grid{grid-template-columns:1fr}
  .photo-slot__frame{min-height:260px}
}
@media (max-width:520px){
  .wordmark--official img{width:44px;height:44px}
  .wordmark--official strong{font-size:.92rem}
  .cookie-consent{left:10px;right:10px;bottom:10px}
  .cookie-consent__actions{grid-template-columns:1fr}
  .reference-case header{display:block}
  .reference-case header p{text-align:left;margin-top:.35rem}
}

/* Anti-spam honeypot: fuera del flujo visual y del teclado. */
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}

/* Complementos del HTML legal actualizado */
.mg-legal-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.mg-legal-table-wrap table {
  min-width: 680px;
}

.mg-legal-footer {
  margin-top: 18px;
  padding: 26px 0 0;
  border-top: 2px solid var(--navy-900);
  color: var(--ink-70);
}

.mg-legal-footer p {
  max-width: 78ch;
}

.mg-legal-footer p + p {
  margin-top: 10px;
}

@media (max-width: 760px) {
  .mg-legal-table-wrap {
    margin-inline: -2px;
  }

  .mg-legal-table-wrap table {
    min-width: 620px;
  }

  .mg-legal-footer {
    padding-top: 22px;
  }
}


/* ============================================================
   V4 · Tienda MG · componentes editoriales reutilizables
   ============================================================ */

.store-teaser {
  background: #f5f7f9;
}

.store-teaser__grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 2rem;
  align-items: stretch;
}

.store-teaser__product {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: .8rem;
  border-radius: 18px;
  background: #071c3d;
  color: #fff;
  box-shadow: 0 18px 45px rgba(4,26,67,.12);
}

.store-teaser__product > span,
.store-launch__visual > span,
.store-product-card__top span,
.store-category > span {
  color: #f47c20;
  font: 700 .74rem/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .12em;
}

.store-teaser__product strong {
  font-size: 1.45rem;
}

.store-teaser__product p {
  color: #c9d6e8;
}

.store-teaser__product div {
  margin-top: auto;
  display: flex;
  gap: .7rem;
  align-items: end;
}

.store-teaser__product b {
  color: #fff;
  font-size: 2rem;
}

.store-teaser__product small {
  max-width: 12rem;
  color: #aebbd0;
}

.store-category-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 1rem;
}

.store-category {
  padding: 1.4rem;
  border: 1px solid #d9e0e7;
  border-radius: 16px;
  background: #fff;
}

.store-category h2 {
  margin: .55rem 0;
  font-size: 1.15rem;
}

.store-category p {
  margin: 0;
  color: #526173;
}

.store-launch__grid {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 2.4rem;
  align-items: start;
}

.store-launch__visual {
  position: relative;
  min-height: 430px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 22px;
  background: linear-gradient(145deg,#061a3b,#0c356e);
  color: #fff;
}

.store-launch__visual::after {
  position: absolute;
  top: 50px;
  right: -60px;
  width: 260px;
  height: 260px;
  border: 1px solid rgba(244,124,32,.55);
  border-radius: 50%;
  content: "";
}

.store-launch__visual strong {
  margin: auto 0;
  color: #fff;
  font: 800 clamp(4rem,10vw,7rem)/.8 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: -.08em;
}

.store-launch__visual p {
  position: relative;
  z-index: 1;
  max-width: 28rem;
  color: #c9d6e8;
}

.store-launch__price {
  margin: 1.5rem 0;
  display: flex;
  gap: 1rem;
  align-items: flex-end;
}

.store-launch__price span {
  display: flex;
  gap: .7rem;
  align-items: baseline;
}

.store-launch__price del {
  color: #7d8794;
}

.store-launch__price b {
  color: #071c3d;
  font-size: 2rem;
}

.store-launch__price small {
  max-width: 30rem;
  color: #5a6675;
}

.store-product-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1rem;
}

.store-product-card {
  padding: 1.4rem;
  display: flex;
  flex-direction: column;
  gap: .8rem;
  border: 1px solid #dbe2e9;
  border-radius: 17px;
  background: #fff;
}

.store-product-card.is-launch {
  border-color: #f47c20;
  box-shadow: inset 0 4px 0 #f47c20;
}

.store-product-card__top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.store-product-card__top b {
  padding: .3rem .55rem;
  border-radius: 999px;
  background: #eef3f8;
  font-size: .82rem;
}

.store-product-card h3 {
  margin: 0;
  font-size: 1.15rem;
}

.store-product-card > p {
  margin: 0;
  color: #526173;
}

.store-product-card dl {
  margin: .3rem 0 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .65rem;
}

.store-product-card dl div {
  padding-top: .55rem;
  border-top: 1px solid #e7ebef;
}

.store-product-card dt {
  color: #748090;
  font-size: .72rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.store-product-card dd {
  margin: .15rem 0 0;
  font-weight: 650;
}

.store-product-card__status {
  margin-top: auto;
  padding: .35rem .65rem;
  align-self: flex-start;
  border-radius: 999px;
  background: #071c3d;
  color: #fff;
  font-size: .75rem;
}


/* ============================================================
   MG REPARATO · SISTEMA TIPOGRÁFICO V7
   Escala común para web corporativa + WooCommerce
   ============================================================ */

:root {
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.3rem;
  --title-sm: clamp(1.3rem, 1.8vw, 1.6rem);
  --title-md: clamp(1.85rem, 3vw, 2.7rem);
  --title-lg: clamp(2.7rem, 4.8vw, 4.55rem);
  --title-display: clamp(3rem, 5.4vw, 5rem);
  --leading-copy: 1.65;
  --leading-heading: 1.02;
  --reveal-delay: 0ms;
}

body {
  font-family: var(--body);
  font-size: var(--text-base);
  line-height: var(--leading-copy);
}

h1,
h2,
h3,
h4,
h5,
h6,
.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.woocommerce h4 {
  font-family: var(--display);
  font-weight: 800;
  color: var(--navy-900);
  text-wrap: balance;
}

h1 {
  font-size: var(--title-lg);
  line-height: .98;
  letter-spacing: -.045em;
}

h2 {
  font-size: var(--title-md);
  line-height: 1.04;
  letter-spacing: -.035em;
}

h3 {
  font-size: var(--title-sm);
  line-height: 1.12;
  letter-spacing: -.022em;
}

h4 {
  font-size: var(--text-xl);
  line-height: 1.2;
  letter-spacing: -.015em;
}

p,
li,
dd,
dt,
input,
select,
textarea,
.woocommerce,
.woocommerce input,
.woocommerce select,
.woocommerce textarea {
  font-family: var(--body);
}

.kicker {
  font-size: var(--text-xs);
}

.section-lead,
.hero-lead,
.page-hero__grid > div:first-child > p:last-child,
.service-hero__grid > div:first-child > p:last-of-type {
  font-size: clamp(1rem, 1.35vw, 1.16rem);
  line-height: 1.6;
}

.hero-copy h1,
.hero-home--v2 .hero-copy h1 {
  font-size: var(--title-display);
  line-height: .96;
  letter-spacing: -.05em;
}

.page-hero h1,
.service-hero h1,
.page-hero--legal h1 {
  font-size: clamp(2.8rem, 4.8vw, 4.45rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.page-hero__index b {
  font-size: clamp(3.7rem, 6.5vw, 5.8rem);
}

.final-cta h2 {
  font-size: clamp(2.15rem, 3.7vw, 3.55rem);
}

.button,
.site-nav > a:not(.button),
.text-link {
  font-family: var(--display);
}

/* Las páginas legales mantienen su escala propia, pero comparten familias. */
.mg-legal-page {
  font-family: var(--body);
}

.mg-legal-page h1,
.mg-legal-page h2,
.mg-legal-page h3,
.legal-document h1,
.legal-document h2,
.legal-document h3 {
  font-family: var(--display);
}


/* ============================================================
   MG REPARATO · TIENDA V7
   ============================================================ */

.mg-woocommerce {
  min-height: 60vh;
  background: var(--white);
}

.mg-woocommerce .woocommerce {
  font-family: var(--body);
}

/* ---------- Cabecera alineada ---------- */

.mg-shop-archive-header {
  width: var(--shell);
  margin-inline: auto;
  padding: clamp(38px, 5vw, 66px) 0 22px;
}

.mg-shop-archive-header__copy {
  max-width: 760px;
}

.mg-shop-archive-header h1 {
  max-width: 18ch;
  margin: 0;
  font-size: clamp(2.55rem, 4.2vw, 3.75rem);
  line-height: .98;
  letter-spacing: -.045em;
}

.mg-shop-archive-header__lead {
  max-width: 64ch;
  margin-top: 16px;
  color: var(--ink-70);
  font-size: var(--text-base);
  line-height: 1.65;
}

/* Ocultamos cualquier cabecera nativa residual de WooCommerce. */
.woocommerce-products-header:empty,
.woocommerce-products-header__title.page-title {
  display: none !important;
}

/* ---------- Confianza ---------- */

.mg-shop-intro {
  width: var(--shell);
  margin-inline: auto;
  padding: 0 0 clamp(38px, 5vw, 62px);
}

.mg-shop-trust {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 16px 44px rgba(3, 17, 45, .055);
}

.mg-shop-trust > div {
  min-height: 106px;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--line);
}

.mg-shop-trust > div:last-child {
  border-right: 0;
}

.mg-shop-trust strong {
  color: var(--navy-900);
  font-family: var(--display);
  font-size: 1rem;
  font-weight: 850;
  letter-spacing: -.01em;
}

.mg-shop-trust span {
  margin-top: 5px;
  color: var(--ink-70);
  font-size: var(--text-sm);
  line-height: 1.45;
}

/* ---------- Navegación de categorías ---------- */

.mg-shop-category-nav {
  width: var(--shell);
  margin: 0 auto 22px;
  overflow: hidden;
}

.mg-shop-category-nav__track {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 2px 8px;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
  overscroll-behavior-inline: contain;
}

.mg-shop-category-nav a {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 9px 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--white);
  color: var(--navy-900);
  font-family: var(--display);
  font-size: .86rem;
  font-weight: 800;
  text-decoration: none;
  scroll-snap-align: start;
  transition: transform var(--fast), background var(--fast), color var(--fast), border-color var(--fast), box-shadow var(--fast);
}

.mg-shop-category-nav a span {
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--blue-75);
  color: var(--blue-700);
  font-family: var(--mono);
  font-size: .66rem;
}

.mg-shop-category-nav a:hover {
  transform: translateY(-1px);
  border-color: rgba(5, 49, 136, .32);
  box-shadow: 0 8px 22px rgba(3, 17, 45, .07);
}

.mg-shop-category-nav a[aria-current="page"] {
  border-color: var(--navy-900);
  background: var(--navy-900);
  color: var(--white);
}

.mg-shop-category-nav a[aria-current="page"] span {
  background: var(--orange);
  color: var(--navy-950);
}

/* ---------- Secciones ---------- */

.mg-shop-section {
  width: var(--shell);
  margin-inline: auto;
  padding: clamp(42px, 5.5vw, 72px) 0;
}

.mg-shop-section + .mg-shop-section {
  border-top: 1px solid var(--line);
}

.mg-shop-section__head {
  margin-bottom: 24px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
}

.mg-shop-section__head h2,
.mg-shop-catalog-head h2,
.mg-shop-help h2 {
  margin: 0;
  font-size: clamp(1.9rem, 2.8vw, 2.55rem);
  line-height: 1.04;
  letter-spacing: -.035em;
}

.mg-shop-section__head p:not(.kicker) {
  max-width: 620px;
  margin-top: 10px;
  color: var(--ink-70);
  font-size: var(--text-sm);
  line-height: 1.55;
}

/* ---------- Categorías visuales ---------- */

.mg-shop-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.mg-shop-category-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  color: inherit;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(3, 17, 45, .035);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.mg-shop-category-card:hover,
.mg-shop-category-card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(250, 92, 8, .38);
  box-shadow: 0 18px 42px rgba(3, 17, 45, .10);
}

.mg-shop-category-card__image {
  aspect-ratio: 1.35 / 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(145deg, #f7f9fb, #eef2f6);
}

.mg-shop-category-card__image img {
  width: 100%;
  height: 100%;
  padding: 14px;
  object-fit: contain;
  transition: transform 320ms cubic-bezier(.16, 1, .3, 1);
}

.mg-shop-category-card:hover .mg-shop-category-card__image img,
.mg-shop-category-card:focus-visible .mg-shop-category-card__image img {
  transform: scale(1.045);
}

.mg-shop-category-card__body {
  padding: 18px;
}

.mg-shop-category-card__body > span {
  display: block;
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.mg-shop-category-card h3 {
  margin: 7px 0 7px;
  color: var(--navy-900);
  font-size: 1.08rem;
  line-height: 1.18;
}

.mg-shop-category-card p {
  min-height: 3.9em;
  margin: 0 0 13px;
  color: var(--ink-70);
  font-size: .82rem;
  line-height: 1.48;
}

.mg-shop-category-card strong {
  color: var(--navy-900);
  font-family: var(--display);
  font-size: .8rem;
}

.mg-shop-category-card strong i {
  color: var(--orange);
  font-style: normal;
  transition: transform var(--fast);
}

.mg-shop-category-card:hover strong i {
  display: inline-block;
  transform: translateX(3px);
}

/* ---------- Carruseles ---------- */

.mg-product-rail {
  position: relative;
}

.mg-product-rail__controls {
  display: flex;
  gap: 8px;
}

.mg-product-rail__controls button {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--white);
  color: var(--navy-900);
  cursor: pointer;
  transition: background var(--fast), color var(--fast), border-color var(--fast), transform var(--fast), opacity var(--fast);
}

.mg-product-rail__controls button:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: var(--navy-900);
  background: var(--navy-900);
  color: var(--white);
}

.mg-product-rail__controls button:disabled {
  opacity: .32;
  cursor: default;
}

.woocommerce .mg-product-rail ul.products,
.woocommerce .mg-product-rail ul.products.mg-rail-products {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 4px 2px 16px !important;
  display: flex !important;
  gap: 16px !important;
  overflow-x: auto !important;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  overscroll-behavior-inline: contain;
}

.woocommerce .mg-product-rail ul.products::before,
.woocommerce .mg-product-rail ul.products::after {
  display: none !important;
}

.woocommerce .mg-product-rail ul.products > li.product {
  flex: 0 0 clamp(220px, 22vw, 272px) !important;
  width: auto !important;
  scroll-snap-align: start;
}

/* ---------- Cabecera de catálogo ---------- */

.mg-shop-catalog-head {
  width: var(--shell);
  margin: 0 auto;
  padding: clamp(44px, 5.5vw, 72px) 0 18px;
}

/* ---------- Toolbar dinámica ---------- */

.mg-shop-toolbar {
  position: sticky;
  z-index: 24;
  top: 94px;
  width: var(--shell);
  margin: 0 auto 26px;
  padding: 11px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 28px rgba(3, 17, 45, .07);
  backdrop-filter: blur(16px);
}

.admin-bar .mg-shop-toolbar {
  top: 126px;
}

.mg-shop-toolbar__search {
  flex: 1 1 420px;
  max-width: 540px;
}

.mg-shop-toolbar .woocommerce-product-search {
  position: relative;
  margin: 0;
}

.mg-shop-toolbar .woocommerce-product-search .search-field {
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0 92px 0 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8fafc;
  color: var(--ink);
  font-size: .84rem;
  transition: border-color var(--fast), box-shadow var(--fast), background var(--fast);
}

.mg-shop-toolbar .woocommerce-product-search .search-field:focus {
  border-color: var(--blue-600);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(21, 75, 168, .10);
  outline: 0;
}

.mg-shop-toolbar .woocommerce-product-search button {
  position: absolute;
  top: 5px;
  right: 5px;
  height: 34px;
  padding: 0 14px;
  border: 0;
  border-radius: 8px;
  background: var(--navy-900);
  color: var(--white);
  font-family: var(--display);
  font-size: .72rem;
  font-weight: 850;
  cursor: pointer;
}

.mg-shop-toolbar__tools {
  display: flex;
  align-items: center;
  gap: 14px;
}

.woocommerce .mg-shop-toolbar .woocommerce-result-count,
.woocommerce .mg-shop-toolbar .woocommerce-ordering {
  float: none !important;
  margin: 0 !important;
}

.woocommerce .mg-shop-toolbar .woocommerce-result-count {
  color: var(--ink-70);
  font-size: .76rem;
  white-space: nowrap;
}

.woocommerce .mg-shop-toolbar .woocommerce-ordering select {
  height: 42px;
  max-width: 220px;
  padding: 0 34px 0 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
  color: var(--navy-900);
  font-size: .78rem;
  font-weight: 750;
}

/* ---------- Grid principal robusto ---------- */

body.woocommerce-shop ul.products:not(.mg-rail-products),
body.post-type-archive-product ul.products:not(.mg-rail-products),
body.tax-product_cat ul.products:not(.mg-rail-products),
body.tax-product_tag ul.products:not(.mg-rail-products) {
  width: var(--shell) !important;
  max-width: var(--shell) !important;
  margin: 0 auto clamp(58px, 7vw, 96px) !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(14px, 1.45vw, 20px) !important;
  list-style: none !important;
  clear: both !important;
}

body.woocommerce-shop ul.products:not(.mg-rail-products)::before,
body.woocommerce-shop ul.products:not(.mg-rail-products)::after,
body.post-type-archive-product ul.products:not(.mg-rail-products)::before,
body.post-type-archive-product ul.products:not(.mg-rail-products)::after,
body.tax-product_cat ul.products:not(.mg-rail-products)::before,
body.tax-product_cat ul.products:not(.mg-rail-products)::after,
body.tax-product_tag ul.products:not(.mg-rail-products)::before,
body.tax-product_tag ul.products:not(.mg-rail-products)::after {
  display: none !important;
  content: none !important;
}

/* ---------- Tarjetas ---------- */

.woocommerce ul.products li.product {
  position: relative;
  width: auto !important;
  margin: 0 !important;
  padding: 10px 10px 12px !important;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: var(--white);
  box-shadow: 0 8px 24px rgba(3, 17, 45, .025);
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within {
  transform: translateY(-4px);
  border-color: rgba(5, 49, 136, .28) !important;
  box-shadow: 0 18px 40px rgba(3, 17, 45, .09);
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* ---------- Imágenes + segunda vista ---------- */

.mg-product-media {
  position: relative;
  height: clamp(168px, 16vw, 205px);
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 12px;
  background: linear-gradient(145deg, #f8fafc, #f0f3f6);
}

.mg-product-media img,
.woocommerce ul.products li.product .mg-product-media img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 12px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  background: transparent !important;
  transform: scale(1);
  transition: opacity 300ms ease, transform 420ms cubic-bezier(.16, 1, .3, 1);
}

.mg-product-media__secondary {
  opacity: 0;
}

.woocommerce ul.products li.product:hover .mg-product-media__primary,
.woocommerce ul.products li.product:focus-within .mg-product-media__primary {
  transform: scale(1.025);
}

.woocommerce ul.products li.product:hover .mg-product-media.has-secondary .mg-product-media__primary,
.woocommerce ul.products li.product:focus-within .mg-product-media.has-secondary .mg-product-media__primary {
  opacity: 0;
}

.woocommerce ul.products li.product:hover .mg-product-media.has-secondary .mg-product-media__secondary,
.woocommerce ul.products li.product:focus-within .mg-product-media.has-secondary .mg-product-media__secondary {
  opacity: 1;
  transform: scale(1.025);
}

/* ---------- Badges reales ---------- */

.mg-product-badges {
  position: absolute;
  z-index: 4;
  top: 18px;
  left: 18px;
  right: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  pointer-events: none;
}

.mg-product-badges span {
  min-height: 24px;
  padding: 5px 8px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: var(--navy-900);
  color: var(--white);
  font-family: var(--mono);
  font-size: .58rem;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .055em;
  text-transform: uppercase;
  box-shadow: 0 5px 14px rgba(3, 17, 45, .10);
}

.mg-product-badges .is-sale {
  background: var(--orange);
  color: var(--navy-950);
}

.mg-product-badges .is-new {
  background: var(--white);
  color: var(--blue-700);
  border: 1px solid var(--blue-150);
}

.mg-product-badges .is-best {
  background: var(--success);
  color: var(--white);
}

/* ---------- Categoría, título, precio ---------- */

.mg-product-card-category {
  display: block;
  margin: 12px 0 4px;
  color: var(--ink-70);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .02em;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  min-height: 2.55em;
  margin: 0 !important;
  padding: 0 !important;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--navy-900);
  font-family: var(--display);
  font-size: .96rem !important;
  font-weight: 850;
  line-height: 1.28;
  letter-spacing: -.015em;
}

.woocommerce ul.products li.product .price {
  margin: 9px 0 0 !important;
  color: var(--navy-900) !important;
  font-family: var(--body);
  font-size: .95rem !important;
  font-weight: 850;
  line-height: 1.35;
}

.woocommerce ul.products li.product .price del {
  margin-right: 5px;
  color: var(--ink-70) !important;
  font-size: .76rem;
  opacity: .78;
}

.woocommerce ul.products li.product .price ins {
  color: var(--orange-dark);
  text-decoration: none;
}

.woocommerce ul.products li.product .button {
  width: 100%;
  min-height: 42px;
  margin: 13px 0 0 !important;
  padding: 10px 13px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 10px !important;
  background: var(--navy-900) !important;
  color: var(--white) !important;
  font-family: var(--display);
  font-size: .78rem !important;
  font-weight: 850 !important;
  line-height: 1.1;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible {
  background: var(--orange) !important;
  color: var(--navy-950) !important;
}

/* ---------- CTA de ayuda ---------- */

.mg-shop-help {
  width: var(--shell);
  margin: 0 auto clamp(64px, 8vw, 100px);
  padding: clamp(24px, 3.5vw, 38px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 30px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--paper);
}

.mg-shop-help p:not(.kicker) {
  max-width: 62ch;
  margin-top: 10px;
  color: var(--ink-70);
  font-size: var(--text-sm);
}

/* ---------- Paginación ---------- */

.woocommerce nav.woocommerce-pagination {
  width: var(--shell);
  margin: -32px auto 64px;
  text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
  display: inline-flex;
  gap: 7px;
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: 42px;
  min-height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
  color: var(--navy-900);
  font-weight: 800;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  border-color: var(--navy-900);
  background: var(--navy-900);
  color: var(--white);
}

/* ---------- Resultado vacío ---------- */

.woocommerce .woocommerce-info {
  width: var(--shell);
  margin-inline: auto;
  color: var(--ink);
}

.woocommerce .return-to-shop {
  width: var(--shell);
  margin: 20px auto 70px;
}

/* ---------- Ficha individual: misma escala ---------- */

.woocommerce div.product {
  width: var(--shell);
  max-width: var(--shell);
  margin: clamp(36px, 5vw, 66px) auto;
}

.woocommerce div.product div.images img {
  border-radius: var(--radius);
  background: #f5f7f9;
}

.woocommerce div.product .product_title {
  color: var(--navy-900);
  font-size: clamp(2.2rem, 3.6vw, 3.4rem);
  line-height: 1;
  letter-spacing: -.04em;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--navy-900);
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  font-weight: 850;
}

.woocommerce div.product form.cart .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button {
  border-radius: 10px !important;
  background: var(--navy-900) !important;
  color: var(--white) !important;
  font-family: var(--display) !important;
  font-weight: 850 !important;
}

.woocommerce div.product form.cart .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover {
  background: var(--orange) !important;
  color: var(--navy-950) !important;
}

/* ---------- Entrada suave, sin movimiento excesivo ---------- */

.js [data-shop-reveal],
.js [data-shop-reveal-item] {
  opacity: 0;
  transform: translateY(14px);
}

.js [data-shop-reveal].is-visible,
.js [data-shop-reveal-item].is-visible {
  opacity: 1;
  transform: none;
  transition: opacity 420ms ease, transform 420ms cubic-bezier(.16, 1, .3, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 1100px) {
  .mg-shop-trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mg-shop-trust > div:nth-child(2) {
    border-right: 0;
  }

  .mg-shop-trust > div:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }

  .mg-shop-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.woocommerce-shop ul.products:not(.mg-rail-products),
  body.post-type-archive-product ul.products:not(.mg-rail-products),
  body.tax-product_cat ul.products:not(.mg-rail-products),
  body.tax-product_tag ul.products:not(.mg-rail-products) {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 782px) {
  .admin-bar .mg-shop-toolbar {
    top: 140px;
  }
}

@media (max-width: 760px) {
  :root {
    --title-lg: clamp(2.45rem, 10.5vw, 3.6rem);
    --title-display: clamp(2.8rem, 12vw, 4rem);
  }

  .page-hero h1,
  .service-hero h1,
  .page-hero--legal h1 {
    font-size: clamp(2.5rem, 11vw, 3.65rem);
  }

  .mg-shop-archive-header {
    padding-top: 32px;
  }

  .mg-shop-archive-header h1 {
    font-size: clamp(2.35rem, 10vw, 3.25rem);
  }

  .mg-shop-section__head {
    align-items: center;
  }

  .mg-shop-toolbar {
    top: 78px;
    align-items: stretch;
    flex-direction: column;
  }

  .admin-bar .mg-shop-toolbar {
    top: 124px;
  }

  .mg-shop-toolbar__search {
    max-width: none;
    flex-basis: auto;
  }

  .mg-shop-toolbar__tools {
    justify-content: space-between;
  }

  .woocommerce .mg-product-rail ul.products > li.product {
    flex-basis: min(72vw, 250px) !important;
  }

  body.woocommerce-shop ul.products:not(.mg-rail-products),
  body.post-type-archive-product ul.products:not(.mg-rail-products),
  body.tax-product_cat ul.products:not(.mg-rail-products),
  body.tax-product_tag ul.products:not(.mg-rail-products) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .mg-product-media {
    height: clamp(148px, 38vw, 184px);
  }

  .mg-shop-help {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .mg-shop-category-grid,
  .mg-shop-trust {
    grid-template-columns: 1fr;
  }

  .mg-shop-trust > div {
    min-height: 82px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .mg-shop-trust > div:last-child {
    border-bottom: 0;
  }

  .mg-shop-section__head h2,
  .mg-shop-catalog-head h2,
  .mg-shop-help h2 {
    font-size: 1.75rem;
  }

  .mg-shop-toolbar__tools {
    align-items: stretch;
    flex-direction: column;
    gap: 9px;
  }

  .woocommerce .mg-shop-toolbar .woocommerce-result-count {
    white-space: normal;
  }

  .woocommerce .mg-shop-toolbar .woocommerce-ordering select {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 400px) {
  body.woocommerce-shop ul.products:not(.mg-rail-products),
  body.post-type-archive-product ul.products:not(.mg-rail-products),
  body.tax-product_cat ul.products:not(.mg-rail-products),
  body.tax-product_tag ul.products:not(.mg-rail-products) {
    grid-template-columns: 1fr !important;
  }

  .mg-product-media {
    height: 210px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js [data-shop-reveal],
  .js [data-shop-reveal-item] {
    opacity: 1;
    transform: none;
  }

  .mg-shop-category-card,
  .woocommerce ul.products li.product,
  .mg-product-media img {
    transition: none !important;
  }
}

@media print {
  .mg-shop-toolbar,
  .mg-product-rail__controls,
  .mg-shop-category-nav {
    display: none !important;
  }

  .woocommerce .mg-product-rail ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    overflow: visible !important;
  }
}


/* ============================================================
   MG REPARATO · TIENDA V7.1
   Refinamiento visual final: ritmo, jerarquía y consistencia
   ============================================================ */

/* ---------- Cabeceras de archivo: misma familia, escala más contenida ---------- */

body.woocommerce-shop .mg-shop-archive-header {
  padding-top: clamp(40px, 4.6vw, 58px);
  padding-bottom: 18px;
}

body.woocommerce-shop .mg-shop-archive-header h1 {
  font-size: clamp(2.75rem, 4vw, 3.55rem);
  line-height: .99;
  letter-spacing: -.043em;
}

body.tax-product_cat .mg-shop-archive-header,
body.tax-product_tag .mg-shop-archive-header {
  padding-top: clamp(28px, 3.5vw, 44px);
  padding-bottom: 14px;
}

body.tax-product_cat .mg-shop-archive-header h1,
body.tax-product_tag .mg-shop-archive-header h1 {
  max-width: 22ch;
  font-size: clamp(2.35rem, 3.35vw, 3.08rem);
  line-height: 1;
  letter-spacing: -.04em;
}

body.tax-product_cat .mg-shop-archive-header__lead,
body.tax-product_tag .mg-shop-archive-header__lead {
  max-width: 60ch;
  margin-top: 12px;
  font-size: .98rem;
  line-height: 1.58;
}

/* ---------- Ritmo vertical de la portada de tienda ---------- */

body.woocommerce-shop .mg-shop-intro {
  padding-bottom: clamp(28px, 3.7vw, 44px);
}

body.woocommerce-shop .mg-shop-category-nav {
  margin-bottom: 0;
}

body.woocommerce-shop .mg-shop-categories {
  padding-top: clamp(28px, 3.7vw, 44px);
  padding-bottom: clamp(42px, 5vw, 64px);
}

body.woocommerce-shop .mg-shop-categories + .mg-product-rail {
  padding-top: clamp(42px, 5vw, 64px);
}

/* ---------- Navegación de categorías: más compacta y táctil ---------- */

.mg-shop-category-nav__track {
  gap: 9px;
  padding-top: 3px;
  padding-bottom: 10px;
}

.mg-shop-category-nav a {
  min-height: 40px;
  padding: 8px 14px;
  font-size: .84rem;
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}

.mg-shop-category-nav a:hover,
.mg-shop-category-nav a:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(5, 49, 136, .36);
  box-shadow: 0 9px 22px rgba(3, 17, 45, .075);
}

.mg-shop-category-nav a[aria-current="page"] {
  box-shadow: 0 10px 26px rgba(3, 17, 45, .14);
}

/* ---------- Títulos de sección: misma jerarquía en toda la tienda ---------- */

.mg-shop-section__head {
  margin-bottom: 22px;
}

.mg-shop-section__head h2,
.mg-shop-catalog-head h2,
.mg-shop-help h2 {
  font-size: clamp(1.85rem, 2.55vw, 2.4rem);
  line-height: 1.05;
  letter-spacing: -.032em;
}

.mg-shop-section__head p:not(.kicker) {
  margin-top: 9px;
  font-size: .88rem;
  line-height: 1.52;
}

/* ---------- Categorías visuales: tarjetas con base alineada ---------- */

.mg-shop-category-card {
  border-radius: 17px;
  box-shadow: 0 9px 24px rgba(3, 17, 45, .035);
}

.mg-shop-category-card__body {
  flex: 1;
  padding: 17px 18px 18px;
  display: flex;
  flex-direction: column;
}

.mg-shop-category-card h3 {
  margin: 7px 0 7px;
  font-size: 1.04rem;
  line-height: 1.2;
}

.mg-shop-category-card p {
  min-height: 0;
  margin-bottom: 0;
  font-size: .8rem;
  line-height: 1.48;
}

.mg-shop-category-card strong {
  margin-top: auto;
  padding-top: 14px;
}

/* ---------- Toolbar: menos pesada, misma función sticky ---------- */

.mg-shop-toolbar {
  margin-bottom: 24px;
  padding: 10px;
  border-radius: 15px;
  box-shadow: 0 9px 24px rgba(3, 17, 45, .06);
}

.mg-shop-toolbar .woocommerce-product-search .search-field {
  height: 43px;
}

.woocommerce .mg-shop-toolbar .woocommerce-ordering select {
  height: 41px;
}

/* ---------- Grid: ritmo homogéneo ---------- */

body.woocommerce-shop ul.products:not(.mg-rail-products),
body.post-type-archive-product ul.products:not(.mg-rail-products),
body.tax-product_cat ul.products:not(.mg-rail-products),
body.tax-product_tag ul.products:not(.mg-rail-products) {
  align-items: stretch;
  gap: clamp(15px, 1.45vw, 20px) !important;
}

/* ---------- Tarjetas de producto: jerarquía y línea inferior estable ---------- */

.woocommerce ul.products li.product {
  min-height: 100%;
  padding: 11px 11px 12px !important;
  border-radius: 17px !important;
  box-shadow: 0 8px 22px rgba(3, 17, 45, .028);
}

.woocommerce ul.products li.product::after {
  position: absolute;
  right: 22px;
  bottom: 0;
  left: 22px;
  height: 2px;
  content: "";
  background: linear-gradient(90deg, var(--orange), var(--blue-700));
  transform: scaleX(.16);
  transform-origin: left;
  opacity: 0;
  transition: transform 260ms cubic-bezier(.16, 1, .3, 1), opacity 180ms ease;
}

.woocommerce ul.products li.product:hover::after,
.woocommerce ul.products li.product:focus-within::after {
  transform: scaleX(1);
  opacity: .78;
}

.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus-within {
  transform: translateY(-4px);
  border-color: rgba(5, 49, 136, .25) !important;
  box-shadow: 0 18px 38px rgba(3, 17, 45, .085);
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.mg-product-media {
  height: clamp(162px, 15vw, 196px);
  border-radius: 11px;
}

.mg-product-media img,
.woocommerce ul.products li.product .mg-product-media img {
  padding: 11px !important;
}

.mg-product-card-category {
  min-height: 1.35em;
  margin: 11px 0 4px;
  font-size: .69rem;
  line-height: 1.35;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  min-height: 2.55em;
  font-size: .94rem !important;
  line-height: 1.29;
}

.woocommerce ul.products li.product .price {
  margin-top: auto !important;
  padding-top: 10px;
  font-size: .94rem !important;
}

.woocommerce ul.products li.product .button {
  min-height: 41px;
  margin-top: 12px !important;
  border-radius: 9px !important;
  font-size: .77rem !important;
}

/* ---------- Badges: menos protagonismo que el producto ---------- */

.mg-product-badges {
  top: 17px;
  left: 17px;
  right: 17px;
}

.mg-product-badges span {
  min-height: 23px;
  padding: 5px 8px;
  font-size: .56rem;
  box-shadow: 0 4px 12px rgba(3, 17, 45, .09);
}

/* ---------- Carruseles: misma escala que el catálogo ---------- */

.woocommerce .mg-product-rail ul.products > li.product {
  flex-basis: clamp(218px, 21.5vw, 268px) !important;
}

.mg-product-rail__controls button {
  width: 42px;
  height: 42px;
}

/* ---------- Categorías: contenido más próximo al encabezado ---------- */

body.tax-product_cat .mg-shop-category-nav,
body.tax-product_tag .mg-shop-category-nav {
  margin-bottom: 18px;
}

body.tax-product_cat .mg-shop-toolbar,
body.tax-product_tag .mg-shop-toolbar {
  margin-bottom: 22px;
}

/* ---------- Ficha individual: coherencia con la escala del catálogo ---------- */

.woocommerce div.product .product_title {
  font-size: clamp(2.05rem, 3.2vw, 3.05rem);
  line-height: 1.02;
}

/* ---------- Responsive V7.1 ---------- */

@media (max-width: 1100px) {
  body.tax-product_cat .mg-shop-archive-header h1,
  body.tax-product_tag .mg-shop-archive-header h1 {
    font-size: clamp(2.3rem, 4.2vw, 2.9rem);
  }
}

@media (max-width: 760px) {
  body.woocommerce-shop .mg-shop-archive-header {
    padding-top: 30px;
  }

  body.woocommerce-shop .mg-shop-archive-header h1 {
    font-size: clamp(2.35rem, 9.8vw, 3.15rem);
  }

  body.tax-product_cat .mg-shop-archive-header,
  body.tax-product_tag .mg-shop-archive-header {
    padding-top: 24px;
    padding-bottom: 12px;
  }

  body.tax-product_cat .mg-shop-archive-header h1,
  body.tax-product_tag .mg-shop-archive-header h1 {
    font-size: clamp(2.08rem, 8.8vw, 2.7rem);
    line-height: 1.02;
  }

  body.woocommerce-shop .mg-shop-categories {
    padding-top: 24px;
  }

  .mg-shop-section__head h2,
  .mg-shop-catalog-head h2,
  .mg-shop-help h2 {
    font-size: clamp(1.72rem, 7vw, 2.05rem);
  }

  .woocommerce ul.products li.product {
    padding: 9px 9px 11px !important;
  }

  .mg-product-media {
    height: clamp(145px, 37vw, 180px);
  }

  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: .91rem !important;
  }
}

@media (max-width: 520px) {
  .mg-shop-category-nav a {
    min-height: 38px;
    padding: 7px 12px;
    font-size: .8rem;
  }

  .mg-shop-category-nav a span {
    min-width: 20px;
    height: 20px;
  }

  .mg-shop-toolbar {
    border-radius: 13px;
  }

  .mg-shop-category-card__body {
    padding: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce ul.products li.product::after {
    transition: none !important;
  }
}



/* ============================================================
   MG REPARATO · FICHA DE PRODUCTO V7.2.2 DEFINITIVA
   Ficha individual: ecommerce, confianza y responsive
   ============================================================ */

/* ---------- Breadcrumb y ritmo superior ---------- */

body.single-product .mg-product-breadcrumb {
  width: var(--shell);
  margin: clamp(18px, 2.2vw, 28px) auto 0;
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: center;
  overflow: hidden;
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.4;
}

body.single-product .mg-product-breadcrumb a {
  flex: 0 0 auto;
  color: var(--blue-700);
  font-weight: 750;
  text-decoration: none;
}

body.single-product .mg-product-breadcrumb a:hover {
  text-decoration: underline;
}

body.single-product .mg-product-breadcrumb > span[aria-current="page"] {
  min-width: 0;
  overflow: hidden;
  color: var(--ink-70);
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.single-product .mg-product-breadcrumb > span[aria-hidden="true"] {
  color: var(--blue-300);
}

/* ---------- Contenedor principal: 47 / 53 visual ---------- */

body.single-product .woocommerce div.product {
  width: var(--shell);
  max-width: var(--shell);
  margin: clamp(14px, 1.8vw, 22px) auto clamp(58px, 6vw, 82px);
  display: flow-root;
}

body.single-product .woocommerce div.product div.images,
body.single-product .woocommerce div.product div.summary {
  margin-bottom: 0;
}

body.single-product .woocommerce div.product div.images {
  width: 46.5%;
  float: left;
}

body.single-product .woocommerce div.product div.summary {
  width: 49%;
  float: right;
  padding-top: 1px;
}

/* ---------- Galería compacta ---------- */

body.single-product .woocommerce-product-gallery {
  position: relative;
}

body.single-product .woocommerce-product-gallery .flex-viewport,
body.single-product .woocommerce-product-gallery__wrapper {
  border-radius: 18px;
}

body.single-product .woocommerce-product-gallery__image > a {
  min-height: 0;
  aspect-ratio: 3 / 2;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(5, 49, 136, .11);
  border-radius: 18px;
  background: linear-gradient(145deg, #f8fafc, #f1f4f7);
}

body.single-product .woocommerce div.product div.images .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: 100% !important;
  max-height: 470px;
  padding: clamp(11px, 1.7vw, 22px);
  object-fit: contain;
  border-radius: 0;
  background: transparent;
}

/* Miniaturas: una sola fila siempre; si sobran, scroll horizontal. */
body.single-product .woocommerce div.product div.images .flex-control-thumbs {
  margin: 9px 0 0 !important;
  padding: 0 0 4px !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  list-style: none !important;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  scrollbar-color: rgba(5,49,136,.26) transparent;
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar {
  height: 5px;
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(5,49,136,.22);
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs li {
  width: auto !important;
  min-width: 0;
  max-width: none;
  flex: 0 0 calc((100% - 32px) / 5) !important;
  float: none !important;
  margin: 0 !important;
  scroll-snap-align: start;
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs img {
  width: 100% !important;
  aspect-ratio: 1;
  padding: 4px;
  object-fit: contain;
  border: 1px solid rgba(5,49,136,.18);
  border-radius: 10px;
  background: #f7f9fb;
  opacity: .82;
  transition: opacity var(--fast), border-color var(--fast), transform var(--fast), box-shadow var(--fast);
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs img:hover {
  border-color: rgba(5,49,136,.45);
  opacity: 1;
  transform: translateY(-1px);
}

body.single-product .woocommerce div.product div.images .flex-control-thumbs img.flex-active {
  border: 2px solid var(--orange);
  opacity: 1;
  box-shadow: 0 7px 18px rgba(250,92,8,.13);
}

body.single-product .woocommerce div.product div.images .woocommerce-product-gallery__trigger {
  top: 13px;
  right: 13px;
  width: 41px;
  height: 41px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(255,255,255,.95);
  box-shadow: 0 8px 22px rgba(3,17,45,.08);
}

body.single-product .woocommerce span.onsale {
  z-index: 5;
  min-width: 0;
  min-height: 0;
  padding: 7px 10px;
  top: 13px;
  left: 13px;
  border-radius: 999px;
  background: var(--orange);
  color: var(--navy-950);
  font-family: var(--mono);
  font-size: .64rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

/* ---------- Resumen comercial ---------- */

body.single-product .woocommerce div.product .product_title {
  max-width: 19ch;
  margin: 0 0 11px;
  color: var(--navy-900);
  font-size: clamp(2rem, 2.85vw, 2.75rem);
  line-height: 1.02;
  letter-spacing: -.042em;
}

body.single-product .woocommerce div.product p.price,
body.single-product .woocommerce div.product span.price {
  margin: 0 0 14px;
  color: var(--navy-900);
  font-size: clamp(1.38rem, 1.9vw, 1.72rem);
  font-weight: 900;
  line-height: 1.12;
}

body.single-product .woocommerce div.product p.price del,
body.single-product .woocommerce div.product span.price del {
  margin-right: 6px;
  color: var(--muted);
  font-size: .78em;
  font-weight: 650;
  opacity: .72;
}

body.single-product .woocommerce div.product p.price ins,
body.single-product .woocommerce div.product span.price ins {
  color: var(--orange-dark);
  font-weight: 900;
  text-decoration: none;
}

body.single-product .woocommerce div.product .summary > .price .woocommerce-price-suffix,
body.single-product .woocommerce div.product .woocommerce-variation-price .woocommerce-price-suffix {
  margin-top: 4px;
  display: block;
  color: var(--muted);
  font-family: var(--body);
  font-size: .45em;
  font-weight: 650;
  line-height: 1.25;
}

body.single-product .woocommerce-product-details__short-description {
  max-width: 61ch;
  margin: 0 0 14px;
  color: var(--ink-70);
  font-size: .98rem;
  line-height: 1.6;
}

body.single-product .woocommerce-product-details__short-description p + p {
  margin-top: 9px;
}

/* ---------- Disponibilidad ---------- */

body.single-product .mg-product-availability {
  min-height: 30px;
  margin: 2px 0 13px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--success);
  font-size: .79rem;
  line-height: 1.2;
}

body.single-product .mg-product-availability > span {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 4px rgba(8,120,89,.1);
}

body.single-product .mg-product-availability strong {
  font-weight: 850;
}

body.single-product .mg-product-availability.is-variable {
  color: var(--blue-700);
}

body.single-product .mg-product-availability.is-variable > span {
  box-shadow: 0 0 0 4px rgba(5,49,136,.09);
}

body.single-product .mg-product-availability.is-backorder {
  color: var(--orange-dark);
}

body.single-product .mg-product-availability.is-backorder > span {
  box-shadow: 0 0 0 4px rgba(250,92,8,.1);
}

body.single-product .mg-product-availability.is-out-of-stock {
  color: var(--danger);
}

body.single-product .mg-product-availability.is-out-of-stock > span {
  box-shadow: 0 0 0 4px rgba(180,35,24,.09);
}

/* ---------- Variaciones ---------- */

body.single-product .woocommerce div.product form.cart {
  margin: 13px 0 0;
}

body.single-product .woocommerce div.product form.cart.variations_form {
  margin-top: 11px;
}

body.single-product .woocommerce div.product form.cart .variations {
  width: 100%;
  margin: 0 0 10px;
  border-collapse: separate;
  border-spacing: 0 8px;
}

body.single-product .woocommerce div.product form.cart .variations tr,
body.single-product .woocommerce div.product form.cart .variations th,
body.single-product .woocommerce div.product form.cart .variations td {
  display: block;
  width: 100%;
}

body.single-product .woocommerce div.product form.cart .variations th {
  padding: 0 0 6px;
  text-align: left;
}

body.single-product .woocommerce div.product form.cart .variations td {
  padding: 0;
}

body.single-product .woocommerce div.product form.cart .variations label {
  color: var(--navy-900);
  font-family: var(--display);
  font-size: .84rem;
  font-weight: 900;
  letter-spacing: .01em;
}

body.single-product .woocommerce div.product form.cart .variations select {
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 10px 42px 10px 13px;
  border: 1px solid rgba(5,49,136,.25);
  border-radius: 10px;
  background-color: var(--white);
  color: var(--ink);
  cursor: pointer;
  transition: border-color var(--fast), box-shadow var(--fast);
}

body.single-product .woocommerce div.product form.cart .variations select:hover,
body.single-product .woocommerce div.product form.cart .variations select:focus {
  border-color: var(--blue-700);
  box-shadow: 0 0 0 3px rgba(5,49,136,.08);
  outline: none;
}

body.single-product .woocommerce div.product form.cart .reset_variations {
  min-height: 34px;
  margin-top: 4px;
  display: inline-flex;
  align-items: center;
  color: var(--blue-700);
  font-size: .76rem;
  font-weight: 800;
  text-decoration: none;
}

body.single-product .woocommerce div.product .single_variation_wrap {
  margin-top: 7px;
}

body.single-product .woocommerce div.product .woocommerce-variation-description {
  margin: 0 0 10px;
  color: var(--ink-70);
  font-size: .88rem;
}

body.single-product .woocommerce div.product .woocommerce-variation-price {
  margin: 0 0 10px;
}

/* ---------- Cantidad + CTA principal ---------- */

body.single-product .woocommerce div.product form.cart:not(.variations_form),
body.single-product .woocommerce div.product .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  align-items: stretch;
}

body.single-product .woocommerce div.product form.cart .quantity {
  width: 144px;
  height: 52px;
  min-height: 52px;
  display: grid !important;
  grid-template-columns: 42px minmax(56px, 1fr) 42px;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid rgba(5,49,136,.3);
  border-radius: 10px;
  background: var(--white);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.8);
}

body.single-product .woocommerce div.product form.cart .quantity .qty {
  width: 100% !important;
  min-width: 0;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 4px !important;
  border: 0 !important;
  border-right: 1px solid var(--line) !important;
  border-left: 1px solid var(--line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--navy-900);
  font-weight: 850;
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
  box-shadow: none !important;
}

body.single-product .woocommerce div.product form.cart .quantity .qty::-webkit-outer-spin-button,
body.single-product .woocommerce div.product form.cart .quantity .qty::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

body.single-product .mg-qty-button {
  width: 100%;
  min-width: 0;
  height: 100%;
  padding: 0;
  display: grid;
  place-items: center;
  border: 0;
  background: #f8fafc;
  color: var(--navy-900);
  font-size: 1.16rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: background var(--fast), color var(--fast);
}

body.single-product .mg-qty-button:hover,
body.single-product .mg-qty-button:focus-visible {
  background: var(--blue-75);
  color: var(--blue-700);
}

body.single-product .woocommerce div.product form.cart .single_add_to_cart_button {
  min-height: 52px;
  min-width: 220px;
  flex: 1 1 220px;
  margin: 0 !important;
  padding: 13px 21px !important;
  border: 1px solid var(--navy-900) !important;
  border-radius: 10px !important;
  background: var(--navy-900) !important;
  color: var(--white) !important;
  box-shadow: 0 12px 26px rgba(3,17,45,.14);
  font-size: .94rem !important;
  letter-spacing: .01em;
  transition: background var(--fast), color var(--fast), border-color var(--fast), transform var(--fast), box-shadow var(--fast);
}

body.single-product .woocommerce div.product form.cart .single_add_to_cart_button:hover,
body.single-product .woocommerce div.product form.cart .single_add_to_cart_button:focus-visible {
  border-color: var(--orange) !important;
  background: var(--orange) !important;
  color: var(--navy-950) !important;
  transform: translateY(-1px);
  box-shadow: 0 15px 30px rgba(250,92,8,.2);
}

body.single-product .woocommerce div.product form.cart .single_add_to_cart_button.disabled,
body.single-product .woocommerce div.product form.cart .single_add_to_cart_button:disabled,
body.single-product .woocommerce div.product form.cart .single_add_to_cart_button[aria-disabled="true"] {
  border-color: #bcc5d1 !important;
  background: #cbd2dc !important;
  color: #66707f !important;
  box-shadow: none;
  cursor: not-allowed;
  transform: none;
  opacity: 1;
}

/* ---------- Wallets / pago exprés: secundarios al CTA ---------- */

body.single-product .wc-stripe-payment-request-wrapper,
body.single-product .wc-stripe-payment-request-button-separator,
body.single-product #wcpay-payment-request-wrapper,
body.single-product .wcpay-payment-request-wrapper,
body.single-product .wcpay-express-checkout-wrapper,
body.single-product .wc-block-components-express-payment,
body.single-product .wc-block-components-express-payment__event-buttons,
body.single-product .ppc-button-wrapper,
body.single-product [class*="express-payment"],
body.single-product [class*="payment-request"] {
  width: min(100%, 420px) !important;
  max-width: 420px !important;
}

body.single-product .wc-stripe-payment-request-wrapper,
body.single-product #wcpay-payment-request-wrapper,
body.single-product .wcpay-payment-request-wrapper,
body.single-product .wcpay-express-checkout-wrapper,
body.single-product .wc-block-components-express-payment,
body.single-product .ppc-button-wrapper {
  margin-top: 15px !important;
}

body.single-product .wc-stripe-payment-request-button-separator,
body.single-product #wcpay-payment-request-button-separator,
body.single-product .wcpay-payment-request-button-separator {
  margin-block: 8px !important;
  color: var(--muted);
  font-size: .72rem;
  text-align: left;
}

/* ---------- Bloque de confianza ---------- */

body.single-product .mg-product-trust {
  margin: 17px 0 0;
  padding: 15px 16px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(237,243,252,.7), rgba(255,255,255,.98));
}

body.single-product .mg-product-trust__item {
  min-width: 0;
  display: flex;
  gap: 9px;
  align-items: flex-start;
}

body.single-product .mg-product-trust__item > span {
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  display: grid;
  place-items: center;
  margin-top: 1px;
  border-radius: 50%;
  background: rgba(8,120,89,.1);
  color: var(--success);
  font-size: .72rem;
  font-weight: 900;
}

body.single-product .mg-product-trust__item p {
  min-width: 0;
  line-height: 1.34;
}

body.single-product .mg-product-trust__item strong,
body.single-product .mg-product-trust__item small {
  display: block;
}

body.single-product .mg-product-trust__item strong {
  color: var(--navy-900);
  font-size: .77rem;
  font-weight: 850;
}

body.single-product .mg-product-trust__item small {
  margin-top: 2px;
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.35;
}

/* ---------- Metadatos limpios ---------- */

body.single-product .mg-product-meta {
  margin-top: 15px;
  padding-top: 13px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 9px;
  align-items: center;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .7rem;
  line-height: 1.45;
}

body.single-product .mg-product-meta__row {
  min-width: 0;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}

body.single-product .mg-product-meta__separator {
  color: var(--blue-300);
  font-weight: 800;
}

body.single-product .mg-product-meta b {
  color: var(--ink-70);
  font-weight: 800;
}

body.single-product .mg-product-meta a {
  color: var(--blue-700);
  text-decoration: none;
}

body.single-product .mg-product-meta a:hover {
  text-decoration: underline;
}

body.single-product .product_meta .tagged_as {
  display: none !important;
}

/* ---------- Tabs: navegación propia, sin aspecto WooCommerce ---------- */

body.single-product .woocommerce div.product .woocommerce-tabs {
  clear: both;
  width: 100%;
  margin: clamp(44px, 5vw, 64px) 0 0;
  padding-top: clamp(26px, 3.2vw, 38px);
  border-top: 1px solid var(--line);
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
  width: 100%;
  margin: 0 0 28px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(18px, 3vw, 34px);
  overflow: visible;
  border-bottom: 1px solid var(--line);
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li {
  position: relative;
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a {
  position: relative;
  min-height: 46px;
  padding: 8px 1px 13px;
  display: inline-flex;
  align-items: center;
  color: var(--ink-70);
  font-family: var(--display);
  font-size: .92rem;
  font-weight: 900;
  text-decoration: none;
  transition: color var(--fast);
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 3px;
  content: "";
  border-radius: 999px 999px 0 0;
  background: var(--orange);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--fast);
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a:hover,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--navy-900);
}

body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after {
  transform: scaleX(1);
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel {
  width: 100%;
  max-width: 920px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ink-70);
}

body.single-product .mg-product-description-copy,
body.single-product .mg-product-specifications {
  max-width: 920px;
}

body.single-product .mg-product-description-copy > *:first-child,
body.single-product .mg-product-specifications > *:first-child {
  margin-top: 0;
}

body.single-product .mg-product-description-copy > *:last-child,
body.single-product .mg-product-specifications > *:last-child {
  margin-bottom: 0;
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel h2,
body.single-product .woocommerce div.product .woocommerce-Tabs-panel h3,
body.single-product .woocommerce div.product .woocommerce-Tabs-panel h4 {
  max-width: 26ch;
  margin: 27px 0 10px;
  color: var(--navy-900);
  line-height: 1.08;
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel h2 {
  font-size: clamp(1.42rem, 1.9vw, 1.8rem);
  letter-spacing: -.03em;
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel h3 {
  font-size: clamp(1.15rem, 1.45vw, 1.34rem);
  letter-spacing: -.02em;
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel h4 {
  font-size: 1rem;
  letter-spacing: -.01em;
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel p {
  max-width: 72ch;
  margin: 0 0 13px;
  line-height: 1.68;
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel ul,
body.single-product .woocommerce div.product .woocommerce-Tabs-panel ol {
  max-width: 72ch;
  margin: 12px 0 20px;
  padding-left: 1.2rem;
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel li {
  margin: 6px 0;
  padding-left: 3px;
}

body.single-product .woocommerce div.product .woocommerce-Tabs-panel li::marker {
  color: var(--orange-dark);
}

/* Bloques visuales de beneficios / advertencias / consejos. */
body.single-product .mg-product-info-grid {
  width: 100%;
  max-width: 920px;
  margin: 30px 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 13px;
}

body.single-product .mg-product-info-card {
  min-width: 0;
  padding: 20px 20px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(150deg, #fff, rgba(237,243,252,.45));
}

body.single-product .mg-product-info-card h2,
body.single-product .mg-product-info-card h3,
body.single-product .mg-product-info-card h4 {
  margin-top: 0 !important;
  font-size: 1.14rem !important;
}

body.single-product .mg-product-info-card p,
body.single-product .mg-product-info-card ul,
body.single-product .mg-product-info-card ol {
  font-size: .88rem;
}

body.single-product .mg-product-info-card.is-warning {
  border-color: rgba(250,92,8,.24);
  background: linear-gradient(150deg, #fff, var(--orange-soft));
}

body.single-product .mg-product-info-card.is-benefit {
  border-color: rgba(8,120,89,.18);
  background: linear-gradient(150deg, #fff, rgba(8,120,89,.055));
}

/* Especificaciones: texto + tabla técnica en una única pestaña. */
body.single-product .mg-product-specifications {
  display: grid;
  gap: 20px;
}

body.single-product .mg-product-specifications__copy,
body.single-product .mg-product-specifications__table {
  max-width: 920px;
}

body.single-product .mg-product-specifications__copy {
  padding: 20px 22px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(237,243,252,.42);
}

body.single-product .mg-product-specifications__copy ul,
body.single-product .mg-product-specifications__copy ol {
  margin-block: 0;
}

body.single-product .woocommerce table.shop_attributes {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--white);
}

body.single-product .woocommerce table.shop_attributes th,
body.single-product .woocommerce table.shop_attributes td {
  padding: 13px 15px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  font-size: .87rem;
  font-style: normal;
}

body.single-product .woocommerce table.shop_attributes th {
  width: 34%;
  color: var(--navy-900);
  font-weight: 850;
}

body.single-product .woocommerce table.shop_attributes tr:last-child th,
body.single-product .woocommerce table.shop_attributes tr:last-child td {
  border-bottom: 0;
}

/* ---------- Relacionados: grid propio, 4 tarjetas reales ---------- */

body.single-product .woocommerce div.product .mg-related-products-section,
body.single-product .mg-related-products-section {
  clear: both;
  width: 100%;
  margin: clamp(42px, 5vw, 60px) 0 0;
  padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--line);
}

body.single-product .mg-related-products-section__head {
  margin-bottom: 18px;
}

body.single-product .mg-related-products-section__head .kicker {
  margin-bottom: 9px;
}

body.single-product .mg-related-products-section__head h2 {
  margin: 0;
  color: var(--navy-900);
  font-size: clamp(1.65rem, 2vw, 2.05rem);
  line-height: 1.05;
  letter-spacing: -.035em;
}

body.single-product .mg-related-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.35vw, 17px);
}

body.single-product .mg-related-card {
  position: relative;
  min-width: 0;
  padding: 9px 9px 11px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: var(--white);
  box-shadow: 0 8px 24px rgba(3,17,45,.035);
  transition: transform var(--fast), border-color var(--fast), box-shadow var(--fast);
}

body.single-product .mg-related-card:hover,
body.single-product .mg-related-card:focus-within {
  border-color: rgba(5,49,136,.28);
  transform: translateY(-3px);
  box-shadow: 0 18px 38px rgba(3,17,45,.085);
}

body.single-product .mg-related-card__media {
  position: relative;
  height: clamp(150px, 13vw, 180px);
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 10px;
  background: linear-gradient(145deg, #f8fafc, #f0f3f6);
}

body.single-product .mg-related-card__image {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 9px !important;
  object-fit: contain !important;
  transition: opacity 280ms ease, transform 380ms cubic-bezier(.16,1,.3,1);
}

body.single-product .mg-related-card__image--secondary {
  opacity: 0;
}

body.single-product .mg-related-card__media.has-secondary:hover .mg-related-card__image--primary,
body.single-product .mg-related-card__media.has-secondary:focus-visible .mg-related-card__image--primary {
  opacity: 0;
}

body.single-product .mg-related-card__media.has-secondary:hover .mg-related-card__image--secondary,
body.single-product .mg-related-card__media.has-secondary:focus-visible .mg-related-card__image--secondary {
  opacity: 1;
}

body.single-product .mg-related-card__badge {
  position: absolute;
  z-index: 3;
  top: 9px;
  left: 9px;
  min-height: 22px;
  padding: 4px 7px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(5,49,136,.15);
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  color: var(--blue-700);
  font-family: var(--mono);
  font-size: .56rem;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
  box-shadow: 0 5px 14px rgba(3,17,45,.07);
}

body.single-product .mg-related-card__badge.is-sale {
  border-color: rgba(250,92,8,.28);
  color: var(--orange-dark);
}

body.single-product .mg-related-card__badge.is-best {
  border-color: rgba(8,120,89,.22);
  color: var(--success);
}

body.single-product .mg-related-card__body {
  min-height: 0;
  flex: 1;
  padding: 10px 3px 1px;
  display: flex;
  flex-direction: column;
}

body.single-product .mg-related-card__category {
  min-height: 1.25em;
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .62rem;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: .025em;
  text-transform: uppercase;
}

body.single-product .mg-related-card h3 {
  min-height: 2.5em;
  margin: 5px 0 0;
  color: var(--navy-900);
  font-size: .92rem;
  line-height: 1.25;
  letter-spacing: -.02em;
}

body.single-product .mg-related-card h3 a {
  color: inherit;
  text-decoration: none;
}

body.single-product .mg-related-card__price {
  margin-top: auto;
  padding-top: 10px;
  color: var(--navy-900);
  font-family: var(--display);
  font-size: .94rem;
  font-weight: 900;
}

body.single-product .mg-related-card__price del {
  margin-right: 5px;
  color: var(--muted);
  font-size: .8em;
  font-weight: 700;
}

body.single-product .mg-related-card__price ins {
  text-decoration: none;
}

body.single-product .mg-related-card__link {
  min-height: 39px;
  margin-top: 10px;
  padding: 9px 12px;
  display: inline-flex;
  gap: 7px;
  justify-content: center;
  align-items: center;
  border: 1px solid var(--navy-900);
  border-radius: 8px;
  background: var(--navy-900);
  color: var(--white);
  font-family: var(--display);
  font-size: .75rem;
  font-weight: 900;
  line-height: 1.1;
  text-decoration: none;
  transition: background var(--fast), border-color var(--fast), color var(--fast), transform var(--fast);
}

body.single-product .mg-related-card__link:hover,
body.single-product .mg-related-card__link:focus-visible {
  border-color: var(--orange);
  background: var(--orange);
  color: var(--navy-950);
  transform: translateY(-1px);
}

/* ---------- CTA ecommerce específico ---------- */

body.single-product .mg-product-help {
  clear: both;
  width: 100%;
  margin: clamp(48px, 5.5vw, 68px) 0 0;
  padding: clamp(24px, 3vw, 34px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(22px, 3.6vw, 42px);
  align-items: center;
  border: 1px solid rgba(5,49,136,.18);
  border-radius: 18px;
  background: linear-gradient(135deg, var(--blue-75), #fff);
  box-shadow: 0 14px 34px rgba(3,17,45,.055);
}

body.single-product .mg-product-help .kicker {
  margin-bottom: 12px;
}

body.single-product .mg-product-help h2 {
  max-width: 18ch;
  color: var(--navy-900) !important;
  font-size: clamp(1.72rem, 2.35vw, 2.2rem);
  line-height: 1.04;
  letter-spacing: -.035em;
}

body.single-product .mg-product-help p:not(.kicker) {
  max-width: 62ch;
  margin-top: 9px;
  color: var(--ink-70);
  font-size: .91rem;
  line-height: 1.58;
}

body.single-product .mg-product-help .button-row {
  justify-content: flex-end;
}

body.single-product .woocommerce .mg-product-help a.button.button--signal {
  border-color: var(--orange) !important;
  background: var(--orange) !important;
  color: var(--navy-950) !important;
}

body.single-product .woocommerce .mg-product-help a.button.button--signal:hover,
body.single-product .woocommerce .mg-product-help a.button.button--signal:focus-visible {
  background: #ff7130 !important;
  color: var(--navy-950) !important;
}

body.single-product .woocommerce .mg-product-help a.button.button--outline {
  border-color: var(--blue-700) !important;
  background: transparent !important;
  color: var(--blue-700) !important;
}

body.single-product .woocommerce .mg-product-help a.button.button--outline:hover,
body.single-product .woocommerce .mg-product-help a.button.button--outline:focus-visible {
  background: var(--blue-700) !important;
  color: var(--white) !important;
}

/* El CTA genérico de servicios no pertenece al flujo de compra. */
body.single-product .final-cta {
  display: none !important;
}

/* Corrección de contraste del footer. */
.site-footer .footer-grid h2,
.site-footer .footer-grid h3 {
  color: var(--white) !important;
}

/* ---------- Responsive V7.2.2 ---------- */

@media (max-width: 1100px) {
  body.single-product .woocommerce div.product div.images {
    width: 47.5%;
  }

  body.single-product .woocommerce div.product div.summary {
    width: 48%;
  }

}

@media (max-width: 900px) {
  body.single-product .mg-product-breadcrumb {
    margin-top: 18px;
  }

  body.single-product .woocommerce div.product {
    margin-top: 14px;
  }

  body.single-product .woocommerce div.product div.images,
  body.single-product .woocommerce div.product div.summary {
    width: 100%;
    float: none;
  }

  body.single-product .woocommerce div.product div.images {
    margin-bottom: 27px;
  }

  body.single-product .woocommerce div.product div.summary {
    padding-top: 0;
  }

  body.single-product .woocommerce-product-gallery__image > a {
    aspect-ratio: 16 / 11;
  }

  body.single-product .woocommerce div.product .product_title {
    max-width: 24ch;
  }

  body.single-product .mg-product-trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }


  body.single-product .mg-product-help {
    grid-template-columns: 1fr;
  }

  body.single-product .mg-product-help .button-row {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  body.single-product .mg-product-breadcrumb,
  body.single-product .woocommerce div.product {
    width: min(100% - 28px, 1220px);
    max-width: min(100% - 28px, 1220px);
  }

  body.single-product .mg-product-breadcrumb {
    font-size: .7rem;
  }

  body.single-product .woocommerce div.product {
    margin-top: 12px;
  }

  body.single-product .woocommerce-product-gallery__image > a {
    aspect-ratio: 4 / 3;
  }

  body.single-product .woocommerce div.product div.images .woocommerce-product-gallery__image img {
    padding: 10px;
  }

  body.single-product .woocommerce div.product div.images .flex-control-thumbs {
    gap: 7px;
  }

  body.single-product .woocommerce div.product div.images .flex-control-thumbs li {
    flex-basis: calc((100% - 21px) / 4) !important;
  }

  body.single-product .woocommerce div.product .product_title {
    font-size: clamp(1.95rem, 8.5vw, 2.5rem);
  }

  body.single-product .mg-product-trust {
    padding: 13px;
    grid-template-columns: 1fr;
  }

  body.single-product .woocommerce div.product .woocommerce-tabs {
    margin-top: 42px;
    padding-top: 25px;
  }

  body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
    gap: 18px;
    margin-bottom: 22px;
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
  }

  body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
    display: none;
  }

  body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li {
    flex: 0 0 auto;
  }

  body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a {
    min-height: 43px;
    padding-bottom: 11px;
    font-size: .83rem;
  }

  body.single-product .mg-product-info-grid {
    grid-template-columns: 1fr;
  }

  body.single-product .woocommerce div.product .related.products,
  body.single-product .woocommerce div.product .mg-related-products-section {
    margin-top: 44px;
    padding-top: 28px;
    overflow: hidden;
  }


  body.single-product .mg-product-help {
    margin-top: 44px;
    padding: 23px 19px;
  }
}

@media (max-width: 560px) {
  body.single-product .woocommerce div.product form.cart:not(.variations_form),
  body.single-product .woocommerce div.product .woocommerce-variation-add-to-cart {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
  }

  body.single-product .woocommerce div.product form.cart .quantity {
    width: 144px;
  }

  body.single-product .woocommerce div.product form.cart .single_add_to_cart_button {
    width: 100%;
    min-width: 0;
    flex-basis: auto;
  }

  body.single-product .mg-product-meta {
    gap: 5px 7px;
  }

  body.single-product .mg-product-meta__separator {
    display: none;
  }

  body.single-product .mg-product-meta__row {
    width: 100%;
  }

  body.single-product .woocommerce table.shop_attributes th,
  body.single-product .woocommerce table.shop_attributes td {
    padding: 11px 10px;
    font-size: .81rem;
  }

  body.single-product .mg-product-specifications__copy,
  body.single-product .mg-product-info-card {
    padding: 17px 16px;
  }

  body.single-product .mg-product-help .button-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  body.single-product .mg-product-help .button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.single-product .mg-qty-button,
  body.single-product .woocommerce div.product form.cart .single_add_to_cart_button,
  body.single-product .woocommerce div.product div.images .flex-control-thumbs img,
  body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a::after {
    transition: none !important;
  }
}


/* ============================================================
   V7.2.2 · HARDENING FINAL CONTRA CSS NATIVO/PLUGINS
   ============================================================ */

body.single-product ol.flex-control-nav.flex-control-thumbs,
body.single-product ol.flex-control-thumbs,
body.single-product .woocommerce-product-gallery .flex-control-thumbs {
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-flow: row nowrap !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  clear: both !important;
}

body.single-product ol.flex-control-nav.flex-control-thumbs > li,
body.single-product ol.flex-control-thumbs > li,
body.single-product .woocommerce-product-gallery .flex-control-thumbs > li {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
  flex: 0 0 calc((100% - 32px) / 5) !important;
}

body.single-product .woocommerce-tabs.wc-tabs-wrapper ul.tabs.wc-tabs,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0 !important;
  display: flex !important;
  gap: clamp(18px, 3vw, 30px) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  background: transparent !important;
  list-style: none !important;
}

body.single-product .woocommerce-tabs.wc-tabs-wrapper ul.tabs.wc-tabs > li,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  list-style: none !important;
}

body.single-product .woocommerce-tabs.wc-tabs-wrapper ul.tabs.wc-tabs > li > a,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 8px 0 12px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  list-style: none !important;
}

@media (max-width: 760px) {
  body.single-product ol.flex-control-nav.flex-control-thumbs > li,
  body.single-product ol.flex-control-thumbs > li,
  body.single-product .woocommerce-product-gallery .flex-control-thumbs > li {
    flex-basis: calc((100% - 21px) / 4) !important;
  }

  body.single-product .mg-related-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(218px, 78vw);
    gap: 13px;
    padding: 2px 2px 14px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
  }

  body.single-product .mg-related-card {
    scroll-snap-align: start;
  }
}

@media (min-width: 761px) and (max-width: 980px) {
  body.single-product .mg-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 981px) and (max-width: 1160px) {
  body.single-product .mg-related-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* ============================================================
   V7.2.3 · CIERRE DEFINITIVO DE FICHA DE PRODUCTO
   ============================================================ */

/* Cantidad: siempre [ − | 1 | + ] en horizontal. */
body.single-product .woocommerce div.product form.cart .quantity,
body.single-product .woocommerce div.product form.cart div.quantity {
  width: 144px !important;
  min-width: 144px !important;
  max-width: 144px !important;
  height: 52px !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 42px minmax(56px, 1fr) 42px !important;
  grid-template-rows: 52px !important;
  align-items: stretch !important;
  overflow: hidden !important;
  float: none !important;
  flex-direction: row !important;
  border: 1px solid rgba(5,49,136,.30) !important;
  border-radius: 10px !important;
  background: var(--white) !important;
}
body.single-product .woocommerce div.product form.cart .quantity .mg-qty-button--minus {
  grid-column: 1 !important;
  grid-row: 1 !important;
}
body.single-product .woocommerce div.product form.cart .quantity input.qty {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 52px !important;
  margin: 0 !important;
  padding: 0 4px !important;
}
body.single-product .woocommerce div.product form.cart .quantity .mg-qty-button--plus {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
body.single-product .woocommerce div.product form.cart .quantity .mg-qty-button {
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  height: 52px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

/* Precio: importe dominante; IVA como aclaración secundaria. */
body.single-product .woocommerce div.product div.summary p.price > small.woocommerce-price-suffix,
body.single-product .woocommerce div.product div.summary span.price > small.woocommerce-price-suffix,
body.single-product .woocommerce div.product div.summary .price .woocommerce-price-suffix,
body.single-product .woocommerce div.product .woocommerce-variation-price .woocommerce-price-suffix {
  display: block !important;
  margin: 5px 0 0 !important;
  color: var(--muted) !important;
  font-family: var(--body) !important;
  font-size: .73rem !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
}
body.single-product .mg-related-card__price .woocommerce-price-suffix {
  display: none !important;
}

/* Tabs: estado activo inequívoco con línea naranja. */
body.single-product .woocommerce-tabs.wc-tabs-wrapper ul.tabs.wc-tabs > li > a::after,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li > a::after {
  position: absolute !important;
  right: 0 !important;
  bottom: -1px !important;
  left: 0 !important;
  height: 3px !important;
  display: block !important;
  content: "" !important;
  border-radius: 999px 999px 0 0 !important;
  background: var(--orange) !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
}
body.single-product .woocommerce-tabs.wc-tabs-wrapper ul.tabs.wc-tabs > li.active > a::after,
body.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after {
  transform: scaleX(1) !important;
}

/* Google Pay / wallets: útiles, pero por debajo del CTA principal. */
body.single-product .wc-stripe-payment-request-wrapper,
body.single-product #wcpay-payment-request-wrapper,
body.single-product .wcpay-payment-request-wrapper,
body.single-product .wcpay-express-checkout-wrapper,
body.single-product .wc-block-components-express-payment,
body.single-product .ppc-button-wrapper,
body.single-product [class*="express-payment"],
body.single-product [class*="payment-request"] {
  width: min(100%, 400px) !important;
  max-width: 400px !important;
}

/* CTA final: WhatsApp principal, contacto secundario. */
body.single-product .mg-product-help a.button.button--signal {
  border-color: var(--orange) !important;
  background: var(--orange) !important;
  color: var(--navy-950) !important;
  box-shadow: 0 12px 28px rgba(250,92,8,.20) !important;
}
body.single-product .mg-product-help a.button.button--signal:hover,
body.single-product .mg-product-help a.button.button--signal:focus-visible {
  border-color: #ff7130 !important;
  background: #ff7130 !important;
  color: var(--navy-950) !important;
}
body.single-product .mg-product-help a.button.button--outline {
  border-color: var(--blue-700) !important;
  background: transparent !important;
  color: var(--blue-700) !important;
  box-shadow: none !important;
}
body.single-product .mg-product-help a.button.button--outline:hover,
body.single-product .mg-product-help a.button.button--outline:focus-visible {
  background: var(--blue-700) !important;
  color: var(--white) !important;
}

/* El cierre de la ficha respira, sin una franja vacía innecesaria. */
body.single-product .mg-product-help {
  margin-bottom: clamp(18px, 2vw, 28px) !important;
}

@media (max-width: 560px) {
  body.single-product .woocommerce div.product form.cart .quantity,
  body.single-product .woocommerce div.product form.cart div.quantity {
    width: 144px !important;
    min-width: 144px !important;
    max-width: 144px !important;
  }
}

/* ============================================================
   WooCommerce · CARRITO MG REPARATO V7.3
   ============================================================ */

body.woocommerce-cart {
  background: var(--white);
}

body.woocommerce-cart .entry-content,
body.woocommerce-cart main,
body.woocommerce-cart .site-main {
  overflow: visible;
}

/* ---------- Cabecera del proceso ---------- */

body.woocommerce-cart .mg-cart-intro {
  width: var(--shell);
  margin: clamp(30px, 4vw, 52px) auto clamp(24px, 3vw, 38px);
  padding-bottom: clamp(22px, 2.8vw, 34px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(28px, 5vw, 70px);
  align-items: end;
  border-bottom: 1px solid var(--line);
}

body.woocommerce-cart .mg-cart-intro__copy h1 {
  max-width: 11ch;
  font-size: clamp(2.5rem, 4.7vw, 4.5rem);
}

body.woocommerce-cart .mg-cart-intro__copy > p:not(.kicker) {
  max-width: 64ch;
  margin-top: 14px;
  color: var(--ink-70);
  font-size: clamp(.94rem, 1.15vw, 1.05rem);
}

body.woocommerce-cart .mg-checkout-progress {
  min-width: min(100%, 430px);
  display: grid;
  grid-template-columns: repeat(3, minmax(90px, 1fr));
  list-style: none;
}

body.woocommerce-cart .mg-checkout-progress li {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  color: var(--muted);
  font-size: .75rem;
}

body.woocommerce-cart .mg-checkout-progress li:not(:last-child)::after {
  position: absolute;
  z-index: 0;
  top: 15px;
  left: 31px;
  width: calc(100% - 30px);
  height: 1px;
  content: "";
  background: var(--blue-150);
}

body.woocommerce-cart .mg-checkout-progress span {
  position: relative;
  z-index: 1;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--blue-150);
  border-radius: 50%;
  background: var(--white);
  color: var(--muted);
  font-family: var(--mono);
  font-size: .66rem;
  font-weight: 800;
}

body.woocommerce-cart .mg-checkout-progress strong {
  position: relative;
  z-index: 1;
  min-width: 0;
  overflow: hidden;
  background: var(--white);
  color: inherit;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.woocommerce-cart .mg-checkout-progress .is-current {
  color: var(--navy-900);
}

body.woocommerce-cart .mg-checkout-progress .is-current span {
  border-color: var(--orange);
  background: var(--orange);
  color: var(--navy-950);
  box-shadow: 0 0 0 5px rgba(250,92,8,.09);
}

/* ---------- Layout clásico ---------- */

body.woocommerce-cart .woocommerce {
  width: 100%;
}

body.woocommerce-cart .mg-cart-layout {
  width: var(--shell);
  margin: 0 auto clamp(42px, 5vw, 70px);
  display: grid;
  grid-template-columns: minmax(0, 1.62fr) minmax(315px, .72fr);
  gap: clamp(20px, 2.4vw, 34px);
  align-items: start;
}

body.woocommerce-cart .mg-cart-layout::before,
body.woocommerce-cart .mg-cart-layout::after {
  display: none !important;
  content: none !important;
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}

body.woocommerce-cart .woocommerce-cart-form {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 12px 34px rgba(3,17,45,.045);
}

body.woocommerce-cart table.shop_table.cart {
  width: 100%;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: collapse !important;
  border-radius: 0 !important;
}

body.woocommerce-cart table.shop_table.cart thead {
  background: #f7f9fc;
}

body.woocommerce-cart table.shop_table.cart th {
  padding: 14px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  color: var(--ink-70);
  font-family: var(--mono);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.woocommerce-cart table.shop_table.cart td {
  padding: 18px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  vertical-align: middle;
}

body.woocommerce-cart table.shop_table.cart tr:last-child td {
  border-bottom: 0 !important;
}

body.woocommerce-cart td.product-remove {
  width: 48px;
  padding-right: 4px !important;
}

body.woocommerce-cart td.product-remove a.remove {
  width: 34px;
  height: 34px;
  display: grid !important;
  place-items: center;
  border: 1px solid rgba(180,35,24,.16);
  border-radius: 50%;
  background: #fff7f6;
  color: var(--danger) !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  text-decoration: none;
  transition: background var(--fast), color var(--fast), border-color var(--fast), transform var(--fast);
}

body.woocommerce-cart td.product-remove a.remove:hover,
body.woocommerce-cart td.product-remove a.remove:focus-visible {
  border-color: var(--danger);
  background: var(--danger) !important;
  color: var(--white) !important;
  transform: translateY(-1px);
}

body.woocommerce-cart td.product-thumbnail {
  width: 112px;
}

body.woocommerce-cart td.product-thumbnail a {
  width: 86px;
  height: 86px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(5,49,136,.08);
  border-radius: 12px;
  background: #f6f8fa;
}

body.woocommerce-cart td.product-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 7px;
  object-fit: contain;
}

body.woocommerce-cart td.product-name a {
  color: var(--navy-900);
  font-family: var(--display);
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.25;
  text-decoration: none;
}

body.woocommerce-cart td.product-name a:hover {
  color: var(--orange-dark);
}

body.woocommerce-cart td.product-name dl.variation,
body.woocommerce-cart td.product-name .variation {
  margin: 7px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  color: var(--muted);
  font-size: .75rem;
}

body.woocommerce-cart td.product-name dl.variation dt,
body.woocommerce-cart td.product-name dl.variation dd {
  margin: 0;
  float: none;
}

body.woocommerce-cart td.product-price,
body.woocommerce-cart td.product-subtotal {
  color: var(--navy-900);
  font-weight: 850;
  white-space: nowrap;
}

body.woocommerce-cart td.product-subtotal {
  font-size: 1.02rem;
}

/* Stepper de cantidad del carrito clásico. */
body.woocommerce-cart .woocommerce-cart-form .quantity.mg-cart-quantity {
  width: 126px !important;
  min-width: 126px !important;
  height: 44px !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: 38px 50px 38px !important;
  align-items: stretch !important;
  overflow: hidden;
  border: 1px solid var(--blue-150);
  border-radius: 9px;
  background: var(--white);
}

body.woocommerce-cart .woocommerce-cart-form .quantity.mg-cart-quantity .mg-cart-qty-button,
body.woocommerce-cart .woocommerce-cart-form .quantity.mg-cart-quantity input.qty {
  width: auto !important;
  min-width: 0 !important;
  height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--navy-900) !important;
  box-shadow: none !important;
  text-align: center;
}

body.woocommerce-cart .woocommerce-cart-form .quantity.mg-cart-quantity .mg-cart-qty-button {
  display: grid;
  place-items: center;
  cursor: pointer;
  font-size: 1.08rem;
  font-weight: 850;
}

body.woocommerce-cart .woocommerce-cart-form .quantity.mg-cart-quantity .mg-cart-qty-button:hover {
  background: var(--blue-75) !important;
}

body.woocommerce-cart .woocommerce-cart-form .quantity.mg-cart-quantity input.qty {
  border-right: 1px solid var(--blue-150) !important;
  border-left: 1px solid var(--blue-150) !important;
  font-size: .86rem;
  font-weight: 800;
  appearance: textfield;
}

body.woocommerce-cart .woocommerce-cart-form .quantity.mg-cart-quantity input.qty::-webkit-outer-spin-button,
body.woocommerce-cart .woocommerce-cart-form .quantity.mg-cart-quantity input.qty::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
}

/* Cupón y actualización. */
body.woocommerce-cart table.shop_table.cart td.actions {
  padding: 16px !important;
  background: #fbfcfe;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon {
  display: flex;
  gap: 8px;
  align-items: center;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon #coupon_code {
  width: min(245px, 100%);
  min-height: 44px;
  margin: 0 !important;
  padding: 9px 12px !important;
  border: 1px solid var(--blue-150) !important;
  border-radius: 9px;
  background: var(--white);
  color: var(--ink);
  box-shadow: none;
}

body.woocommerce-cart table.shop_table.cart td.actions .button {
  min-height: 44px;
  padding: 10px 15px !important;
  border: 1px solid var(--blue-700) !important;
  background: transparent !important;
  color: var(--blue-700) !important;
  box-shadow: none !important;
}

body.woocommerce-cart table.shop_table.cart td.actions .button:hover,
body.woocommerce-cart table.shop_table.cart td.actions .button:focus-visible {
  background: var(--blue-700) !important;
  color: var(--white) !important;
}

body.woocommerce-cart table.shop_table.cart td.actions > .button[name="update_cart"] {
  float: right;
}

/* ---------- Resumen del pedido clásico ---------- */

body.woocommerce-cart .cart-collaterals .cart_totals {
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(20px, 2.3vw, 28px);
  float: none !important;
  position: sticky;
  top: 126px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg, #fbfdff, #f5f8fc);
  box-shadow: 0 16px 42px rgba(3,17,45,.07);
}

.admin-bar.woocommerce-cart .cart-collaterals .cart_totals {
  top: 158px;
}

body.woocommerce-cart .cart-collaterals .cart_totals > h2 {
  margin: 0 0 17px;
  color: var(--navy-900);
  font-size: clamp(1.45rem, 2vw, 1.85rem);
  letter-spacing: -.025em;
}

body.woocommerce-cart .cart-collaterals table.shop_table {
  margin: 0 !important;
  border: 0 !important;
  border-collapse: collapse !important;
  background: transparent;
}

body.woocommerce-cart .cart-collaterals table.shop_table th,
body.woocommerce-cart .cart-collaterals table.shop_table td {
  padding: 13px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--line) !important;
  background: transparent !important;
  font-size: .87rem;
  vertical-align: top;
}

body.woocommerce-cart .cart-collaterals table.shop_table th {
  color: var(--ink-70);
  font-weight: 700;
  text-align: left;
}

body.woocommerce-cart .cart-collaterals table.shop_table td {
  color: var(--navy-900);
  font-weight: 800;
  text-align: right;
}

body.woocommerce-cart .cart-collaterals tr.order-total th,
body.woocommerce-cart .cart-collaterals tr.order-total td {
  padding-top: 17px !important;
  border-bottom: 0 !important;
  color: var(--navy-900);
  font-size: 1rem;
}

body.woocommerce-cart .cart-collaterals tr.order-total td strong {
  font-size: 1.3rem;
}

body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 18px 0 0 !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  width: 100%;
  min-height: 54px;
  margin: 0 !important;
  padding: 14px 18px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--orange) !important;
  border-radius: 10px !important;
  background: var(--orange) !important;
  color: var(--navy-950) !important;
  box-shadow: 0 14px 30px rgba(250,92,8,.18) !important;
  font-family: var(--display) !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  text-align: center;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:focus-visible {
  border-color: #ff7130 !important;
  background: #ff7130 !important;
  color: var(--navy-950) !important;
  transform: translateY(-1px);
}

/* ---------- Cart Block ---------- */

body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-cart .wc-block-cart {
  width: var(--shell);
  max-width: var(--shell);
  margin-right: auto !important;
  margin-left: auto !important;
}

body.woocommerce-cart .wc-block-cart {
  gap: clamp(20px, 2.4vw, 34px) !important;
}

body.woocommerce-cart .wc-block-cart__main {
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 12px 34px rgba(3,17,45,.045);
}

body.woocommerce-cart .wc-block-cart-items {
  margin: 0 !important;
  border: 0 !important;
}

body.woocommerce-cart .wc-block-cart-items thead {
  background: #f7f9fc;
}

body.woocommerce-cart .wc-block-cart-items th,
body.woocommerce-cart .wc-block-cart-items td {
  border-color: var(--line) !important;
}

body.woocommerce-cart .wc-block-cart-items th {
  padding: 14px 16px !important;
  color: var(--ink-70);
  font-family: var(--mono);
  font-size: .64rem !important;
  font-weight: 800 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.woocommerce-cart .wc-block-cart-item__image {
  padding: 18px 8px 18px 16px !important;
}

body.woocommerce-cart .wc-block-cart-item__image img {
  width: 88px !important;
  height: 88px !important;
  padding: 7px;
  border: 1px solid rgba(5,49,136,.08);
  border-radius: 12px;
  background: #f6f8fa;
  object-fit: contain;
}

body.woocommerce-cart .wc-block-components-product-name {
  color: var(--navy-900) !important;
  font-family: var(--display) !important;
  font-size: 1rem !important;
  font-weight: 850 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
}

body.woocommerce-cart .wc-block-components-product-price,
body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper {
  color: var(--navy-900) !important;
  font-weight: 850 !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector {
  min-height: 44px;
  overflow: hidden;
  border: 1px solid var(--blue-150) !important;
  border-radius: 9px !important;
  background: var(--white) !important;
  box-shadow: none !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector::after {
  display: none !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector__button,
body.woocommerce-cart .wc-block-components-quantity-selector__input {
  min-height: 42px !important;
  color: var(--navy-900) !important;
}

body.woocommerce-cart .wc-block-cart-item__remove-link {
  color: var(--danger) !important;
  font-size: .75rem !important;
  font-weight: 750 !important;
  text-decoration: none !important;
}

body.woocommerce-cart .wc-block-cart__sidebar {
  align-self: start;
  margin: 0 !important;
  padding: 0 !important;
  position: sticky;
  top: 126px;
}

.admin-bar.woocommerce-cart .wc-block-cart__sidebar {
  top: 158px;
}

body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
  border-color: var(--line) !important;
  background: transparent !important;
}

body.woocommerce-cart .wc-block-cart__sidebar > div,
body.woocommerce-cart .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
  border-radius: 18px;
}

body.woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-cart .wc-block-components-totals-item__label {
  color: var(--navy-900) !important;
  font-weight: 800 !important;
}

body.woocommerce-cart .wc-block-cart__totals-title {
  font-family: var(--display) !important;
  font-size: clamp(1.35rem, 1.8vw, 1.7rem) !important;
  letter-spacing: -.02em;
  text-transform: none !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-cart .wc-block-components-totals-item__value {
  color: var(--navy-900) !important;
  font-weight: 850 !important;
}

body.woocommerce-cart .wc-block-cart__submit-container {
  padding: 16px 0 0 !important;
  background: transparent !important;
}

body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button {
  width: 100% !important;
  min-height: 54px !important;
  border: 1px solid var(--orange) !important;
  border-radius: 10px !important;
  background: var(--orange) !important;
  color: var(--navy-950) !important;
  box-shadow: 0 14px 30px rgba(250,92,8,.18) !important;
  font-family: var(--display) !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-cart__submit-button:focus-visible,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:hover,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:focus-visible {
  border-color: #ff7130 !important;
  background: #ff7130 !important;
  color: var(--navy-950) !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__form input,
body.woocommerce-cart .wc-block-components-text-input input {
  border-color: var(--blue-150) !important;
  border-radius: 9px !important;
  box-shadow: none !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__button {
  min-height: 42px !important;
  border: 1px solid var(--blue-700) !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: var(--blue-700) !important;
  font-weight: 800 !important;
}

/* ---------- Confianza tras el carrito ---------- */

body.woocommerce-cart .mg-cart-assurance {
  width: var(--shell);
  margin: 0 auto clamp(54px, 7vw, 88px);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(145deg, #fbfdff, #f5f8fc);
}

body.woocommerce-cart .mg-cart-assurance > div {
  min-width: 0;
  padding: 18px 17px;
  display: flex;
  gap: 11px;
  align-items: flex-start;
  border-right: 1px solid var(--line);
}

body.woocommerce-cart .mg-cart-assurance > div:last-child {
  border-right: 0;
}

body.woocommerce-cart .mg-cart-assurance > div > span {
  width: 25px;
  height: 25px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(8,120,89,.09);
  color: var(--success);
  font-size: .73rem;
  font-weight: 900;
}

body.woocommerce-cart .mg-cart-assurance p {
  min-width: 0;
  display: grid;
  gap: 3px;
}

body.woocommerce-cart .mg-cart-assurance strong {
  color: var(--navy-900);
  font-size: .78rem;
  line-height: 1.25;
}

body.woocommerce-cart .mg-cart-assurance small {
  color: var(--muted);
  font-size: .67rem;
  line-height: 1.35;
}

/* ---------- Cross-sells ---------- */

body.woocommerce-cart .cross-sells,
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block {
  width: var(--shell);
  margin: clamp(10px, 2vw, 24px) auto clamp(48px, 6vw, 76px) !important;
  clear: both;
}

body.woocommerce-cart .cross-sells > h2,
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block > h2 {
  margin-bottom: 22px;
  font-size: clamp(1.75rem, 2.8vw, 2.55rem);
}

body.woocommerce-cart .cross-sells ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

body.woocommerce-cart .cross-sells ul.products::before,
body.woocommerce-cart .cross-sells ul.products::after {
  display: none !important;
  content: none !important;
}

/* ---------- Carrito vacío ---------- */

body.woocommerce-cart .wc-empty-cart-message,
body.woocommerce-cart .woocommerce-info:has(+ .return-to-shop) {
  width: var(--shell);
  margin: 0 auto !important;
}

body.woocommerce-cart .cart-empty,
body.woocommerce-cart .wc-block-cart__empty-cart__title {
  color: var(--navy-900);
  font-family: var(--display);
  font-weight: 850;
}

body.woocommerce-cart .return-to-shop {
  width: var(--shell);
  margin: 22px auto clamp(54px, 7vw, 88px);
}

body.woocommerce-cart .return-to-shop .button {
  min-height: 50px;
  padding: 12px 18px !important;
  border: 1px solid var(--orange) !important;
  background: var(--orange) !important;
  color: var(--navy-950) !important;
}

/* ---------- Responsive carrito ---------- */

@media (max-width: 1080px) {
  body.woocommerce-cart .mg-cart-layout {
    grid-template-columns: minmax(0, 1.42fr) minmax(290px, .72fr);
  }

  body.woocommerce-cart .mg-cart-assurance {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.woocommerce-cart .mg-cart-assurance > div:nth-child(2) {
    border-right: 0;
  }

  body.woocommerce-cart .mg-cart-assurance > div:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }

  body.woocommerce-cart .cross-sells ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 860px) {
  body.woocommerce-cart .mg-cart-intro {
    grid-template-columns: 1fr;
    align-items: start;
  }

  body.woocommerce-cart .mg-checkout-progress {
    width: 100%;
    min-width: 0;
  }

  body.woocommerce-cart .mg-cart-layout,
  body.woocommerce-cart .wc-block-cart {
    grid-template-columns: 1fr !important;
  }

  body.woocommerce-cart .cart-collaterals .cart_totals,
  body.woocommerce-cart .wc-block-cart__sidebar {
    position: static;
  }

  body.woocommerce-cart .cross-sells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  body.woocommerce-cart .mg-cart-intro {
    margin-top: 24px;
  }

  body.woocommerce-cart .mg-cart-intro__copy h1 {
    font-size: clamp(2.35rem, 12vw, 3.2rem);
  }

  body.woocommerce-cart .mg-checkout-progress {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.woocommerce-cart .mg-checkout-progress li {
    grid-template-columns: 27px 1fr;
    gap: 6px;
    font-size: .65rem;
  }

  body.woocommerce-cart .mg-checkout-progress span {
    width: 27px;
    height: 27px;
  }

  body.woocommerce-cart .mg-checkout-progress li:not(:last-child)::after {
    top: 13px;
    left: 27px;
    width: calc(100% - 27px);
  }

  body.woocommerce-cart .mg-cart-layout {
    width: min(100% - 24px, 1220px);
  }

  body.woocommerce-cart table.shop_table.cart td {
    padding: 13px 14px !important;
  }

  body.woocommerce-cart table.shop_table.cart td.product-thumbnail {
    display: block !important;
    width: 92px;
  }

  body.woocommerce-cart table.shop_table.cart td.product-thumbnail::before {
    display: none !important;
  }

  body.woocommerce-cart table.shop_table.cart td.product-thumbnail a {
    width: 78px;
    height: 78px;
  }

  body.woocommerce-cart table.shop_table.cart td.actions .coupon {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  body.woocommerce-cart table.shop_table.cart td.actions .coupon #coupon_code {
    width: 100%;
  }

  body.woocommerce-cart table.shop_table.cart td.actions > .button[name="update_cart"] {
    width: 100%;
    margin-top: 10px !important;
    float: none;
  }

  body.woocommerce-cart .mg-cart-assurance {
    width: min(100% - 24px, 1220px);
    grid-template-columns: 1fr;
  }

  body.woocommerce-cart .mg-cart-assurance > div,
  body.woocommerce-cart .mg-cart-assurance > div:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  body.woocommerce-cart .mg-cart-assurance > div:last-child {
    border-bottom: 0;
  }

  body.woocommerce-cart .cross-sells ul.products {
    display: flex !important;
    gap: 12px !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
  }

  body.woocommerce-cart .cross-sells ul.products li.product {
    width: min(78vw, 290px) !important;
    min-width: min(78vw, 290px) !important;
    scroll-snap-align: start;
  }
}

/* Ocultar el título genérico de la página si el tema lo imprime además del hero V7.3. */
body.woocommerce-cart .entry-header .entry-title,
body.woocommerce-cart .page-header .page-title {
  display: none !important;
}

@media (max-width: 620px) {
  /* En carrito clásico, cada línea de producto se convierte en una tarjeta legible. */
  body.woocommerce-cart table.shop_table.cart thead {
    display: none !important;
  }

  body.woocommerce-cart table.shop_table.cart tbody,
  body.woocommerce-cart table.shop_table.cart tr.cart_item,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item {
    display: block !important;
    width: 100% !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item {
    position: relative;
    padding: 16px 14px 14px 112px;
    border-bottom: 1px solid var(--line);
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item > td,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item > td {
    width: 100% !important;
    min-height: 0;
    padding: 6px 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 0 !important;
    text-align: right !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item > td::before,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item > td::before {
    margin-right: auto;
    color: var(--muted);
    font-family: var(--mono);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-remove,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-remove {
    position: absolute;
    z-index: 2;
    top: 14px;
    left: 14px;
    width: 34px !important;
    padding: 0 !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-remove::before,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-remove::before,
  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-thumbnail::before,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-thumbnail::before,
  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-name::before,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-name::before {
    display: none !important;
    content: none !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-thumbnail,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-thumbnail {
    position: absolute;
    top: 14px;
    left: 52px;
    width: 74px !important;
    padding: 0 !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-thumbnail a,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-thumbnail a {
    width: 66px;
    height: 66px;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-name,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-name {
    min-height: 62px;
    display: block !important;
    text-align: left !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-name a,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-name a {
    font-size: .96rem;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-price::before,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-price::before {
    content: "Precio" !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-quantity::before,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-quantity::before {
    content: "Cantidad" !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-subtotal::before,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-subtotal::before {
    content: "Subtotal" !important;
  }

  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-subtotal,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item td.product-subtotal {
    margin-top: 3px;
    padding-top: 10px !important;
    border-top: 1px solid var(--line) !important;
    font-size: 1rem;
  }

  body.woocommerce-cart table.shop_table.cart td.actions {
    display: block !important;
    width: 100% !important;
    padding: 14px !important;
  }

  body.woocommerce-cart table.shop_table.cart td.actions::before {
    display: none !important;
    content: none !important;
  }

  body.woocommerce-cart table.shop_table.cart td.actions .coupon .button {
    width: auto !important;
    min-width: 86px;
    margin: 0 !important;
    float: none !important;
    display: flex !important;
  }
}
@media (max-width: 620px) {
  body.woocommerce-cart table.shop_table.cart tr.cart_item,
  body.woocommerce-cart table.shop_table.cart tr.woocommerce-cart-form__cart-item {
    padding-left: 124px;
  }
}

/* ============================================================
   V8 · Ajustes responsive finales de componentes editoriales
   ============================================================ */
@media (max-width: 760px) {
  .store-teaser__grid,
  .store-launch__grid {
    grid-template-columns: 1fr;
  }

  .store-teaser__product,
  .store-launch__visual,
  .store-product-card {
    min-width: 0;
  }

  .store-teaser__product {
    padding: 1.45rem;
  }

  .store-teaser__product div,
  .store-launch__price {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .store-category-grid,
  .store-product-grid {
    grid-template-columns: 1fr;
  }
}

/* Utilidad accesible usada por WordPress y WooCommerce. */
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.screen-reader-text:focus {
  z-index: 100000;
  top: 8px;
  left: 8px;
  width: auto !important;
  height: auto !important;
  padding: 12px 16px !important;
  margin: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
  border: 1px solid var(--blue-150) !important;
  border-radius: 8px;
  background: var(--white);
  color: var(--navy-900);
  box-shadow: var(--shadow);
}

/* ============================================================
   V8.1 · navegación ecommerce y área de cliente
   ============================================================ */
.site-nav .mg-nav-account,
.site-nav .mg-nav-cart {
  min-height: 42px;
  padding-inline: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fafc;
}
.site-nav .mg-nav-account::after,
.site-nav .mg-nav-cart::after { display: none; }
.site-nav .mg-nav-account:hover,
.site-nav .mg-nav-cart:hover { border-color: rgba(250,92,8,.5); background: #fff7f2; }
.mg-nav-cart-count {
  min-width: 22px;
  height: 22px;
  margin-left: 6px;
  padding: 0 6px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--orange);
  color: var(--navy-950);
  font: 900 .72rem/1 var(--display);
}
@media (min-width: 1101px) {
  .site-nav { gap: clamp(9px, 1.2vw, 19px); }
  .site-nav > a:not(.button) { font-size: .88rem; }
  .site-nav .button { padding-inline: 15px; }
}
.footer-grid { grid-template-columns: 1.45fr repeat(4, minmax(0,1fr)); gap: 34px; }
@media (max-width: 1120px) {
  .footer-grid { grid-template-columns: 1.5fr repeat(2,1fr); }
  .footer-grid > div:nth-child(4),
  .footer-grid > div:nth-child(5) { grid-column: auto; }
}
@media (max-width: 820px) {
  .footer-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 640px) {
  .footer-grid { grid-template-columns: 1fr; }
}
.mg-referral-service-copy { margin: 18px 0; padding: 14px 16px; border: 1px solid rgba(250,92,8,.3); border-radius: 12px; background: #fff7f2; color: #613b26; }
.mg-partner-program-intro { background: #f5f8fc; }
.mg-partner-program-points { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; align-self: stretch; }
.mg-partner-program-points article { min-height: 150px; padding: 22px; display: flex; flex-direction: column; justify-content: flex-end; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.mg-partner-program-points strong { color: var(--navy-900); font: 900 clamp(2rem,4vw,3.2rem)/1 var(--display); }
.mg-partner-program-points span { margin-top: 8px; color: var(--ink-70); font-size: .86rem; }
@media (max-width: 760px) { .mg-partner-program-points { grid-template-columns: 1fr; } .mg-partner-program-points article { min-height: 110px; } }


/* ============================================================
   V8.1.1 · Recuperación de páginas y protección de regresiones
   ============================================================ */

/* Servicios: el contenedor de tarjetas queda explícito y no depende de la
   estructura implícita del seed. */
.service-directory__group > .service-directory__items {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  min-width: 0;
}
.service-directory__items > article {
  height: 100%;
  min-width: 0;
}
.service-directory__items > article > div {
  min-width: 0;
}

/* Contacto: teléfono, WhatsApp, email, Instagram y base comparten exactamente
   el mismo sistema visual de tarjeta. */
.contact-cards .contact-channel-card {
  min-height: 230px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.contact-cards .contact-channel-card > p {
  flex: 1 1 auto;
}
.contact-cards .contact-channel-card > .button {
  margin-top: auto;
}
.contact-cards .contact-channel-card h2 {
  overflow-wrap: anywhere;
}

@media (max-width: 980px) {
  .service-directory__group > .service-directory__items {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   V8.1.2 · saneamiento visual y compatibilidad con contenido legacy
   ============================================================ */

/* 1) SERVICIOS
   Compatibilidad con la estructura legacy (wrapper <div> sin clase) y con la
   estructura actual. El wrapper siempre ocupa todo el ancho del grupo. */
.service-directory__group > .service-directory__items,
.service-directory__group > div:not([class]) {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.service-directory__group > .service-directory__items > article,
.service-directory__group > div:not([class]) > article {
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: 100%;
}

/* Las tarjetas de directorio dejan de heredar alturas desproporcionadas. */
.service-directory--grouped .service-directory__group article {
  min-height: 360px;
}
.service-directory--grouped .service-directory__group article h3 {
  margin-top: 10px;
  font-size: clamp(1.55rem, 2vw, 2.05rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}
.service-directory--grouped .service-directory__group article > div > p:not(:first-child) {
  font-size: .91rem;
  line-height: 1.55;
}
.service-directory--grouped .service-facts {
  margin-top: auto;
}

/* 2) PÁGINAS LOCALES: Pedrola, Zaragoza y Tudela.
   Estas páginas tienen seis servicios: una retícula 3x2 resulta mucho más
   estable que reutilizar el bento asimétrico de la portada. */
.page-local .service-bento {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.page-local .service-bento > .service-card,
.page-local .service-bento > .service-card:nth-child(1),
.page-local .service-bento > .service-card:nth-child(5),
.page-local .service-bento > .service-card:nth-child(6),
.page-local .service-bento > .service-card--1,
.page-local .service-bento > .service-card--2,
.page-local .service-bento > .service-card--3,
.page-local .service-bento > .service-card--4 {
  grid-column: auto;
  width: auto;
  min-width: 0;
  min-height: 300px;
}
.page-local .service-bento > .service-card:nth-child(1) {
  min-height: 300px;
}
.page-local .service-bento .service-card h3 {
  max-width: 17ch;
  font-size: clamp(1.45rem, 2vw, 1.95rem);
}
.page-local .service-bento .service-card p {
  font-size: .9rem;
  line-height: 1.55;
}
.page-local .service-bento .service-card > div {
  margin-top: auto;
}

/* 3) QUIÉNES SOMOS.
   El logotipo ya aparece en la cabecera: aquí actúa como sello de marca y no
   como protagonista a pantalla completa. La explicación va primero. */
.brand-proof {
  overflow: hidden;
}
.brand-proof__grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(210px, .55fr);
  gap: clamp(36px, 7vw, 88px);
  align-items: center;
}
.brand-proof__grid > div {
  order: 1;
  min-width: 0;
}
.brand-proof__grid > img {
  order: 2;
  box-sizing: border-box;
  width: min(100%, 250px);
  height: auto;
  max-width: 250px;
  max-height: 300px;
  margin-inline: auto;
  padding: 14px;
  justify-self: center;
  object-fit: contain;
  border-radius: 22px;
}
.brand-proof__grid h2 {
  max-width: 18ch;
  font-size: clamp(2.15rem, 3.6vw, 3.55rem);
}
.brand-proof__grid .section-lead {
  max-width: 58ch;
}

/* 4) Fotos editoriales: un aspect-ratio con min-height fijo generaba 400 px
   de ancho en móviles de 390 px. Nunca deben ampliar su columna. */
.photo-slot,
.photo-slot__frame,
.founder-grid > *,
.visual-proof__grid > * {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 1100px) {
  .page-local .service-bento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-directory__group > .service-directory__items,
  .service-directory__group > div:not([class]) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .service-directory__group > .service-directory__items,
  .service-directory__group > div:not([class]),
  .page-local .service-bento {
    grid-template-columns: 1fr;
  }

  .service-directory--grouped .service-directory__group article,
  .page-local .service-bento > .service-card,
  .page-local .service-bento > .service-card:nth-child(1) {
    min-height: 0;
  }

  .brand-proof__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .brand-proof__grid > div {
    order: 1;
  }
  .brand-proof__grid > img {
    order: 2;
    width: min(58vw, 190px);
    max-width: 190px;
    max-height: 220px;
    padding: 10px;
  }
  .brand-proof__grid h2 {
    font-size: clamp(2rem, 10vw, 2.8rem);
  }

  .photo-slot--vertical .photo-slot__frame {
    width: 100%;
    min-height: 0;
    aspect-ratio: 4 / 5;
  }
}

@media (max-width: 520px) {
  .service-directory__group {
    padding: 16px;
  }
  .service-directory__group > header {
    padding-bottom: 14px;
  }
  .service-directory--grouped .service-directory__group article {
    padding: 20px;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
  }
  .service-directory--grouped .service-directory__group article h3 {
    font-size: 1.55rem;
  }
  .page-local .service-bento .service-card {
    padding: 22px;
  }
}

/* ============================================================
   V8.2.0 · revisión visual integral, navegación de servicios
   y mejora del área de cliente / profesional
   ============================================================ */

/* NAVEGACIÓN · desplegable de servicios */
.site-nav-details {
  position: relative;
  margin: 0;
}
.site-nav-details > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  list-style: none;
  color: var(--navy-900);
  font-weight: 700;
}
.site-nav-details > summary::-webkit-details-marker,
.site-nav-details > summary::marker {
  display: none;
  content: '';
}
.site-nav-details > summary::after {
  width: 9px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  content: '';
  transform: rotate(45deg) translateY(-1px);
  transition: transform var(--fast);
}
.site-nav-details[open] > summary::after {
  transform: rotate(-135deg) translateY(-1px);
}
.site-submenu {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 26px 78px rgba(3,17,45,.18);
}
.site-submenu__intro {
  padding: 26px;
  border-bottom: 1px solid rgba(5,49,136,.12);
  background: linear-gradient(145deg, rgba(237,243,252,.92), rgba(255,255,255,.98));
}
.site-submenu__eyebrow {
  margin-bottom: 12px;
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.site-submenu__intro h2 {
  max-width: 13ch;
  font-size: clamp(1.8rem, 2.1vw, 2.7rem);
}
.site-submenu__intro p {
  max-width: 54ch;
  margin-top: 14px;
  color: var(--ink-70);
}
.site-submenu__intro .button {
  margin-top: 18px;
}
.site-submenu__grid {
  padding: 22px 26px 26px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.site-submenu__group {
  min-width: 0;
}
.site-submenu__group > p {
  margin-bottom: 12px;
  color: var(--navy-900);
  font-family: var(--mono);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.site-submenu__group > div {
  display: grid;
  gap: 10px;
}
.site-submenu__group a {
  min-width: 0;
  padding: 14px 16px;
  display: grid;
  gap: 4px;
  border: 1px solid rgba(5,49,136,.10);
  border-radius: 14px;
  background: rgba(255,255,255,.86);
  text-decoration: none;
  transition: transform var(--fast), border-color var(--fast), box-shadow var(--fast);
}
.site-submenu__group a:hover,
.site-submenu__group a:focus-visible {
  border-color: rgba(250,92,8,.55);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(3,17,45,.08);
}
.site-submenu__group a strong {
  color: var(--navy-900);
  font-size: .98rem;
  line-height: 1.2;
}
.site-submenu__group a span {
  color: var(--ink-70);
  font-size: .84rem;
  line-height: 1.45;
}

@media (min-width: 1101px) {
  .site-nav-details--services {
    display: flex;
    align-items: center;
  }
  .site-nav-details--services > .site-submenu {
    position: absolute;
    left: 50%;
    top: calc(100% + 18px);
    width: min(1080px, calc(100vw - 48px));
    transform: translateX(-34%);
  }
}

@media (max-width: 1100px) {
  .site-nav-details {
    width: 100%;
  }
  .site-nav-details > summary {
    min-height: 54px;
    justify-content: space-between;
    width: 100%;
    padding: 0 18px;
    border-bottom: 1px solid rgba(5,49,136,.1);
  }
  .site-submenu {
    margin: 12px 18px 4px;
    box-shadow: 0 14px 36px rgba(3,17,45,.12);
  }
  .site-submenu__intro,
  .site-submenu__grid {
    padding: 18px;
  }
  .site-submenu__grid {
    grid-template-columns: 1fr;
  }
}

/* SERVICIOS · directorio compacto y proporcionado */
.mg-route-servicios .section--paper > .shell,
.mg-route-servicios .page-hero > .shell,
.page-local .section > .shell,
.mg-route-quienes-somos .section > .shell {
  max-width: 1220px;
}

.service-directory--grouped {
  gap: 24px;
}
.service-directory__group {
  gap: 18px;
  padding: clamp(22px, 3vw, 34px);
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(4px);
}
.service-directory__group > header {
  margin-bottom: 2px;
  padding-bottom: 18px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 18px 22px;
  align-items: end;
}
.service-directory__group > header > span {
  align-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  min-height: 52px;
  border-radius: 14px;
  background: rgba(5,49,136,.06);
  color: var(--navy-900);
  font-family: var(--mono);
  font-size: .82rem;
  font-weight: 700;
}
.service-directory__group > header h2,
.service-directory__group > h2 {
  max-width: none;
  font-size: clamp(2rem, 2.8vw, 3.1rem);
}
.service-directory__group > header div {
  min-width: 0;
}
.service-directory__group > .service-directory__items,
.service-directory__group > div:not([class]) {
  gap: 18px;
}
.service-directory--grouped .service-directory__group article {
  min-height: 0;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.service-directory--grouped .service-directory__group article > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 32px;
  border-radius: 10px;
  background: rgba(250,92,8,.08);
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .72rem;
  font-weight: 700;
}
.service-directory--grouped .service-directory__group article > div {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.service-directory--grouped .service-directory__group article > div > p:first-child {
  margin-bottom: 10px;
  font-size: .7rem;
  line-height: 1.35;
}
.service-directory--grouped .service-directory__group article h3 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(1.52rem, 1.6vw, 2rem);
  line-height: 1.05;
}
.service-directory--grouped .service-directory__group article > div > p:not(:first-child) {
  margin-top: 12px;
  font-size: .95rem;
  line-height: 1.58;
}
.service-directory--grouped .service-facts {
  margin-top: auto;
  padding-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.fact-chip {
  padding: 7px 10px;
  border: 1px solid rgba(5,49,136,.12);
  border-radius: 999px;
  background: rgba(237,243,252,.75);
  color: var(--navy-900);
  font-family: var(--mono);
  font-size: .72rem;
}
.service-directory--grouped .button {
  margin-top: 18px;
}

/* PÁGINAS LOCALES · tarjeta homogénea */
.page-local .section-heading {
  gap: 18px;
  margin-bottom: 34px;
}
.page-local .section-heading h2 {
  max-width: 14ch;
}
.page-local .service-bento {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}
.page-local .service-bento > .service-card,
.page-local .service-bento > .service-card:nth-child(1),
.page-local .service-bento > .service-card:nth-child(5),
.page-local .service-bento > .service-card:nth-child(6),
.page-local .service-bento > .service-card--1,
.page-local .service-bento > .service-card--2,
.page-local .service-bento > .service-card--3,
.page-local .service-bento > .service-card--4 {
  grid-column: auto;
  min-height: 308px;
}
.page-local .service-card {
  padding: 24px;
}
.page-local .service-card h3 {
  max-width: none;
  margin-top: 18px;
  font-size: clamp(1.52rem, 1.55vw, 1.95rem);
}
.page-local .service-card p {
  margin-top: 12px;
  font-size: .95rem;
  line-height: 1.58;
}
.page-local .service-card > div {
  margin-top: auto;
  flex-wrap: wrap;
  gap: 10px;
}
.page-local .service-card > div > span {
  white-space: nowrap;
}

/* QUIÉNES SOMOS · composición compacta, sin vacío superior */
.brand-proof {
  padding-top: clamp(40px, 5vw, 68px);
}
.brand-proof__grid {
  grid-template-columns: minmax(0, 1.18fr) minmax(180px, .52fr);
  gap: clamp(24px, 5vw, 60px);
  align-items: start;
}
.brand-proof__grid > div {
  padding-top: 6px;
}
.brand-proof__grid > img {
  width: min(100%, 230px);
  max-width: 230px;
  max-height: 290px;
  padding: 14px;
  border-radius: 24px;
}
.brand-proof__grid h2 {
  max-width: 12ch;
  font-size: clamp(2.15rem, 3vw, 3.45rem);
}
.brand-proof__grid .section-lead {
  max-width: 54ch;
}

/* ÁREA DE CLIENTE / PROFESIONALES */
.woocommerce-account .woocommerce,
.woocommerce-view-order .woocommerce {
  width: var(--shell);
  margin: clamp(30px, 4vw, 48px) auto clamp(64px, 8vw, 110px);
  display: grid;
  grid-template-columns: minmax(230px, 280px) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after,
.woocommerce-view-order .woocommerce::before,
.woocommerce-view-order .woocommerce::after {
  display: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-view-order .woocommerce-MyAccount-navigation {
  min-width: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul,
.woocommerce-view-order .woocommerce-MyAccount-navigation ul {
  position: sticky;
  top: 116px;
  padding: 18px;
  display: grid;
  gap: 10px;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(237,243,252,.8));
  box-shadow: 0 16px 44px rgba(3,17,45,.08);
}
.woocommerce-account .woocommerce-MyAccount-navigation li,
.woocommerce-view-order .woocommerce-MyAccount-navigation li {
  margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation a,
.woocommerce-view-order .woocommerce-MyAccount-navigation a {
  padding: 14px 16px;
  display: block;
  border-radius: 14px;
  color: var(--navy-900);
  font-weight: 700;
  text-decoration: none;
  transition: background var(--fast), color var(--fast), transform var(--fast);
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-view-order .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-view-order .woocommerce-MyAccount-navigation .is-active a {
  background: var(--navy-900);
  color: var(--white);
  transform: translateY(-1px);
}
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-view-order .woocommerce-MyAccount-content {
  min-width: 0;
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--line);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,248,253,.94));
  box-shadow: 0 18px 46px rgba(3,17,45,.08);
}
.woocommerce-account .woocommerce-MyAccount-content > * + *,
.woocommerce-view-order .woocommerce-MyAccount-content > * + * {
  margin-top: 22px;
}
.woocommerce-account .woocommerce-MyAccount-content p,
.woocommerce-view-order .woocommerce-MyAccount-content p {
  color: var(--ink-70);
}
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3,
.woocommerce-view-order .woocommerce-MyAccount-content h2,
.woocommerce-view-order .woocommerce-MyAccount-content h3 {
  color: var(--navy-900);
}
.woocommerce-account .woocommerce-MyAccount-content form .button,
.woocommerce-view-order .woocommerce-MyAccount-content form .button,
.woocommerce-account .woocommerce-MyAccount-content .button,
.woocommerce-view-order .woocommerce-MyAccount-content .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.woocommerce-account .woocommerce-MyAccount-content input:not([type=checkbox]):not([type=radio]),
.woocommerce-account .woocommerce-MyAccount-content select,
.woocommerce-account .woocommerce-MyAccount-content textarea,
.woocommerce-view-order .woocommerce-MyAccount-content input:not([type=checkbox]):not([type=radio]),
.woocommerce-view-order .woocommerce-MyAccount-content select,
.woocommerce-view-order .woocommerce-MyAccount-content textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid rgba(5,49,136,.18);
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  color: var(--navy-900);
}
.woocommerce-account .woocommerce-MyAccount-content label,
.woocommerce-view-order .woocommerce-MyAccount-content label {
  display: block;
  margin-bottom: 8px;
  color: var(--navy-900);
  font-weight: 700;
}
.woocommerce-account .addresses,
.woocommerce-account .woocommerce-columns--addresses,
.woocommerce-account .u-columns,
.woocommerce-account #customer_login {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.woocommerce-account .u-column1,
.woocommerce-account .u-column2,
.woocommerce-account .woocommerce-Address,
.woocommerce-account .login,
.woocommerce-account .register {
  padding: 22px;
  border: 1px solid rgba(5,49,136,.14);
  border-radius: 20px;
  background: rgba(255,255,255,.9);
}
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-error,
.woocommerce-view-order .woocommerce-info,
.woocommerce-view-order .woocommerce-message,
.woocommerce-view-order .woocommerce-error {
  margin: 0 0 18px;
  padding: 14px 16px 14px 18px;
  border-radius: 14px;
  border: 1px solid rgba(5,49,136,.14);
  background: rgba(237,243,252,.8);
}
.woocommerce-account .woocommerce-table,
.woocommerce-account table.shop_table,
.woocommerce-view-order .woocommerce-table,
.woocommerce-view-order table.shop_table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(5,49,136,.12);
}
.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td,
.woocommerce-view-order table.shop_table th,
.woocommerce-view-order table.shop_table td {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(5,49,136,.1);
  text-align: left;
}
.woocommerce-account table.shop_table thead,
.woocommerce-view-order table.shop_table thead {
  background: rgba(237,243,252,.85);
}
.woocommerce-account table.shop_table tr:last-child td,
.woocommerce-view-order table.shop_table tr:last-child td {
  border-bottom: 0;
}

.mg-account-hero,
.mg-partner-hero,
.mg-account-section-head {
  padding: clamp(22px, 3vw, 30px);
  display: grid;
  gap: 14px;
  border: 1px solid rgba(5,49,136,.14);
  border-radius: 24px;
  background: linear-gradient(150deg, rgba(4,26,67,.98), rgba(5,39,95,.96));
  color: var(--white);
}
.mg-account-hero {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
}
.mg-partner-hero {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}
.mg-account-hero h2,
.mg-partner-hero h2,
.mg-account-section-head h2 {
  color: var(--white);
  font-size: clamp(2rem, 3vw, 3.2rem);
}
.mg-account-hero p,
.mg-partner-hero p,
.mg-account-section-head p {
  max-width: 62ch;
  color: #c0d0e8;
}
.mg-account-section-head {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
}
.mg-eyebrow {
  color: #ff9359;
  font-family: var(--mono);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.mg-account-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.mg-account-stats > a,
.mg-account-stats > div {
  min-width: 0;
  padding: 18px 18px 16px;
  display: grid;
  gap: 4px;
  border: 1px solid rgba(5,49,136,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.9);
  text-decoration: none;
}
.mg-account-stats strong {
  color: var(--navy-900);
  font-family: var(--display);
  font-size: clamp(1.9rem, 2.5vw, 2.8rem);
  line-height: 1;
}
.mg-account-stats span {
  color: var(--ink-70);
  font-size: .88rem;
}
.mg-account-next {
  padding: 22px;
  border: 1px solid rgba(5,49,136,.12);
  border-radius: 22px;
  background: rgba(255,255,255,.86);
}
.mg-account-next__grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
.mg-account-next__grid a {
  min-width: 0;
  padding: 18px;
  display: grid;
  gap: 6px;
  border: 1px solid rgba(5,49,136,.12);
  border-radius: 18px;
  background: linear-gradient(150deg, rgba(255,255,255,.96), rgba(237,243,252,.72));
  text-decoration: none;
}
.mg-account-next__grid strong {
  color: var(--navy-900);
}
.mg-repair-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.mg-repair-card {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border: 1px solid rgba(5,49,136,.14);
  border-radius: 20px;
  background: rgba(255,255,255,.92);
}
.mg-repair-card__top,
.mg-repair-card dl {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
}
.mg-repair-card__service {
  color: var(--navy-900);
  font-weight: 700;
}
.mg-repair-card__update {
  padding: 14px 16px;
  border-radius: 14px;
  background: rgba(237,243,252,.78);
}
.mg-repair-card dl {
  padding-top: 12px;
  border-top: 1px solid rgba(5,49,136,.1);
}
.mg-repair-card dl > div {
  min-width: 160px;
}
.mg-repair-card dt {
  color: var(--ink-70);
  font-family: var(--mono);
  font-size: .74rem;
  text-transform: uppercase;
}
.mg-repair-card dd {
  margin-top: 4px;
  color: var(--navy-900);
  font-weight: 700;
}
.mg-status,
.mg-commission-status,
.mg-partner-state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  border: 1px solid transparent;
}
.mg-status--received,
.mg-commission-status--pending,
.mg-partner-state--pending { background: rgba(250,92,8,.10); color: var(--orange-dark); border-color: rgba(250,92,8,.2); }
.mg-status--reviewing,
.mg-status--awaiting_info,
.mg-commission-status--review { background: rgba(5,49,136,.08); color: var(--navy-900); border-color: rgba(5,49,136,.15); }
.mg-status--authorized,
.mg-status--in_progress,
.mg-commission-status--approved,
.mg-partner-state--active { background: rgba(8,120,89,.12); color: var(--success); border-color: rgba(8,120,89,.18); }
.mg-status--ready,
.mg-status--delivered,
.mg-commission-status--paid { background: rgba(21,75,168,.10); color: var(--blue-700); border-color: rgba(21,75,168,.16); }
.mg-status--cancelled,
.mg-commission-status--cancelled,
.mg-partner-state--suspended { background: rgba(180,35,24,.08); color: var(--danger); border-color: rgba(180,35,24,.14); }
.mg-referral-code-card,
.mg-referral-link-card,
.mg-partner-terms-card,
.mg-partner-rules,
.mg-partner-history,
.mg-business-profile-form,
.mg-empty-state {
  padding: 22px;
  border: 1px solid rgba(5,49,136,.12);
  border-radius: 22px;
  background: rgba(255,255,255,.9);
}
.mg-referral-code-card,
.mg-referral-link-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
}
.mg-referral-code-card strong {
  display: block;
  margin-top: 6px;
  color: var(--navy-900);
  font-family: var(--display);
  font-size: clamp(1.8rem, 2.4vw, 2.8rem);
}
.mg-referral-link-card label {
  display: block;
  margin-bottom: 8px;
}
.mg-referral-link-card > div {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
}
.mg-partner-rules ol {
  margin: 14px 0 0;
  padding-left: 18px;
  display: grid;
  gap: 10px;
}
.mg-partner-rules li span {
  display: block;
  color: var(--ink-70);
}
.mg-partner-history h3,
.mg-partner-rules h3,
.mg-account-next h3 {
  font-size: 1.5rem;
}
.mg-table-wrap {
  overflow-x: auto;
}
.mg-table-wrap table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
}
.mg-table-wrap th,
.mg-table-wrap td {
  padding: 13px 14px;
  border-bottom: 1px solid rgba(5,49,136,.1);
  text-align: left;
}
.mg-table-wrap thead {
  background: rgba(237,243,252,.85);
}
.mg-business-profile-form {
  display: grid;
  gap: 14px;
}
.mg-business-profile-form .form-row {
  margin: 0;
}
.mg-partner-terms-check {
  display: flex !important;
  align-items: start;
  gap: 10px;
  margin-bottom: 18px;
}
.mg-partner-terms-link {
  margin-top: 12px;
}
.mg-empty-state {
  text-align: center;
}

@media (max-width: 1100px) {
  .woocommerce-account .woocommerce,
  .woocommerce-view-order .woocommerce {
    grid-template-columns: 1fr;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul,
  .woocommerce-view-order .woocommerce-MyAccount-navigation ul {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mg-account-next__grid,
  .mg-account-stats,
  .mg-repair-list,
  .woocommerce-account .addresses,
  .woocommerce-account .woocommerce-columns--addresses,
  .woocommerce-account .u-columns,
  .woocommerce-account #customer_login {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .service-directory__group {
    padding: 18px;
  }
  .service-directory__group > header {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .service-directory__group > header > span {
    min-width: 44px;
    min-height: 44px;
  }
  .page-local .service-bento,
  .mg-account-stats,
  .mg-account-next__grid,
  .mg-repair-list {
    grid-template-columns: 1fr;
  }
  .page-local .service-card,
  .page-local .service-bento > .service-card:nth-child(1) {
    min-height: 0;
  }
  .brand-proof__grid {
    grid-template-columns: 1fr;
  }
  .brand-proof__grid > img {
    justify-self: start;
    margin-inline: 0;
  }
  .mg-account-hero,
  .mg-partner-hero,
  .mg-account-section-head,
  .mg-referral-code-card,
  .mg-referral-link-card {
    grid-template-columns: 1fr;
  }
  .woocommerce-account .woocommerce-MyAccount-content,
  .woocommerce-view-order .woocommerce-MyAccount-content {
    padding: 18px;
    border-radius: 22px;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul,
  .woocommerce-view-order .woocommerce-MyAccount-navigation ul {
    grid-template-columns: 1fr;
    padding: 14px;
  }
}

/* Área de acceso (login / registro) */
.mg-account-access-hero,
.mg-register-intro {
  padding: clamp(22px, 3vw, 30px);
  border: 1px solid rgba(5,49,136,.14);
  border-radius: 24px;
  background: linear-gradient(150deg, rgba(4,26,67,.98), rgba(5,39,95,.95));
  color: var(--white);
}
.mg-account-access-hero {
  margin-bottom: 22px;
}
.mg-account-access-hero h1,
.mg-register-intro h3 {
  color: var(--white);
}
.mg-account-access-hero p:last-child,
.mg-register-intro p:last-child {
  max-width: 62ch;
  margin-top: 12px;
  color: #c0d0e8;
}
.mg-business-registration-fields {
  margin-top: 16px;
  padding: 16px;
  border: 1px dashed rgba(5,49,136,.18);
  border-radius: 18px;
  background: rgba(237,243,252,.55);
}
.mg-form-help {
  color: var(--ink-70);
  font-size: .9rem;
}

/* ============================================================
   V8.3 · SISTEMA TIPOGRÁFICO Y RITMO VERTICAL MG REPARATO
   2026-08-17
   Objetivos:
   - Escala tipográfica común para las páginas editoriales.
   - Menos espacio vacío entre secciones.
   - Portada visible parcialmente por debajo del hero al 100%.
   - Mantener intactos WooCommerce, carrito, checkout y ficha de producto.
   ============================================================ */

:root {
  /* Escala tipográfica oficial MG Reparato */
  --mg-type-display: clamp(3rem, 4.35vw, 4.25rem);
  --mg-type-page-title: clamp(2.65rem, 3.8vw, 3.75rem);
  --mg-type-section-title: clamp(1.95rem, 2.7vw, 2.65rem);
  --mg-type-card-title: clamp(1.22rem, 1.55vw, 1.48rem);
  --mg-type-lead: clamp(1rem, 1.05vw, 1.1rem);
  --mg-type-body: 1rem;
  --mg-type-small: .875rem;
  --mg-type-kicker: .70rem;

  /* Ritmo */
  --mg-section-y: clamp(48px, 4.4vw, 66px);
  --mg-section-y-mobile: 40px;
  --mg-heading-gap: 26px;
  --mg-content-gap: 18px;
  --mg-card-gap: 12px;
}

/* ------------------------------------------------------------
   TIPOGRAFÍA EDITORIAL
   Excluye páginas WooCommerce para no alterar producto, carrito
   ni checkout, ya ajustados de forma independiente.
   ------------------------------------------------------------ */

body:not(.woocommerce-page) .section h2 {
  font-size: var(--mg-type-section-title);
  line-height: 1.04;
  letter-spacing: -.035em;
}

body:not(.woocommerce-page) .section h3 {
  font-size: var(--mg-type-card-title);
  line-height: 1.08;
  letter-spacing: -.025em;
}

body:not(.woocommerce-page) .section-lead {
  max-width: 62ch;
  margin-top: 14px;
  font-size: var(--mg-type-lead);
  line-height: 1.58;
}

body:not(.woocommerce-page) .kicker {
  margin-bottom: 12px;
  font-size: var(--mg-type-kicker);
  line-height: 1.3;
}

body:not(.woocommerce-page) .section {
  padding-top: var(--mg-section-y);
  padding-bottom: var(--mg-section-y);
}

body:not(.woocommerce-page) .section-heading {
  gap: 24px;
  margin-bottom: var(--mg-heading-gap);
}

/* ------------------------------------------------------------
   HERO DE PORTADA
   ------------------------------------------------------------ */

body.home .hero-home--v2 {
  min-height: 560px;
  padding-top: clamp(50px, 4.3vw, 68px);
}

body.home .hero-home--v2 .hero-home__grid {
  gap: clamp(34px, 4.5vw, 62px);
  align-items: center;
}

body.home .hero-home--v2 .hero-copy h1 {
  max-width: 15ch;
  font-size: var(--mg-type-display);
  line-height: .98;
  letter-spacing: -.045em;
}

body.home .hero-home--v2 .hero-lead {
  max-width: 56ch;
  margin: 18px 0 20px;
  font-size: var(--mg-type-lead);
  line-height: 1.55;
}

body.home .hero-note {
  margin-top: 13px;
}

body.home .vehicle-console {
  min-height: 430px;
  padding: 18px;
  border-radius: 26px;
}

body.home .vehicle-console__head {
  min-height: 34px;
  padding-bottom: 9px;
}

body.home .vehicle-map {
  min-height: 282px;
  margin: 7px 0 5px;
}

body.home .vehicle-map__core {
  width: 98px;
  font-size: 1.55rem;
}

body.home .vehicle-console__status > * {
  padding: 10px;
}

body.home .hero-ruler {
  min-height: 44px;
  margin-top: 24px;
}

/* ------------------------------------------------------------
   PARTICULAR / PROFESIONAL
   ------------------------------------------------------------ */

body.home .audience-bar__grid > * {
  min-height: 92px;
  padding: 18px 24px;
}

body.home .audience-bar__grid > *::before {
  top: 14px;
  left: 24px;
}

body.home .audience-bar__grid strong,
body.home .audience-bar__grid h2,
body.home .audience-bar__grid h3 {
  margin-top: 5px;
  font-size: 1.08rem;
}

/* ------------------------------------------------------------
   COMPROMISOS Y MODALIDADES
   ------------------------------------------------------------ */

body.home .trust-grid article {
  min-height: 108px;
  padding: 18px 20px;
  gap: 13px;
}

body.home .trust-grid h2 {
  margin-bottom: 4px;
  font-size: 1.02rem;
}

body.home .trust-grid p {
  font-size: .81rem;
  line-height: 1.42;
}

body.home .availability-grid article {
  min-height: 96px;
  padding: 16px 22px;
}

body.home .availability-grid article::before {
  top: 22px;
  right: 22px;
}

body.home .availability-grid h2 {
  margin-top: 4px;
  font-size: 1.06rem;
}

body.home .availability-grid p {
  margin-top: 4px;
  font-size: .78rem;
}

/* ------------------------------------------------------------
   CAPACIDAD TÉCNICA
   ------------------------------------------------------------ */

body.home .technical-proof__grid {
  gap: clamp(34px, 5vw, 66px);
  align-items: center;
}

body.home .technical-proof__grid > div:first-child {
  position: static;
}

body.home .technical-proof__grid h2 {
  max-width: 15ch;
}

body.home .capability-matrix article {
  min-height: 160px;
  padding: 20px;
}

body.home .capability-matrix h3 {
  margin-top: 9px;
  font-size: 1.28rem;
}

body.home .capability-matrix p {
  margin-top: 7px;
  font-size: .86rem;
  line-height: 1.46;
}

/* ------------------------------------------------------------
   SELECTOR POR SÍNTOMA
   ------------------------------------------------------------ */

body.home .finder-grid {
  gap: clamp(34px, 5vw, 68px);
  align-items: center;
}

body.home .finder-grid h2 {
  max-width: 15ch;
}

body.home .finder-options {
  margin-top: 21px;
  gap: 8px;
}

body.home .finder-options button {
  min-height: 42px;
  padding: 8px 13px;
  font-size: .88rem;
}

body.home .finder-result {
  min-height: 305px;
  padding: 27px;
}

body.home .finder-result::before {
  top: 27px;
  left: 27px;
  width: 92px;
  height: 92px;
  box-shadow: 0 0 0 22px rgba(255,255,255,.025),
              0 0 0 44px rgba(255,255,255,.02);
}

body.home .finder-result h3 {
  font-size: clamp(1.65rem, 2.2vw, 2.2rem);
}

body.home .finder-result > p {
  margin-top: 9px;
  font-size: .9rem;
}

body.home .finder-result dl {
  margin: 16px 0 7px;
  padding-top: 13px;
}

/* ------------------------------------------------------------
   SERVICIOS DE PORTADA · DOS BLOQUES / TRES TARJETAS
   ------------------------------------------------------------ */

body.home .service-families {
  gap: 20px;
}

body.home .service-family {
  padding: clamp(22px, 2.8vw, 30px);
  border-radius: 22px;
}

body.home .service-family__head {
  margin-bottom: 17px;
  padding-bottom: 15px;
  gap: 22px;
}

body.home .service-family__head h2,
body.home .service-family__head h3 {
  max-width: none;
  font-size: clamp(1.65rem, 2.2vw, 2.1rem);
}

body.home .service-family__head > p {
  font-size: .86rem;
  line-height: 1.46;
}

body.home .symptom-grid {
  gap: var(--mg-card-gap);
}

body.home .symptom-card {
  min-height: 168px;
  padding: 18px;
  justify-content: flex-start;
}

body.home .symptom-card::before {
  margin-bottom: 17px;
}

body.home .symptom-card > span {
  font-size: .62rem;
}

body.home .symptom-card h2,
body.home .symptom-card h3 {
  margin-top: 10px;
  font-size: 1.22rem;
  line-height: 1.08;
}

body.home .symptom-card p {
  margin-top: 7px;
  font-size: .8rem;
  line-height: 1.42;
}

body.home .symptom-card p:last-child {
  margin-top: 9px;
}

/* ------------------------------------------------------------
   TIENDA
   ------------------------------------------------------------ */

body.home .store-teaser__grid {
  gap: clamp(30px, 4.5vw, 58px);
  align-items: center;
}

body.home .store-teaser__product {
  min-height: 0;
  padding: 26px;
}

/* ------------------------------------------------------------
   MÉTODO
   ------------------------------------------------------------ */

body.home .method-track::before {
  top: 26px;
}

body.home .method-track li {
  padding-inline: 15px;
}

body.home .method-track span {
  width: 54px;
  height: 54px;
}

body.home .method-track h3 {
  margin-top: 17px;
  font-size: 1.12rem;
}

body.home .method-track p {
  margin-top: 6px;
  font-size: .81rem;
  line-height: 1.42;
}

/* ------------------------------------------------------------
   COBERTURA
   ------------------------------------------------------------ */

body.home .coverage-teaser__grid {
  gap: clamp(34px, 5vw, 68px);
}

body.home .coverage-teaser > .shell > div:first-child > p:not(.kicker) {
  margin: 14px 0 20px;
}

body.home .corridor {
  padding: 36px 20px 21px;
}

body.home .corridor-line {
  top: 63px;
}

body.home .corridor li::before {
  margin-bottom: 13px;
}

body.home .corridor li.is-base::before {
  margin-bottom: 10px;
}

body.home .corridor > p {
  margin-top: 21px;
}

/* ------------------------------------------------------------
   PRECIOS
   ------------------------------------------------------------ */

body.home .prices-teaser__grid {
  gap: clamp(34px, 5vw, 68px);
}

body.home .prices-teaser .button {
  margin-top: 18px;
}

body.home .price-ledger li {
  min-height: 56px;
  padding: 8px 0;
}

/* ------------------------------------------------------------
   PROFESIONALES
   ------------------------------------------------------------ */

body.home .partner-teaser__grid {
  gap: 32px;
}

body.home .big-code {
  font-size: clamp(6rem, 14vw, 11rem);
}

body.home .partner-teaser p:not(.kicker) {
  margin: 13px 0 19px;
}

/* ------------------------------------------------------------
   FAQ
   ------------------------------------------------------------ */

body.home .faq-list {
  margin-top: 28px;
}

body.home .faq-list summary {
  min-height: 56px;
  padding: 12px 0;
  font-size: 1.01rem;
}

body.home .faq-list summary span {
  width: 38px;
  height: 38px;
  font-size: 1.05rem;
}

body.home .faq-list details > p {
  padding: 0 54px 17px 0;
  font-size: .9rem;
}

/* ------------------------------------------------------------
   CTA GLOBAL FINAL
   ------------------------------------------------------------ */

body:not(.woocommerce-page) .final-cta {
  padding: clamp(48px, 4.6vw, 66px) 0;
}

body:not(.woocommerce-page) .final-cta__grid {
  gap: clamp(30px, 5vw, 66px);
}

body:not(.woocommerce-page) .final-cta h2 {
  font-size: var(--mg-type-section-title);
}

body:not(.woocommerce-page) .final-cta__grid > div:last-child > p {
  margin-bottom: 18px;
}

/* ------------------------------------------------------------
   HERO Y RITMO DE PÁGINAS INTERIORES
   Base común para las páginas que iremos revisando una a una.
   ------------------------------------------------------------ */

body:not(.woocommerce-page) .page-hero {
  padding: clamp(58px, 5.4vw, 78px) 0;
}

body:not(.woocommerce-page) .service-hero {
  padding: clamp(58px, 5.4vw, 78px) 0;
}

body:not(.woocommerce-page) .page-hero h1,
body:not(.woocommerce-page) .service-hero h1 {
  font-size: var(--mg-type-page-title);
  line-height: .99;
  letter-spacing: -.043em;
}

body:not(.woocommerce-page) .page-hero__grid > div:first-child > p:last-child,
body:not(.woocommerce-page) .service-hero__grid > div:first-child > p:last-of-type {
  margin-top: 18px;
  font-size: var(--mg-type-lead);
  line-height: 1.55;
}

/* ------------------------------------------------------------
   RESPONSIVE · TABLET
   ------------------------------------------------------------ */

@media (max-width: 860px) {
  :root {
    --mg-section-y: 46px;
  }

  body:not(.woocommerce-page) .section {
    padding-top: 46px;
    padding-bottom: 46px;
  }

  body.home .hero-home--v2 {
    min-height: 0;
    padding-top: 48px;
  }

  body.home .hero-home--v2 .hero-copy h1 {
    max-width: 13.5ch;
    font-size: clamp(2.8rem, 8vw, 3.7rem);
  }

  body.home .hero-home--v2 .hero-home__grid {
    gap: 30px;
  }

  body.home .vehicle-console {
    min-height: 390px;
  }

  body.home .vehicle-map {
    min-height: 255px;
  }

  body.home .hero-ruler {
    margin-top: 20px;
  }

  body.home .capability-matrix article {
    min-height: 145px;
  }

  body.home .finder-result {
    min-height: 275px;
  }

  body.home .service-family {
    padding: 20px;
  }

  body:not(.woocommerce-page) .page-hero,
  body:not(.woocommerce-page) .service-hero {
    padding: 50px 0;
  }
}

/* ------------------------------------------------------------
   RESPONSIVE · MÓVIL
   ------------------------------------------------------------ */

@media (max-width: 640px) {
  :root {
    --mg-type-page-title: clamp(2.35rem, 10vw, 3.05rem);
    --mg-type-section-title: clamp(1.75rem, 8vw, 2.25rem);
    --mg-type-card-title: 1.18rem;
    --mg-section-y: var(--mg-section-y-mobile);
  }

  body:not(.woocommerce-page) .section {
    padding-top: var(--mg-section-y-mobile);
    padding-bottom: var(--mg-section-y-mobile);
  }

  body:not(.woocommerce-page) .section-heading {
    gap: 14px;
    margin-bottom: 21px;
  }

  body.home .hero-home--v2 {
    padding-top: 40px;
  }

  body.home .hero-home--v2 .hero-copy h1 {
    font-size: clamp(2.45rem, 11.3vw, 3.15rem);
  }

  body.home .hero-home--v2 .hero-lead {
    margin: 15px 0 17px;
    font-size: 1rem;
  }

  body.home .vehicle-console {
    min-height: 375px;
    padding: 14px;
    border-radius: 20px;
  }

  body.home .vehicle-map {
    min-height: 245px;
  }

  body.home .audience-bar__grid > * {
    min-height: 78px;
    padding: 15px 18px;
  }

  body.home .audience-bar__grid > *::before {
    left: 18px;
    top: 11px;
  }

  body.home .trust-grid article {
    min-height: 90px;
    padding: 15px;
  }

  body.home .availability-grid article {
    min-height: 84px;
    padding: 14px 17px;
  }

  body.home .service-family {
    padding: 16px;
  }

  body.home .service-family__head {
    margin-bottom: 14px;
    padding-bottom: 13px;
  }

  body.home .symptom-card {
    min-height: 150px;
    padding: 16px;
  }

  body.home .symptom-card::before {
    margin-bottom: 14px;
  }

  body.home .finder-options {
    margin-top: 18px;
  }

  body.home .finder-result {
    min-height: 250px;
    padding: 22px;
  }

  body.home .method-track li,
  body.home .method-track li:first-child,
  body.home .method-track li:last-child {
    min-height: 108px;
    padding-bottom: 22px;
  }

  body.home .faq-list {
    margin-top: 22px;
  }

  body:not(.woocommerce-page) .final-cta {
    padding: 42px 0;
  }

  body:not(.woocommerce-page) .page-hero,
  body:not(.woocommerce-page) .service-hero {
    padding: 44px 0;
  }

  body:not(.woocommerce-page) .page-hero h1,
  body:not(.woocommerce-page) .service-hero h1 {
    font-size: var(--mg-type-page-title);
  }
}

/* ============================================================
   V8.3.1 · INICIO · saneamiento definitivo Particular/Profesional
   Corrige nodos vacíos o párrafos automáticos generados por WordPress.
   ============================================================ */

body.home .audience-bar__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: stretch;
}

/* WordPress/Gutenberg puede insertar párrafos, saltos o wrappers vacíos.
   No deben convertirse en celdas visuales del grid. */
body.home .audience-bar__grid > br,
body.home .audience-bar__grid > p:not(:has(a)),
body.home .audience-bar__grid > div:not(:has(a)),
body.home .audience-bar__grid > span:not(:has(a)),
body.home .audience-bar__grid > a:not(:has(strong)) {
  display: none !important;
}

/* Si WordPress envuelve un enlace en un párrafo/div, eliminamos el wrapper
   del flujo para que el enlace sea la celda real del grid. */
body.home .audience-bar__grid > p:has(> a),
body.home .audience-bar__grid > div:has(> a) {
  display: contents !important;
}

/* Evita que los wrappers heredados sigan dibujando la raya naranja. */
body.home .audience-bar__grid > p::before,
body.home .audience-bar__grid > div::before,
body.home .audience-bar__grid > span::before {
  display: none !important;
  content: none !important;
}

/* Únicamente las dos tarjetas reales reciben el diseño. */
body.home .audience-bar__grid > a,
body.home .audience-bar__grid > p > a,
body.home .audience-bar__grid > div > a {
  position: relative;
  grid-column: auto !important;
  min-width: 0;
  min-height: 88px !important;
  padding: 17px 24px !important;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  border-top: 0 !important;
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  text-decoration: none;
}

body.home .audience-bar__grid > a:first-of-type,
body.home .audience-bar__grid > p:first-of-type > a,
body.home .audience-bar__grid > div:first-of-type > a {
  border-left: 1px solid var(--line);
}

body.home .audience-bar__grid > a::before,
body.home .audience-bar__grid > p > a::before,
body.home .audience-bar__grid > div > a::before {
  position: absolute;
  top: 14px;
  left: 24px;
  width: 20px;
  height: 2px;
  display: block !important;
  content: "" !important;
  background: var(--orange);
  transition: width var(--smooth);
}

body.home .audience-bar__grid > a:hover,
body.home .audience-bar__grid > a:focus-visible,
body.home .audience-bar__grid > p > a:hover,
body.home .audience-bar__grid > p > a:focus-visible,
body.home .audience-bar__grid > div > a:hover,
body.home .audience-bar__grid > div > a:focus-visible {
  z-index: 1;
  background: var(--blue-75);
  transform: translateY(-2px);
}

body.home .audience-bar__grid > a:hover::before,
body.home .audience-bar__grid > a:focus-visible::before,
body.home .audience-bar__grid > p > a:hover::before,
body.home .audience-bar__grid > p > a:focus-visible::before,
body.home .audience-bar__grid > div > a:hover::before,
body.home .audience-bar__grid > div > a:focus-visible::before {
  width: 48px;
}

body.home .audience-bar__grid a > span {
  margin-top: 8px;
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .63rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.home .audience-bar__grid a > strong {
  margin-top: 5px;
  color: var(--navy-900);
  font-family: var(--display);
  font-size: 1.08rem;
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1.12;
}

body.home .audience-bar__grid a > i {
  margin-top: 8px;
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .85rem;
  font-style: normal;
}

@media (max-width: 640px) {
  body.home .audience-bar__grid {
    grid-template-columns: 1fr !important;
  }

  body.home .audience-bar__grid > a,
  body.home .audience-bar__grid > p > a,
  body.home .audience-bar__grid > div > a {
    min-height: 82px !important;
    padding: 16px 18px !important;
    border-left: 1px solid var(--line) !important;
  }

  body.home .audience-bar__grid > a::before,
  body.home .audience-bar__grid > p > a::before,
  body.home .audience-bar__grid > div > a::before {
    left: 18px;
  }
}


/* ============================================================================
   ============================================================================
   MG REPARATO · CAPA DE DIRECCIÓN  ·  MG-DIR-01  ·  rev 1.1
   ============================================================================
   Añadida al final de site.css. Todo lo anterior queda intacto.
   Para revertir por completo: borrar desde esta cabecera hasta el final.

   CONTIENE
     A · Tipografía de marca real en todos los dispositivos   (cambio 01)
     B · Papel, radios, sombras y duraciones                   (07, 09, 13, 19)
     C · Foco de teclado visible                               (18)
     D · Tienda: compra, confianza, imágenes e insignias       (16, F-2, F-3)

   NO CONTIENE, deliberadamente
     Tamaños de h1/h2/h3. La escala --mg-type-* que ya existe en este archivo
     está bien calibrada (el h1 del hero ya está limitado a 68px) y tocarla
     habría deshecho un trabajo correcto.
   ============================================================================
   ============================================================================ */


/* ────────────────────────────────────────────────────────────────────────────
   A · TIPOGRAFÍA          cambio 01 · CRÍTICO
   ────────────────────────────────────────────────────────────────────────────
   PROBLEMA
   --display apuntaba a "Arial Narrow", que no está instalada en iOS ni en
   Android. En un iPhone la marca caía a Helvetica Neue, que NO es condensada:
   los titulares ocupaban mucho más ancho, dentro de contenedores limitados a
   15ch y con un tracking de -.045em pensado para otra letra. Además
   font-stretch:condensed no hace nada sobre una fuente sin eje de anchura.

   SOLUCIÓN
   Archivo es variable y tiene eje de anchura real, así que da el condensado
   de verdad y en todos los dispositivos. IBM Plex Sans/Mono sustituyen a
   Segoe UI (solo Windows) y ya estaban nombradas en --mono.

   Requiere el enqueue de fuentes añadido en functions.php.
   ──────────────────────────────────────────────────────────────────────────── */

:root {
  --display: "Archivo", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --body: "IBM Plex Sans", "Segoe UI", Inter, Arial, sans-serif;
  --mono: "IBM Plex Mono", "Cascadia Mono", Consolas, monospace;
}

/* Se pide el condensado por el eje de anchura. font-variation-settings tiene
   precedencia sobre font-stretch, así que anula el condensed que no funcionaba.
   Solo se fija "wdth": el peso lo sigue controlando font-weight. */
h1, h2, h3, h4, h5, h6,
.woocommerce h1, .woocommerce h2, .woocommerce h3, .woocommerce h4,
.button,
.site-nav > a:not(.button),
.field label, .field legend,
.wordmark strong {
  font-variation-settings: "wdth" 84;
}

/* Los títulos pequeños aguantan algo más de anchura sin perder carácter */
h3, h4, h5, h6,
.woocommerce h3, .woocommerce h4 {
  font-variation-settings: "wdth" 88;
}

.button,
.site-nav > a:not(.button) {
  font-variation-settings: "wdth" 90;
}


/* ────────────────────────────────────────────────────────────────────────────
   B · SUPERFICIES Y RITMO          cambios 07 · 09 · 13 · 19
   ──────────────────────────────────────────────────────────────────────────── */

:root {
  /* 09 · El crema #f4f2eb es cálido y de mundo editorial; contra los azules
     fríos de marca producía una mezcla ambigua. Un gris con sesgo azul
     mantiene la retícula de plano y hace destacar más el naranja. */
  --paper: #edf0f5;

  /* Línea más marcada. No existía y la usan las reglas de la sección D. */
  --line-2: rgba(5, 49, 136, .30);

  /* 13 · Menos redondeo: menos blando, más instrumental. */
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 16px;

  /* 07 · Las sombras anteriores (0 24px 64px) son de producto blando.
     Borde inferior sólido + sombra corta = pieza apoyada, no flotando. */
  --shadow: 0 1px 0 rgba(5, 49, 136, .16), 0 8px 18px -12px rgba(3, 17, 45, .42);
  --shadow-deep: 0 1px 0 rgba(5, 49, 136, .22), 0 18px 34px -18px rgba(3, 17, 45, .5);

  /* 19 · 520ms en un hover se percibe como lentitud, no como elegancia.
     ── Si al verlo prefieres el ritmo anterior, devuelve --smooth a 520ms. */
  --fast: 140ms cubic-bezier(.2, .7, .2, 1);
  --smooth: 340ms cubic-bezier(.16, 1, .3, 1);
}


/* ────────────────────────────────────────────────────────────────────────────
   C · FOCO DE TECLADO          cambio 18
   ────────────────────────────────────────────────────────────────────────────
   Los campos ya tenían un buen anillo azul y se conserva. Enlaces y botones no
   tenían estado propio: se les da el naranja, que contrasta sobre fondo claro
   y sobre fondo noche. No es un detalle menor: es lo que permite rellenar el
   formulario con el tabulador y las manos sucias.
   ──────────────────────────────────────────────────────────────────────────── */

.button:focus-visible,
.text-link:focus-visible,
.service-card:focus-visible,
.symptom-card a:focus-visible,
.site-nav a:focus-visible,
.mobile-dock a:focus-visible,
.utility-bar a:focus-visible,
.site-footer a:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* Cifras alineadas donde forman columna */
.price-ledger b,
.mg-product-meta,
.result-code {
  font-variant-numeric: tabular-nums;
}


/* ────────────────────────────────────────────────────────────────────────────
   D · TIENDA          cambio 16 · hallazgos F-2 y F-3
   ────────────────────────────────────────────────────────────────────────────
   Los selectores llevan el prefijo body.single-product porque las reglas que
   sobrescriben lo llevan. Sin él, estas declaraciones perderían por
   especificidad y no harían nada.
   ──────────────────────────────────────────────────────────────────────────── */

/* F-3 · La acción principal de una ficha de producto es comprar.
   «Añadir al carrito» era azul marino y «Preguntar por WhatsApp» naranja:
   el peso visual estaba invertido. */
body.single-product .woocommerce div.product form.cart .single_add_to_cart_button,
body.single-product .woocommerce div.product form.cart button.single_add_to_cart_button {
  background: var(--orange);
  color: var(--navy-950);
  border-color: transparent;
  box-shadow: 0 2px 0 var(--orange-dark), 0 10px 22px -10px rgba(250, 92, 8, .55);
}

body.single-product .woocommerce div.product form.cart .single_add_to_cart_button:hover,
body.single-product .woocommerce div.product form.cart .single_add_to_cart_button:focus-visible {
  background: #ff7130;
  color: var(--navy-950);
  box-shadow: 0 2px 0 var(--orange-dark), 0 14px 26px -10px rgba(250, 92, 8, .6);
}

/* El CTA de dudas baja a secundario: sigue estando, deja de competir. */
body.single-product .mg-product-help .button--signal {
  background: transparent;
  border-color: var(--blue-700);
  color: var(--blue-700);
  box-shadow: none;
}

body.single-product .mg-product-help .button--signal:hover {
  background: var(--blue-700);
  color: var(--white);
}


/* Cambio 16 · Bloque de confianza en una línea.
   Cuatro tarjetas con tic verde es lenguaje de tienda genérica y empujaba el
   precio y el botón fuera de la primera pantalla. El subtexto sigue en el DOM
   para los lectores de pantalla; solo se oculta visualmente. */
body.single-product .mg-product-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  padding: 13px 15px;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}

body.single-product .mg-product-trust__item {
  display: flex;
  align-items: baseline;
  gap: 7px;
  padding: 0;
  border: 0;
  background: none;
}

body.single-product .mg-product-trust__item > span {
  flex: none;
  color: var(--success);
  font-size: .8rem;
}

body.single-product .mg-product-trust__item p {
  margin: 0;
}

body.single-product .mg-product-trust__item strong {
  font-family: var(--body);
  font-size: .82rem;
  font-weight: 600;
  color: var(--ink);
}

body.single-product .mg-product-trust__item small {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}


/* F-2 · Las fotos vienen del proveedor: unas sobre fondo blanco, otras sobre
   gris, otras dentro de un coche. Encajándolas todas en la misma caja, con el
   mismo fondo y el mismo aire, el catálogo recupera unidad sin rehacer nada.
   No arregla el texto incrustado en dos de ellas: eso hay que sustituirlo.

   Fondo blanco y no un tinte: en el catálogo conviven fotos de producto sobre
   blanco y fotos tomadas dentro del coche. Sobre blanco, las primeras funden
   sin costura y las segundas quedan enmarcadas con limpieza. Se descartó
   mix-blend-mode porque habría oscurecido las tomadas en interior. */
body.single-product .mg-related-card__media {
  aspect-ratio: 4 / 3;
  background: var(--white);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

body.single-product .mg-related-card__media .mg-related-card__image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 12px;
}


/* Cambio 16 · Insignias más sobrias.
   Se conservan porque están calculadas con datos reales, no inventadas.
   Solo bajan de globo de color a etiqueta técnica. */
body.single-product .mg-related-card__badge,
.mg-product-badges span {
  padding: 3px 7px;
  border: 1px solid var(--line-2);
  border-radius: 3px;
  background: var(--white);
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  box-shadow: none;
}

body.single-product .mg-related-card__badge.is-sale,
.mg-product-badges .is-sale {
  border-color: var(--orange-dark);
  background: var(--orange-dark);
  color: var(--white);
}


/* Referencia y categoría en registro de ficha técnica */
body.single-product .mg-product-meta b {
  color: var(--muted);
  font-family: var(--mono);
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}


@media (max-width: 640px) {
  body.single-product .mg-product-trust {
    gap: 5px 14px;
    padding: 11px 13px;
  }

  body.single-product .mg-product-trust__item strong {
    font-size: .78rem;
  }
}


/* ============================================================================
   FIN DE LA CAPA MG-DIR-01
   ============================================================================ */

/* ============================================================================
   MG REPARATO · CAPA DE DIRECCIÓN 03 — primitiva única de tarjeta
   Ref. MG-DIR-01 · cambio 06
   ----------------------------------------------------------------------------
   Añadir al FINAL de site.css, después de la capa 01 y 02.
   Para revertir: borrar desde aquí hasta el final.

   QUÉ RESUELVE

   Conviven cuatro presentaciones de los mismos seis servicios:
     · portada    -> .symptom-card
     · Zaragoza   -> .service-card   (textos nuevos)
     · Pedrola    -> .service-card   (textos antiguos)
     · Tudela     -> .mgx-serv__card

   Y dos defectos medidos en producción:

   1. En .symptom-card, esta regla agrupa strong con los titulares:
         .symptom-card h2, .symptom-card h3, .symptom-card strong
         { font-size: 1.5rem; font-weight: 900 }
      El precio sale a 24px y el titular a 19,5px: el precio pesa más que
      el servicio del que es precio.

   2. WordPress eliminó las etiquetas <p> de las descripciones al guardar.
      El texto quedó como nodo suelto, así que .symptom-card p no aplica y
      la descripción se queda sin estilo.

   ESTRATEGIA
   Solo CSS. No se toca el HTML de ninguna página, así que no hay riesgo de
   romper contenido ni de perder textos. La descripción se resuelve dando
   estilo a la propia tarjeta, de modo que el texto suelto lo herede.
   ============================================================================ */


/* --- La caja: idéntica en las cuatro familias -------------------------- */

.symptom-card,
.service-card,
.mgx-serv__card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 250px;
  padding: 24px;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: none;
  text-decoration: none;

  /* La descripción perdió sus <p> y quedó como texto suelto:
     se le da estilo aquí para que lo herede. */
  color: var(--ink-70);
  font-family: var(--body);
  font-size: .93rem;
  line-height: 1.6;

  transition: border-color var(--fast), transform var(--smooth), box-shadow var(--smooth);
}

/* La primera tarjeta del bento venía en azul marino y rompía la simetría
   ahora que son seis iguales. Se iguala a las demás. */
.service-card:nth-child(1) {
  min-height: 250px;
  background: var(--white);
  color: var(--ink-70);
}

.service-card:nth-child(1) h3,
.service-card:nth-child(1) h2 {
  color: var(--navy-900);
}

.service-card:nth-child(1) p,
.service-card:nth-child(1) .service-card__signal,
.service-card:nth-child(1) > div > span,
.service-card:nth-child(1) b {
  color: inherit;
}

.service-card:nth-child(1) .service-card__signal {
  color: var(--orange-dark);
}


/* --- Acento superior: un solo gesto para todas ------------------------- */

.symptom-card::before,
.service-card::before,
.mgx-serv__card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 24px;
  right: auto;
  bottom: auto;
  width: 44px;
  height: 3px;
  margin: 0;
  border: 0;
  border-radius: 0 0 3px 3px;
  background: linear-gradient(90deg, var(--orange) 0 40%, var(--blue-700) 40%);
  box-shadow: none;
  opacity: 1;
  transform: none;
  transition: width var(--smooth);
}

.symptom-card:hover::before,
.service-card:hover::before,
.mgx-serv__card:hover::before {
  width: 76px;
  transform: none;
  opacity: 1;
}

/* El círculo decorativo del bento se retira: con seis tarjetas iguales
   añadía ruido en lugar de jerarquía. */
.service-card::after {
  content: none;
}


/* --- Hover idéntico --------------------------------------------------- */

.symptom-card:hover,
.service-card:hover,
.mgx-serv__card:hover {
  transform: translateY(-2px);
  border-color: var(--line-2);
  box-shadow: 0 12px 28px -14px rgba(3, 17, 45, .4);
}


/* --- Código de servicio: 01 / LLAVES ----------------------------------- */

.symptom-card > span,
.service-card .service-card__signal,
.mgx-serv__card .mgx-serv__sig {
  display: block;
  margin: 0 0 14px;
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.3;
  text-transform: uppercase;
}


/* --- Titular del servicio --------------------------------------------- */

.symptom-card h2,
.symptom-card h3,
.service-card h3,
.mgx-serv__card h3 {
  max-width: 20ch;
  margin: 0 0 10px;
  color: var(--navy-900);
  font-family: var(--display);
  font-size: 1.15rem;
  font-weight: 800;
  font-variation-settings: "wdth" 88;
  letter-spacing: -.015em;
  line-height: 1.2;
}


/* --- Descripción ------------------------------------------------------- */

.symptom-card p,
.service-card p,
.mgx-serv__card p {
  margin: 0 0 18px;
  color: var(--ink-70);
  font-family: var(--body);
  font-size: .93rem;
  line-height: 1.6;
}


/* --- Pie de tarjeta: precio y enlace ----------------------------------- */
/* Aquí está la corrección principal. El precio deja de competir con el
   titular: pasa a monoespaciada pequeña, que es el registro correcto para
   una cifra, y el enlace queda como acción secundaria. */

.symptom-card strong:first-of-type,
.mgx-serv__card .mgx-serv__precio,
.service-card > div b {
  display: block;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--orange-dark);
  font-family: var(--mono);
  font-size: .78rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1.45;
}

.symptom-card strong:last-of-type,
.mgx-serv__card .mgx-serv__link,
.service-card > div > span {
  display: block;
  margin-top: 8px;
  color: var(--blue-700);
  font-family: var(--body);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.3;
}

/* Si la tarjeta solo trae un strong, que no se quede sin separador */
.symptom-card strong:only-of-type {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}


/* --- Rejillas: mismo comportamiento en las cuatro páginas -------------- */

.symptom-grid,
.service-bento,
.service-bento--wide,
.mgx-serv {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

/* El bento asignaba anchos por modificador; con seis tarjetas iguales
   deja de tener sentido y se neutraliza. */
.service-bento .service-card,
.service-bento .service-card--1,
.service-bento .service-card--2,
.service-bento .service-card--3,
.service-bento .service-card--4,
.service-bento .service-card:nth-child(5),
.service-bento .service-card:nth-child(6),
.service-bento .service-card:nth-child(7) {
  grid-column: auto;
}


@media (max-width: 640px) {
  .symptom-card,
  .service-card,
  .service-card:nth-child(1),
  .mgx-serv__card {
    min-height: 0;
    padding: 20px;
  }

  .symptom-grid,
  .service-bento,
  .service-bento--wide,
  .mgx-serv {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}


/* ============================================================================
   FIN DE LA CAPA 03
   ============================================================================ */


/* ============================================================================
   MG REPARATO · CAPA DE DIRECCIÓN 04
   Ref. MG-DIR-01 · cambios 11 y 14 + correcciones del testeo responsive
   ----------------------------------------------------------------------------
   Añadir al FINAL de site.css, después de las capas 01, 02 y 03.
   Para revertir: borrar desde aquí hasta el final.

   REVISIÓN 2 · corrige un fallo grave de la revisión 1
   ----------------------------------------------------------------------------
   La revisión 1 contenía esta regla, pensada para que el barrido pasara por
   debajo de los nodos del mapa:

       .vehicle-map .system-node,
       .vehicle-map__core,
       .vehicle-map__orbit { position: relative; z-index: 1; }

   Los nodos y las órbitas son `position: absolute` en el CSS base: así es
   como se colocan alrededor del círculo. Al forzarlos a `relative` volvían
   al flujo normal y el mapa se desplegaba en una columna vertical. Medido en
   producción: el mapa pasaba de 255px a 782px de alto y el hero de 1074px a
   1548px, en TODOS los tamaños de pantalla, no solo en móvil.

   Aquí el barrido se resuelve como debe hacerse: `.vehicle-map` ya crea un
   contexto de apilamiento con `isolation: isolate`, así que basta con
   `z-index: -1` en el pseudoelemento. Queda por encima del fondo del mapa y
   por debajo de todo su contenido, sin tocar la posición de nada.

   MEDIDO EN PRODUCCIÓN CON EMULACIÓN DE DISPOSITIVO:
     · 375×812  (iPhone)
     · 768×1024 (tablet)
   ============================================================================ */


/* ────────────────────────────────────────────────────────────────────────────
   A · ESCALA DE ESPACIADO Y MEDIDA DE LECTURA        cambio 11
   ────────────────────────────────────────────────────────────────────────────
   El archivo ya tiene un ritmo afinado (--mg-section-y y la escala
   --mg-type-*). No se toca: solo se añaden los tokens que faltaban.

   --measure no estaba definido en ninguna parte, así que `max-width:
   var(--measure)` se quedaba en nada. Se define aquí.
   ──────────────────────────────────────────────────────────────────────────── */

:root {
  --sp-1: 8px;
  --sp-2: 16px;
  --sp-3: 24px;
  --sp-4: 32px;
  --sp-6: 48px;
  --sp-8: 64px;
  --sp-12: 96px;
  --measure: 68ch;
}

/* Ningún bloque de texto corrido debe pasar de ~68 caracteres por línea:
   por encima de esa medida el ojo pierde el salto de renglón. */
.trust-grid article p,
.availability-grid article p,
.capability-matrix article p,
.coverage-teaser__grid > div > p,
.partner-teaser__grid > div > p,
.method-track li p,
.faq-list p,
.store-teaser__grid > div > p {
  max-width: var(--measure);
}


/* ────────────────────────────────────────────────────────────────────────────
   B · OBJETIVOS TÁCTILES DEL PIE         corrección del testeo
   ────────────────────────────────────────────────────────────────────────────
   Medido a 375×812: los enlaces legales del pie quedaban en 19px de alto.
   El mínimo cómodo para un dedo es 44px.

   Los nodos del mapa se resuelven en el bloque D, donde dejan de ser un
   adorno circular para convertirse en seis botones reales.
   ──────────────────────────────────────────────────────────────────────────── */

@media (max-width: 860px) {
  .footer-legal div a,
  .footer-legal div button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 4px;
  }
}


/* ────────────────────────────────────────────────────────────────────────────
   C · SUELO DE TAMAÑO DE TEXTO         corrección del testeo
   ────────────────────────────────────────────────────────────────────────────
   Aparecían textos de 8,8px, 9,9px y 10,4px. Por debajo de 11,5px la lectura
   al sol, que es la situación real de un taller o una calle, se vuelve
   incómoda.

   Se respeta el registro de instrumento del sitio: las etiquetas técnicas en
   monoespaciada se quedan pequeñas (0.72rem), no se igualan al texto
   corriente. Lo que sube es el suelo, no la escala entera.

   Los prefijos `body.home` y `body:not(.woocommerce-page)` no son adorno:
   las reglas originales los usan, y sin ellos estas declaraciones perderían
   por especificidad sin dar ningún aviso.
   ──────────────────────────────────────────────────────────────────────────── */

@media (max-width: 860px) {
  :root { --mg-type-kicker: .75rem; }

  body:not(.woocommerce-page) .kicker,
  body:not(.woocommerce-page) .kicker--light {
    font-size: .75rem;
  }

  .hero-note,
  .hero-note .text-link,
  .site-submenu__group > p {
    font-size: .78rem;
  }

  .mobile-dock a span {
    font-size: .75rem;
  }

  .vehicle-console__head span,
  .vehicle-console__status span,
  .finder-result > span,
  .finder-result dt,
  .trust-strip article > span,
  .availability-grid span,
  .capability-matrix span,
  .wordmark--official small {
    font-size: .72rem;
  }

  body.home .symptom-card > span,
  body.home .audience-bar__grid a > span {
    font-size: .72rem;
  }
}


/* ────────────────────────────────────────────────────────────────────────────
   D · MÓVIL: EL MAPA PASA A SER SEIS BOTONES         corrección del testeo
   ────────────────────────────────────────────────────────────────────────────
   Medido: el hero ocupaba 1074px en una pantalla de 812px y el selector por
   síntoma no empezaba hasta el píxel 1147. Hacía falta scroll de pantalla y
   media para llegar a la función más útil del sitio.

   Dentro del círculo, en 375px de ancho, cada nodo quedaba en 34px de alto
   con el rótulo a 8,8px y un tope de 106px de ancho. Son enlaces a los seis
   servicios: ni se leían ni se acertaba con el dedo.

   El círculo es un gesto de escritorio. En móvil se deshace y los seis nodos
   pasan a una rejilla de dos columnas: mismos enlaces, 44px de alto, rótulo
   a 13px y ninguno truncado. El hero baja a 1023px y el selector sube a
   1096px, por debajo de donde estaba antes de tocar nada.

   Las órbitas y el núcleo son decorativos y vacíos (el núcleo solo pone
   «MG», que ya está en el logotipo de arriba): se ocultan.
   ──────────────────────────────────────────────────────────────────────────── */

@media (max-width: 640px) {
  .hero-home--v2 { min-height: 0; }
  .hero-home__grid { gap: 26px; }

  .vehicle-map {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 8px;
    max-width: none;
    min-height: 0;
    height: auto;
    aspect-ratio: auto;
    padding: 0;
  }

  .vehicle-map__orbit,
  .vehicle-map__core {
    display: none;
  }

  /* `a.system-node` en vez de `.system-node`: hace falta ganar a los
     modificadores de posición (.system-node--lost, --mercedes…), que traen
     top/left/transform para colocarse en el círculo.
     `max-width: none` deshace el tope de 106px que impone
     `@media (max-width: 390px) .system-node`. */
  .vehicle-map a.system-node {
    position: relative;
    inset: auto;
    transform: none;
    width: auto;
    max-width: none;
    min-width: 0;
    min-height: 44px;
    flex-direction: row;
    align-items: center;
    gap: 7px;
    padding: 8px 10px 8px 22px;
    white-space: normal;
  }

  .vehicle-map a.system-node b { font-size: .72rem; }
  .vehicle-map a.system-node span { font-size: .82rem; }

  .hero-ruler { display: none; }
}


/* ────────────────────────────────────────────────────────────────────────────
   E · TABLET: MODALIDADES A DOS COLUMNAS       corrección del testeo
   ────────────────────────────────────────────────────────────────────────────
   A 768px las tres tarjetas de disponibilidad quedaban en ~230px cada una,
   demasiado estrechas para su texto.
   ──────────────────────────────────────────────────────────────────────────── */

@media (min-width: 641px) and (max-width: 860px) {
  .availability-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ────────────────────────────────────────────────────────────────────────────
   F · BARRIDO DEL HERO         cambio 14
   ────────────────────────────────────────────────────────────────────────────
   El único momento ambiental del sitio. Un barrido lento y continuo sobre el
   mapa de sistemas, del tipo de una traza de osciloscopio, que sugiere
   medición activa.

   Es deliberadamente sutil: opacidad baja, 9 segundos por vuelta y sin
   sombras ni destellos. No compite con el titular ni con el CTA.

   `isolation: isolate` en el mapa crea un contexto de apilamiento propio, así
   que `z-index: -1` deja el barrido por encima del fondo del mapa y por
   debajo de órbitas, núcleo y nodos, sin alterar la posición de ninguno.

   Se desactiva por completo con prefers-reduced-motion, y en móvil, donde el
   mapa ya no es un círculo.
   ──────────────────────────────────────────────────────────────────────────── */

.vehicle-map {
  position: relative;
  isolation: isolate;
}

.vehicle-map::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 8%;
  border-radius: 50%;
  pointer-events: none;
  background: conic-gradient(
    from 0deg,
    rgba(250, 92, 8, 0) 0deg,
    rgba(250, 92, 8, 0) 300deg,
    rgba(250, 92, 8, .13) 352deg,
    rgba(250, 92, 8, .30) 359deg,
    rgba(250, 92, 8, 0) 360deg
  );
  -webkit-mask-image: radial-gradient(circle, transparent 26%, #000 34%, #000 96%, transparent 100%);
  mask-image: radial-gradient(circle, transparent 26%, #000 34%, #000 96%, transparent 100%);
  animation: mg-barrido 9s linear infinite;
}

@keyframes mg-barrido {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .vehicle-map::after {
    animation: none;
    display: none;
  }
}

/* En móvil el mapa ya es una rejilla de botones: el barrido no tiene sentido */
@media (max-width: 640px) {
  .vehicle-map::after {
    display: none;
  }
}


/* ============================================================================
   FIN DE LA CAPA 04
   ============================================================================ */


/* ============================================================================
   MG REPARATO · CAPA DE DIRECCIÓN 05
   Ref. MG-DIR-01 · remate de la rejilla del mapa en móvil
   ----------------------------------------------------------------------------
   Añadir al FINAL de site.css, después de la capa 04.
   Para revertir: borrar desde aquí hasta el final.

   POR QUÉ HACE FALTA

   La capa 04 convierte el mapa de sistemas en una rejilla de seis botones
   en móvil, pero dos declaraciones del CSS base seguían mandando:

     body.home .vehicle-map { min-height: 245px }   especificidad 201
     .vehicle-map           { justify-items: center }

   La primera ganaba a `.vehicle-map { min-height: 0 }` de la capa 04, que
   solo tiene especificidad 100. Con 245px fijos y tres filas, el sobrante
   se repartía entre ellas y los botones salían de 75 a 79px en vez de 44.

   La segunda dejaba cada botón del ancho de su texto, así que la rejilla
   quedaba con los seis desiguales, de 113 a 157px.

   Medido en producción a 375×812 después de aplicar esto:
     · mapa      245px  ->  152px
     · botones   75-79  ->  44-48px de alto, los seis a 157px de ancho
     · ninguno truncado, ninguno solapado, sin desbordamiento horizontal
   ============================================================================ */

@media (max-width: 640px) {
  body.home .vehicle-map,
  .vehicle-map {
    min-height: 0;
    justify-items: stretch;
    align-content: start;
  }
}


/* ============================================================================
   FIN DE LA CAPA 05
   ============================================================================ */


/* ════════════════════════════════════════════════════════════════════════════
   E · MEJORAS DE LA HOME · H-01 a H-13                          2026-08-29
   ════════════════════════════════════════════════════════════════════════════
   Todo lo que sigue son ajustes a componentes que ya existían más arriba. Va
   al final del archivo a propósito: así gana a las reglas previas sin tener
   que reescribirlas en su sitio, y se puede quitar de un tirón si hace falta.
   ──────────────────────────────────────────────────────────────────────────── */


/* ────────────────────────────────────────────────────────────────────────────
   E1 · HERO · siete nodos con nombre de cliente
   ────────────────────────────────────────────────────────────────────────────
   Antes eran seis nodos rotulados «KEY / Llaves», «DIAG / Diagnosis», «ECU /
   Módulos»: el código en inglés y la palabra en español decían lo mismo dos
   veces, y «KEY-0» u «OPEN» no significan nada para quien llega con el coche
   parado. Ahora cada nodo lleva solo el nombre del servicio, en español.

   Eso obliga a dos cosas. Una: los rótulos ya no caben en una línea, así que
   los nodos envuelven a dos y se alinean a la izquierda. Dos: entra el
   séptimo (cuadros de instrumentos, que tenía página propia y no estaba en el
   círculo), y la órbita se reparte de nuevo — un polo arriba y tres nodos por
   flanco, que es la única forma simétrica de colocar siete.
   ──────────────────────────────────────────────────────────────────────────── */

.vehicle-map .system-node {
  max-width: 152px;
  padding: 9px 12px 9px 25px;
  align-items: flex-start;
  white-space: normal;
  text-align: left;
  line-height: 1.28;
}
.vehicle-map .system-node::before { top: 13px; }

/* Polo superior */
.vehicle-map .system-node--lost { left: 50%; top: 0; max-width: 168px; text-align: center; }
.vehicle-map .system-node--lost::before { top: 13px; }

/* Flanco izquierdo */
.vehicle-map .system-node--keys    { left: 0; top: 15%; right: auto; bottom: auto; transform: none; }
.vehicle-map .system-node--access  { left: 0; top: 46%; right: auto; bottom: auto; transform: none; }
.vehicle-map .system-node--cluster { left: 0; top: 77%; right: auto; bottom: auto; }

/* Flanco derecho */
.vehicle-map .system-node--diag     { right: 0; top: 15%; left: auto; bottom: auto; transform: none; }
.vehicle-map .system-node--ecu      { right: 0; top: 46%; left: auto; bottom: auto; transform: none; }
.vehicle-map .system-node--mercedes { right: 0; top: 77%; left: auto; bottom: auto; transform: none; }

/* El hover de los nodos desplazados ya no debe recentrar nada. */
.vehicle-map .system-node--keys:hover,   .vehicle-map .system-node--keys:focus-visible,
.vehicle-map .system-node--access:hover, .vehicle-map .system-node--access:focus-visible,
.vehicle-map .system-node--cluster:hover,.vehicle-map .system-node--cluster:focus-visible,
.vehicle-map .system-node--diag:hover,   .vehicle-map .system-node--diag:focus-visible,
.vehicle-map .system-node--ecu:hover,    .vehicle-map .system-node--ecu:focus-visible,
.vehicle-map .system-node--mercedes:hover,.vehicle-map .system-node--mercedes:focus-visible {
  transform: translateY(-3px);
}
.vehicle-map .system-node--lost:hover,
.vehicle-map .system-node--lost:focus-visible { transform: translate(-50%, -3px); }

/* El mapa crece para que quepan tres nodos por flanco sin tocarse. */
.hero-home--v2 .vehicle-map { min-height: 392px; }

@media (max-width: 1080px) {
  .vehicle-map .system-node { max-width: 132px; font-size: .58rem; }
  .vehicle-map .system-node--lost { max-width: 150px; }
}

/* Por debajo de 640px el bloque D de más arriba ya convierte el círculo en una
   rejilla de dos columnas. Con siete nodos sobra uno: Mercedes ocupa la fila
   entera al final, en vez de quedarse solo en media fila. */
@media (max-width: 640px) {
  .vehicle-map .system-node,
  .vehicle-map a.system-node { max-width: none; text-align: left; }
  .vehicle-map a.system-node--mercedes { grid-column: 1 / -1; }
}

/* La regla del hero pasa a decir dónde se trabaja y hasta dónde se llega; el
   tramo de la derecha es enlace a cobertura, porque «zona a confirmar» dejaba
   la frase a medias. */
.hero-ruler a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.28); }
.hero-ruler a:hover { color: var(--white); border-bottom-color: var(--orange); }


/* ────────────────────────────────────────────────────────────────────────────
   E2 · SERVICIOS · siete tarjetas con imagen
   ────────────────────────────────────────────────────────────────────────────
   La familia de electrónica pasa de tres tarjetas a cuatro, porque «cuadros de
   instrumentos» estaba escondido dentro de «centralitas» pese a tener página
   propia: quien buscaba el cuadro no lo encontraba.

   Y cada tarjeta estrena imagen. La barra decorativa de dos colores que abría
   la tarjeta (.symptom-card::before) se retira en las que llevan foto: con
   imagen encima, esa barra era ruido.
   ──────────────────────────────────────────────────────────────────────────── */

.symptom-grid--four { grid-template-columns: repeat(4, minmax(0,1fr)); }

@media (max-width: 1180px) { .symptom-grid--four { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 760px)  { .symptom-grid--four { grid-template-columns: 1fr; } }

.symptom-card--media { padding: 0; }
.symptom-card--media::before { display: none; }
.symptom-card--media > * { position: relative; z-index: 2; }

.symptom-card__media {
  position: relative;
  margin: 0 0 20px;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: linear-gradient(145deg, var(--blue-75), var(--blue-150));
  border-bottom: 1px solid rgba(5,49,136,.12);
}
.symptom-card__media img {
  width: 100%; height: 100%;
  display: block;
  object-fit: cover;
  transition: transform var(--smooth);
}
.symptom-card--media:hover .symptom-card__media img { transform: scale(1.04); }

/* Hueco mientras no haya fotografía: se ve deliberado, no roto. */
.symptom-card__media--empty::after {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  content: attr(data-label);
  color: rgba(5,49,136,.38);
  font-family: var(--mono); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase;
  text-align: center; padding: 0 16px;
}

.symptom-card--media > span,
.symptom-card--media h3,
.symptom-card--media > p,
.symptom-card--media .symptom-card__foot { padding-inline: 25px; }
.symptom-card--media .symptom-card__foot { padding-bottom: 25px; }

/* El precio y el «ver servicio» iban en dos <strong> seguidos y se leían como
   una sola línea pegada. Se separan en una fila con el precio a la izquierda. */
.symptom-card__foot {
  margin-top: 18px; padding-top: 14px;
  display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; justify-content: space-between;
  border-top: 1px solid var(--line);
}
.symptom-card__foot .price {
  color: var(--orange-dark); font-family: var(--mono); font-size: .78rem; font-weight: 700;
}
.symptom-card__foot .go { color: var(--blue-700); font-size: .82rem; font-weight: 700; }
.symptom-card--media:hover .symptom-card__foot .go { color: var(--orange-dark); }

/* El enlace que cubría la tarjeta iba con estilos en línea dentro del HTML.
   Mismo comportamiento, pero desde aquí. */
.symptom-card__link { position: absolute; inset: 0; z-index: 5; }
.symptom-card--media { cursor: pointer; }

/* Línea de rescate del antiguo selector por síntoma: la sección entera se
   retira por repetir la de servicios, pero la idea de entrar por lo que se
   nota sin saber el nombre técnico valía y se conserva aquí. */
.services-symptom-note {
  margin-top: 30px; padding: 20px 24px;
  display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; justify-content: space-between;
  border: 1px dashed rgba(5,49,136,.28); border-radius: var(--radius);
  background: rgba(255,255,255,.7);
}
.services-symptom-note p { margin: 0; color: var(--ink-70); }


/* ────────────────────────────────────────────────────────────────────────────
   E3 · CÓMO TRABAJAMOS · tres diferenciadores
   ────────────────────────────────────────────────────────────────────────────
   .trust-grid nació con cuatro columnas para los antiguos compromisos, que
   mezclaban un momento del proceso («precio antes de empezar») con una
   modalidad de trabajo («servicio móvil»). Ahora el proceso vive entero en el
   .method-track y esta rejilla queda para lo que de verdad diferencia, que son
   tres cosas, no cuatro.
   ──────────────────────────────────────────────────────────────────────────── */

.trust-grid--three { grid-template-columns: repeat(3, 1fr); }
.trust-grid--three article { min-height: 0; padding: 30px 28px; }
.trust-grid--three article:last-child { border-right: 1px solid var(--line); }
.trust-grid--three h2 { font-size: var(--mg-type-card-title, 1.35rem); }
.trust-grid--three p { margin-top: 8px; color: var(--ink-70); }

@media (max-width: 900px) {
  .trust-grid--three { grid-template-columns: 1fr; }
  .trust-grid--three article { border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); }
}

.method-differentiators { margin-top: 64px; padding-top: 44px; border-top: 1px solid var(--line); }
.method-differentiators > h3 { margin-bottom: 26px; }


/* ────────────────────────────────────────────────────────────────────────────
   E4 · QUIÉNES SOMOS (resumen en la home)
   ────────────────────────────────────────────────────────────────────────────
   Sustituye al bloque «Especialistas en acceso, arranque y electrónica», que
   competía por ser el titular de la página y repetía lo que ya dicen los siete
   nodos del hero. Aquí se cuenta quién hay detrás, por qué existe el proyecto
   y qué se gana llamando directamente.

   La foto va en .founder-visual, que es el marco que ya usa la página de
   quiénes somos. Se queda vacío hasta que haya fotografía: con su retícula y
   la marca de agua se ve intencionado, no roto. Y va más pequeño de lo que es
   en su página, porque aquí manda el texto.
   ──────────────────────────────────────────────────────────────────────────── */

.about-home .founder-grid { grid-template-columns: minmax(0,1.5fr) minmax(0,.5fr); gap: clamp(36px,6vw,80px); align-items: start; }
.about-home .founder-visual { min-height: 0; aspect-ratio: 3 / 4; max-width: 268px; padding: 22px; }
.about-home .founder-visual::before { left: 22px; right: 22px; top: 58px; }
.about-home .founder-visual::after { font-size: 7rem; right: -6px; bottom: -26px; }
.about-home .founder-visual img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }
.about-home .founder-visual figure { margin: 0; height: 100%; }

@media (max-width: 900px) {
  .about-home .founder-grid { grid-template-columns: 1fr; }
  .about-home .founder-visual { order: -1; max-width: 208px; }
}

/* El camino largo frente al camino directo. Dos columnas, y la de la derecha
   en navy: el contraste hace el argumento sin necesidad de subrayarlo.
   Importante: aquí no se señala al taller. El problema es el recorrido, no
   quien lo recorre — los talleres son clientes. */
.route-compare { margin-top: 46px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.route-compare > div { padding: 28px 30px; }
.route-compare__slow { background: var(--paper); }
.route-compare__fast { background: var(--navy-900); color: #dbe6f7; }
.route-compare h3 { margin: 0 0 16px; font-family: var(--mono); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.route-compare__slow h3 { color: var(--muted); }
.route-compare__fast h3 { color: var(--orange); }
.route-compare ul { margin: 0; padding: 0; list-style: none; }
.route-compare li { position: relative; padding: 12px 0 12px 26px; border-top: 1px solid var(--line); line-height: 1.5; }
.route-compare__fast li { border-top-color: rgba(255,255,255,.16); }
.route-compare li:first-child { border-top: 0; }
.route-compare__slow li::before { position: absolute; left: 7px; content: "·"; color: var(--muted); font-weight: 900; }
.route-compare__fast li::before { position: absolute; left: 0; content: "→"; color: var(--orange); font-weight: 700; }

/* Misión, visión y valores. Tres columnas del mismo peso: ninguna es más
   importante que las otras dos. */
.mvv-grid { margin-top: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); border: 1px solid var(--line); border-top: 0; }
.mvv-grid > div { padding: 28px 30px; border-right: 1px solid var(--line); }
.mvv-grid > div:last-child { border-right: 0; }
.mvv-grid h3, .mvv-values h3 { margin: 0 0 14px; color: var(--orange-dark); font-family: var(--mono); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.mvv-grid p { margin: 0; color: var(--ink-70); font-size: .97rem; }

.mvv-values { padding: 28px 30px; border: 1px solid var(--line); border-top: 0; }
.mvv-values ul { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 0; list-style: none; }
.mvv-values li { padding: 0 22px; border-left: 1px solid var(--line); }
.mvv-values li:first-child { padding-left: 0; border-left: 0; }
.mvv-values li b { display: block; margin-bottom: 6px; color: var(--navy-900); font-family: var(--display); font-size: 1.12rem; font-weight: 900; }
.mvv-values li span { color: var(--ink-70); font-size: .89rem; line-height: 1.5; }
.mvv-values .mvv-note { margin: 22px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: .87rem; }

/* Garantía y Familia MG. La garantía es el único compromiso que se publica:
   el del plazo se descartó a propósito, porque obliga a algo que todavía no
   se puede sostener. Familia MG existe como idea pero aún no tiene códigos:
   por eso va etiquetada, no prometida. */
.about-strip { display: grid; grid-template-columns: 1.4fr 1fr; border: 1px solid var(--line); border-top: 0; }
.about-strip > div { padding: 24px 30px; }
.about-strip__warranty { background: var(--navy-900); color: #dbe6f7; }
.about-strip__warranty strong { display: block; margin-bottom: 6px; color: var(--white); font-size: 1.08rem; }
.about-strip__soon { background: var(--white); border-left: 1px solid var(--line); }
.about-strip__soon p { margin: 0; color: var(--ink-70); font-size: .95rem; }
.tag-soon { display: inline-block; margin-bottom: 10px; padding: 3px 9px; border: 1px solid var(--orange); color: var(--orange-dark); font-family: var(--mono); font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; }

.about-foot { padding-top: 24px; display: flex; flex-wrap: wrap; gap: 14px 40px; align-items: center; justify-content: space-between; }
.about-foot p { margin: 0; color: var(--ink-70); font-size: .95rem; }

@media (max-width: 900px) {
  .route-compare, .mvv-grid, .about-strip { grid-template-columns: 1fr; }
  .mvv-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .mvv-grid > div:last-child { border-bottom: 0; }
  .mvv-values ul { grid-template-columns: 1fr; }
  .mvv-values li { padding: 12px 0; border-left: 0; border-top: 1px solid var(--line); }
  .mvv-values li:first-child { border-top: 0; padding-top: 0; }
  .about-strip__soon { border-left: 0; border-top: 1px solid var(--line); }
}


/* ────────────────────────────────────────────────────────────────────────────
   E5 · COBERTURA · los municipios, por fin
   ────────────────────────────────────────────────────────────────────────────
   La sección enseñaba una línea con cinco siglas — ZGZ, OES, PED, RIB, TUD —
   y ninguna respondía la única pregunta que trae el visitante: si vamos a su
   pueblo. Ahora están los municipios, en tres niveles, para no prometer la
   misma disponibilidad en Pedrola que a hora y media.
   ──────────────────────────────────────────────────────────────────────────── */

.coverage-levels { margin-top: 44px; display: grid; gap: 30px; }
.coverage-level { padding-top: 24px; border-top: 1px solid rgba(155,183,229,.26); }
.coverage-level__head { margin-bottom: 16px; display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; }
.coverage-level__head h3 { margin: 0; color: var(--white); font-size: clamp(1.15rem,1.7vw,1.4rem); }
.coverage-level__head span { color: var(--orange); font-family: var(--mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.coverage-level > p { margin: 0 0 14px; color: #a9bcd8; font-size: .92rem; }
.coverage-level .place-list { margin-bottom: 20px; }
.coverage-level .place-list li { min-height: 38px; padding: 7px 13px; border-color: rgba(155,183,229,.26); background: rgba(255,255,255,.05); color: #cfdcf0; font-size: .72rem; }
.coverage-level--base .place-list li { border-color: rgba(250,92,8,.4); background: rgba(250,92,8,.08); color: #ffd9c4; }
.coverage-note { margin-top: 30px; color: #a9bcd8; }


/* ────────────────────────────────────────────────────────────────────────────
   E6 · TIENDA · producto real en vez de una caja que se repetía
   ────────────────────────────────────────────────────────────────────────────
   La tarjeta de la derecha decía con otras palabras lo mismo que el texto de
   la izquierda, y no había ni una imagen ni un precio: se pedía un clic a
   ciegas. Ahora salen cuatro productos reales del catálogo, que además se
   actualizan solos al publicar producto nuevo.
   ──────────────────────────────────────────────────────────────────────────── */

.store-cats { margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.store-cats a { min-height: 40px; padding: 8px 15px; display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--blue-700); font-family: var(--mono); font-size: .72rem; text-decoration: none; transition: border-color var(--fast), color var(--fast); }
.store-cats a:hover { border-color: var(--orange); color: var(--orange-dark); }

.store-products { margin-top: 38px; }
.store-products .woocommerce ul.products,
.store-products ul.products {
  margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; list-style: none;
}
.store-products ul.products::before,
.store-products ul.products::after { display: none; }
.store-products ul.products > li.product {
  width: auto; margin: 0; padding: 16px; float: none; clear: none;
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--white);
  transition: border-color var(--fast), transform var(--smooth);
}
.store-products ul.products > li.product:hover { border-color: rgba(250,92,8,.5); transform: translateY(-3px); }
.store-products ul.products img { width: 100%; height: auto; margin-bottom: 12px; border-radius: var(--radius-sm); }
.store-products ul.products .woocommerce-loop-product__title { padding: 0; font-size: .95rem; font-weight: 700; line-height: 1.3; }
.store-products ul.products .price { display: block; margin-top: 6px; color: var(--navy-900); font-family: var(--mono); font-size: .9rem; }
.store-products ul.products .button { margin-top: 12px; }

@media (max-width: 1080px) { .store-products ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 520px)  { .store-products ul.products { grid-template-columns: 1fr; } }


/* ────────────────────────────────────────────────────────────────────────────
   E7 · PIE · cinco columnas y datos de negocio
   ────────────────────────────────────────────────────────────────────────────
   Entra la columna «Dónde trabajamos» (Pedrola, Zaragoza y Tudela estaban
   bajo «Información» aunque son cobertura) y el bloque de negocio con
   dirección y horario, que no aparecía en ninguna parte del sitio pese a ser
   lo que Google necesita para entenderlo como negocio local.
   ──────────────────────────────────────────────────────────────────────────── */

.footer-grid--wide { grid-template-columns: 1.35fr repeat(4, 1fr); gap: 40px; }

@media (max-width: 1180px) { .footer-grid--wide { grid-template-columns: 1.4fr repeat(2, 1fr); } }
@media (max-width: 900px)  { .footer-grid--wide { grid-template-columns: repeat(2, 1fr); } .footer-grid--wide .footer-brand { grid-column: 1 / -1; } }
@media (max-width: 560px)  { .footer-grid--wide { grid-template-columns: 1fr; gap: 32px; } }

/* El logo llevaba una caja blanca redondeada sobre el navy y parecía una
   pegatina pegada encima. El PNG nuevo ya tiene transparencia. */
.footer-logo { width: 172px; padding: 0; background: none; border-radius: 0; }

.footer-brand .footer-biz,
.footer-brand .footer-hours { max-width: 34ch; margin-top: 18px; font-size: .85rem; line-height: 1.65; }
.footer-brand .footer-biz { padding-top: 16px; border-top: 1px solid rgba(255,255,255,.12); }
.footer-brand .footer-biz strong { color: var(--white); font-weight: 700; }
.footer-brand .footer-hours { font-family: var(--mono); font-size: .74rem; line-height: 1.85; }
.footer-brand .footer-hours b { display: inline-block; min-width: 6.4em; color: var(--white); font-weight: 600; }


/* ────────────────────────────────────────────────────────────────────────────
   E8 · Corrección de contraste sobre fondo oscuro
   ────────────────────────────────────────────────────────────────────────────
   .section-lead se define en gris oscuro (#485164) pensando en fondo claro, y
   el tema nunca lo corrige para .section--night: sobre el navy queda en un
   contraste de 1,6:1, ilegible. Afecta a la cobertura de la home y a la página
   de quiénes somos, que usan bajada dentro de sección oscura.
   ──────────────────────────────────────────────────────────────────────────── */

.section--night .section-lead,
.section--night .section-heading > div > p:not(.kicker) { color: #c4d2e8; }
.section--night .coverage-note { color: #a9bcd8; }


/* ════════════════════════════════════════════════════════════════════════════
   F · PÁGINA QUIÉNES SOMOS                                       2026-08-29
   ════════════════════════════════════════════════════════════════════════════
   Animación sin JavaScript y a prueba de fallos: el estado base de todo es
   VISIBLE. Donde el navegador soporta animaciones ligadas al scroll (Chrome,
   Edge, Android) los bloques entran al aparecer en pantalla; donde no (Safari,
   iOS) se ven estáticos y exactamente igual de legibles.

   No se usa el [data-reveal] del tema porque arranca en opacity:0 y depende de
   que site.js le ponga .is-visible. Si ese observador no alcanzara estos
   bloques, el texto se quedaría invisible. Aquí eso no puede pasar.
   ──────────────────────────────────────────────────────────────────────────── */

.mg-in { opacity: 1; transform: none; }

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .mg-in {
      animation: mg-in-up linear both;
      animation-timeline: view();
      animation-range: entry 8% cover 26%;
    }
  }
}
@keyframes mg-in-up {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: none; }
}


/* ── 01 · Hero ───────────────────────────────────────────────────────────── */

.about-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.45fr) minmax(260px,.55fr); gap: clamp(40px,7vw,96px); align-items: end; }
.about-hero h1 { max-width: 15ch; color: var(--white); font-size: clamp(2.9rem,5.2vw,4.9rem); }
.about-hero__lead { max-width: 56ch; margin-top: 28px; color: #c4d2e8; font-size: clamp(1.05rem,1.5vw,1.22rem); line-height: 1.6; }
.about-hero__sign { max-width: 52ch; margin-top: 22px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); color: #dbe6f7; }
.about-hero__sign strong { color: var(--white); }

.about-hero__panel { padding: 28px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-lg); background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.about-hero__panel-k { color: #91a7c7; font-family: var(--mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.about-hero__panel-num { display: block; margin: 6px 0 10px; color: var(--orange); font-family: var(--display); font-size: clamp(4rem,8vw,6.5rem); font-weight: 900; letter-spacing: -.07em; line-height: 1; }
.about-hero__panel p { margin: 0; color: #c4d2e8; font-size: .9rem; line-height: 1.55; }


/* ── 02 · La historia ────────────────────────────────────────────────────── */

.about-story .founder-grid { grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr); align-items: start; }
.about-story .photo-slot { position: sticky; top: 120px; }

/* La cita es el latido de la página: se lee antes que el párrafo que la rodea. */
.about-story blockquote { max-width: 30ch; margin: 34px 0; padding-left: 24px; border-left: 4px solid var(--orange); color: var(--navy-900); font-family: var(--display); font-size: clamp(1.5rem,2.6vw,2.2rem); font-weight: 800; line-height: 1.2; }


/* ── 04 · Cinta de sistemas ──────────────────────────────────────────────── */

.about-systems { overflow: hidden; }
.mg-marquee { overflow: hidden; margin: 46px 0 40px; padding: 18px 0; border-top: 1px solid rgba(155,183,229,.2); border-bottom: 1px solid rgba(155,183,229,.2); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.mg-marquee__track { display: flex; gap: 14px; width: max-content; animation: mg-marquee 42s linear infinite; }
.mg-marquee:hover .mg-marquee__track { animation-play-state: paused; }
.mg-marquee span { flex: none; padding: 10px 18px; border: 1px solid rgba(155,183,229,.28); border-radius: 999px; background: rgba(255,255,255,.04); color: #cfdcf0; font-family: var(--mono); font-size: .78rem; letter-spacing: .1em; }
@keyframes mg-marquee { to { transform: translateX(-50%); } }

@media (prefers-reduced-motion: reduce) {
  .mg-marquee__track { animation: none; flex-wrap: wrap; width: auto; }
}

.about-systems__note { max-width: 62ch; color: #a9bcd8; }


/* ── 05 · Compromisos ────────────────────────────────────────────────────── */

.promise-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.promise-grid article { position: relative; padding: 30px 26px 28px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, var(--white), var(--blue-75)); transition: border-color var(--fast), transform var(--smooth), box-shadow var(--smooth); }
.promise-grid article::before { position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--orange) 0 38%, var(--blue-700) 38%); transform: scaleX(0); transform-origin: left; transition: transform var(--smooth); content: ""; }
.promise-grid article:hover { border-color: rgba(250,92,8,.5); transform: translateY(-4px); box-shadow: 0 22px 52px rgba(3,17,45,.1); }
.promise-grid article:hover::before { transform: scaleX(1); }
.promise-grid b { color: var(--orange-dark); font-family: var(--mono); font-size: .72rem; letter-spacing: .08em; }
.promise-grid h3 { margin: 12px 0 10px; font-size: var(--mg-type-card-title, 1.3rem); }
.promise-grid p { margin: 0; color: var(--ink-70); font-size: .95rem; }


/* ── 07 · Familia MG ─────────────────────────────────────────────────────── */

.about-soon { margin-top: 28px; padding: 22px 24px; border: 1px solid rgba(155,183,229,.24); border-radius: var(--radius); background: rgba(255,255,255,.04); }
.about-soon p { margin: 0; color: #c4d2e8; font-size: .93rem; }
.about-soon strong { color: var(--white); }
.section--night .tag-soon { border-color: var(--orange); color: var(--orange); }


/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 1080px) {
  .promise-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .about-hero__grid { grid-template-columns: 1fr; gap: 32px; }
  .about-hero__panel { display: none; }
  .about-story .founder-grid { grid-template-columns: 1fr; }
  .about-story .photo-slot { position: static; order: -1; max-width: 320px; }
}
@media (max-width: 620px) {
  .promise-grid { grid-template-columns: 1fr; }
  .about-story blockquote { margin: 26px 0; padding-left: 18px; }
}


/* ── Ajustes de la versión definitiva (2026-08-30) ───────────────────────────
   La página pasa de cuatro compromisos a seis, y entra el bloque de datos del
   sector. Se retiran la ruta semanal y la cinta de siglas: la primera porque
   no existe, la segunda porque el contenido definitivo no la incluye.
   ──────────────────────────────────────────────────────────────────────────── */

.about-hero__body { max-width: 58ch; margin-top: 18px; color: #a9bcd8; }

/* Seis compromisos piden tres columnas, no cuatro: dos filas limpias. */
.promise-grid--six { grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 1080px) { .promise-grid--six { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 620px)  { .promise-grid--six { grid-template-columns: 1fr; } }

/* La cita cierra el relato, así que respira más que en la versión anterior. */
.about-story blockquote { margin-top: 40px; }

/* Datos del sector. La cifra manda: es lo que se lee de lejos y lo que
   convierte una opinión en un hecho comprobable. */
.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.stat-grid article { padding: 30px 26px; border: 1px solid rgba(155,183,229,.24); border-radius: var(--radius); background: rgba(255,255,255,.04); transition: border-color var(--fast), transform var(--smooth); }
.stat-grid article:hover { border-color: rgba(250,92,8,.45); transform: translateY(-4px); }
.stat-grid b { display: block; color: var(--orange); font-family: var(--display); font-size: clamp(2.8rem,4.6vw,3.9rem); font-weight: 900; letter-spacing: -.05em; line-height: 1; }
.stat-grid b i { font-style: normal; font-size: .55em; }
.stat-grid span { display: block; margin: 8px 0 14px; padding-bottom: 14px; border-bottom: 1px solid rgba(155,183,229,.2); color: #cfdcf0; font-family: var(--mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.stat-grid p { margin: 0; color: #a9bcd8; font-size: .92rem; line-height: 1.55; }
.stat-note { max-width: 68ch; margin-top: 32px; color: #c4d2e8; }

@media (max-width: 1080px) { .stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px)  { .stat-grid { grid-template-columns: 1fr; } }

/* Misión y visión: dos bloques del mismo peso, con marco propio. */
.mvv-grid--top { border-top: 1px solid var(--line); }

/* Seis valores en vez de cinco: la rejilla se adapta sola. */
.mvv-values ul { grid-template-columns: repeat(auto-fit, minmax(158px, 1fr)); }

/* .check-list nació para frases sueltas y usa flex con align-items:center. Al
   meter un <strong> delante del texto, el negrita y el resto se convierten en
   dos columnas y la línea se parte en una columna estrecha. Este modificador
   la devuelve a texto corrido. */
.check-list--rich li { display: block; padding-top: 16px; padding-bottom: 16px; line-height: 1.55; }
.check-list--rich li::before { top: 24px; }
.check-list--rich strong { color: var(--navy-900); }

/* Foto real en el marco de .photo-slot.
   El marco nació como hueco a la espera de fotografía: borde discontinuo, dos
   aspas cruzadas y un `img` de 110px al 22% de opacidad pensado para un icono.
   Con foto de verdad hay que desmontar todo eso. La proporción se fija en 3/4,
   que es exactamente la de la imagen (1600×2133), para que no se recorte. */
.photo-slot__frame--photo { min-height: 0; aspect-ratio: 3 / 4; padding: 0; border: 0; background: var(--blue-75); }
.photo-slot--vertical .photo-slot__frame--photo { min-height: 0; aspect-ratio: 3 / 4; }
.photo-slot__frame--photo::before,
.photo-slot__frame--photo::after { display: none; }
.photo-slot__frame--photo img { width: 100%; height: 100%; object-fit: cover; opacity: 1; filter: none; display: block; }

/* La foto es un selfie con cámara frontal, así que llega invertida: el
   logotipo de la sudadera se lee al revés y el conjunto «canta» a autofoto.
   Se voltea para devolverla a como era la escena en realidad. Va como
   modificador y no sobre .photo-slot__frame--photo, para que las fotos que se
   añadan más adelante no se volteen sin querer. */
.photo-slot__frame--flip img { transform: scaleX(-1); }


/* ============================================================================
   MG REPARATO · CAPA DE DIRECCIÓN 06
   Bloque tecnológico .mgx · resuelve F-12
   ----------------------------------------------------------------------------
   Añadir al FINAL de site.css, después de la capa 05.
   Para revertir: borrar desde aquí hasta el final.

   POR QUÉ SE MUEVE AQUÍ

   Este CSS vivía dentro de un <style> en el contenido de tres páginas:
   /zaragoza/, /tudela/ y /pedrola/. Unos 3,5 KB repetidos tres veces.

   En Pedrola se rompió. El contenido quedó en un bloque «Clásico», que al
   guardar convierte cada salto de línea en <br />. Dentro de un <style> eso
   no es un salto de línea: es basura que el navegador no sabe leer. Medido
   en producción: 43 <br /> dentro del bloque y **0 reglas aplicadas** de las
   41 que tenía. La sección salía sin fondo, sin consola y sin chips.

   Aquí dentro no puede volver a pasar: site.css es un archivo, no contenido
   de WordPress, y nadie lo pasa por el filtro de párrafos.

   Las páginas pueden quedarse con su <style> o perderlo; estas reglas son
   idénticas, así que no hay conflicto en ninguno de los dos casos.
   ============================================================================ */

.mgx{--mgx-noche:#0b1220;--mgx-naranja:#f25c19;--mgx-verde:#3ddc97;--mgx-linea:rgba(120,170,255,.18);
position:relative;overflow:hidden;background:var(--mgx-noche);color:#e8eefb;padding:clamp(2.5rem,6vw,4.5rem) 0}
.mgx__rejilla{position:absolute;inset:0;pointer-events:none;
background-image:linear-gradient(var(--mgx-linea) 1px,transparent 1px),linear-gradient(90deg,var(--mgx-linea) 1px,transparent 1px);
background-size:46px 46px;
-webkit-mask-image:radial-gradient(ellipse 70% 60% at 75% 45%,#000,transparent 75%);
mask-image:radial-gradient(ellipse 70% 60% at 75% 45%,#000,transparent 75%)}
.mgx__inner{position:relative;display:grid;gap:clamp(1.75rem,4vw,3rem);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.mgx__kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--mgx-naranja);margin:0 0 .75rem}
.mgx__inner h2{font-size:clamp(1.35rem,2.6vw,1.95rem);line-height:1.22;margin:0 0 .85rem;color:#fff;font-weight:600}
.mgx__texto{margin:0 0 1.25rem;color:#b8c6df;line-height:1.6}
.mgx__chips{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}
.mgx__chips li{font-size:.76rem;font-weight:600;padding:.4rem .8rem;border-radius:999px;
border:1px solid rgba(120,170,255,.3);background:rgba(38,94,241,.12);color:#cfe0ff}
.mgx__consola{border:1px solid rgba(120,170,255,.28);border-radius:12px;overflow:hidden;
background:rgba(6,12,24,.85);box-shadow:0 18px 50px rgba(0,0,0,.45)}
.mgx__barra{display:flex;align-items:center;gap:.6rem;padding:.6rem .9rem;
background:rgba(255,255,255,.05);border-bottom:1px solid rgba(120,170,255,.22)}
.mgx__led{width:8px;height:8px;border-radius:50%;background:var(--mgx-verde);animation:mgx-pulso 2s infinite}
.mgx__titulo{font:600 .68rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em;color:#9fb6dd}
.mgx__puntos{margin-left:auto;display:flex;gap:.28rem}
.mgx__puntos i{width:7px;height:7px;border-radius:50%;background:rgba(159,182,221,.35)}
.mgx__pantalla{position:relative;padding:1.1rem .95rem;
font:500 .8rem/1.95 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.mgx__barrido{position:absolute;left:0;right:0;top:-38%;height:38%;pointer-events:none;
background:linear-gradient(180deg,transparent,rgba(38,94,241,.16),transparent);
animation:mgx-barrido 4.5s ease-in-out infinite}
.mgx__linea{position:relative;display:flex;align-items:baseline;gap:.5rem;margin:0;color:#c9d8f2}
.mgx__linea b{color:var(--mgx-naranja);font-weight:700}
.mgx__linea span{margin-left:auto;font-size:.7rem;letter-spacing:.08em;color:var(--mgx-verde);white-space:nowrap}
.mgx__cursor{display:inline-block;width:8px;height:1em;background:var(--mgx-naranja);
margin-left:auto;animation:mgx-parpadeo 1.1s step-end infinite}
@keyframes mgx-pulso{0%{box-shadow:0 0 0 0 rgba(61,220,151,.5)}70%{box-shadow:0 0 0 7px rgba(61,220,151,0)}100%{box-shadow:0 0 0 0 rgba(61,220,151,0)}}
@keyframes mgx-barrido{0%{top:-38%}55%{top:100%}100%{top:100%}}
@keyframes mgx-parpadeo{0%,50%{opacity:1}51%,100%{opacity:0}}
@media(max-width:820px){.mgx__inner{grid-template-columns:1fr}.mgx__pantalla{font-size:.72rem}}
@media(prefers-reduced-motion:reduce){.mgx__led,.mgx__cursor{animation:none}.mgx__barrido{display:none}}

.mgx-cta{text-align:center}
.mgx-cta h2{max-width:24ch;margin-inline:auto}
.mgx-cta__texto{max-width:58ch;margin:0 auto 1.75rem}
.mgx-cta__nota{margin:1.1rem 0 0;font-size:.86rem;opacity:.75}


/* ============================================================================
   FIN DE LA CAPA 06
   ============================================================================ */


/* ============================================================================
   MG REPARATO · CAPA DE DIRECCIÓN 07
   Suelo de tamaño de texto · contenido añadido después de la capa 04
   ----------------------------------------------------------------------------
   Añadir al FINAL de site.css, después de la capa 06.
   Para revertir: borrar desde aquí hasta el final.

   La capa 04 puso un suelo de 11,5px al texto en móvil y lo dejó limpio.
   Después entraron secciones nuevas en la portada y en la tienda que traen
   sus propios tamaños y vuelven a bajar de ese suelo:

     .tag-soon                    0.64rem  «Próximamente»
     .mg-product-badges span      0.60rem  «Nuevo»            -> 9,6px
     .mg-product-card-category    0.69rem  «Carga y alimentación»
     .coverage-level__head span   0.70rem  «Nivel 1 / 2 / 3»

   Se suben solo en móvil, al mismo 0.72rem que usa el resto de etiquetas
   técnicas. En escritorio se quedan como estaban: ahí sí se leen.
   ============================================================================ */

@media (max-width: 860px) {
  .tag-soon,
  .coverage-level__head span,
  .mg-product-badges span,
  .mg-product-card-category {
    font-size: .72rem;
  }
}


/* ============================================================================
   FIN DE LA CAPA 07
   ============================================================================ */


/* ============================================================================
   MG REPARATO · CAPA DE DIRECCIÓN 08
   Remate de tablet + dos desbordamientos
   ----------------------------------------------------------------------------
   Añadir al FINAL de site.css, después de la capa 07.
   Para revertir: borrar desde aquí hasta el final.

   Las capas 04 y 05 arreglaron el móvil (≤640) y dieron por hecho que el
   tablet se apañaba solo. Medido a 768×1024 en producción, no se apañaba.
   ============================================================================ */


/* ────────────────────────────────────────────────────────────────────────────
   A · EL MAPA DE SISTEMAS TAMBIÉN SE DESHACE EN TABLET
   ────────────────────────────────────────────────────────────────────────────
   A 768px el círculo ya no es un círculo: mide 582×255, un óvalo aplastado.
   Y dentro de él los siete rótulos quedaban a 9,3px: «He perdido todas las
   llaves», «Centralitas y módulos»… Son los enlaces a los siete servicios,
   así que ilegibles no pueden estar.

   Misma solución que en móvil, con tres columnas en vez de dos porque aquí
   hay ancho de sobra. Medido después: siete botones iguales de 189×51, sin
   truncar, sin solapar; el mapa baja de 255 a 168px y el hero de 1055 a 1007.

   El círculo, las órbitas, el núcleo y el barrido siguen intactos por encima
   de 860px, que es donde el gesto sí funciona.
   ──────────────────────────────────────────────────────────────────────────── */

@media (min-width: 641px) and (max-width: 860px) {
  body.home .vehicle-map,
  .vehicle-map {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    align-content: start;
    justify-items: stretch;
    gap: 8px;
    max-width: none;
    min-height: 0;
    height: auto;
    aspect-ratio: auto;
    padding: 0;
  }

  .vehicle-map__orbit,
  .vehicle-map__core {
    display: none;
  }

  .vehicle-map a.system-node {
    position: relative;
    inset: auto;
    transform: none;
    width: auto;
    max-width: none;
    min-width: 0;
    min-height: 44px;
    flex-direction: row;
    align-items: center;
    gap: 7px;
    padding: 8px 10px 8px 22px;
    white-space: normal;
  }

  .vehicle-map a.system-node b { font-size: .72rem; }
  .vehicle-map a.system-node span { font-size: .8rem; }

  .vehicle-map::after { display: none; }

  /* La regla del hero tenía sus rótulos a 10,4px y aquí ya no aporta */
  .hero-ruler { display: none; }
}


/* ────────────────────────────────────────────────────────────────────────────
   B · TELÉFONO Y WHATSAPP DE LA BARRA SUPERIOR
   ────────────────────────────────────────────────────────────────────────────
   Los dos enlaces de .utility-bar quedaban en 19px de alto. Son el teléfono
   y el WhatsApp: justo los dos que alguien con prisa junto al coche va a
   intentar tocar. El mínimo cómodo para un dedo es 40px.
   ──────────────────────────────────────────────────────────────────────────── */

@media (max-width: 860px) {
  .utility-bar a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
}


/* ────────────────────────────────────────────────────────────────────────────
   C · DESBORDAMIENTO HORIZONTAL EN /servicios/
   ────────────────────────────────────────────────────────────────────────────
   .trust-grid usa repeat(2, 1fr) en móvil. `1fr` es minmax(auto, 1fr), y ese
   `auto` no baja del ancho mínimo del contenido: en una pantalla de 375px las
   columnas salían 172,6 + 196,2 = 369 dentro de un contenedor de 351, y la
   página se iba 6px a la derecha.

   minmax(0, 1fr) permite que la columna encoja por debajo de su contenido,
   que es lo que se quiere aquí. Medido después: dos columnas de 175,5px,
   scrollWidth igual a clientWidth y ningún texto truncado.
   ──────────────────────────────────────────────────────────────────────────── */

@media (max-width: 640px) {
  .trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ============================================================================
   FIN DE LA CAPA 08
   ============================================================================ */


/* ============================================================================
   MG REPARATO · CAPA DE DIRECCIÓN 09
   Suelo de texto en las páginas interiores
   ----------------------------------------------------------------------------
   Añadir al FINAL de site.css, después de la capa 08.
   Para revertir: borrar desde aquí hasta el final.

   Las capas 04 y 07 dejaron la portada limpia, pero usaban selectores con
   prefijo `body.home`, así que las páginas interiores se quedaron fuera.
   Medido a 375 y 768 en las ocho páginas principales, seguían apareciendo:

     .page-breadcrumbs                     11,2px   migas de pan
     .page-hero__index span                10,6px   «MG / ZONA», «MG / FORM»
     .service-card__signal                 10,9px   «01 / LLAVES»
     .mgx-serv__sig                        10,9px   lo mismo en Tudela
     .definition-grid b                    10,9px   «VEHÍCULO»
     .contact-cards article > span         10,9px   «TELÉFONO»
     .mgx__titulo                          10,9px   «MG · LECTURA DEL VEHÍCULO»
     .mgx__linea span                      11,2px   «CONECTADO», «3 AVISOS»

   Sobre la especificidad, que aquí decide:

   · .mgx-serv__card .mgx-serv__sig tiene 200 y hace falta igualarla; un
     `body .mgx-serv__sig` solo suma 101 y pierde. Lo comprobé equivocándome.
   · .mgx__titulo y .mgx__linea span sí llevan prefijo `body` a propósito:
     /zaragoza/ y /tudela/ conservan una copia de estas reglas en un <style>
     dentro del contenido, que va después de site.css y ganaría por orden.
     Con 101 frente a 100 se resuelve sin tocar esas páginas.

   Y los enlaces del corredor de /cobertura/ (Zaragoza · Pedrola · Tudela)
   quedaban en 16px de alto siendo enlaces de navegación reales.

   Queda fuera a propósito el enlace «información de privacidad»: va dentro
   de una frase, y estirarlo a 40px rompería el párrafo. Un enlace en línea
   dentro de texto corrido es la excepción razonable a la regla del dedo.
   ============================================================================ */

@media (max-width: 860px) {
  .page-breadcrumbs,
  .page-hero__index span,
  .definition-grid b,
  .contact-cards article > span,
  .service-card .service-card__signal,
  .mgx-serv__card .mgx-serv__sig {
    font-size: .72rem;
  }

  /* Con prefijo body para ganar al <style> que llevan dentro Zaragoza y Tudela */
  body .mgx__titulo,
  body .mgx__linea span {
    font-size: .72rem;
  }

  .corridor li a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
}


/* ============================================================================
   FIN DE LA CAPA 09
   ============================================================================ */
