/*
Theme Name: Siempre Tu
Theme URI: https://siempretu.es
Author: Siempre Tu
Description: Tema a medida para Siempre Tu, centro de estetica en Torrejon de Ardoz. Incluye portada, catalogo de tratamientos por categoria, tienda, ubicacion con mapa y contacto. Compatible con WooCommerce.
Version: 1.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: siempre-tu
Tags: business, one-column, custom-menu, featured-images, translation-ready
*/

@import url('https://fonts.googleapis.com/css2?family=Alex+Brush&family=Archivo+Black&family=Jost:wght@300;400;500;600;700&display=swap');

  :root{
    --ink:#1e1d19;
    --ink-soft:#6c6a5e;
    --ink-faint:#a3a094;
    --bg:#ffffff;
    --bg-alt:#faf9f5;
    --border:#e9e6dd;
    --forest:#4a6f57;
    --forest-deep:#33513e;
    --mint:#7fb8b3;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  /* ---------- motion ----------
     The hidden state is scoped to .js-reveal (set by script at load) so the
     page is never left invisible if JavaScript fails or is disabled. */
  .js-reveal .reveal{opacity:0; transform:translateY(16px); transition:opacity 0.7s ease, transform 0.7s ease;}
  .js-reveal .reveal.is-visible{opacity:1; transform:translateY(0);}

  @keyframes pageEnter{
    from{opacity:0; transform:translateY(8px);}
    to{opacity:1; transform:translateY(0);}
  }
  .page.route-enter{animation:pageEnter 0.45s ease both;}
  html{background:#ffffff;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Jost', -apple-system, 'Segoe UI', sans-serif;
    font-weight:400;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  h1,h2,h3,h4{
    font-family:'Jost', -apple-system, 'Segoe UI', sans-serif;
    font-weight:500;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
  }
  .script{
    font-family:'Alex Brush', 'Segoe Script', cursive;
    font-weight:400;
    line-height:1;
  }
  .wrap{max-width:1080px; margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem);}
  .eyebrow{
    text-transform:uppercase;
    letter-spacing:0.16em;
    font-size:0.7rem;
    font-weight:600;
    color:var(--forest);
  }

  /* ---------- header ---------- */
  header.site{
    position:sticky; top:0; z-index:50;
    background:var(--bg);
    border-bottom:1px solid var(--border);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    gap:1.5rem; padding:1rem clamp(1.25rem,4vw,2.5rem);
    max-width:1080px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:0.6rem; text-decoration:none;}
  .brand img{width:34px; height:34px; border-radius:50%;}
  .brand span{font-family:'Alex Brush', cursive; font-size:1.75rem; padding-top:0.15rem;}
  .nav-links{display:flex; align-items:center; gap:2.1rem;}
  .nav-links > a, .menu-trigger{
    background:none; border:none; cursor:pointer;
    font-family:'Jost', sans-serif; font-size:0.92rem; color:var(--ink);
    text-decoration:none; padding:0; display:flex; align-items:center; gap:0.35rem;
  }
  .menu-trigger svg{width:13px; height:13px; transition:transform 0.2s ease;}
  .menu-trigger[aria-expanded="true"] svg{transform:rotate(180deg);}
  .nav-links a:hover{color:var(--forest);}
  .nav-links a.is-active{color:var(--forest);}
  .nav-right{display:flex; align-items:center; gap:0.9rem;}
  @media (max-width:820px){ .nav-links{display:none;} }

  /* ---------- mobile nav ---------- */
  .hamburger{
    display:none; background:none; border:none; cursor:pointer; padding:0.3rem;
    width:38px; height:38px; align-items:center; justify-content:center;
  }
  .hamburger span, .hamburger::before, .hamburger::after{
    content:''; display:block; width:20px; height:1.5px; background:var(--ink);
    transition:transform 0.25s ease, opacity 0.2s ease;
  }
  .hamburger span{margin:5px 0;}
  .hamburger[aria-expanded="true"]::before{transform:translateY(6.5px) rotate(45deg);}
  .hamburger[aria-expanded="true"] span{opacity:0;}
  .hamburger[aria-expanded="true"]::after{transform:translateY(-6.5px) rotate(-45deg);}
  @media (max-width:820px){ .hamburger{display:flex;} }
  @media (max-width:480px){ .nav-right .btn-primary{display:none;} }

  .mobile-panel{
    display:none;
    position:fixed; inset:0; top:65px; z-index:60;
    background:var(--bg);
    overflow-y:auto;
    padding:0.5rem clamp(1.25rem,4vw,2.5rem) 3rem;
  }
  .mobile-panel.is-open{display:block;}
  .mobile-panel .mp-links{
    display:flex; flex-direction:column; border-bottom:1px solid var(--border); padding-bottom:1rem; margin-bottom:1rem;
  }
  .mobile-panel .mp-links a{
    padding:0.85rem 0; text-decoration:none; color:var(--ink); font-size:1.02rem;
    border-bottom:1px solid var(--border);
  }
  .mobile-panel .mp-links a:last-child{border-bottom:none;}
  .mp-services-label{
    text-transform:uppercase; letter-spacing:0.14em; font-size:0.72rem; font-weight:600;
    color:var(--ink-faint); margin:0.25rem 0 0.75rem;
  }
  .mnav-cat{border-bottom:1px solid var(--border);}
  .mnav-cat-trigger{
    width:100%; display:flex; align-items:center; justify-content:space-between;
    background:none; border:none; cursor:pointer; padding:0.9rem 0;
    font-family:'Jost', sans-serif; font-size:0.98rem; font-weight:500; color:var(--ink);
  }
  .mnav-cat-trigger svg{width:14px; height:14px; color:var(--ink-faint); transition:transform 0.2s ease;}
  .mnav-cat-trigger[aria-expanded="true"] svg{transform:rotate(180deg); color:var(--forest);}
  .mnav-cat-list{list-style:none; margin:0; padding:0 0 0.9rem; display:flex; flex-direction:column; gap:0.65rem;}
  .mnav-cat-list a{text-decoration:none; color:var(--ink-soft); font-size:0.92rem;}
  .mp-cta{margin-top:1.5rem; display:block; text-align:center;}

  .btn{
    display:inline-flex; align-items:center; gap:0.5rem;
    padding:0.62rem 1.3rem; border-radius:2px;
    font-family:'Jost', sans-serif; font-size:0.86rem; font-weight:500;
    text-decoration:none; border:1px solid var(--ink);
    cursor:pointer; transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    white-space:nowrap;
  }
  .btn-primary{background:var(--ink); color:var(--bg);}
  .btn-primary:hover{background:var(--forest-deep); border-color:var(--forest-deep);}
  .btn-ghost{background:transparent; border-color:var(--border); color:var(--ink);}
  .btn-ghost:hover{border-color:var(--ink);}

  /* ---------- mega menu ---------- */
  .mega{
    position:absolute; left:0; right:0; top:100%;
    background:var(--bg);
    border-bottom:1px solid var(--border);
    box-shadow:0 24px 40px -30px rgba(20,20,10,0.25);
    display:none;
  }
  .mega.is-open{display:block;}
  .mega-inner{
    max-width:1080px; margin:0 auto;
    padding:2.25rem clamp(1.25rem,4vw,2.5rem) 2.5rem;
    display:grid; grid-template-columns:repeat(6, 1fr); gap:1.75rem;
  }
  @media (max-width:960px){ .mega-inner{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:640px){ .mega-inner{grid-template-columns:repeat(2,1fr);} }
  .mega-col-title{
    display:block; font-family:'Jost', sans-serif; font-weight:600; font-size:0.82rem;
    color:var(--ink); text-decoration:none; padding-bottom:0.6rem; margin-bottom:0.6rem;
    border-bottom:1px solid var(--border);
  }
  .mega-col-title:hover{color:var(--forest);}
  .mega-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.55rem;}
  .mega-col a{
    font-size:0.86rem; color:var(--ink-soft); text-decoration:none; line-height:1.4;
  }
  .mega-col a:hover{color:var(--forest);}

  /* ---------- hero: full-bleed photo landing ---------- */
  .hero-actions{display:flex; gap:0.85rem; margin-top:1.9rem; flex-wrap:wrap;}

  .hero-full{
    position:relative; overflow:hidden;
    min-height:clamp(460px, 80vh, 720px);
    display:flex; align-items:flex-end;
  }
  .hero-bg{
    position:absolute; inset:0;
    background-size:cover; background-position:center 32%;
    transform:scale(1.02);
  }
  .hero-overlay{
    position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(18,36,29,0.12) 0%, rgba(16,32,26,0.42) 55%, rgba(13,27,22,0.80) 100%),
      linear-gradient(90deg, rgba(13,27,22,0.50) 0%, rgba(13,27,22,0.05) 62%);
  }
  .hero-full-inner{
    position:relative; z-index:2; color:#fdfbf5;
    text-shadow:0 1px 20px rgba(10,22,17,0.55);
    padding:clamp(3rem,8vw,5rem) clamp(1.25rem,4vw,2.5rem) clamp(3rem,7vw,4.5rem);
    width:100%;
  }
  .hero-eyebrow{color:#c9e6d9; letter-spacing:0.2em;}
  .hero-full-title{
    font-family:'Archivo Black', 'Jost', sans-serif; font-weight:400;
    font-size:clamp(1.9rem,4.2vw,3rem); line-height:1.1; letter-spacing:-0.01em;
    margin-top:0.85rem; color:#fff;
  }
  .hero-full-sub{
    margin-top:1.1rem; font-size:1.02rem; color:rgba(253,251,245,0.92); max-width:34rem;
  }

  .btn-solid-light{background:var(--forest); color:#fff; border-color:var(--forest);}
  .btn-solid-light:hover{background:var(--forest-deep); border-color:var(--forest-deep);}
  .btn-outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,0.55);}
  .btn-outline-light:hover{border-color:#fff; background:rgba(255,255,255,0.08);}

  .strip{
    border-top:1px solid var(--border); border-bottom:1px solid var(--border);
    padding:1.1rem 0; background:var(--bg-alt);
  }
  .strip .wrap{
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem 2rem;
    font-size:0.85rem; color:var(--ink-soft);
  }
  .strip strong{color:var(--ink); font-weight:500;}

  section{padding:clamp(3rem,6vw,4.5rem) 0;}
  .section-head{max-width:36rem; margin-bottom:clamp(2rem,4vw,2.75rem);}
  .section-head h2{font-family:'Archivo Black', 'Jost', sans-serif; font-weight:400; font-size:clamp(1.5rem,2.6vw,2rem); margin-top:0.6rem; letter-spacing:-0.01em;}
  .section-head p{margin-top:0.8rem; color:var(--ink-soft);}

  /* ---------- about / mvv (folded into the home landing) ---------- */
  .about-inline h2{font-family:'Archivo Black', 'Jost', sans-serif; font-weight:400; font-size:clamp(1.5rem,2.6vw,2rem); margin-top:0.6rem; letter-spacing:-0.01em;}
  .about-lede{color:var(--ink-soft); margin-top:0.8rem; max-width:38rem; font-size:1rem;}
  .mvv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:clamp(1.75rem,4vw,2.5rem);}
  @media (max-width:760px){ .mvv-grid{grid-template-columns:1fr;} }
  .mvv-card h3{font-size:1.05rem; margin-bottom:0.7rem;}
  .mvv-card p{color:var(--ink-soft); font-size:0.94rem;}

  /* ---------- page routing ---------- */
  

  /* ---------- home: category tiles ---------- */
  .cat-tile-grid{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
    background:var(--border); border:1px solid var(--border);
  }
  @media (max-width:760px){ .cat-tile-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:480px){ .cat-tile-grid{grid-template-columns:1fr;} }
  .cat-tile{
    background:var(--bg); padding:1.85rem 1.6rem; text-decoration:none; position:relative; z-index:1;
    display:flex; flex-direction:column; gap:0.45rem;
    transition:background 0.2s ease, transform 0.25s ease, box-shadow 0.25s ease;
  }
  .cat-tile:hover{background:var(--bg-alt); transform:translateY(-3px); box-shadow:0 16px 30px -22px rgba(30,29,25,0.35); z-index:2;}
  .cat-tile-link{transition:transform 0.2s ease; display:inline-block;}
  .cat-tile:hover .cat-tile-link{transform:translateX(3px);}
  .cat-tile-count{
    text-transform:uppercase; letter-spacing:0.1em; font-size:0.7rem; color:var(--ink-faint);
  }
  .cat-tile h3{font-size:1.12rem;}
  .cat-tile-link{font-size:0.85rem; color:var(--forest); font-weight:500; margin-top:0.35rem;}
  .services-more{margin-top:clamp(1.5rem,3vw,2rem);}

  /* ---------- services (category pages) ---------- */
  .breadcrumb{
    display:inline-block; text-decoration:none; color:var(--ink-soft);
    font-size:0.85rem; margin-bottom:clamp(1.5rem,3vw,2.25rem);
  }
  .breadcrumb:hover{color:var(--forest);}
  .cat-page{padding-top:clamp(2.5rem,6vw,4rem);}
  .cat-page-foot{
    display:flex; gap:0.9rem; flex-wrap:wrap; align-items:center;
    margin-top:clamp(2.5rem,5vw,3.25rem); padding-top:clamp(1.75rem,4vw,2.25rem);
    border-top:1px solid var(--border);
  }
  .cat-note{color:var(--forest); font-size:0.9rem; margin-top:1.75rem; font-style:italic;}

  .service-grid{
    margin-top:1.75rem;
    display:grid; grid-template-columns:repeat(2, 1fr); gap:1px;
    background:transparent; border:1px solid var(--border);
  }
  @media (max-width:700px){ .service-grid{grid-template-columns:1fr;} }

  .svc-card{
    background:var(--bg);
    box-shadow:0 0 0 1px var(--border);
    padding:1.5rem 1.6rem;
    display:flex; flex-direction:column;
    position:relative; z-index:1;
    transition:transform 0.25s ease, box-shadow 0.25s ease;
  }
  .svc-card:hover{transform:translateY(-2px); box-shadow:0 14px 26px -20px rgba(30,29,25,0.3); z-index:2;}
  .svc-card h4{
    font-family:'Jost', sans-serif; font-weight:600; font-size:1rem; color:var(--ink);
  }
  .svc-text{color:var(--ink-soft); font-size:0.93rem; margin:0.6rem 0 0;}

  .svc-toggle{
    display:inline-flex; align-items:center; gap:0.4rem;
    margin-top:0.9rem; align-self:flex-start;
    background:none; border:none; border-bottom:1px solid var(--forest);
    cursor:pointer; padding:0 0 0.1rem;
    font-family:'Jost', sans-serif; font-size:0.82rem; font-weight:500; color:var(--forest);
  }
  .svc-toggle svg{width:12px; height:12px; transition:transform 0.2s ease;}
  .svc-toggle[aria-expanded="true"] svg{transform:rotate(180deg);}
  .svc-toggle .hide-label{display:none;}
  .svc-toggle[aria-expanded="true"] .show-label{display:none;}
  .svc-toggle[aria-expanded="true"] .hide-label{display:inline;}

  .svc-panel{
    margin-top:1rem; padding-top:1rem; border-top:1px solid var(--border);
  }
  .svc-panel[hidden]{display:none;}
  .extra-label{
    text-transform:uppercase; letter-spacing:0.1em; font-size:0.68rem; font-weight:600;
    color:var(--ink-faint); margin:0 0 0.55rem;
  }
  .extra-label:not(:first-child){margin-top:1rem;}
  .benefit-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.4rem;}
  .benefit-list li{
    font-size:0.89rem; color:var(--ink-soft); padding-left:0.9rem; position:relative;
  }
  .benefit-list li::before{
    content:''; position:absolute; left:0; top:0.6em; width:4px; height:4px; border-radius:50%; background:var(--forest);
  }
  .para-quien-text{font-size:0.89rem; color:var(--ink-soft); margin:0;}
  .extra-note{font-size:0.87rem; color:var(--ink-faint); border-left:2px solid var(--border); padding-left:0.8rem; margin:0.9rem 0 0;}

  /* ---------- products teaser ---------- */
  .teaser{
    border:1px solid var(--border); border-radius:2px;
    padding:clamp(1.75rem,4vw,2.5rem);
    display:flex; align-items:center; justify-content:space-between; gap:1.75rem; flex-wrap:wrap;
    background:var(--bg-alt);
  }
  .teaser h3{font-size:1.25rem; margin-top:0.4rem; max-width:26rem;}
  .teaser p{color:var(--ink-soft); margin-top:0.5rem; max-width:26rem; font-size:0.92rem;}

  /* ---------- info ---------- */
  .info-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,3.5rem); align-items:stretch;}
  @media (max-width:760px){ .info-grid{grid-template-columns:1fr;} }
  .info-card address{margin-top:1.25rem;}
  .map-card{
    border:1px solid var(--border); overflow:hidden;
    min-height:280px;
    background:var(--bg-alt);
  }
  .map-card iframe{width:100%; height:100%; min-height:280px; display:block;}
  .info-card h3{font-size:1.15rem;}
  .hours-table{width:100%; border-collapse:collapse; margin-top:1.1rem; font-size:0.92rem;}
  .hours-table td{padding:0.55rem 0; border-bottom:1px solid var(--border); color:var(--ink-soft);}
  .hours-table td:first-child{color:var(--ink); font-weight:500;}
  .hours-table td:last-child{text-align:right; font-variant-numeric:tabular-nums;}
  .hours-table tr:last-child td{border-bottom:none;}
  address{font-style:normal; color:var(--ink-soft); margin-top:1.1rem; line-height:1.85; font-size:0.94rem;}
  address strong{color:var(--ink); font-weight:500;}
  .contact-actions{display:flex; gap:0.7rem; margin-top:1.4rem; flex-wrap:wrap;}

  .tienda-wrap{max-width:34rem; margin:0 auto; text-align:center; padding-top:clamp(1.5rem,4vw,2.5rem);}
  .tienda-wrap h2{font-family:'Archivo Black', 'Jost', sans-serif; font-weight:400; font-size:clamp(1.7rem,3vw,2.2rem); margin-top:0.6rem;}
  .tienda-wrap p{color:var(--ink-soft); margin-top:1rem;}
  .tienda-wrap .hero-actions{margin-top:1.9rem;}

  /* ---------- location: details + live map ---------- */
  .location-band{border-top:1px solid var(--border);}
  .location-grid{
    display:grid; grid-template-columns:0.85fr 1.15fr; gap:1px;
    border:1px solid var(--border); background:transparent;
  }
  @media (max-width:820px){ .location-grid{grid-template-columns:1fr;} }
  .location-info{
    background:var(--bg); box-shadow:0 0 0 1px var(--border);
    padding:clamp(1.75rem,3vw,2.25rem);
    display:flex; flex-direction:column; gap:1.6rem; align-items:flex-start;
  }
  .loc-item{width:100%;}
  .loc-label{
    display:block; text-transform:uppercase; letter-spacing:0.14em;
    font-size:0.66rem; font-weight:600; color:var(--ink-faint); margin-bottom:0.55rem;
  }
  .loc-item p{margin:0; color:var(--ink-soft); font-size:0.95rem; line-height:1.75;}
  .loc-item strong{color:var(--ink); font-weight:500;}
  .loc-item .hours-table{margin-top:0;}
  .loc-link{color:var(--forest); text-decoration:none; font-weight:500;}
  .loc-link:hover{text-decoration:underline;}
  .location-map{
    background:var(--bg-alt); box-shadow:0 0 0 1px var(--border);
    min-height:clamp(320px, 40vw, 460px);
  }
  .location-map iframe{width:100%; height:100%; display:block; border:0; min-height:320px;}

  /* ---------- brand / intro band ---------- */
  .brand-line{
    font-size:clamp(2.6rem,6vw,4rem); color:var(--forest-deep); margin:0; line-height:0.95;
  }
  .brand-claim{
    font-family:'Jost', sans-serif; font-weight:500;
    text-transform:uppercase; letter-spacing:0.22em;
    font-size:clamp(0.72rem,1.4vw,0.85rem); color:var(--forest);
    margin:0.9rem 0 0;
  }
  .brand-sub{
    font-size:0.86rem; color:var(--ink-faint); letter-spacing:0.06em;
    margin:0.4rem 0 0;
  }
  .intro-band h2{margin-top:1.4rem !important;}
  .intro-band h2{margin-top:0.9rem; font-family:'Archivo Black','Jost',sans-serif; font-weight:400;
    font-size:clamp(1.3rem,2.4vw,1.8rem); letter-spacing:-0.01em;}

  /* ---------- treatment card meta (duration / price) ---------- */
  .svc-meta{
    text-transform:uppercase; letter-spacing:0.12em; font-size:0.7rem;
    color:var(--ink-faint); margin:0.55rem 0 0;
  }
  .svc-price{
    font-family:'Archivo Black','Jost',sans-serif; font-weight:400;
    font-size:1.05rem; color:var(--ink); margin:0.35rem 0 0;
  }
  .svc-card-meta{
    text-transform:uppercase; letter-spacing:0.1em; font-size:0.68rem;
    color:var(--ink-faint); margin:0.45rem 0 0;
  }
  .svc-card-foot{margin-top:1.2rem; padding-top:0; }
  .btn-sm{padding:0.5rem 1.05rem; font-size:0.8rem;}

  /* ---------- descriptive / SEO band ---------- */
  .seo-band{background:var(--bg-alt); border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
  .seo-band .wrap{max-width:46rem;}
  .seo-band h2{font-family:'Archivo Black','Jost',sans-serif; font-weight:400;
    font-size:clamp(1.4rem,2.6vw,2rem); letter-spacing:-0.01em;}
  .seo-claim{color:var(--forest); font-weight:500; margin-top:0.8rem;}
  .seo-band p{color:var(--ink-soft); margin-top:1rem; font-size:0.97rem;}

  /* ---------- estamos abiertos ---------- */
  .open-band{text-align:center; border-top:1px solid var(--border);}
  .open-band .wrap{max-width:40rem;}
  .open-band h2{font-family:'Archivo Black','Jost',sans-serif; font-weight:400; font-size:clamp(1.5rem,2.8vw,2.1rem);}
  .open-lede{color:var(--ink-soft); margin-top:1rem;}
  .open-actions{display:flex; gap:0.85rem; justify-content:center; flex-wrap:wrap; margin-top:1.8rem;}

  /* ---------- ¿qué necesitas? ---------- */
  .needs-band{border-top:1px solid var(--border); padding-top:clamp(2.5rem,5vw,3.5rem);}
  .needs-band h2{font-size:1.15rem; font-weight:600;}
  .needs-links{
    display:flex; flex-wrap:wrap; gap:0.5rem 1.6rem; margin-top:1.2rem;
  }
  .needs-links a{
    font-size:0.86rem; color:var(--ink-soft); text-decoration:none;
    border-bottom:1px solid transparent; transition:color 0.2s ease, border-color 0.2s ease;
  }
  .needs-links a:hover{color:var(--forest); border-color:var(--forest);}

  /* ---------- intro band ---------- */
  .intro-band{text-align:center; border-bottom:1px solid var(--border);}
  .intro-band .wrap{max-width:44rem;}
    .intro-lede{color:var(--ink-soft); margin:1rem auto 0; max-width:36rem;}
  .intro-lede strong{color:var(--ink); font-weight:500;}
  .intro-cierre{
    font-family:'Jost', sans-serif; font-weight:500; color:var(--forest-deep);
    font-size:clamp(1rem,1.9vw,1.15rem); letter-spacing:0.01em;
    margin:1.6rem auto 0; max-width:30rem;
  }
  .btn-lg{padding:0.95rem 2rem; font-size:0.95rem; margin-top:2rem;}

  /* ---------- service tiles with photography ---------- */
  .svc-tile-grid{
    display:grid; grid-template-columns:repeat(2, 1fr); gap:1px;
    background:transparent; border:1px solid var(--border);
  }
  @media (max-width:760px){ .svc-tile-grid{grid-template-columns:1fr;} }

  .svc-tile{background:var(--bg); box-shadow:0 0 0 1px var(--border); display:flex; flex-direction:column;}
  .svc-tile-photo{display:block; overflow:hidden; background:var(--bg-alt);}
  .svc-tile-photo img{
    width:100%; aspect-ratio:4/3; object-fit:cover;
    transition:transform 0.6s cubic-bezier(.2,.7,.3,1);
  }
  .svc-tile:hover .svc-tile-photo img{transform:scale(1.04);}
  .svc-tile-body{padding:1.6rem 1.6rem 1.8rem; display:flex; flex-direction:column; flex:1;}
  .svc-tile-count{
    text-transform:uppercase; letter-spacing:0.14em; font-size:0.68rem; color:var(--ink-faint);
  }
  .svc-tile h3{font-size:1.25rem; margin-top:0.45rem;}
  .svc-tile h3 a{text-decoration:none;}
  .svc-tile h3 a:hover{color:var(--forest);}
  .svc-tile-body > p{color:var(--ink-soft); font-size:0.92rem; margin:0.7rem 0 0;}
  .svc-tile-actions{
    display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap;
    margin-top:auto; padding-top:1.4rem;
  }
  .tile-link{
    font-size:0.85rem; color:var(--forest); font-weight:500; text-decoration:none;
    transition:transform 0.2s ease; display:inline-block;
  }
  .tile-link:hover{transform:translateX(3px);}

  /* ---------- category page banner ---------- */
  .cat-banner{position:relative; overflow:hidden; min-height:clamp(220px,34vw,340px); display:flex; align-items:flex-end;}
  .cat-banner img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
  .cat-banner-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(20,38,31,0.30) 0%, rgba(14,28,23,0.80) 100%);
  }
  .cat-banner-inner{position:relative; z-index:2; padding:clamp(2rem,5vw,3rem) clamp(1.25rem,4vw,2.5rem); width:100%;}
  .cat-banner-title{
    font-family:'Archivo Black', 'Jost', sans-serif; font-weight:400; color:#fff;
    font-size:clamp(1.9rem,4.5vw,3rem); line-height:1.05; margin-top:0.5rem;
  }
  .cat-page{padding-top:clamp(2rem,4vw,3rem);}

  .about-section{background:var(--bg-alt); border-top:1px solid var(--border); border-bottom:1px solid var(--border);}

  /* ---------- contact form ---------- */
  .contact-section{border-top:1px solid var(--border);}
  .contact-head{max-width:34rem; margin-left:auto; margin-right:auto; text-align:center;}
  .contact-form{max-width:44rem; margin:0 auto; display:flex; flex-direction:column; gap:1.5rem;}
  .cf-row{display:grid; grid-template-columns:1fr 1fr; gap:1.5rem;}
  @media (max-width:600px){ .cf-row{grid-template-columns:1fr;} }
  .cf-field{display:flex; flex-direction:column; gap:0.4rem;}
  .cf-field > span{
    text-transform:uppercase; letter-spacing:0.12em; font-size:0.68rem; font-weight:600; color:var(--ink-faint);
  }
  .cf-field input, .cf-field textarea{
    font-family:'Jost', sans-serif; font-size:0.98rem; color:var(--ink);
    background:transparent; border:none; border-bottom:1px solid var(--border);
    padding:0.55rem 0; transition:border-color 0.2s ease;
  }
  .cf-field textarea{resize:vertical; border:1px solid var(--border); padding:0.7rem 0.8rem;}
  .cf-field input:focus, .cf-field textarea:focus{outline:none; border-color:var(--forest);}
  .cf-check{display:flex; align-items:flex-start; gap:0.6rem; font-size:0.86rem; color:var(--ink-soft);}
  .cf-check input{margin-top:0.25rem; accent-color:var(--forest);}
  .cf-actions{display:flex; gap:0.85rem; flex-wrap:wrap; align-items:center;}
  .cf-actions .btn-lg{margin-top:0;}
  .cf-msg{
    max-width:44rem; margin:0 auto 1.5rem; padding:0.9rem 1.1rem;
    border-left:3px solid var(--forest); background:var(--bg-alt);
    font-size:0.93rem; color:var(--ink);
  }
  .cf-msg-error{border-left-color:#b4553f;}
  .cf-check a{color:var(--forest);}
  .cf-note{font-size:0.88rem; color:var(--forest); margin:0;}
  .cf-note[hidden]{display:none;}

  /* ---------- full-width map strip ---------- */
  .map-strip{
    height:clamp(280px, 38vw, 420px);
    border-top:1px solid var(--border); border-bottom:1px solid var(--border);
    background:var(--bg-alt);
  }
  .map-strip iframe{width:100%; height:100%; display:block; border:0;}

  .quote-band{text-align:center; border-top:1px solid var(--border); padding:clamp(3.5rem,8vw,5.5rem) 0;}
  .quote-text{font-size:clamp(1.8rem,4vw,2.8rem); color:var(--forest-deep); max-width:34rem; margin:0 auto;}
  .quote-attr{margin-top:1rem; text-transform:uppercase; letter-spacing:0.18em; font-size:0.72rem; color:var(--ink-faint);}

  .cta-band{text-align:center; border-top:1px solid var(--border);}
  .cta-band h2{font-family:'Archivo Black', 'Jost', sans-serif; font-weight:400; font-size:clamp(1.6rem,2.8vw,2.1rem); max-width:30rem; margin:0 auto;}
  .cta-band p{color:var(--ink-soft); max-width:28rem; margin:0.9rem auto 0;}
  .cta-band .hero-actions{justify-content:center; margin-top:1.8rem;}

  footer.site{border-top:1px solid var(--border); padding:2.25rem 0;}
  .foot-grid{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;}
  .foot-brand{display:flex; align-items:center; gap:0.55rem;}
  .foot-brand img{width:26px; height:26px; border-radius:50%;}
  .foot-brand span{font-family:'Alex Brush', cursive; font-size:1.5rem; padding-top:0.1rem;}
  footer.site p{font-size:0.82rem; color:var(--ink-faint); margin:0;}
  .foot-links{display:flex; gap:1.2rem;}
  .foot-links a{font-size:0.82rem; text-decoration:none; color:var(--ink-soft);}
  .foot-links a:hover{color:var(--forest);}

  /* ---------- blog ---------- */
  .wrap-lectura{max-width:44rem;}
  .blog-grid{
    display:grid; grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));
    gap:1px; background:var(--border); box-shadow:0 0 0 1px var(--border);
  }
  .blog-card{background:var(--bg); display:flex; flex-direction:column;}
  .blog-card-photo{display:block; overflow:hidden; aspect-ratio:16/10;}
  .blog-card-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.5s ease;}
  .blog-card-photo:hover img{transform:scale(1.04);}
  .blog-card-body{padding:1.6rem 1.5rem 1.7rem; display:flex; flex-direction:column; flex:1;}
  .blog-fecha{
    font-family:'Jost', sans-serif; font-size:0.72rem; text-transform:uppercase;
    letter-spacing:0.16em; color:var(--ink-faint); margin:0 0 0.6rem;
  }
  .blog-card-title{
    font-family:'Archivo Black', 'Jost', sans-serif; font-weight:400;
    font-size:1.08rem; line-height:1.3; margin:0 0 0.7rem; letter-spacing:-0.01em;
  }
  .blog-card-title a{color:var(--ink); text-decoration:none;}
  .blog-card-title a:hover{color:var(--forest);}
  .blog-card-text{color:var(--ink-soft); font-size:0.92rem; margin:0 0 1.2rem;}
  .blog-card .tile-link{margin-top:auto;}
  .blog-vacio{
    text-align:center; color:var(--ink-soft); padding:clamp(2.5rem,6vw,4rem) 1rem;
    background:var(--bg-alt); border:1px solid var(--border);
  }
  .blog-vacio p{margin:0 0 1.5rem;}
  .blog-pag{margin-top:2.5rem;}
  .blog-pag .nav-links{display:flex; gap:0.5rem; flex-wrap:wrap;}
  .blog-pag .page-numbers{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:2.4rem; height:2.4rem; padding:0 0.6rem;
    border:1px solid var(--border); color:var(--ink-soft);
    text-decoration:none; font-size:0.9rem;
  }
  .blog-pag .page-numbers:hover{border-color:var(--forest); color:var(--forest);}
  .blog-pag .page-numbers.current{background:var(--ink); border-color:var(--ink); color:#fff;}
  .blog-pag .screen-reader-text{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}

  .post-single{padding:clamp(2.5rem,5vw,4rem) 0;}
  .post-foto{margin:0 0 2rem;}
  .post-foto img{width:100%; height:auto; display:block;}
  .post-cuerpo{font-size:1.03rem; line-height:1.75; color:var(--ink-soft);}
  .post-cuerpo h2{
    font-family:'Archivo Black', 'Jost', sans-serif; font-weight:400; color:var(--ink);
    font-size:clamp(1.25rem,2.2vw,1.55rem); margin:2.4rem 0 0.9rem; letter-spacing:-0.01em;
  }
  .post-cuerpo h3{
    font-family:'Jost', sans-serif; font-weight:600; color:var(--ink);
    font-size:1.1rem; margin:1.9rem 0 0.7rem;
  }
  .post-cuerpo p{margin:0 0 1.15rem;}
  .post-cuerpo ul,.post-cuerpo ol{margin:0 0 1.15rem 1.2rem;}
  .post-cuerpo li{margin-bottom:0.45rem;}
  .post-cuerpo img{max-width:100%; height:auto;}
  .post-cuerpo a{color:var(--forest);}
  .post-cuerpo blockquote{
    margin:1.8rem 0; padding:0.2rem 0 0.2rem 1.4rem;
    border-left:2px solid var(--forest); color:var(--ink); font-style:italic;
  }
  .post-cta{
    margin-top:3rem; padding-top:2rem; border-top:1px solid var(--border);
  }
  .post-cta p{color:var(--ink-soft); margin:0 0 1.3rem;}


  /* ---------- pagina de servicios: todos los tratamientos ---------- */
  .svc-indice{
    display:flex; flex-wrap:wrap; gap:0.5rem 0.4rem;
    padding-bottom:clamp(1.5rem,3vw,2rem); margin-bottom:clamp(1.5rem,3vw,2rem);
    border-bottom:1px solid var(--border);
  }
  .svc-indice a{
    display:inline-block; padding:0.45rem 0.95rem;
    border:1px solid var(--border); border-radius:2px;
    font-size:0.84rem; color:var(--ink-soft); text-decoration:none;
    transition:border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
  }
  .svc-indice a:hover{border-color:var(--forest); color:var(--forest); background:var(--bg-alt);}
  .svc-bloque{padding:0 0 clamp(2.5rem,5vw,3.5rem); scroll-margin-top:90px;}
  .svc-bloque-foto{
    display:block; overflow:hidden; margin-bottom:1.4rem;
    aspect-ratio:21/7; background:var(--bg-alt);
  }
  .svc-bloque-foto img{
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform 0.6s cubic-bezier(.2,.7,.3,1);
  }
  .svc-bloque-foto:hover img{transform:scale(1.03);}
  @media (max-width:700px){ .svc-bloque-foto{aspect-ratio:16/9;} }
  .svc-bloque + .svc-bloque{
    padding-top:clamp(2.5rem,5vw,3.5rem); border-top:1px solid var(--border);
  }
  .svc-bloque-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:1.5rem; flex-wrap:wrap; margin-bottom:1.5rem;
  }
  .svc-bloque-head h2{
    font-family:'Archivo Black','Jost',sans-serif; font-weight:400;
    font-size:clamp(1.35rem,2.4vw,1.75rem); letter-spacing:-0.01em; margin-top:0.5rem;
  }
  .svc-bloque-texto{color:var(--ink-soft); font-size:0.93rem; margin:0.7rem 0 0; max-width:38rem;}
  .svc-bloque .service-grid{margin-top:0;}


  /* ---------- aviso de cookies ---------- */
  .cookie-aviso{
    position:fixed; left:0; right:0; bottom:0; z-index:200;
    background:var(--bg); border-top:1px solid var(--border);
    box-shadow:0 -12px 30px -24px rgba(20,20,10,0.4);
  }
  .cookie-inner{
    max-width:1080px; margin:0 auto;
    padding:1.1rem clamp(1.25rem,4vw,2.5rem);
    display:flex; align-items:center; justify-content:space-between;
    gap:1.25rem; flex-wrap:wrap;
  }
  .cookie-texto{margin:0; font-size:0.86rem; color:var(--ink-soft); max-width:52rem; line-height:1.6;}
  .cookie-texto a{color:var(--forest);}
  .cookie-botones{display:flex; gap:0.6rem; flex-wrap:wrap;}
  @media (max-width:640px){
    .cookie-inner{flex-direction:column; align-items:stretch;}
    .cookie-botones{justify-content:stretch;}
    .cookie-botones .btn{flex:1; justify-content:center;}
  }

  /* ---------- tarjeta regalo ---------- */
  .regalo-hero{padding:clamp(3rem,6vw,4.5rem) 0;}
  .regalo-wrap{max-width:46rem; margin:0 auto; text-align:center;}
  .regalo-wrap h1{
    font-family:'Archivo Black','Jost',sans-serif; font-weight:400;
    font-size:clamp(1.8rem,3.4vw,2.5rem); letter-spacing:-0.01em; margin-top:0.6rem;
  }
  .regalo-lede{color:var(--ink-soft); margin:1.1rem auto 0; max-width:36rem;}
  .regalo-pasos{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--border); box-shadow:0 0 0 1px var(--border);
    margin:clamp(2rem,4vw,2.75rem) 0 0; text-align:left;
  }
  @media (max-width:700px){ .regalo-pasos{grid-template-columns:1fr;} }
  .regalo-paso{background:var(--bg); padding:1.5rem 1.4rem; display:flex; gap:0.9rem;}
  .regalo-paso p{margin:0; font-size:0.9rem; color:var(--ink-soft); line-height:1.6;}
  .regalo-paso strong{color:var(--ink); font-weight:500;}
  .regalo-num{
    flex:none; width:26px; height:26px; border-radius:50%;
    background:var(--forest); color:#fff;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:0.78rem; font-weight:600;
  }
  .regalo-aviso-admin{
    margin-top:2rem; padding:0.9rem 1.1rem; text-align:left;
    border-left:3px solid var(--mint); background:var(--bg-alt);
    font-size:0.87rem; color:var(--ink-soft);
  }


  .svc-falta{
    margin:0.6rem 0 0; padding:0.5rem 0.7rem;
    border-left:2px solid var(--mint); background:var(--bg-alt);
    font-size:0.82rem; color:var(--ink-faint);
  }


  /* El encabezado es fijo: sin este margen, al llegar con #tratamientos la
     cabecera tapa el titulo de la seccion y parece que no ha saltado bien. */
  #tratamientos{scroll-margin-top:96px;}
  @media (max-width:820px){ #tratamientos{scroll-margin-top:80px;} }


  .foot-legal{
    display:flex; gap:1.1rem; flex-wrap:wrap; justify-content:center;
    margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid var(--border);
  }
  .foot-legal a{font-size:0.78rem; color:var(--ink-faint); text-decoration:none;}
  .foot-legal a:hover{color:var(--forest);}
  .cat-extra table{width:100%; border-collapse:collapse; margin:1.2rem 0; font-size:0.9rem;}
  .cat-extra th,.cat-extra td{border:1px solid var(--border); padding:0.6rem 0.7rem; text-align:left; vertical-align:top;}
  .cat-extra th{background:var(--bg-alt); font-weight:500; color:var(--ink);}
  .cat-extra h2{font-family:'Jost',sans-serif; font-weight:600; font-size:1.05rem; margin:2rem 0 0.7rem;}
  .cat-extra p,.cat-extra li{color:var(--ink-soft); line-height:1.7;}
  .cat-extra ul{margin:0 0 1rem 1.2rem;}


  /* ---------- franja de promocion ---------- */
  .promo-franja{background:var(--forest-deep); color:#fff;}
  .promo-inner{
    max-width:1080px; margin:0 auto;
    padding:0.6rem clamp(1.25rem,4vw,2.5rem);
    display:flex; align-items:center; justify-content:center;
    gap:0.9rem; flex-wrap:wrap;
    text-decoration:none; color:inherit;
    font-size:0.85rem; text-align:center;
  }
  .promo-inner:hover .promo-texto{text-decoration:underline;}
  .promo-cupon{
    border:1px dashed rgba(255,255,255,0.55); border-radius:2px;
    padding:0.15rem 0.6rem; font-size:0.78rem; letter-spacing:0.04em;
    white-space:nowrap;
  }
  .promo-cupon strong{font-weight:600;}

  /* ---------- cupon en el carrito ---------- */
  .woocommerce form.checkout_coupon,
  .woocommerce-cart .coupon{border:1px solid var(--border); background:var(--bg-alt); padding:1rem;}
  .woocommerce .coupon input[type="text"]{
    border:1px solid var(--border); padding:0.55rem 0.7rem;
    font-family:'Jost',sans-serif; font-size:0.9rem;
  }


  /* ---------- titular y variantes de un tratamiento ---------- */
  .svc-titular{
    font-family:'Jost',sans-serif; font-size:0.88rem; color:var(--forest);
    margin:0.3rem 0 0; font-weight:500;
  }
  .variantes{list-style:none; margin:0 0 0.4rem; padding:0; display:flex; flex-direction:column; gap:1.1rem;}
  .variante{padding-left:0.9rem; border-left:2px solid var(--border);}
  .variante-nombre{
    font-family:'Jost',sans-serif; font-weight:600; font-size:0.93rem;
    color:var(--ink); margin:0 0 0.35rem;
  }
  .variante-texto{font-size:0.89rem; color:var(--ink-soft); margin:0;}
  .variante-para{
    font-size:0.85rem; color:var(--ink-faint); margin:0.4rem 0 0;
  }
  .variante-para strong{color:var(--forest); font-weight:500;}


  /* ---------- redes sociales ---------- */
  .foot-redes, .loc-redes{display:flex; gap:0.5rem; flex-wrap:wrap;}
  .loc-redes{margin-top:0.9rem;}
  .foot-redes .red, .loc-redes .red{
    display:inline-flex; align-items:center; gap:0.45rem;
    padding:0.4rem 0.85rem; border:1px solid var(--border); border-radius:2px;
    font-size:0.8rem; color:var(--ink-soft); text-decoration:none;
    transition:border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
  }
  .foot-redes .red:hover, .loc-redes .red:hover{
    border-color:var(--forest); color:var(--forest); background:var(--bg-alt);
  }
  .foot-redes svg, .loc-redes svg{width:16px; height:16px; flex:none;}


/* ---------- menu generado por WordPress ---------- */
.nav-links ul, .nav-links li{list-style:none; margin:0; padding:0;}
.nav-links > li{position:relative;}
.nav-links li a{
  font-family:'Jost', sans-serif; font-size:0.92rem; color:var(--ink);
  text-decoration:none; display:block; padding:0.2rem 0;
}
.nav-links li a:hover{color:var(--forest);}
.nav-links .sub-menu{
  position:absolute; top:100%; left:0; min-width:230px; z-index:60;
  background:var(--bg); border:1px solid var(--border);
  box-shadow:0 24px 40px -30px rgba(20,20,10,0.25);
  padding:0.8rem 1rem; display:none; flex-direction:column; gap:0.5rem;
}
.nav-links li:hover > .sub-menu, .nav-links li:focus-within > .sub-menu{display:flex;}
.nav-links .sub-menu a{font-size:0.88rem; color:var(--ink-soft); white-space:nowrap;}
.mp-links ul, .mp-links li{list-style:none; margin:0; padding:0;}
.mp-links li a{
  display:block; padding:0.85rem 0; text-decoration:none; color:var(--ink);
  font-size:1.02rem; border-bottom:1px solid var(--border);
}
.mp-links .sub-menu a{font-size:0.92rem; color:var(--ink-soft); padding-left:1rem;}
.cat-extra{max-width:44rem; margin-top:2rem;}
.reserva-widget{max-width:52rem; margin:0 auto;}

/* ---------- WooCommerce ---------- */
.wc-page{padding-top:clamp(1.5rem,3vw,2.5rem);}
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error{
  border-top:none; border-left:3px solid var(--forest);
  background:var(--bg-alt); color:var(--ink); font-family:'Jost',sans-serif;
}
.woocommerce .woocommerce-error{border-left-color:#b4553f;}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before{color:var(--forest);}

/* rejilla de productos, con la misma linea fina que el resto de la web */
.woocommerce ul.products{
  display:grid !important; grid-template-columns:repeat(3,1fr); gap:1px;
  margin:0; padding:0; border:1px solid var(--border); list-style:none;
}
/* WooCommerce anade un clearfix con ::before/::after pensado para floats.
   En una rejilla esos pseudo-elementos cuentan como celdas y empujan el
   primer producto a la segunda columna, dejando un hueco vacio. */
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none !important;}
@media (max-width:860px){ .woocommerce ul.products{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .woocommerce ul.products{grid-template-columns:1fr;} }
.woocommerce ul.products li.product{
  width:auto !important; margin:0 !important; float:none !important;
  background:var(--bg); box-shadow:0 0 0 1px var(--border);
  padding:0 0 1.5rem; text-align:left;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-2px);
  box-shadow:0 0 0 1px var(--border), 0 14px 26px -20px rgba(30,29,25,0.3);
}
.woocommerce ul.products li.product a img{margin:0 0 1.2rem; width:100%; aspect-ratio:1/1; object-fit:cover;}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:'Jost',sans-serif !important; font-size:1rem !important; font-weight:600;
  color:var(--ink); padding:0 1.5rem !important; margin:0 0 0.4rem;
}
.woocommerce ul.products li.product .price{
  font-family:'Archivo Black','Jost',sans-serif; font-size:1.05rem !important;
  color:var(--ink) !important; padding:0 1.5rem; display:block; margin-bottom:1rem;
}
.woocommerce ul.products li.product .price del{color:var(--ink-faint) !important; font-size:0.85em;}
.woocommerce ul.products li.product .price ins{text-decoration:none;}
.woocommerce span.onsale{
  background:var(--forest); color:#fff; font-family:'Jost',sans-serif; font-weight:600;
  border-radius:0; padding:0.3rem 0.7rem; min-height:0; min-width:0; line-height:1.4;
  top:0; left:0; margin:0;
}

/* botones de WooCommerce con el estilo del tema */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt{
  background:var(--ink) !important; color:var(--bg) !important;
  font-family:'Jost',sans-serif !important; font-weight:500; font-size:0.86rem;
  border-radius:2px; padding:0.62rem 1.3rem; border:1px solid var(--ink);
  transition:background 0.2s ease, border-color 0.2s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover{
  background:var(--forest-deep) !important; border-color:var(--forest-deep);
}
.woocommerce ul.products li.product .button{margin:0 1.5rem;}

/* ficha de producto */
.woocommerce div.product .product_title{
  font-family:'Archivo Black','Jost',sans-serif; font-weight:400;
  font-size:clamp(1.5rem,2.6vw,2rem); letter-spacing:-0.01em;
}
.woocommerce div.product p.price, .woocommerce div.product span.price{
  color:var(--ink) !important; font-family:'Archivo Black','Jost',sans-serif; font-size:1.4rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:var(--bg-alt); border-color:var(--border); border-radius:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--bg);}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-family:'Jost',sans-serif; font-weight:500;}
