/* ============================================================
     PALETA Y VARIABLES
     ============================================================ */
  :root{
    /* Paleta de marca — Dra. Vanessa Salinas (nudes / mocha) */
    --ivory:      #F6F7F6;
    --ivory-2:    #ECEEED;
    --blush:      #E0E2E1;
    --blush-2:    #CCD0CE;
    --wine:       #454A49;   /* espresso — oscuro principal */
    --wine-deep:  #33383A;   /* espresso profundo */
    --gold:       #AEB4B2;   /* mocha claro — acento (rinde sobre claro y oscuro) */
    --gold-deep:  #5B6160;   /* mocha oscuro — acento sobre fondos claros */
    --rose:       #6E736F;   /* mocha medio */
    --espresso:   #34383A;   /* texto — casi negro cálido */
    --muted:      #6B706E;   /* texto secundario */
    --line:       #DCDEDD;

    --serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
    --sans:  "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --body:  "Lato", "Montserrat", -apple-system, BlinkMacSystemFont, sans-serif;

    --wrap: 1180px;
    --radius: 18px;
    --shadow: 0 24px 60px -30px rgba(52,56,58,.42);
    --shadow-sm: 0 12px 34px -20px rgba(52,56,58,.36);
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top: 92px; }
  body{
    font-family: var(--body);
    color: var(--espresso);
    background: var(--ivory);
    line-height: 1.65;
    font-weight: 400;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  ::selection{ background: var(--wine); color: var(--ivory); }

  h1,h2,h3,h4{ font-family: var(--serif); font-weight: 500; line-height:1.06; letter-spacing:-.005em; }

  .wrap{ width:min(100% - 44px, var(--wrap)); margin-inline:auto; }
  .eyebrow{
    font-family: var(--sans);
    font-size:.72rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase;
    color: var(--gold-deep); display:inline-flex; align-items:center; gap:.6rem;
  }
  .eyebrow::before{ content:""; width:26px; height:1px; background: var(--gold); display:inline-block; }
  .center .eyebrow::after{ content:""; width:26px; height:1px; background: var(--gold); display:inline-block; }
  .center{ text-align:center; }
  .center .eyebrow{ justify-content:center; }

  section{ position:relative; }
  .section-pad{ padding: clamp(64px, 9vw, 128px) 0; }

  /* ============================================================
     BOTONES
     ============================================================ */
  .btn{
    font-family: var(--sans); font-weight:600; font-size:.92rem; letter-spacing:.02em;
    display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
    padding: 15px 30px; border-radius: 100px; cursor:pointer; border:1px solid transparent;
    transition: transform .35s cubic-bezier(.2,.8,.2,1), background .35s, color .35s, box-shadow .35s;
    white-space:nowrap;
  }
  .btn-primary{ background: var(--wine); color: var(--ivory); box-shadow: var(--shadow-sm); }
  .btn-primary:hover{ background: var(--wine-deep); transform: translateY(-3px); }
  .btn-ghost{ background: transparent; color: var(--wine); border-color: var(--wine); }
  .btn-ghost:hover{ background: var(--wine); color: var(--ivory); transform: translateY(-3px); }
  .btn-gold{ background: linear-gradient(135deg, #B8BDBB, #8C918F); color: var(--wine-deep); box-shadow: 0 14px 30px -14px rgba(91,97,96,.55); }
  .btn-gold:hover{ transform: translateY(-3px); }
  .btn svg{ width:17px; height:17px; }

  /* ============================================================
     HEADER / NAV
     ============================================================ */
  header.site{
    position: sticky; top:0; z-index: 100;
    background: rgba(252,248,244,.82); backdrop-filter: blur(14px);
    border-bottom: 1px solid transparent; transition: border-color .4s, background .4s, padding .4s;
  }
  header.site.scrolled{ border-color: var(--line); }
  .nav{ display:flex; align-items:center; justify-content:space-between; padding: 20px 0; transition: padding .4s; }
  header.site.scrolled .nav{ padding: 13px 0; }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand .mono{
    width:44px; height:44px; border-radius:12px; background: var(--wine); color: var(--gold);
    display:grid; place-items:center; font-family: var(--serif); font-size:1.15rem; letter-spacing:.02em;
    box-shadow: var(--shadow-sm);
  }
  .brand .name{ font-family: var(--serif); font-size:1.18rem; line-height:1.05; color: var(--wine); }
  .brand .name small{ display:block; font-family: var(--sans); font-size:.62rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color: var(--rose); margin-top:2px; }

  .nav-links{ display:flex; align-items:center; gap:34px; }
  .nav-links a{ font-size:.92rem; font-weight:500; color: var(--espresso); position:relative; }
  .nav-links a:not(.btn)::after{ content:""; position:absolute; left:0; bottom:-6px; width:0; height:1.5px; background: var(--gold); transition: width .35s; }
  .nav-links a:not(.btn):hover::after{ width:100%; }

  .nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; }
  .nav-toggle span{ display:block; width:26px; height:2px; background: var(--wine); margin:5px 0; transition: .3s; border-radius:2px; }

  /* ============================================================
     HERO
     ============================================================ */
  .hero{ position:relative; overflow:hidden; padding: clamp(40px, 6vw, 80px) 0 clamp(60px, 8vw, 110px); }
  .hero::before{
    content:""; position:absolute; inset:0; z-index:-2;
    background:
      radial-gradient(1100px 620px at 78% 8%, var(--blush) 0%, transparent 58%),
      radial-gradient(760px 520px at 6% 92%, var(--ivory-2) 0%, transparent 60%);
  }
  .hero-grid{ display:grid; grid-template-columns: 1.08fr .92fr; gap: clamp(28px, 5vw, 70px); align-items:center; }
  .hero-copy .eyebrow{ margin-bottom:26px; }
  .hero h1{
    font-size: clamp(2.6rem, 6vw, 4.6rem);
    color: var(--wine); margin-bottom:22px;
  }
  .hero h1 em{ font-style:italic; color: var(--gold-deep); }
  .hero .lead{ font-size: clamp(1.02rem, 1.5vw, 1.2rem); color: var(--muted); max-width: 30em; margin-bottom:34px; }
  .hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:32px; }
  .hero-trust{ display:flex; align-items:center; gap:10px; font-size:.82rem; color: var(--rose); font-weight:500; }
  .hero-trust .dot{ width:5px; height:5px; border-radius:50%; background: var(--gold); }

  /* Ilustración firma: rostro con proporción áurea (SVG original) */
  .hero-art{ position:relative; display:grid; place-items:center; }
  .hero-art .halo{
    position:absolute; width:min(92%, 460px); aspect-ratio:1; border-radius:50%;
    background: radial-gradient(circle at 50% 40%, #fff 0%, var(--blush) 55%, var(--blush-2) 100%);
    box-shadow: var(--shadow); z-index:0;
  }
  .hero-art svg{ position:relative; z-index:1; width:min(90%, 430px); height:auto; overflow:visible; }
  .draw{ stroke-dasharray: 1400; stroke-dashoffset: 1400; animation: draw 2.4s cubic-bezier(.5,0,.2,1) .35s forwards; }
  .fade-node{ opacity:0; animation: nodeIn .6s ease forwards; }
  @keyframes draw{ to{ stroke-dashoffset:0; } }
  @keyframes nodeIn{ to{ opacity:1; } }

  .badge-float{
    position:absolute; z-index:2; background:#fff; border-radius:16px; padding:14px 18px;
    box-shadow: var(--shadow-sm); display:flex; align-items:center; gap:12px;
  }
  .badge-float .ico{ width:38px; height:38px; border-radius:10px; background: var(--blush); display:grid; place-items:center; color: var(--wine); }
  .badge-float .ico svg{ width:20px; height:20px; }
  .badge-float b{ font-family:var(--serif); font-size:1.35rem; color: var(--wine); line-height:1; }
  .badge-float span{ font-size:.72rem; color: var(--muted); }
  .badge-a{ top:6%; left:-4%; }
  .badge-b{ bottom:8%; right:-3%; }

  /* ============================================================
     TIRA DE CONFIANZA
     ============================================================ */
  .trust{ background: var(--wine); color: var(--ivory); }
  .trust-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:26px; padding: 34px 0; }
  .trust-item{ display:flex; align-items:center; gap:14px; }
  .trust-item .ti-ico{ flex:0 0 auto; width:44px; height:44px; border-radius:12px; border:1px solid rgba(91,97,96,.38); display:grid; place-items:center; color: var(--gold); }
  .trust-item .ti-ico svg{ width:22px; height:22px; }
  .trust-item p{ font-size:.9rem; line-height:1.35; color:#F3E6DE; }
  .trust-item p b{ display:block; font-family:var(--serif); font-size:1.05rem; color:#fff; font-weight:400; }

  /* ============================================================
     SERVICIOS
     ============================================================ */
  .sec-head{ max-width: 640px; margin-bottom: 54px; }
  .center.sec-head{ margin-inline:auto; }
  .sec-head .eyebrow{ margin-bottom:20px; }
  .sec-head h2{ font-size: clamp(2rem, 4vw, 3.1rem); color: var(--wine); margin-bottom:18px; }
  .sec-head p{ color: var(--muted); font-size:1.02rem; }

  .stars{ display:grid; grid-template-columns: repeat(3,1fr); gap:26px; }
  .star-card{
    background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 38px 32px;
    position:relative; overflow:hidden; transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s, border-color .45s;
  }
  .star-card::after{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background: linear-gradient(90deg, var(--gold), var(--rose)); transition: width .5s; }
  .star-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow); border-color: transparent; }
  .star-card:hover::after{ width:100%; }
  .star-num{ font-family:var(--serif); font-style:italic; font-size:1rem; color: var(--gold-deep); }
  .star-ico{ width:62px; height:62px; border-radius:16px; background: var(--blush); display:grid; place-items:center; color: var(--wine); margin:16px 0 22px; }
  .star-ico svg{ width:30px; height:30px; }
  .star-card h3{ font-size:1.5rem; color: var(--wine); margin-bottom:12px; }
  .star-card p{ color: var(--muted); font-size:.95rem; margin-bottom:20px; }
  .tags{ display:flex; flex-wrap:wrap; gap:8px; }
  .tag{ font-size:.72rem; font-weight:600; letter-spacing:.04em; color: var(--rose); background: var(--ivory-2); border:1px solid var(--line); padding:5px 12px; border-radius:100px; }

  .more-services{ margin-top:26px; display:grid; grid-template-columns: repeat(3,1fr); gap:0; border:1px solid var(--line); border-radius: var(--radius); overflow:hidden; background:#fff; }
  .ms-item{ padding:26px 26px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; gap:14px; align-items:flex-start; transition: background .3s; }
  .ms-item:hover{ background: var(--ivory-2); }
  .ms-item .ms-ico{ flex:0 0 auto; color: var(--gold-deep); margin-top:2px; }
  .ms-item .ms-ico svg{ width:20px; height:20px; }
  .ms-item h4{ font-size:1.08rem; color: var(--wine); margin-bottom:4px; }
  .ms-item p{ font-size:.85rem; color: var(--muted); }

  /* ============================================================
     SOBRE LA DRA
     ============================================================ */
  .about{ background: var(--ivory-2); }
  .about-grid{ display:grid; grid-template-columns: .85fr 1.15fr; gap: clamp(30px,5vw,72px); align-items:center; }
  .about-photo{ position:relative; }
  .about-photo .frame{
    aspect-ratio: 4/5; border-radius: 22px; overflow:hidden; position:relative;
    background: linear-gradient(160deg, var(--blush), var(--blush-2)); box-shadow: var(--shadow);
    display:grid; place-items:center;
  }
  /* Marcador de foto — reemplaza este bloque por: <img src="dra-vanessa.jpg" alt="Dra. Vanessa Salinas, armonización orofacial en Huancayo"> */
  .photo-ph{ text-align:center; color: var(--wine); opacity:.62; }
  .photo-ph svg{ width:54px; height:54px; margin-bottom:10px; }
  .photo-ph span{ font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; display:block; }
  .about-photo .stamp{
    position:absolute; bottom:-22px; right:-14px; background: var(--wine); color: var(--ivory);
    border-radius:18px; padding:18px 22px; box-shadow: var(--shadow); text-align:center;
  }
  .about-photo .stamp b{ font-family:var(--serif); font-size:1.9rem; display:block; line-height:1; color:#fff; }
  .about-photo .stamp span{ font-size:.7rem; letter-spacing:.06em; color: var(--gold); }

  .about-copy .eyebrow{ margin-bottom:20px; }
  .about-copy h2{ font-size: clamp(1.9rem,3.6vw,2.9rem); color: var(--wine); margin-bottom:22px; }
  .about-copy p{ color: var(--muted); margin-bottom:16px; }
  .about-copy p strong{ color: var(--espresso); font-weight:600; }
  .quote{
    font-family: var(--serif); font-style:italic; font-size: clamp(1.25rem,2.2vw,1.6rem);
    color: var(--wine); line-height:1.35; margin: 26px 0; padding-left: 22px; border-left: 2px solid var(--gold);
  }
  .credentials{ display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:26px; }
  .cred{ display:flex; align-items:center; gap:9px; font-size:.88rem; color: var(--espresso); font-weight:500; }
  .cred svg{ width:18px; height:18px; color: var(--gold-deep); }

  /* ============================================================
     POR QUÉ ELEGIRME
     ============================================================ */
  .why-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:24px; }
  .why-card{ padding: 32px 26px; border-radius: var(--radius); background:#fff; border:1px solid var(--line); transition: transform .4s, box-shadow .4s; }
  .why-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-sm); }
  .why-card .wc-ico{ width:52px; height:52px; border-radius:14px; background: var(--wine); color: var(--gold); display:grid; place-items:center; margin-bottom:20px; }
  .why-card .wc-ico svg{ width:26px; height:26px; }
  .why-card h4{ font-size:1.2rem; color: var(--wine); margin-bottom:10px; }
  .why-card p{ font-size:.9rem; color: var(--muted); }

  /* ============================================================
     RESULTADOS / ANTES-DESPUÉS
     ============================================================ */
  .results{ background: var(--wine); color: var(--ivory); }
  .results .sec-head h2{ color:#fff; }
  .results .sec-head p{ color:#E7D6CE; }
  .results .eyebrow{ color: var(--gold); }
  .gallery{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
  .ba{ border-radius: var(--radius); overflow:hidden; background: rgba(255,255,255,.06); border:1px solid rgba(194,160,92,.25); aspect-ratio: 4/5; display:grid; place-items:center; position:relative; }
  /* Reemplaza por: <img src="resultado-1.jpg" alt="Resultado antes y después de bioestimuladores en Huancayo"> */
  .ba .ba-ph{ text-align:center; color: var(--gold); opacity:.75; }
  .ba .ba-ph svg{ width:40px; height:40px; margin-bottom:8px; }
  .ba .ba-ph span{ font-size:.74rem; letter-spacing:.06em; }
  .results-note{ text-align:center; margin-top:26px; font-size:.82rem; color:#D9C7BF; }

  /* ============================================================
     TESTIMONIOS
     ============================================================ */
  .tst-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
  .tst{ background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 32px 28px; position:relative; }
  .tst .stars-r{ color: var(--gold); letter-spacing:2px; font-size:.9rem; margin-bottom:14px; }
  .tst p{ font-family:var(--serif); font-style:italic; font-size:1.08rem; color: var(--espresso); line-height:1.5; margin-bottom:20px; }
  .tst .who{ display:flex; align-items:center; gap:12px; }
  .tst .av{ width:42px; height:42px; border-radius:50%; background: var(--blush); color: var(--wine); display:grid; place-items:center; font-family:var(--serif); font-size:1.1rem; }
  .tst .who b{ font-family:var(--sans); font-size:.9rem; color: var(--wine); font-weight:600; display:block; }
  .tst .who span{ font-size:.78rem; color: var(--muted); }

  /* ============================================================
     FAQ
     ============================================================ */
  .faq{ background: var(--ivory-2); }
  .faq-wrap{ max-width: 820px; margin-inline:auto; }
  .faq-item{ border-bottom:1px solid var(--line); }
  .faq-q{ width:100%; text-align:left; background:none; border:none; cursor:pointer; padding: 26px 0; display:flex; align-items:center; justify-content:space-between; gap:20px; font-family: var(--serif); font-size: clamp(1.1rem,2vw,1.35rem); color: var(--wine); }
  .faq-q .pm{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; border:1px solid var(--gold); color: var(--gold-deep); display:grid; place-items:center; transition: .35s; font-family:var(--sans); font-size:1.3rem; }
  .faq-item.open .faq-q .pm{ background: var(--wine); border-color: var(--wine); color: var(--ivory); transform: rotate(45deg); }
  .faq-a{ max-height:0; overflow:hidden; transition: max-height .45s ease; }
  .faq-a p{ padding: 0 0 26px; color: var(--muted); font-size:.98rem; max-width: 62ch; }

  /* ============================================================
     AGENDA / CALENDARIO
     ============================================================ */
  .agenda-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,4vw,48px); align-items:start; }
  .agenda-intro .eyebrow{ margin-bottom:20px; }
  .agenda-intro h2{ font-size: clamp(1.9rem,3.6vw,2.9rem); color: var(--wine); margin-bottom:20px; }
  .agenda-intro p{ color: var(--muted); margin-bottom:22px; }
  .agenda-steps{ list-style:none; display:grid; gap:16px; margin-top:8px; }
  .agenda-steps li{ display:flex; gap:14px; align-items:flex-start; }
  .agenda-steps .n{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; background: var(--wine); color: var(--gold); display:grid; place-items:center; font-family:var(--serif); font-size:.95rem; }
  .agenda-steps b{ font-family:var(--sans); font-weight:600; color: var(--wine); font-size:.95rem; }
  .agenda-steps span{ display:block; font-size:.86rem; color: var(--muted); }

  .booking{ background:#fff; border:1px solid var(--line); border-radius: 22px; padding: 28px; box-shadow: var(--shadow); }
  .cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
  .cal-head .m{ font-family:var(--serif); font-size:1.25rem; color: var(--wine); text-transform:capitalize; }
  .cal-nav{ display:flex; gap:8px; }
  .cal-nav button{ width:36px; height:36px; border-radius:10px; border:1px solid var(--line); background: var(--ivory); color: var(--wine); cursor:pointer; display:grid; place-items:center; transition:.25s; }
  .cal-nav button:hover:not(:disabled){ background: var(--wine); color: var(--ivory); }
  .cal-nav button:disabled{ opacity:.35; cursor:not-allowed; }
  .cal-dow{ display:grid; grid-template-columns: repeat(7,1fr); gap:6px; margin-bottom:6px; }
  .cal-dow span{ text-align:center; font-size:.7rem; font-weight:700; letter-spacing:.04em; color: var(--rose); text-transform:uppercase; }
  .cal-grid{ display:grid; grid-template-columns: repeat(7,1fr); gap:6px; }
  .cal-cell{ aspect-ratio:1; border-radius:10px; border:1px solid transparent; background: var(--ivory-2); color: var(--espresso); font-family:var(--sans); font-size:.9rem; font-weight:500; cursor:pointer; transition:.2s; display:grid; place-items:center; }
  .cal-cell:hover:not(.off):not(.sel){ border-color: var(--gold); background:#fff; }
  .cal-cell.off{ background:transparent; color: #CBB9B2; cursor:not-allowed; }
  .cal-cell.empty{ background:transparent; cursor:default; }
  .cal-cell.sel{ background: var(--wine); color: var(--ivory); box-shadow: var(--shadow-sm); }
  .cal-cell.today{ border-color: var(--rose); }

  .slots-label{ font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color: var(--rose); margin: 22px 0 12px; }
  .slots{ display:grid; grid-template-columns: repeat(4,1fr); gap:8px; }
  .slot{ padding:10px 6px; border-radius:10px; border:1px solid var(--line); background: var(--ivory); color: var(--espresso); font-size:.86rem; font-weight:500; cursor:pointer; transition:.2s; text-align:center; }
  .slot:hover{ border-color: var(--gold); }
  .slot.sel{ background: var(--wine); color: var(--ivory); border-color: var(--wine); }
  .slots-empty{ font-size:.86rem; color: var(--muted); font-style:italic; }

  .field{ margin-top:14px; }
  .field label{ display:block; font-size:.78rem; font-weight:600; letter-spacing:.04em; color: var(--wine); margin-bottom:6px; }
  .field input, .field select, .field textarea{
    width:100%; padding: 12px 14px; border-radius:12px; border:1px solid var(--line); background: var(--ivory);
    font-family: var(--sans); font-size:.92rem; color: var(--espresso); transition: border-color .25s, background .25s;
  }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color: var(--gold); background:#fff; }
  .field textarea{ resize:vertical; min-height:70px; }
  .booking .btn{ width:100%; margin-top:20px; }
  .booking-note{ font-size:.76rem; color: var(--muted); text-align:center; margin-top:12px; }
  .summary-chip{ margin-top:16px; padding:12px 16px; border-radius:12px; background: var(--blush); color: var(--wine); font-size:.86rem; font-weight:500; display:none; align-items:center; gap:8px; }
  .summary-chip.show{ display:flex; }
  .summary-chip svg{ width:16px; height:16px; flex:0 0 auto; }

  /* ============================================================
     CONTACTO / UBICACIÓN
     ============================================================ */
  .contact-grid{ display:grid; grid-template-columns: 1fr 1.15fr; gap: clamp(24px,4vw,48px); align-items:stretch; }
  .contact-info .eyebrow{ margin-bottom:20px; }
  .contact-info h2{ font-size: clamp(1.9rem,3.6vw,2.8rem); color: var(--wine); margin-bottom:26px; }
  .ci-list{ display:grid; gap:20px; }
  .ci{ display:flex; gap:16px; align-items:flex-start; }
  .ci .ci-ico{ flex:0 0 auto; width:48px; height:48px; border-radius:13px; background: var(--blush); color: var(--wine); display:grid; place-items:center; }
  .ci .ci-ico svg{ width:22px; height:22px; }
  .ci b{ font-family:var(--sans); font-weight:600; color: var(--wine); font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; display:block; margin-bottom:3px; }
  .ci p, .ci a{ color: var(--muted); font-size:.98rem; }
  .ci a:hover{ color: var(--gold-deep); }
  .socials{ display:flex; gap:12px; margin-top:30px; }
  .socials a{ width:46px; height:46px; border-radius:12px; border:1px solid var(--line); display:grid; place-items:center; color: var(--wine); transition:.3s; }
  .socials a:hover{ background: var(--wine); color: var(--ivory); transform: translateY(-3px); }
  .socials a svg{ width:22px; height:22px; }
  .map-wrap{ border-radius: 22px; overflow:hidden; border:1px solid var(--line); box-shadow: var(--shadow); min-height: 380px; }
  .map-wrap iframe{ width:100%; height:100%; min-height:380px; border:0; filter: saturate(.85) contrast(.98); }

  /* ============================================================
     FOOTER
     ============================================================ */
  footer.site{ background: var(--wine-deep); color:#E7D6CE; padding: 68px 0 30px; }
  .foot-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; padding-bottom: 44px; border-bottom:1px solid rgba(194,160,92,.2); }
  .foot-brand .brand .name{ color:#fff; }
  .foot-brand p{ font-size:.9rem; color:#B9BEBC; margin-top:18px; max-width: 34ch; }
  .foot-col h5{ font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color: var(--gold); margin-bottom:18px; }
  .foot-col a, .foot-col p{ display:block; font-size:.9rem; color:#D9C7BF; margin-bottom:11px; transition: color .25s; }
  .foot-col a:hover{ color:#fff; }
  .foot-bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding-top:24px; font-size:.8rem; color:#B49E96; }

  /* ============================================================
     WHATSAPP FLOTANTE
     ============================================================ */
  .wa-float{
    position: fixed; right: 22px; bottom: 22px; z-index: 200;
    width: 60px; height: 60px; border-radius: 50%; background:#25D366; color:#fff;
    display:grid; place-items:center; box-shadow: 0 14px 34px -8px rgba(37,211,102,.6);
    transition: transform .3s; animation: waPulse 2.6s infinite;
  }
  .wa-float:hover{ transform: scale(1.08); }
  .wa-float svg{ width:32px; height:32px; }
  @keyframes waPulse{ 0%,100%{ box-shadow: 0 14px 34px -8px rgba(37,211,102,.6); } 50%{ box-shadow: 0 14px 44px -6px rgba(37,211,102,.85); } }

  /* ============================================================
     REVELADO AL HACER SCROLL
     ============================================================ */
  .reveal{ opacity:0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); }
  .reveal.in{ opacity:1; transform:none; }

  /* ============================================================
     RESPONSIVE
     ============================================================ */
  @media (max-width: 980px){
    .hero-grid{ grid-template-columns:1fr; }
    .hero-art{ order:-1; max-width:440px; margin-inline:auto; }
    .badge-a{ left:0; } .badge-b{ right:0; }
    .trust-grid{ grid-template-columns: repeat(2,1fr); gap:22px; }
    .stars{ grid-template-columns:1fr; }
    .more-services{ grid-template-columns:1fr 1fr; }
    .about-grid{ grid-template-columns:1fr; }
    .about-photo{ max-width:380px; margin-inline:auto; }
    .why-grid{ grid-template-columns:1fr 1fr; }
    .gallery{ grid-template-columns:1fr 1fr; }
    .tst-grid{ grid-template-columns:1fr; }
    .agenda-grid{ grid-template-columns:1fr; }
    .contact-grid{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width: 640px){
    .nav-links{
      position: fixed; inset: 0 0 0 auto; width: min(80%, 320px); background: var(--ivory);
      flex-direction: column; align-items:flex-start; justify-content:center; gap:26px; padding: 40px;
      transform: translateX(100%); transition: transform .4s cubic-bezier(.2,.8,.2,1); box-shadow: var(--shadow); z-index:120;
    }
    .nav-links.open{ transform:none; }
    .nav-links a{ font-size:1.1rem; }
    .nav-toggle{ display:block; z-index:130; }
    .nav-open .nav-toggle span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
    .nav-open .nav-toggle span:nth-child(2){ opacity:0; }
    .nav-open .nav-toggle span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
    .trust-grid{ grid-template-columns:1fr; }
    .more-services{ grid-template-columns:1fr; }
    .why-grid{ grid-template-columns:1fr; }
    .gallery{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr; }
    .slots{ grid-template-columns: repeat(3,1fr); }
    .about-photo .stamp{ right:0; }
  }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
    .reveal{ opacity:1; transform:none; }
    .draw{ stroke-dashoffset:0; } .fade-node{ opacity:1; }
  }
  :focus-visible{ outline: 3px solid var(--gold); outline-offset: 3px; border-radius:4px; }
  /* ============================================================
     VISOR DE ANATOMÍA FACIAL — mapa muscular interactivo
     Componente reutilizable (se integrará también en el software Kallpa).
     ============================================================ */
  .anatomy{
    position:relative; z-index:1; margin:0; width:min(100%, 430px);
    background: linear-gradient(180deg, #ffffff 0%, var(--ivory) 100%);
    border:1px solid var(--line); border-radius:22px;
    box-shadow: var(--shadow); padding:12px;
  }
  .anatomy-top{
    display:flex; align-items:center; gap:8px;
    font-family: var(--sans); font-size:.68rem; letter-spacing:.02em;
    color: var(--muted); padding:4px 6px 10px;
  }
  .anatomy-top b{ color: var(--gold-deep); font-weight:600; }
  .anatomy-dot{ width:8px; height:8px; border-radius:50%; background: var(--gold);
    box-shadow:0 0 0 4px rgba(174,180,178,.18); animation: apulse 2.4s ease-in-out infinite; }
  @keyframes apulse{ 0%,100%{ box-shadow:0 0 0 4px rgba(174,180,178,.18);} 50%{ box-shadow:0 0 0 7px rgba(174,180,178,.04);} }

  .anatomy-frame{
    position:relative; border-radius:14px; overflow:hidden; background:#f2ede6;
    aspect-ratio:1/1; box-shadow: inset 0 0 0 1px rgba(52,56,58,.05); cursor:crosshair;
  }
  .anatomy-frame .anatomy-svg{ display:block; width:100%; height:100%; overflow:hidden; }
  .anatomy-zoom{
    transform: scale(1); transform-origin:500px 500px;
    transition: transform .55s cubic-bezier(.22,.8,.24,1), transform-origin .55s cubic-bezier(.22,.8,.24,1);
    will-change: transform;
  }
  .hz{
    pointer-events:all; cursor:pointer;
    fill: transparent; stroke: transparent; stroke-width:3;
    transition: fill .3s ease, stroke .3s ease;
  }
  .hz.active{
    fill: rgba(255,255,255,.28);
    stroke: rgba(255,255,255,.96); stroke-width:3.5;
    filter: drop-shadow(0 3px 10px rgba(0,0,0,.45));
  }
  .anatomy-frame.zoomed{ cursor: zoom-out; }

  .anatomy-label{
    position:absolute; left:0; top:0; z-index:4; pointer-events:none;
    transform: translate(-50%, calc(-100% - 14px));
    background: var(--wine); color:#fff; border-radius:11px; padding:9px 13px;
    box-shadow:0 12px 30px -12px rgba(0,0,0,.5);
    opacity:0; transition: opacity .2s ease; max-width:220px;
  }
  .anatomy-label::after{
    content:""; position:absolute; left:50%; bottom:-6px; transform:translateX(-50%) rotate(45deg);
    width:11px; height:11px; background: var(--wine); border-radius:2px;
  }
  .anatomy-label.show{ opacity:1; }
  .anatomy-label b{ display:block; font-family:var(--serif); font-style:italic; font-weight:500; font-size:1.02rem; line-height:1.15; }
  .anatomy-label span{ display:block; font-family:var(--sans); font-size:.66rem; letter-spacing:.02em; color: var(--blush); margin-top:3px; }

  .anatomy-hint{
    position:absolute; left:50%; bottom:12px; transform:translateX(-50%); z-index:4; pointer-events:none;
    background: rgba(43,32,25,.72); color:#fff; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
    font-family:var(--sans); font-size:.66rem; letter-spacing:.04em; padding:6px 12px; border-radius:999px;
    opacity:1; transition: opacity .4s ease;
  }
  .anatomy-frame.touched .anatomy-hint{ opacity:0; }

  @media (max-width: 560px){
    .anatomy{ width:min(100%, 360px); }
    .anatomy-label b{ font-size:.95rem; }
  }
  /* ===== Logo de marca ===== */
  .brand-logo{ height:46px; width:auto; display:block; }
  footer.site .brand-logo{ height:54px; }
  @media (max-width:560px){ .brand-logo{ height:38px; } }

  /* ===== Fondo del visor con músculo transparente ===== */
  .anatomy-frame{ background: radial-gradient(120% 100% at 50% 12%, #fbfcfc 0%, #eceeed 58%, #dfe2e1 100%) !important; }

  /* ===== Dropdown de servicios ===== */
  .nav-item.has-drop{ position:relative; }
  .nav-drop-btn{ background:none; border:none; cursor:pointer; font:inherit; font-size:.92rem; font-weight:500; color:var(--espresso); display:inline-flex; align-items:center; gap:6px; padding:0; }
  .nav-drop-btn .caret{ font-size:.66em; transition:transform .3s; }
  .nav-item.has-drop:hover .nav-drop, .nav-item.has-drop.open .nav-drop{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
  .nav-item.has-drop.open .nav-drop-btn .caret{ transform:rotate(180deg); }
  .nav-drop{ position:absolute; top:calc(100% + 16px); left:50%; transform:translateX(-50%) translateY(8px);
    background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow);
    padding:10px; min-width:270px; display:flex; flex-direction:column; gap:2px;
    opacity:0; visibility:hidden; transition:opacity .25s, transform .25s; z-index:140; }
  .nav-drop::before{ content:""; position:absolute; top:-16px; left:0; right:0; height:16px; }
  .nav-drop a{ padding:10px 12px; border-radius:9px; font-size:.9rem; color:var(--espresso); position:static; }
  .nav-drop a::after{ display:none !important; }
  .nav-drop a:hover{ background:var(--ivory-2); color:var(--wine); }
  .nav-drop a[aria-current="page"]{ background:var(--ivory-2); color:var(--wine); font-weight:600; }
  .nav-drop .nav-drop-all{ margin-top:5px; padding-top:12px; border-top:1px solid var(--line); color:var(--gold-deep); font-weight:600; }

  /* ===== Breadcrumb ===== */
  .crumb{ font-family:var(--sans); font-size:.8rem; color:var(--muted); display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
  .crumb a{ color:var(--muted); } .crumb a:hover{ color:var(--wine); }
  .crumb .sep{ opacity:.5; } .crumb b{ color:var(--gold-deep); font-weight:600; }

  /* ===== Hero de servicio ===== */
  .svc-hero{ padding: clamp(26px,4vw,58px) 0 clamp(30px,4vw,60px); position:relative; overflow:hidden; }
  .svc-hero::before{ content:""; position:absolute; inset:0; z-index:-1;
    background: radial-gradient(900px 480px at 84% -8%, var(--blush) 0%, transparent 60%), radial-gradient(680px 460px at -6% 108%, var(--ivory-2) 0%, transparent 62%); }
  .svc-hero .crumb{ margin-bottom:20px; }
  .svc-hero .eyebrow{ margin-bottom:16px; }
  .svc-hero h1{ font-size: clamp(2.1rem,5vw,3.5rem); color:var(--wine); margin-bottom:16px; }
  .svc-hero .lead{ font-size:clamp(1rem,1.5vw,1.18rem); color:var(--muted); max-width:46ch; margin-bottom:26px; }

  /* ===== Bloques de servicio ===== */
  .svc-block{ padding: clamp(30px,4vw,54px) 0; }
  .svc-block.line{ border-top:1px solid var(--line); }
  .svc-block h2{ font-size:clamp(1.55rem,3vw,2.25rem); color:var(--wine); margin-bottom:16px; }
  .svc-lead{ color:var(--muted); max-width:62ch; }
  .svc-lead + .svc-lead{ margin-top:14px; }
  .svc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:26px; }
  .svc-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px; display:flex; gap:14px; }
  .svc-card .ic{ flex:0 0 auto; width:42px; height:42px; border-radius:11px; background:var(--ivory-2); color:var(--wine); display:grid; place-items:center; }
  .svc-card .ic svg{ width:20px; height:20px; }
  .svc-card h4{ font-family:var(--sans); font-size:.98rem; font-weight:600; color:var(--wine); margin-bottom:5px; }
  .svc-card p{ font-size:.9rem; color:var(--muted); }
  .svc-steps{ display:flex; flex-direction:column; gap:14px; margin-top:24px; }
  .svc-step{ display:flex; gap:16px; align-items:flex-start; }
  .svc-step .n{ flex:0 0 auto; width:38px; height:38px; border-radius:50%; background:var(--wine); color:#fff; display:grid; place-items:center; font-family:var(--serif); font-size:1.1rem; }
  .svc-step .sc h4{ font-family:var(--sans); font-weight:600; font-size:.98rem; color:var(--wine); margin-bottom:3px; }
  .svc-step .sc p{ font-size:.9rem; color:var(--muted); }
  .svc-facts{ display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
  .svc-fact{ background:var(--ivory-2); border-radius:12px; padding:14px 18px; min-width:150px; }
  .svc-fact b{ display:block; font-family:var(--sans); font-size:.66rem; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:2px; }
  .svc-fact span{ font-family:var(--serif); font-size:1.15rem; color:var(--wine); }
  .ideal-list{ list-style:none; display:grid; grid-template-columns:repeat(2,1fr); gap:12px 24px; margin-top:22px; }
  .ideal-list li{ position:relative; padding-left:28px; color:var(--espresso); font-size:.96rem; }
  .ideal-list li::before{ content:""; position:absolute; left:0; top:5px; width:16px; height:16px; border-radius:50%; background:var(--wine);
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2l-3.5-3.5L4 14.2l5 5 11-11-1.5-1.5z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.2l-3.5-3.5L4 14.2l5 5 11-11-1.5-1.5z'/%3E%3C/svg%3E") center/contain no-repeat; }

  /* ===== Sección ciudades (GEO) ===== */
  .cities{ background:var(--wine); color:#fff; }
  .cities .wrap{ padding: clamp(36px,5vw,64px) 0; }
  .cities h2{ color:#fff; font-size:clamp(1.55rem,3vw,2.25rem); margin-bottom:14px; }
  .cities p{ color:var(--blush); max-width:60ch; }
  .city-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
  .city-chips .chip{ background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.20); border-radius:999px; padding:8px 16px; font-family:var(--sans); font-size:.85rem; }

  /* ===== Relacionados ===== */
  .related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:26px; }
  .related-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px; transition:transform .3s, box-shadow .3s, border-color .3s; display:block; }
  .related-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
  .related-card h4{ font-size:1.25rem; color:var(--wine); margin-bottom:6px; }
  .related-card p{ font-size:.88rem; color:var(--muted); }
  .related-card .go{ display:inline-block; margin-top:12px; font-family:var(--sans); font-size:.82rem; font-weight:600; color:var(--gold-deep); }

  /* ===== CTA de servicio ===== */
  .svc-cta{ text-align:center; padding: clamp(42px,6vw,74px) 0; }
  .svc-cta h2{ margin-bottom:14px; }
  .svc-cta p{ color:var(--muted); max-width:50ch; margin:0 auto 26px; }
  .svc-cta .hero-cta{ justify-content:center; }

  /* ===== Foto real Sobre mí + enlaces de tarjetas ===== */
  .about-img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; display:block; }
  .star-link{ display:inline-block; margin-top:16px; font-family:var(--sans); font-size:.85rem; font-weight:600; color:var(--gold-deep); }
  .star-card{ display:flex; flex-direction:column; }
  .star-card .tags{ margin-bottom:2px; }
  a.ms-item{ text-decoration:none; transition:background .2s; }
  a.ms-item:hover{ background:var(--ivory-2); }

  @media (max-width:980px){ .related-grid{ grid-template-columns:1fr; } }
  @media (max-width:640px){
    .svc-grid, .ideal-list{ grid-template-columns:1fr; }
    .nav-item.has-drop{ width:100%; }
    .nav-drop{ position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:none; background:transparent; min-width:0; padding:6px 0 0 12px; display:none; }
    .nav-item.has-drop.open .nav-drop{ display:flex; }
    .nav-drop a{ color:var(--espresso); font-size:1rem; padding:8px 0; }
    .nav-drop .nav-drop-all{ border-top:1px solid var(--line); }
    .nav-drop-btn{ color:var(--espresso); font-size:1.1rem; }
  }

  /* ===== Hero con video de fondo ===== */
  .hero--video{ position:relative; min-height:clamp(540px,84vh,760px); display:flex; align-items:center; padding:0; overflow:hidden; }
  .hero--video::before{ display:none; }
  .hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
  .hero-video-overlay{ position:absolute; inset:0; z-index:-1;
    background:
      linear-gradient(90deg, rgba(40,45,47,.94) 0%, rgba(40,45,47,.72) 46%, rgba(40,45,47,.30) 100%),
      linear-gradient(0deg, rgba(40,45,47,.62) 0%, rgba(40,45,47,0) 46%); }
  .hero-v-inner{ width:min(100% - 44px, var(--wrap)); margin-inline:auto; padding:clamp(48px,8vw,96px) 0; position:relative; z-index:1; }
  .hero--video .hero-copy{ max-width:640px; }
  .hero--video h1{ color:#fff; }
  .hero--video h1 em{ color:#E9EBEA; }
  .hero--video .lead{ color:#E4E6E5; max-width:34em; }
  .eyebrow--light{ color:#fff; }
  .eyebrow--light::before{ background:rgba(255,255,255,.85) !important; }
  .hero-trust--light{ color:#DDE0DF; }
  .hero-trust--light .dot{ background:#fff; }
  .btn-ghost--light{ border-color:rgba(255,255,255,.55); color:#fff; background:transparent; }
  .btn-ghost--light:hover{ background:rgba(255,255,255,.12); border-color:#fff; }

  /* ===== Sección Anatomía (mapa reubicado) ===== */
  .anatomy-section{ display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(28px,5vw,68px); align-items:center; }
  .anatomy-copy .eyebrow{ margin-bottom:18px; }
  .anatomy-copy h2{ font-size:clamp(1.9rem,3.6vw,2.7rem); color:var(--wine); margin-bottom:18px; }
  .anatomy-copy p{ color:var(--muted); margin-bottom:14px; max-width:46ch; }
  .anatomy-copy p strong{ color:var(--wine); }
  .anatomy-holder{ display:grid; place-items:center; }
  .anatomy-holder .anatomy{ width:min(100%,440px); }
  @media (max-width:980px){ .anatomy-section{ grid-template-columns:1fr; } .anatomy-holder{ order:-1; } .anatomy-copy p{ max-width:none; } }

  /* ================= HEADER DE VIDRIO ================= */
  header.site{ position:fixed; left:0; right:0; top:0;
    background: rgba(246,247,246,.82); -webkit-backdrop-filter:saturate(140%) blur(16px); backdrop-filter:saturate(140%) blur(16px);
    border-bottom:1px solid transparent; }
  header.site.scrolled{ border-color: var(--line); box-shadow: 0 10px 30px -22px rgba(52,56,58,.6); }
  .brand-logo--light{ display:none; }
  body.has-hero-video header.site:not(.scrolled){ background: transparent; -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); border-color:transparent; box-shadow:none; }
  body.has-hero-video header.site:not(.scrolled) .brand-logo--dark{ display:none; }
  body.has-hero-video header.site:not(.scrolled) .brand-logo--light{ display:block; }
  body.has-hero-video header.site:not(.scrolled) .nav-links a, body.has-hero-video header.site:not(.scrolled) .nav-drop-btn{ color:#fff; }
  body.has-hero-video header.site:not(.scrolled) .nav-links a:not(.btn)::after{ background:#fff; }
  body.has-hero-video header.site:not(.scrolled) .nav-toggle span{ background:#fff; }
  .btn-nav-cta{ padding:11px 22px; }
  body.has-hero-video header.site:not(.scrolled) .btn-nav-cta{ background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.5); color:#fff; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); box-shadow:none; }
  body.has-hero-video header.site:not(.scrolled) .btn-nav-cta:hover{ background:rgba(255,255,255,.24); }
  /* dar aire bajo el header fijo en páginas internas */
  body:not(.has-hero-video) main{ padding-top:88px; }

  /* ================= HERO EDITORIAL ================= */
  .hero--video{ min-height:100svh; }
  .hero-title{ margin:0 0 6px; line-height:.92; }
  .ht-serif{ display:block; font-family:var(--serif); font-style:italic; font-weight:500; color:#fff; font-size:clamp(3rem,9vw,6.4rem); letter-spacing:-.01em; }
  .ht-caps{ display:block; font-family:var(--sans); font-weight:300; text-transform:uppercase; color:#fff; font-size:clamp(2.1rem,6.4vw,4.6rem); letter-spacing:.14em; margin-left:.12em; }
  .hero-place{ font-family:var(--sans); font-size:.8rem; letter-spacing:.34em; text-transform:uppercase; color:rgba(255,255,255,.82); margin:14px 0 22px; }
  .hero--video .lead{ color:#E7E9E8; }
  .btn-glass{ background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.55); color:#fff; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
  .btn-glass:hover{ background:rgba(255,255,255,.26); transform:translateY(-3px); }
  .btn-glass--ghost{ background:rgba(255,255,255,.04); }

  /* sello circular */
  .hero-seal{ position:absolute; right:2%; top:22%; width:clamp(108px,12vw,150px); aspect-ratio:1; z-index:2; display:grid; place-items:center; }
  .hero-seal svg{ position:absolute; inset:0; width:100%; height:100%; animation:sealSpin 22s linear infinite; }
  .seal-text{ font-family:var(--sans); font-size:8.2px; letter-spacing:2.3px; fill:rgba(255,255,255,.9); text-transform:uppercase; font-weight:600; }
  .seal-center{ text-align:center; color:#fff; }
  .seal-center b{ display:block; font-family:var(--serif); font-style:italic; font-size:clamp(1.5rem,2.4vw,2rem); line-height:1; }
  .seal-center span{ font-family:var(--sans); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; opacity:.85; }
  @keyframes sealSpin{ to{ transform:rotate(360deg); } }
  @media (max-width:720px){ .hero-seal{ display:none; } }

  /* ================= MAPA FACIAL LIBRE (famap) ================= */
  .anatomy-section{ grid-template-columns:1fr 1.15fr; }
  .famap{ position:relative; width:min(100%,560px); margin-inline:auto; aspect-ratio:1/1; }
  .famap-img{ width:100%; height:100%; object-fit:contain; -webkit-user-select:none; user-select:none; pointer-events:none;
    filter: drop-shadow(0 30px 60px rgba(52,56,58,.28)); }
  .famap-pins{ position:absolute; inset:0; }
  .fpin{ position:absolute; width:13px; height:13px; margin:-6.5px 0 0 -6.5px; border-radius:50%;
    background:transparent; border:1.5px solid rgba(255,255,255,.92); cursor:pointer; transition:transform .25s, background .25s, border-color .25s;
    box-shadow:0 1px 4px rgba(0,0,0,.35); }
  .fpin::after{ content:""; position:absolute; inset:-5px; border-radius:50%; border:1px solid rgba(255,255,255,.55); animation:pinPulse 2.6s ease-out infinite; }
  @keyframes pinPulse{ 0%{ transform:scale(.55); opacity:.8; } 100%{ transform:scale(1.5); opacity:0; } }
  .fpin:hover, .fpin.on{ transform:scale(1.35); background:rgba(255,255,255,.25); border-color:#fff; }
  .fpin:hover::after, .fpin.on::after{ display:none; }
  .famap-lens{ position:absolute; width:150px; height:150px; border-radius:50%; pointer-events:none; opacity:0;
    border:3px solid #fff; box-shadow:0 18px 40px -12px rgba(52,56,58,.6), 0 0 0 1px rgba(52,56,58,.15);
    background-repeat:no-repeat; background-color:#eceeed; transform:translate(-50%,-50%) scale(.6);
    transition:opacity .2s, transform .2s; z-index:5; }
  .famap-lens.show{ opacity:1; transform:translate(-50%,-50%) scale(1); }
  .famap-callout{ position:absolute; z-index:6; pointer-events:none; transform:translate(-50%,calc(-100% - 92px));
    background:var(--wine); color:#fff; border-radius:12px; padding:10px 14px; min-width:150px; max-width:230px; text-align:center;
    box-shadow:0 16px 34px -12px rgba(0,0,0,.5); opacity:0; transition:opacity .2s; }
  .famap-callout::after{ content:""; position:absolute; left:50%; bottom:-6px; transform:translateX(-50%) rotate(45deg); width:12px; height:12px; background:var(--wine); border-radius:2px; }
  .famap-callout.show{ opacity:1; }
  .famap-callout b{ display:block; font-family:var(--serif); font-style:italic; font-weight:500; font-size:1.05rem; line-height:1.15; }
  .famap-callout span{ display:block; font-family:var(--sans); font-size:.66rem; letter-spacing:.02em; color:var(--blush); margin-top:3px; }
  @media (max-width:980px){ .famap{ width:min(86%,460px); } }

  /* ===== Acceso discreto al sistema (footer) ===== */
  .foot-access{ display:inline-flex; align-items:center; gap:6px; color:#8A908E; font-size:.76rem; font-family:var(--sans); opacity:.65; transition:color .25s, opacity .25s; }
  .foot-access:hover{ color:#fff; opacity:1; }
  .foot-access svg{ width:13px; height:13px; }
  .foot-bottom{ align-items:center; }

  /* ===== Redes + acceso en el pie ===== */
  .foot-social{ display:flex; gap:12px; margin-top:16px; }
  .foot-social a{ width:36px; height:36px; border:1px solid rgba(255,255,255,.28); border-radius:50%; display:grid; place-items:center; color:#fff; transition:.25s; }
  .foot-social a:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
  .foot-social a svg{ width:18px; height:18px; }
  .foot-bottom-right{ display:inline-flex; align-items:center; gap:20px; flex-wrap:wrap; }
