/* ═══════════════════════════════════════════════════════════════════
   BASE · se carga en TODAS las pantallas (escritorio, tableta y celular)
   Contiene: fuentes, colores, reseteo, botones, tipografía, formularios,
   hojas inferiores (sheets) y avisos (toast).
   ───────────────────────────────────────────────────────────────────
   Estructura de estilos del sitio:
     css/base.css        → compartido (este archivo)
     css/hero.css        → portada (hero); trae su propia composición de escritorio y de celular
     css/desktop.css     → SITIO WEB (≥ 1025 px)     · se aplica solo en pantallas grandes
     css/mobile-app.css  → APP MÓVIL (≤ 1024 px)     · celulares y tabletas (768 × 1024 en adelante)
   ═══════════════════════════════════════════════════════════════════ */
/* Poppins (SIL Open Font License), subconjunto latino con acentos del español */
@font-face{font-family:"Poppins";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/poppins-400.woff) format("woff")}
@font-face{font-family:"Poppins";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/poppins-500.woff) format("woff")}
@font-face{font-family:"Poppins";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/poppins-700.woff) format("woff")}

:root{
  /* palette */
  --ink:#21131b;
  --ink-soft:rgba(33,19,27,.68);
  --plum:#2c1824;
  --blush:#fcf8f9;
  --rose-100:#f6eaef;
  --rose-200:#f0dce4;
  --rose-300:#e9b1c5;
  --zone-a:#e1a8bd;
  --zone-b:#d286a2;
  --hot-a:#a93f69;
  --hot-b:#812e4f;

  --font:"Poppins","Avenir Next","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.22,.8,.24,1);

  --gutter:clamp(8px,1vw,14px);
  --H:max(640px,calc(100svh - var(--gutter)*2));
  --pad:clamp(16px,2.3vw,34px);
}
@supports not (height:100svh){:root{--H:max(640px,calc(100vh - var(--gutter)*2))}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--rose-100);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
p,h1{margin:0}
img{display:block}
.garza-sprite{position:absolute;width:0;height:0;overflow:hidden}
.garza-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.garza-ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
:where(a):focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:inherit}

/* botón base */
.garza-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;height:46px;padding:0 1.4em;border-radius:999px;font-weight:500;font-size:14.5px;white-space:nowrap;
  transition:translate .3s var(--ease),background-color .25s,color .25s}