.woocommerce .quantity .qty{
  font-family:'Jost',sans-serif; border:1px solid var(--border); padding:0.5rem; background:var(--bg); color:var(--ink);
}
.woocommerce-breadcrumb{font-size:0.85rem; color:var(--ink-soft) !important;}
.woocommerce-breadcrumb a{color:var(--ink-soft);}
.woocommerce .woocommerce-ordering select, .woocommerce-page .woocommerce-ordering select{
  font-family:'Jost',sans-serif; border:1px solid var(--border); padding:0.5rem; background:var(--bg); color:var(--ink);
}
.woocommerce nav.woocommerce-pagination ul{border:1px solid var(--border);}
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{
  font-family:'Jost',sans-serif; color:var(--ink);
}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--forest); color:#fff;}
.woocommerce table.shop_table, .woocommerce table.shop_table td, .woocommerce table.shop_table th{
  border-color:var(--border); font-family:'Jost',sans-serif;
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select, .select2-container .select2-selection--single{
  font-family:'Jost',sans-serif; border:1px solid var(--border); padding:0.6rem 0.7rem;
  background:var(--bg); color:var(--ink); border-radius:0;
}



/* ---------- WooCommerce: carrito, pago y mi cuenta ---------- */
.woocommerce-cart .wc-page, .woocommerce-checkout .wc-page, .woocommerce-account .wc-page{
  padding-bottom:clamp(2rem,5vw,3rem);
}
.woocommerce table.shop_table{border-radius:0; border-collapse:collapse;}
.woocommerce table.shop_table th{
  font-family:'Jost',sans-serif; font-weight:600; font-size:0.72rem;
  text-transform:uppercase; letter-spacing:0.1em; color:var(--ink-faint);
}
.woocommerce table.cart img{width:72px; height:72px; object-fit:cover;}
.woocommerce .cart_totals h2, .woocommerce-checkout h3, .woocommerce-account h2{
  font-family:'Archivo Black','Jost',sans-serif; font-weight:400; font-size:1.2rem;
}
.woocommerce .cart-collaterals .cart_totals{background:var(--bg-alt); padding:1.5rem; border:1px solid var(--border);}
.woocommerce-checkout #order_review, .woocommerce-checkout .woocommerce-checkout-review-order{
  background:var(--bg-alt); padding:1.5rem; border:1px solid var(--border);
}
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register{
  border:1px solid var(--border); border-radius:0; background:var(--bg-alt);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none; margin:0; padding:0;}
