  :root{
    /* ---- Paleta: cálida, infantil y confiable ---- */
    --bg: #FFFEFB;           /* blanco cálido, casi blanco */
    --surface: #FFFFFF;      /* superficie de tarjetas */
    --surface-alt: #F1E3C8;  /* beige/café suave — botones */
    --cream: #FBF3E3;        /* beige claro — franjas de sección, toque cálido */
    --cream-deep: #F3E4C6;   /* beige un poco más marcado, para bordes/acentos */
    --sky: #BFDCE6;          /* celeste suave */
    --sky-deep: #7FA6B4;     /* celeste para contrastes */
    --sage: #8CAE90;         /* verde salvia, acento */
    --sage-deep: #4F6B5A;    /* verde salvia oscuro, CTA */
    --sage-wash: #EBF1E9;    /* verde salvia muy claro — franjas de sección */
    --sage-wash-deep: #D8E4D5; /* borde para franjas verdes */
    --coral: #F3B29B;        /* coral suave, acento infantil */
    --coral-deep: #D98B6E;   /* coral más marcado */
    --yellow: #F6D98A;       /* amarillo mostaza suave, acento infantil */
    --yellow-deep: #E0B85C;  /* amarillo más marcado */
    --ink: #3A342A;          /* texto principal, café-carbón cálido */
    --ink-soft: #6B6152;     /* texto secundario */
    --line: #EFE2C8;         /* líneas divisorias, beige suave */
    --pending-bg: #FBEFE0;
    --pending-border: #DDBB86;
    --pending-text: #7A5A22;

    --font-display: 'Spectral', Georgia, serif;
    --font-body: 'Karla', 'Segoe UI', sans-serif;

    --radius: 22px;
    --radius-sm: 14px;
    --max-w: 1120px;
  }

  *{ box-sizing: border-box; }
  html{ scroll-behavior: smooth; }
  body{
    margin:0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color: inherit; }
  .container{
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 24px;
  }
  h1,h2,h3{
    font-family: var(--font-display);
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 .5em 0;
    color: var(--ink);
  }
  h1{ font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 500; }
  h2{ font-size: clamp(1.5rem, 3.4vw, 2.1rem); }
  h3{ font-size: 1.15rem; font-weight: 600; }
  p{ margin: 0 0 1em 0; }
  .eyebrow{
    font-family: var(--font-body);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .78rem;
    font-weight: 700;
    color: var(--sage-deep);
    margin-bottom: .9em;
    display:inline-block;
  }
  .lead{
    font-size: 1.1rem;
    color: var(--ink-soft);
    max-width: 60ch;
  }

  /* ---- Botones ---- */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5em;
    padding: 16px 28px;
    border-radius: 999px;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 1rem;
    text-decoration:none;
    cursor:pointer;
    border: 2px solid transparent;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    min-height: 52px;
  }
  .btn:focus-visible{
    outline: 3px solid var(--sky-deep);
    outline-offset: 3px;
  }
  .btn-primary{
    background: #FFFFFF;
    color: var(--ink);
    border-color: var(--surface-alt);
    box-shadow: 0 6px 18px rgba(221,187,134,.30);
  }
  .btn-primary:hover{ transform: translateY(-2px); background: var(--surface-alt); box-shadow: 0 10px 22px rgba(221,187,134,.4); }
  .btn-secondary{
    background: transparent;
    color: var(--ink);
    border-color: var(--surface-alt);
  }
  .btn-secondary:hover{ background: var(--surface-alt); }
  .btn-light{
    background: #fff;
    color: var(--ink);
    border-color: var(--surface-alt);
  }
  .btn-light:hover{ transform: translateY(-2px); background: var(--surface-alt); }

  /* ---- Header / nav ---- */
  header.site{
    position: sticky;
    top:0;
    z-index: 50;
    background: rgba(255,254,251,.94);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--line);
  }
  .nav-wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding: 14px 24px;
    max-width: var(--max-w);
    margin: 0 auto;
  }
  .brand{
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 600;
    text-decoration:none;
    color: var(--ink);
  }
  .brand span{ color: var(--sage-deep); }
  nav.primary{ display:flex; align-items:center; gap: 28px; }
  nav.primary a{
    text-decoration:none;
    color: var(--ink-soft);
    font-weight: 600;
    font-size: .95rem;
  }
  nav.primary a:hover{ color: var(--sage-deep); }
  .nav-cta{ display:none; }
  .menu-toggle{
    display:flex;
    background:none;
    border:none;
    cursor:pointer;
    padding: 8px;
    min-width: 44px;
    min-height: 44px;
    align-items:center;
    justify-content:center;
  }
  .menu-toggle svg{ width: 26px; height: 26px; }
  #mobile-menu{
    display:none;
    flex-direction:column;
    gap: 4px;
    padding: 8px 24px 20px;
    border-top: 1px solid var(--line);
  }
  #mobile-menu.open{ display:flex; }
  #mobile-menu a{
    text-decoration:none;
    color: var(--ink);
    font-weight: 600;
    padding: 12px 4px;
    border-bottom: 1px solid var(--line);
  }
  #mobile-menu .btn{ margin-top: 10px; }

  @media (min-width: 900px){
    nav.primary{ display:flex; }
    .menu-toggle{ display:none; }
    .nav-cta{ display:inline-flex; }
  }
  @media (max-width: 899px){
    nav.primary{ display:none; }
  }

  /* ---- Waveform signature element ---- */
  .wave{
    display:block;
    width:100%;
    height: auto;
  }
  .wave-divider{
    line-height:0;
    margin: 0;
  }

  /* ---- Hero ---- */
  .hero{
    position: relative;
    padding: 64px 0 40px;
    overflow: hidden;
    background:
      radial-gradient(60% 60% at 88% 8%, rgba(243,178,155,.28), transparent 60%),
      radial-gradient(55% 55% at 4% 92%, rgba(140,174,144,.20), transparent 60%),
      radial-gradient(40% 40% at 50% 0%, rgba(246,217,138,.18), transparent 65%);
  }
  .hero::before{
    content:"";
    position:absolute;
    top: 4px; right: 4%;
    width: 110px; height:110px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23E0B85C' stroke-width='5' stroke-linecap='round'%3E%3Cline x1='50' y1='2' x2='50' y2='14'/%3E%3Cline x1='50' y1='86' x2='50' y2='98'/%3E%3Cline x1='2' y1='50' x2='14' y2='50'/%3E%3Cline x1='86' y1='50' x2='98' y2='50'/%3E%3Cline x1='14' y1='14' x2='23' y2='23'/%3E%3Cline x1='77' y1='77' x2='86' y2='86'/%3E%3Cline x1='86' y1='14' x2='77' y2='23'/%3E%3Cline x1='23' y1='77' x2='14' y2='86'/%3E%3C/g%3E%3Ccircle cx='50' cy='50' r='24' fill='%23F6D98A'/%3E%3Cpath d='M40 54 Q50 63 60 54' stroke='%23A6752E' stroke-width='3.5' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='42' cy='45' r='3' fill='%23A6752E'/%3E%3Ccircle cx='58' cy='45' r='3' fill='%23A6752E'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.85;
    pointer-events:none;
  }
  .hero::after{
    content:"";
    position:absolute;
    bottom: 20px; left: 2%;
    width: 64px; height:64px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='%23F3B29B'%3E%3Ccircle cx='50' cy='22' r='17'/%3E%3Ccircle cx='50' cy='78' r='17'/%3E%3Ccircle cx='22' cy='50' r='17'/%3E%3Ccircle cx='78' cy='50' r='17'/%3E%3C/g%3E%3Ccircle cx='50' cy='50' r='15' fill='%23F6D98A'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.75;
    pointer-events:none;
  }
  .hero-grid{
    display:grid;
    gap: 40px;
    align-items:center;
  }
  @media (min-width: 900px){
    .hero-grid{ grid-template-columns: 1.1fr .9fr; gap: 56px; }
  }
  .hero-copy .eyebrow{ }
  @media (max-width: 640px){
    .hero::before{
      width: 68px; height:68px;
      top: 2px; right: 3%;
    }
    .hero-copy{ padding-right: 80px; }
  }
  .hero h1{ margin-bottom: .3em; }
  .hero .role{
    font-family: var(--font-display);
    font-style: italic;
    color: var(--sage-deep);
    font-size: clamp(1.1rem, 2.4vw, 1.4rem);
    margin-bottom: .6em;
  }
  .hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap: 14px;
    margin-top: 28px;
  }
  .hero-photo-wrap{
    position: relative;
  }
  .decor-sticker{
    position:absolute;
    width:56px;
    height:56px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow: 0 8px 18px rgba(58,52,42,.18);
    z-index:3;
  }
  .decor-sticker svg{ width:30px; height:30px; }
  .decor-sticker.owl{
    top:-16px; left:-16px;
    background: var(--sage);
    color: var(--sage-deep);
    transform: rotate(-8deg);
  }
  .decor-sticker.bunny{
    bottom:26px; right:-18px;
    background: var(--coral);
    color: var(--coral-deep);
    transform: rotate(6deg);
  }
  .decor-sticker.bird{
    top:38%; right:-14px;
    background: var(--yellow);
    color: var(--yellow-deep);
    transform: rotate(-4deg);
  }
  @media (max-width: 640px){
    .decor-sticker{ width:44px; height:44px; }
    .decor-sticker svg{ width:24px; height:24px; }
    .decor-sticker.owl{ top:-10px; left:-10px; }
    .decor-sticker.bunny{ bottom:14px; right:-10px; }
    .decor-sticker.bird{ display:none; }
  }
  .hero-photo{
    position:relative;
    aspect-ratio: 4/5;
    border-radius: var(--radius);
    overflow: hidden;
  }
  .hero-photo img{
    width:100%;
    height:100%;
    object-fit: contain;
    background: var(--cream);
    border-radius: var(--radius);
  }
  .hero-photo .pending-msg{
    display:none;
    position:absolute;
    inset:0;
    background: var(--pending-bg);
    border: 2px dashed var(--pending-border);
    border-radius: var(--radius);
    align-items:center;
    justify-content:center;
    text-align:center;
    padding: 24px;
    color: var(--pending-text);
    font-weight: 600;
    font-size: .95rem;
  }
  .hero-photo.pending-visible .pending-msg{ display:flex; }
  .hero-photo .tag{
    position:absolute;
    top: 16px;
    left: 16px;
    background: var(--pending-bg);
    border: 1px solid var(--pending-border);
    color: var(--pending-text);
    font-size: .72rem;
    font-weight:700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 6px 10px;
    border-radius: 999px;
  }

  /* ---- Galería de trabajo ---- */
  #galeria{ position:relative; overflow:hidden; background: var(--sage-wash); border-top: 1px solid var(--sage-wash-deep); border-bottom: 1px solid var(--sage-wash-deep); }
  #galeria::before{
    content:"";
    position:absolute;
    top: 4px; right: 3%;
    width: 64px; height:64px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23F6D98A' d='M50 4 L61 38 L97 38 L68 59 L79 93 L50 72 L21 93 L32 59 L3 38 L39 38 Z'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.75;
    pointer-events:none;
  }
  #galeria::after{
    content:"";
    position:absolute;
    bottom: 6px; left: 2%;
    width: 46px; height:38px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 84'%3E%3Cg fill='%23BFDCE6'%3E%3Cpath d='M48 40 C40 10 5 8 5 30 C5 48 30 46 48 40 Z'/%3E%3Cpath d='M52 40 C60 10 95 8 95 30 C95 48 70 46 52 40 Z'/%3E%3Cpath d='M48 42 C38 60 10 62 10 48 C10 38 30 40 48 42 Z'/%3E%3Cpath d='M52 42 C62 60 90 62 90 48 C90 38 70 40 52 42 Z'/%3E%3C/g%3E%3Cline x1='50' y1='14' x2='50' y2='68' stroke='%237FA6B4' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.7;
    pointer-events:none;
  }
  .gallery-grid{
    display:grid;
    gap: 16px;
    grid-template-columns: repeat(2,1fr);
  }
  @media (min-width: 700px){
    .gallery-grid{ grid-template-columns: repeat(4,1fr); }
  }
  .gallery-item{
    position:relative;
    aspect-ratio: 1/1;
    border-radius: var(--radius-sm);
    overflow:hidden;
    background: var(--pending-bg);
    border: 1px solid var(--line);
  }
  .gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .gallery-item .pending-msg{
    display:none;
    position:absolute;
    inset:0;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding: 10px;
    color: var(--pending-text);
    font-size: .78rem;
    font-weight:700;
    border: 2px dashed var(--pending-border);
    border-radius: var(--radius-sm);
  }
  .gallery-item.pending-visible .pending-msg{ display:flex; flex-direction:column; gap:6px; }

  .trust-row{
    display:flex;
    flex-wrap:wrap;
    gap: 22px;
    margin-top: 36px;
    padding-top: 26px;
    border-top: 1px solid var(--line);
  }
  .trust-item{
    display:flex;
    align-items:center;
    gap: 10px;
    font-size: .92rem;
    color: var(--ink-soft);
    font-weight:600;
  }
  .trust-item svg{ width:20px; height:20px; color: var(--sage-deep); flex-shrink:0; }

  /* ---- Sections generic ---- */
  section{ padding: 76px 0; position:relative; }
  .section-head{ max-width: 640px; margin-bottom: 44px; }
  .section-alt{ background: var(--cream); border-top: 1px solid var(--cream-deep); border-bottom: 1px solid var(--cream-deep); }

  #servicios{ overflow:hidden; }
  #servicios::before{
    content:"";
    position:absolute;
    top: 12px; right: 4%;
    width: 68px; height:68px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23E0B85C' stroke-width='5' stroke-linecap='round'%3E%3Cline x1='50' y1='2' x2='50' y2='14'/%3E%3Cline x1='50' y1='86' x2='50' y2='98'/%3E%3Cline x1='2' y1='50' x2='14' y2='50'/%3E%3Cline x1='86' y1='50' x2='98' y2='50'/%3E%3Cline x1='14' y1='14' x2='23' y2='23'/%3E%3Cline x1='77' y1='77' x2='86' y2='86'/%3E%3Cline x1='86' y1='14' x2='77' y2='23'/%3E%3Cline x1='23' y1='77' x2='14' y2='86'/%3E%3C/g%3E%3Ccircle cx='50' cy='50' r='24' fill='%23F6D98A'/%3E%3Cpath d='M40 54 Q50 62 60 54' stroke='%23A6752E' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3Ccircle cx='42' cy='46' r='2.5' fill='%23A6752E'/%3E%3Ccircle cx='58' cy='46' r='2.5' fill='%23A6752E'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.8;
    pointer-events:none;
  }
  #areas{ overflow:hidden; background: var(--sage-wash); border-top: 1px solid var(--sage-wash-deep); border-bottom: 1px solid var(--sage-wash-deep); }
  #areas::before{
    content:"";
    position:absolute;
    bottom: 10px; left: 2%;
    width: 46px; height:46px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='none' stroke='%23F6D98A' stroke-width='7' stroke-dasharray='8 10' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.75;
    pointer-events:none;
  }
  #areas::after{
    content:"";
    position:absolute;
    top: 18px; right: 2%;
    width: 60px; height:60px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='%23F3B29B'%3E%3Ccircle cx='50' cy='24' r='16'/%3E%3Ccircle cx='50' cy='76' r='16'/%3E%3Ccircle cx='24' cy='50' r='16'/%3E%3Ccircle cx='76' cy='50' r='16'/%3E%3C/g%3E%3Ccircle cx='50' cy='50' r='14' fill='%23F6D98A'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.7;
    pointer-events:none;
  }

  /* ---- Sobre Carolina ---- */
  .about-grid{
    display:grid;
    gap: 40px;
    position: relative;
  }
  #sobre-carolina{ position:relative; overflow:hidden; }
  #sobre-carolina::before{
    content:"";
    position:absolute;
    top: 30px; left: 2%;
    width: 58px; height:58px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23F3B29B' d='M50 4 L61 38 L97 38 L68 59 L79 93 L50 72 L21 93 L32 59 L3 38 L39 38 Z'/%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.7;
    pointer-events:none;
  }
  #sobre-carolina::after{
    content:"";
    position:absolute;
    bottom: 20px; right: 2%;
    width: 96px; height:52px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 55'%3E%3Cg fill='%23BFDCE6'%3E%3Ccircle cx='24' cy='30' r='18'/%3E%3Ccircle cx='42' cy='20' r='22'/%3E%3Ccircle cx='64' cy='30' r='16'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
    opacity:.8;
    pointer-events:none;
  }
  @media (min-width: 900px){
    .about-grid{ grid-template-columns: .9fr 1.1fr; gap: 60px; align-items:start; }
  }
  .fact-list{
    display:grid;
    grid-template-columns: repeat(2,1fr);
    gap: 16px;
    margin: 28px 0;
  }
  .fact{
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 18px;
  }
  .fact strong{
    display:block;
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--sage-deep);
  }
  .fact span{ font-size: .85rem; color: var(--ink-soft); }

  .pending-box{
    background: var(--pending-bg);
    border: 1px dashed var(--pending-border);
    border-radius: var(--radius-sm);
    padding: 22px 24px;
    margin-top: 20px;
  }
  .pending-box h3{
    font-family: var(--font-body);
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--pending-text);
    margin-bottom: 12px;
  }
  .pending-box ul{
    margin:0; padding-left: 20px; columns: 2; gap: 24px;
  }
  .pending-box li{
    color: var(--pending-text);
    font-size: .92rem;
    margin-bottom: 8px;
    break-inside: avoid;
  }
  @media (max-width: 560px){
    .pending-box ul{ columns: 1; }
    .fact-list{ grid-template-columns: 1fr 1fr; }
  }

  .credentials-box{
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 22px 24px;
    margin-top: 20px;
  }
  .credentials-box h3{
    font-family: var(--font-body);
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--sage-deep);
    margin-bottom: 12px;
  }
  .credentials-box ul{
    margin:0; padding-left: 20px;
  }
  .credentials-box li{
    color: var(--ink-soft);
    font-size: .92rem;
    margin-bottom: 8px;
  }

  /* ---- Cards grid (áreas de atención) ---- */
  .cards-grid{
    display:grid;
    gap: 22px;
    grid-template-columns: 1fr;
  }
  @media (min-width: 700px){
    .cards-grid{ grid-template-columns: repeat(2, 1fr); }
  }
  @media (min-width: 1020px){
    .cards-grid{ grid-template-columns: repeat(4, 1fr); }
  }
  .card{
    background: var(--surface);
    border-radius: var(--radius);
    padding: 28px 24px;
    border: 1px solid var(--line);
    transition: box-shadow .2s ease, transform .2s ease;
  }
  .card:hover{ box-shadow: 0 14px 28px rgba(58,52,42,.10); transform: translateY(-3px); }
  .card-icon{
    width: 50px; height:50px;
    border-radius: 14px;
    background: var(--sky);
    display:flex; align-items:center; justify-content:center;
    margin-bottom: 18px;
    color: var(--sage-deep);
  }
  .card-icon svg{ width:24px; height:24px; }
  .cards-grid .card:nth-child(6n+1) .card-icon{ background: var(--sky); color: var(--sky-deep); }
  .cards-grid .card:nth-child(6n+2) .card-icon{ background: var(--coral); color: var(--coral-deep); }
  .cards-grid .card:nth-child(6n+3) .card-icon{ background: var(--yellow); color: var(--yellow-deep); }
  .cards-grid .card:nth-child(6n+4) .card-icon{ background: var(--sage); color: var(--sage-deep); }
  .cards-grid .card:nth-child(6n+5) .card-icon{ background: var(--cream-deep); color: var(--coral-deep); }
  .cards-grid .card:nth-child(6n+6) .card-icon{ background: var(--sky); color: var(--sage-deep); }
  .card.pending{
    border-style: dashed;
    border-color: var(--pending-border);
    background: var(--pending-bg);
  }
  .card.pending .card-icon{ background: #fff; }
  .card.pending p{ color: var(--pending-text); font-size:.9rem; }

  /* ---- Proceso (cómo funciona) ---- */
  .process-list{
    display:grid;
    gap: 0;
    counter-reset: step;
  }
  .process-item{
    display:grid;
    grid-template-columns: 56px 1fr;
    gap: 20px;
    padding: 26px 0;
    border-bottom: 1px solid var(--line);
  }
  .process-item:last-child{ border-bottom:none; }
  .process-num{
    width: 44px; height:44px;
    border-radius: 50%;
    background: var(--sage-deep);
    color:#fff;
    font-family: var(--font-display);
    font-weight:600;
    display:flex; align-items:center; justify-content:center;
    font-size: 1.1rem;
  }
  .process-item h3{ margin-bottom: 4px; }
  .process-item p{ color: var(--ink-soft); margin:0; }

  /* ---- Info sesiones ---- */
  .info-grid{
    display:grid;
    gap: 18px;
    grid-template-columns: repeat(2,1fr);
  }
  @media (min-width: 700px){
    .info-grid{ grid-template-columns: repeat(4,1fr); }
  }
  .info-card{
    background: var(--surface);
    border-radius: var(--radius);
    padding: 26px 20px;
    text-align:center;
    border: 1px solid var(--line);
  }
  .info-card svg{ width:28px; height:28px; color: var(--sage-deep); margin-bottom: 10px; }
  .info-card strong{
    display:block;
    font-family: var(--font-display);
    font-size: 1.3rem;
    margin-bottom: 2px;
  }
  .info-card span{ color: var(--ink-soft); font-size: .88rem; }
  .locations-note{
    margin-top: 26px;
    display:flex;
    gap: 14px;
    flex-wrap:wrap;
  }
  .pill{
    background: var(--sky);
    color: var(--ink);
    padding: 8px 16px;
    border-radius: 999px;
    font-weight:700;
    font-size: .9rem;
  }
  .pill:nth-of-type(2){ background: var(--coral); }

  /* ---- Servicios (tarjetas de valores) ---- */
  .services-grid{
    display:grid;
    gap: 18px;
    grid-template-columns: 1fr;
  }
  @media (min-width: 800px){
    .services-grid{ grid-template-columns: repeat(3,1fr); }
  }
  .service-card{
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 26px 24px;
  }
  .service-card h3{ margin-bottom:6px; }
  .service-card p.desc{ color:var(--ink-soft); margin-bottom:14px; }
  .service-card ul{ margin:0 0 16px; padding-left:18px; color:var(--ink-soft); font-size:.92rem; }
  .service-card li{ margin-bottom:4px; }
  .service-card .price{ color:var(--sage-deep); font-family: var(--font-display); font-size:1.2rem; }
  .service-card .modality{ display:block; font-size:.85rem; color:var(--ink-soft); margin-top:2px; }

  /* ---- Por qué elegir ---- */
  .why-list{
    display:grid;
    gap: 18px;
  }
  @media (min-width: 700px){
    .why-list{ grid-template-columns: repeat(2,1fr); }
  }
  .why-item{
    display:flex;
    gap: 14px;
    align-items:flex-start;
    background: var(--surface);
    border-radius: var(--radius-sm);
    padding: 18px;
    border: 1px solid var(--line);
  }
  .why-item svg{ width:22px; height:22px; color: var(--sage-deep); flex-shrink:0; margin-top:2px; }

  /* ---- CTA reserva ---- */
  .cta-block{
    background: linear-gradient(160deg, #FFFFFF 0%, var(--cream) 100%);
    color: var(--ink);
    border: 1px solid var(--cream-deep);
    border-radius: 28px;
    padding: 56px 32px;
    text-align:center;
    position:relative;
    overflow:hidden;
  }
  .cta-block::before{
    content:"";
    position:absolute;
    top: -24px; left: -24px;
    width: 160px; height:160px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='%23BFDCE6' opacity='.85'%3E%3Ccircle cx='30' cy='55' r='20'/%3E%3Ccircle cx='50' cy='45' r='26'/%3E%3Ccircle cx='72' cy='55' r='18'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
    pointer-events:none;
  }
  .cta-block::after{
    content:"";
    position:absolute;
    bottom: -18px; right: -14px;
    width: 90px; height:90px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='%23F3B29B' opacity='.75'%3E%3Ccircle cx='50' cy='24' r='16'/%3E%3Ccircle cx='50' cy='76' r='16'/%3E%3Ccircle cx='24' cy='50' r='16'/%3E%3Ccircle cx='76' cy='50' r='16'/%3E%3C/g%3E%3Ccircle cx='50' cy='50' r='14' fill='%23F6D98A' opacity='.9'/%3E%3C/svg%3E") no-repeat center/contain;
    pointer-events:none;
  }
  .cta-block h2{ color: var(--ink); }
  .cta-block .lead{ color: var(--ink-soft); margin: 0 auto 30px; }
  .cta-actions{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin-bottom: 34px; }
  .cta-info{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap: 10px;
  }
  .cta-info span, .cta-info a{
    background: #fff;
    border: 1px solid var(--line);
    color: var(--ink);
    text-decoration:none;
    padding: 8px 14px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight:600;
  }
  .cta-pending{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap: 10px;
  }
  .cta-pending span{
    background: rgba(0,0,0,.04);
    border: 1px dashed var(--pending-border);
    color: var(--pending-text);
    padding: 8px 14px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight:600;
  }

  /* ---- Ubicaciones ---- */
  .loc-grid{
    display:grid;
    gap: 24px;
  }
  @media (min-width: 800px){
    .loc-grid{ grid-template-columns: 1fr 1fr; }
  }
  .loc-card{
    background: var(--surface);
    border-radius: var(--radius);
    overflow:hidden;
    border: 1px solid var(--line);
  }
  .loc-body{ padding: 22px; }
  .loc-body h3{ margin-bottom: 6px; }
  .loc-address{
    color: var(--ink-soft);
    font-size: .9rem;
  }

  /* ---- FAQ ---- */
  #faq{ position:relative; overflow:hidden; }
  #faq::before{
    content:"";
    position:absolute;
    top: 14px; left: 2%;
    width: 96px; height:54px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 55'%3E%3Cg fill='%23F3B29B' opacity='.8'%3E%3Ccircle cx='24' cy='30' r='18'/%3E%3Ccircle cx='42' cy='20' r='22'/%3E%3Ccircle cx='64' cy='30' r='16'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain;
    pointer-events:none;
  }
  #faq::after{
    content:"";
    position:absolute;
    bottom: 16px; right: 2%;
    width: 64px; height:54px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 84'%3E%3Cg fill='%23BFDCE6' opacity='.85'%3E%3Cpath d='M48 40 C40 10 5 8 5 30 C5 48 30 46 48 40 Z'/%3E%3Cpath d='M52 40 C60 10 95 8 95 30 C95 48 70 46 52 40 Z'/%3E%3Cpath d='M48 42 C38 60 10 62 10 48 C10 38 30 40 48 42 Z'/%3E%3Cpath d='M52 42 C62 60 90 62 90 48 C90 38 70 40 52 42 Z'/%3E%3C/g%3E%3Cline x1='50' y1='14' x2='50' y2='68' stroke='%237FA6B4' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain;
    pointer-events:none;
  }
  .faq-item{
    border-bottom: 1px solid var(--line);
  }
  .faq-q{
    width:100%;
    text-align:left;
    background:none;
    border:none;
    padding: 22px 4px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 16px;
    cursor:pointer;
    font-family: var(--font-body);
    font-weight:700;
    font-size: 1.02rem;
    color: var(--ink);
  }
  .faq-q:focus-visible{ outline: 3px solid var(--sky-deep); outline-offset: 3px; }
  .faq-icon{
    flex-shrink:0;
    width: 30px; height:30px;
    border-radius:50%;
    background: var(--line);
    display:flex; align-items:center; justify-content:center;
    transition: transform .25s ease;
  }
  .faq-item[data-open="true"] .faq-icon{ transform: rotate(45deg); background: var(--sage); color:#fff; }
  .faq-a{
    max-height:0;
    overflow:hidden;
    transition: max-height .3s ease;
  }
  .faq-a-inner{
    padding: 0 4px 22px;
    color: var(--ink-soft);
  }
  .faq-a-inner .pending-inline{
    color: var(--pending-text);
    font-style: italic;
    font-size: .92rem;
  }

  /* ---- Footer ---- */
  footer.site{
    background: #3A342A;
    color: #EFE7D8;
    padding: 60px 0 24px;
    position: relative;
  }
  footer.site::before{
    content:"";
    position:absolute;
    top: -1px; left:0; right:0;
    height: 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20'%3E%3Cg fill='%238CAE90'%3E%3Ccircle cx='6' cy='16' r='7'/%3E%3Ccircle cx='22' cy='14' r='8'/%3E%3Ccircle cx='40' cy='17' r='6'/%3E%3Ccircle cx='58' cy='14' r='8'/%3E%3Ccircle cx='76' cy='16' r='7'/%3E%3Ccircle cx='94' cy='14' r='8'/%3E%3Ccircle cx='112' cy='16' r='7'/%3E%3C/g%3E%3Cg%3E%3Ccircle cx='14' cy='8' r='4' fill='%23F3B29B'/%3E%3Ccircle cx='50' cy='6' r='4' fill='%23F6D98A'/%3E%3Ccircle cx='86' cy='8' r='4' fill='%23F3B29B'/%3E%3Ccircle cx='108' cy='6' r='4' fill='%23F6D98A'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 120px 14px;
  }
  .footer-grid{
    display:grid;
    gap: 32px;
    grid-template-columns: 1fr;
    margin-bottom: 40px;
  }
  @media (min-width: 800px){
    .footer-grid{ grid-template-columns: 1.3fr 1fr 1fr; }
  }
  footer .brand{ color:#fff; }
  footer .brand span{ color: var(--yellow); }
  footer p.small{ color: #C9BEA6; font-size: .92rem; max-width: 42ch; }
  footer h4{
    font-family: var(--font-body);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
    color: #AFA184;
    margin-bottom: 16px;
  }
  footer ul{ list-style:none; margin:0; padding:0; }
  footer li{ margin-bottom: 10px; font-size: .95rem; }
  footer .pending-tag{
    color: #E0B679;
    font-style: italic;
    font-size: .88rem;
  }
  .footer-bottom{
    border-top: 1px solid rgba(255,255,255,.12);
    padding-top: 22px;
    display:flex;
    flex-wrap:wrap;
    gap: 12px 24px;
    justify-content:space-between;
    color: #A3947A;
    font-size: .82rem;
  }
  .footer-bottom a{ color: #A3947A; text-decoration: underline; }

  /* Skip link */
  .skip-link{
    position:absolute;
    left: -9999px;
    top: auto;
    background: var(--sage-deep);
    color:#fff;
    padding: 12px 18px;
    border-radius: 8px;
    z-index: 100;
  }
  .skip-link:focus{
    left: 16px;
    top: 16px;
  }

  ::selection{ background: var(--sage); color:#fff; }