.garza-btn:hover{translate:0 -2px}
.garza-btn--ghost{border:1.5px solid var(--ink);background:rgba(255,255,255,.5)}
.garza-btn--ghost:hover{background:var(--ink);color:#fff}
.garza-btn--hot{background:linear-gradient(160deg,var(--hot-a),var(--hot-b));color:#fff;box-shadow:0 12px 22px -12px rgba(129,46,79,.9)}

/* ═══════════════════════════════════════════════════════════════
   BASE ADICIONAL · sistema de diseño para el resto del sitio
   ═══════════════════════════════════════════════════════════════ */
:root{
  --wa:#1d9c54;
  --line:rgba(33,19,27,.1);
  --wrap:1240px;
  --sec-y:clamp(52px,7vw,104px);
  --sec-x:clamp(18px,4.2vw,72px);
  --r-panel:clamp(24px,2.8vw,40px);
  --r-card:clamp(20px,2vw,28px);
  --sh-card:0 24px 44px -30px rgba(64,28,44,.55);
  --mbar-h:0px;
}
html{scroll-padding-top:92px}
body{-webkit-tap-highlight-color:transparent;overflow-x:hidden}
h2,h3,h4,ul,ol,figure,dl,dd,blockquote,address{margin:0}
ul,ol{padding:0;list-style:none}
address{font-style:normal}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
:where(a,button,summary,input,select,textarea):focus-visible{outline:3px solid var(--hot-a);outline-offset:3px;border-radius:inherit}
.garza-ic--fill{fill:currentColor;stroke:none}

.garza-skip{position:fixed;left:12px;top:-64px;z-index:200;background:var(--ink);color:#fff;padding:.75em 1.15em;border-radius:12px;font-weight:500;transition:top .2s}
.garza-skip:focus{top:12px}

h2,h3,h4,summary,.garza-chan__t,.garza-card__title,.garza-cta__title,.garza-opt__t b,.garza-vcard__t b,.garza-appcard__t b,.garza-brand{word-spacing:.08em}
.garza-wrap{max-width:var(--wrap);margin-inline:auto}
.garza-panel{position:relative;isolation:isolate;overflow:hidden;margin-top:var(--gutter);border-radius:var(--r-panel);padding:var(--sec-y) var(--sec-x)}
.garza-panel--blush{background:var(--blush)}
.garza-panel--rose{background:linear-gradient(180deg,#f9f1f4 0%,#f5e7ec 100%)}
.garza-panel--plum{background:radial-gradient(70% 60% at 88% 0%,#432537 0%,rgba(67,37,55,0) 62%),var(--plum);color:#fff}
.garza-panel--hot{background:linear-gradient(150deg,var(--hot-a) 0%,var(--hot-b) 78%);color:#fff}

/* tipografía de secciones */
.garza-eyebrow{display:inline-flex;align-items:center;gap:.55em;width:fit-content;font-weight:500;font-size:13.5px;padding:.55em 1.05em;border-radius:999px;background:var(--rose-200);color:var(--ink)}
.garza-eyebrow .garza-ic{width:1.15em;height:1.15em;color:var(--hot-b)}
.garza-eyebrow--dark{background:rgba(255,255,255,.12);color:#fff}
.garza-eyebrow--dark .garza-ic{color:var(--rose-300)}
.garza-eyebrow--glass{background:rgba(255,255,255,.18);color:#fff}
.garza-eyebrow--glass .garza-ic{color:#fff}
.garza-h2{font-weight:700;font-size:clamp(30px,4.3vw,58px);line-height:1.03;letter-spacing:-.04em;text-wrap:balance}
.garza-h2 em{font-style:normal;color:var(--hot-a)}
.garza-h2--xl{font-size:clamp(34px,5.4vw,76px);line-height:1}
.garza-h3{font-weight:700;font-size:clamp(22px,2.4vw,32px);line-height:1.1;letter-spacing:-.035em}
.garza-lead{font-size:clamp(15px,1.25vw,18px);line-height:1.65;color:var(--ink-soft);max-width:58ch;text-wrap:pretty}
.garza-lead--light{color:rgba(255,255,255,.78)}
.garza-sec-head{display:grid;gap:16px;justify-items:start}
.garza-sec-head--center{justify-items:center;text-align:center;margin-inline:auto;max-width:760px}
.garza-panel--plum .garza-h2 em{color:var(--rose-300)}
.garza-panel--hot .garza-h2 em{color:#f0dce4}
.garza-btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}

/* botones */
.garza-btn{cursor:pointer;border:0;font-family:inherit}
.garza-btn .garza-ic{width:1.2em;height:1.2em}
.garza-btn:active{scale:.97}
.garza-btn--ghost{border:1.5px solid var(--ink)}
.garza-btn--lg{height:54px;padding:0 1.7em;font-size:15.5px}
.garza-btn--block{display:flex;width:100%}
.garza-btn--icon{width:46px;padding:0}
.garza-btn--wa{background:linear-gradient(160deg,#22a85a,#13703b);color:#fff;box-shadow:0 14px 24px -14px rgba(18,140,68,.95)}
.garza-btn--white{background:#fff;color:var(--ink);box-shadow:0 14px 26px -16px rgba(43,19,32,.7)}
.garza-btn--white:hover{background:var(--rose-100)}
.garza-btn--outline-light{border:1.5px solid rgba(255,255,255,.78);color:#fff;background:rgba(255,255,255,.08)}
.garza-btn--outline-light:hover{background:#fff;color:var(--hot-b)}

/* revelado al hacer scroll (solo con JS) */
.garza-js .garza-reveal{opacity:0;translate:0 24px;transition:opacity .75s var(--ease),translate .75s var(--ease);transition-delay:var(--d,0s)}
.garza-js .garza-reveal.garza-in{opacity:1;translate:0 0}

/* formulario (escritorio y hoja móvil) */
.garza-fld{display:grid;gap:7px;border:0;padding:0;margin:0;min-width:0}
.garza-fld>span,.garza-fld legend{font-size:13px;font-weight:500;padding:0}
.garza-fld>span small{font-weight:400;color:var(--ink-soft)}
.garza-fld input[type=text],.garza-fld select,.garza-fld textarea{width:100%;min-height:52px;padding:.85em 1.05em;border-radius:16px;border:1.5px solid var(--line);background:var(--blush);transition:border-color .2s,box-shadow .2s,background-color .2s;appearance:none;-webkit-appearance:none}
.garza-fld select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232b0d23' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;padding-right:2.6em}
.garza-fld textarea{resize:vertical;min-height:96px}
.garza-fld input:focus,.garza-fld select:focus,.garza-fld textarea:focus{outline:0;border-color:var(--hot-a);background:#fff;box-shadow:0 0 0 4px rgba(169,63,105,.14)}
.garza-fld.garza-is-bad input{border-color:#9b3a49;box-shadow:0 0 0 4px rgba(155,58,73,.12)}
.garza-fld__err{display:none;font-style:normal;font-size:12.5px;color:#8c3240}
.garza-fld.garza-is-bad .garza-fld__err{display:block}
.garza-fld--seg{grid-template-columns:1fr 1fr;gap:8px}
.garza-fld--seg legend{grid-column:1/-1;margin-bottom:7px}
.garza-fld--seg label{display:block}
.garza-fld--seg input{position:absolute;opacity:0;pointer-events:none}
.garza-fld--seg span{display:flex;align-items:center;justify-content:center;gap:.5em;min-height:52px;border-radius:16px;border:1.5px solid var(--line);background:var(--blush);font-weight:500;font-size:14.5px;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.garza-fld--seg span .garza-ic{width:1.15em;height:1.15em}
.garza-fld--seg input:checked+span{background:var(--plum);border-color:var(--plum);color:#fff}
.garza-fld--seg input:focus-visible+span{outline:3px solid var(--hot-a);outline-offset:2px}
.garza-form__alt{display:flex;align-items:center;justify-content:center;gap:.5em;font-weight:500;font-size:14px;color:var(--hot-b);padding:.4em}
.garza-form__alt .garza-ic{width:1.1em;height:1.1em}
.garza-form__note{display:flex;align-items:center;justify-content:center;gap:.5em;margin:0;font-size:12.5px;color:var(--ink-soft);text-align:center}
.garza-form__note .garza-ic{width:1.1em;height:1.1em;flex:none}

/* mini íconos de color (canales de contacto) */
.garza-mini{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;flex:none;color:#fff}
.garza-mini .garza-ic{width:22px;height:22px}
.garza-mini--wa{background:linear-gradient(160deg,#22a85a,#13703b)}
.garza-mini--plum{background:var(--plum)}
.garza-mini--hot{background:linear-gradient(160deg,var(--hot-a),var(--hot-b))}
.garza-mini--rose{background:linear-gradient(160deg,#e1a8bd,#ba3f71)}

/* ═══════════ sheets + toast ═══════════ */
.garza-sheet{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center}
.garza-sheet__bd{position:absolute;inset:0;background:rgba(33,19,27,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .3s}
.garza-sheet__pn{position:relative;display:grid;gap:12px;width:min(560px,100%);max-height:92svh;overflow:auto;padding:14px 20px calc(24px + env(safe-area-inset-bottom,0px));border-radius:32px 32px 0 0;background:#fff;translate:0 100%;transition:translate .5s var(--ease);overscroll-behavior:contain}
.garza-sheet.garza-is-open .garza-sheet__bd{opacity:1}
.garza-sheet.garza-is-open .garza-sheet__pn{translate:0 0}
.garza-sheet__grab{justify-self:center;width:44px;height:5px;border-radius:99px;background:rgba(33,19,27,.16);margin-bottom:6px}
.garza-sheet__x{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--rose-100)}
.garza-sheet__x .garza-ic{width:18px;height:18px}
.garza-sheet__t{font-weight:700;font-size:clamp(22px,5.4vw,28px);letter-spacing:-.04em;line-height:1.1;padding-right:44px}
.garza-sheet__s{margin:-4px 0 6px;color:var(--ink-soft);font-size:14.5px}
.garza-sheet__k{margin:6px 0 8px;font-weight:500;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--hot-b)}
.garza-opt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;border-radius:22px;background:var(--rose-100);transition:background-color .2s,transform .2s}
.garza-opt:hover{background:var(--rose-200)}
.garza-opt:active{transform:scale(.98)}
.garza-opt__ic{width:50px;height:50px;border-radius:17px;display:grid;place-items:center;color:#fff}
.garza-opt__ic .garza-ic{width:24px;height:24px}
.garza-opt--wa .garza-opt__ic{background:linear-gradient(160deg,#22a85a,#13703b)}
.garza-opt--doc .garza-opt__ic{background:linear-gradient(160deg,var(--hot-a),var(--hot-b))}
.garza-opt--tel .garza-opt__ic{background:var(--plum)}
.garza-opt__t{display:grid;gap:2px}
.garza-opt__t b{font-size:16.5px;letter-spacing:-.02em}
.garza-opt__t small{font-size:13px;color:var(--ink-soft);line-height:1.3}
.garza-opt>.garza-ic{width:20px;height:20px;color:var(--ink-soft)}
.garza-istep{display:grid;gap:10px;counter-reset:i;margin-bottom:8px}
.garza-istep li{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:12px 14px;border-radius:18px;background:var(--rose-100);font-size:14.5px;line-height:1.5}
.garza-istep li span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--hot-a);color:#fff;font-size:13px;font-weight:700}
.garza-istep .garza-ic{width:1.1em;height:1.1em;vertical-align:-.15em}
.garza-toast{position:fixed;z-index:120;width:max-content;left:50%;bottom:calc(var(--mbar-h) + 22px + env(safe-area-inset-bottom,0px));translate:-50% 30px;max-width:calc(100% - 32px);padding:.85em 1.4em;border-radius:999px;background:rgba(33,19,27,.94);color:#fff;font-size:14.5px;font-weight:500;text-align:center;opacity:0;pointer-events:none;box-shadow:0 18px 30px -16px rgba(0,0,0,.6);transition:opacity .3s,translate .45s var(--ease)}
.garza-toast.garza-show{opacity:1;translate:-50% 0}
@media (min-width:700px){
  .garza-sheet{align-items:center}
  .garza-sheet__pn{border-radius:34px;padding-bottom:28px;translate:0 26px;opacity:0;transition:translate .45s var(--ease),opacity .3s}
  .garza-sheet.garza-is-open .garza-sheet__pn{translate:0 0;opacity:1}
  .garza-sheet__grab{display:none}
}

/* ya instalada como app: se oculta lo de instalar */
@media all and (display-mode:standalone){.garza-hide-standalone{display:none!important}}
html.garza-is-standalone .garza-hide-standalone{display:none!important}

/* tonos de íconos de servicio y avatares de opiniones (usados en escritorio y móvil) */
.garza-tone-1{background:#f1dee5}.garza-tone-2{background:#e9ccd6}.garza-tone-3{background:linear-gradient(160deg,var(--hot-a),var(--hot-b));color:#fff}.garza-tone-4{background:#f6eaee}.garza-tone-5{background:var(--plum);color:#fff}.garza-tone-6{background:var(--rose-200)}
.garza-quote__av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--c,var(--hot-a));color:#fff;font-weight:700;flex:none}