.woocommerce-account .woocommerce-MyAccount-navigation li{border-bottom:1px solid var(--border);}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block; padding:0.7rem 0; text-decoration:none; color:var(--ink-soft); font-size:0.94rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{color:var(--forest); font-weight:500;}
.woocommerce .cart-empty, .woocommerce .return-to-shop{text-align:center;}
.woocommerce .return-to-shop{margin-top:1.5rem;}

/* la tabla del carrito, legible en el movil */
@media (max-width:700px){
  .woocommerce table.shop_table_responsive tr td{text-align:right; padding:0.7rem 0.5rem;}
  .woocommerce table.shop_table_responsive tr td::before{float:left; font-weight:600; color:var(--ink-faint);}
  .woocommerce .cart-collaterals .cart_totals{width:100%; float:none;}
  .woocommerce-checkout #order_review{width:100%;}
}

.diag{
  border:1px solid var(--border); border-left:3px solid var(--forest);
  background:var(--bg-alt); padding:1.5rem 1.75rem; max-width:46rem;
}
.diag-titulo{
  text-transform:uppercase; letter-spacing:0.12em; font-size:0.68rem; font-weight:600;
  color:var(--ink-faint); margin:0 0 0.6rem;
}
.diag p{color:var(--ink-soft); font-size:0.94rem; margin:0 0 0.9rem;}
.diag-lista{margin:0 0 1.2rem; padding-left:1.2rem; color:var(--ink-soft); font-size:0.93rem;}
.diag-lista li{margin-bottom:0.4rem;}
.diag-lista strong{color:var(--ink);}

/* carrito de la cabecera */
.nav-carrito{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; color:var(--ink); text-decoration:none;
  transition:color 0.2s ease;
}
.nav-carrito:hover{color:var(--forest);}
.nav-carrito svg{width:21px; height:21px;}
.nav-carrito-num{
  position:absolute; top:0; right:0;
  min-width:17px; height:17px; padding:0 4px;
  background:var(--forest); color:#fff; border-radius:999px;
  font-size:0.66rem; font-weight:600; line-height:17px; text-align:center;
}

.cita-form{max-width:46rem; margin:0 auto; display:flex; flex-direction:column; gap:1.5rem; min-width:0;}
.cita-paso{display:flex; gap:1.1rem; align-items:flex-start; border:1px solid var(--border); padding:1.4rem 1.5rem; min-width:0;}
.cita-num{
  flex-shrink:0; width:30px; height:30px; border-radius:50%;
  background:var(--forest); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:0.85rem; font-weight:600;
}
.cita-campo{flex:1; min-width:0; display:flex; flex-direction:column; gap:0.55rem;}
.cita-campo > label{
  text-transform:uppercase; letter-spacing:0.12em; font-size:0.68rem; font-weight:600; color:var(--ink-faint);
}
.cita-campo select, .cita-campo input, .cita-campo textarea{
  font-family:'Jost', sans-serif; font-size:0.98rem; color:var(--ink); width:100%;
  background:var(--bg); border:1px solid var(--border); padding:0.65rem 0.8rem;
  transition:border-color 0.2s ease;
}
.cita-campo select:focus, .cita-campo input:focus, .cita-campo textarea:focus{outline:none; border-color:var(--forest);}
.cita-dias{
  position:relative; max-width:100%; display:flex; gap:0.5rem; overflow-x:auto; padding-bottom:0.5rem;
  scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
}
.cita-dias input{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; clip:rect(0 0 0 0); overflow:hidden;}
.cita-dia{
  flex:0 0 auto; scroll-snap-align:start; cursor:pointer;
  min-width:64px; padding:0.7rem 0.5rem; text-align:center;
  border:1px solid var(--border); background:var(--bg);
  display:flex; flex-direction:column; gap:0.15rem; line-height:1.2;
  transition:border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.cita-dia:hover{border-color:var(--forest); transform:translateY(-2px);}
.cita-dia-sem{font-size:0.68rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--ink-faint);}
.cita-dia-num{font-family:'Archivo Black','Jost',sans-serif; font-size:1.15rem; color:var(--ink);}
.cita-dia-mes{font-size:0.68rem; color:var(--ink-faint);}
.cita-dias input:checked + .cita-dia{
  background:var(--forest); border-color:var(--forest);
}
.cita-dias input:checked + .cita-dia .cita-dia-sem,
.cita-dias input:checked + .cita-dia .cita-dia-num,
.cita-dias input:checked + .cita-dia .cita-dia-mes{color:#fff;}
.cita-dias input:focus-visible + .cita-dia{outline:2px solid var(--forest); outline-offset:2px;}
@media (max-width:600px){
  .cita-paso{flex-direction:column;}
  .cita-campo{width:100%;}
}
/* La fila de dias hace scroll dentro de su caja; nunca ensancha la pagina. */
.cita-campo{overflow:hidden;}
.cita-dias{width:100%;}
.cita-datos{display:grid; grid-template-columns:repeat(3,1fr); gap:0.8rem;}
@media (max-width:700px){ .cita-datos{grid-template-columns:1fr;} }
.cita-ayuda{font-size:0.8rem; color:var(--ink-faint); margin:0;}
.cita-ayuda[hidden]{display:none;}
.cita-nota{font-size:0.85rem; color:var(--ink-faint); margin:0;}
.reserva-vias{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; max-width:44rem; margin:0 auto; border:1px solid var(--border);}
@media (max-width:600px){ .reserva-vias{grid-template-columns:1fr;} }
.reserva-via{
  background:var(--bg); box-shadow:0 0 0 1px var(--border); padding:1.6rem 1.5rem;
  text-decoration:none; display:flex; flex-direction:column; gap:0.3rem;
  transition:background 0.2s ease, transform 0.2s ease;
}
.reserva-via:hover{background:var(--bg-alt); transform:translateY(-2px);}
.reserva-via-label{text-transform:uppercase; letter-spacing:0.14em; font-size:0.68rem; color:var(--ink-faint);}
.reserva-via-dato{font-family:'Archivo Black','Jost',sans-serif; font-size:1.25rem; color:var(--ink);}
.reserva-via-pie{font-size:0.85rem; color:var(--ink-soft);}
.reserva-o{text-align:center; color:var(--ink-faint); font-size:0.9rem; margin-top:2rem;}
.reserva-widget input, .reserva-widget select, .reserva-widget textarea{font-family:'Jost', sans-serif;}
.cat-extra p{color:var(--ink-soft); margin-top:1rem;}
