  :root{
    --bordeaux:#6B2737; --bordeaux-deep:#4A1B26; --brass:#B8935F;
    --bone:#F2EDE4; --bone-warm:#EAE2D2; --ink:#211B16; --sage:#5C6B4F;
    --steel:#4A6FA5;
    --line:rgba(33,27,22,0.14); --ok:#5C6B4F; --err:#8A3B3B;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--bone); color:var(--ink); font-family:'Source Sans 3', sans-serif; line-height:1.6;}
  h1,h2,h3,h4{font-family:'Cormorant Garamond', serif; font-weight:600; color:var(--bordeaux-deep);}
  .mono{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.04em; text-transform:uppercase;}
  a{color:inherit;}
  .wrap{max-width:1100px; margin:0 auto; padding:0 24px;}
  section{padding:70px 0; scroll-margin-top:90px;}
  .section-head{margin-bottom:36px; max-width:60ch;}
  .section-head .mono{display:inline-flex; align-items:center; gap:6px;}
  .section-head .mono::before{content:''; display:inline-block; width:15px; height:15px; background-image:url(logo.png); background-size:contain; background-repeat:no-repeat; background-position:center; flex-shrink:0;}
  .section-head .mono.no-seal::before{display:none;}
  .sobre-head{display:flex; align-items:center; justify-content:space-between; max-width:none; width:100%; gap:40px;}
  .sobre-logo{height:52px; width:auto; flex-shrink:0; opacity:0.9;}
  .sobre-titulo{display:inline-block; background:var(--bordeaux); color:var(--bone) !important; padding:10px 22px; border-radius:2px;}
  .section-head .mono{color:var(--sage); display:block; margin-bottom:8px;}
  .section-head h2{font-size:clamp(1.7rem,3.2vw,2.4rem);}
  .h2-seal{display:flex; align-items:center; gap:12px;}
  .h2-seal::before{content:''; display:inline-block; width:26px; height:26px; background-image:url(logo.png); background-size:contain; background-repeat:no-repeat; background-position:center; flex-shrink:0;}

  nav{position:sticky; top:0; z-index:50; background:rgba(242,237,228,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
  nav .wrap{display:flex; justify-content:space-between; align-items:center; padding:14px 24px;}
  .brand{display:flex; align-items:center; gap:8px; font-family:'Cormorant Garamond', serif; font-size:1.5rem; font-weight:700; font-style:italic; letter-spacing:0.015em; color:var(--brass);}
  .brand img{height:36px; width:auto; object-fit:contain; display:block;}
  .brand .lambda{color:inherit; font-style:italic; font-size:1em;}
  .nav-links{display:flex; gap:22px; list-style:none;}
  .nav-links li:not(.nav-cta-li):not(:first-child){border-left:1px solid var(--line); padding-left:22px;}
  .nav-links a{text-decoration:none; font-size:0.88rem; opacity:0.8;}
  .nav-cta{background:var(--bordeaux); color:var(--bone) !important; padding:8px 16px; border-radius:2px; opacity:1 !important; font-size:0.82rem; font-weight:600;}
  .hamburger{display:none; flex-direction:column; justify-content:center; gap:5px; width:32px; height:32px; background:none; border:none; cursor:pointer; padding:0;}
  .hamburger span{display:block; width:100%; height:2px; background:var(--ink);}
  .nav-overlay{display:none;}
  @media(max-width:680px){
    .hamburger{display:flex;}
    .nav-overlay{
      display:block; position:fixed; inset:0; background:rgba(33,27,22,0.45);
      opacity:0; pointer-events:none; transition:opacity 0.25s ease; z-index:150;
    }
    .nav-overlay.open{opacity:1; pointer-events:auto;}
    .nav-links{
      position:fixed; top:0; right:0; bottom:0; width:58%; max-width:230px;
      background:var(--bordeaux-deep); flex-direction:column; align-items:flex-start;
      padding:90px 22px 28px; gap:20px; transform:translateX(100%);
      transition:transform 0.3s ease; z-index:200; box-shadow:-6px 0 30px rgba(0,0,0,0.25);
      overflow-y:auto;
    }
    .nav-links.open{transform:translateX(0);}
    .nav-links li{width:100%; border-left:none; padding-left:0;}
    .nav-links li:not(.nav-cta-li):not(:first-child){border-top:1px solid rgba(242,237,228,0.22); padding-top:18px;}
    .nav-links a{font-size:1rem; color:var(--bone); opacity:0.92;}
    .nav-links .nav-cta{background:var(--bone); color:var(--bordeaux-deep) !important; display:inline-block;}
    .nav-cta-li{margin-top:8px;}
    .hamburger span{background:var(--ink);}
  }

  header.hero{padding:80px 0 70px;}
  .hero-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center;}
  .hero-figure{margin:0;}
  .hero-figure img{width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:2px; display:block;}
  .hero-figure figcaption{margin-top:8px; color:rgba(33,27,22,0.5); font-size:0.68rem; font-family:'IBM Plex Mono', monospace; text-transform:uppercase; letter-spacing:0.04em;}
  .hero-figure figcaption a{text-decoration:underline;}
  @media (max-width:820px){
    .hero-grid{grid-template-columns:1fr; gap:30px;}
    .hero-figure{max-width:280px; margin:24px auto 0;}
  }
  .eyebrow{color:var(--brass); display:flex; align-items:center; gap:10px; margin-bottom:16px;}
  .eyebrow::before{content:""; width:24px; height:1px; background:var(--brass);}
  .hero h1{font-size:clamp(2.2rem,5.5vw,3.6rem); line-height:1.08; max-width:14ch;}
  .hero p.lede{margin-top:22px; max-width:46ch; font-size:1.08rem; color:rgba(33,27,22,0.82);}
  .hero-actions{margin-top:30px; display:flex; gap:14px; flex-wrap:wrap;}
  .btn{display:inline-block; text-decoration:none; padding:13px 24px; font-size:0.92rem; font-weight:600; border-radius:2px; border:none; cursor:pointer; font-family:inherit;}
  .btn-primary{background:var(--bordeaux); color:var(--bone);}
  .btn-ghost{border:1px solid var(--ink); color:var(--ink); background:transparent;}
  .btn:disabled{opacity:0.35; cursor:not-allowed;}
  .btn-sm{padding:8px 14px; font-size:0.82rem;}

  .concept-flow{display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.3rem; color:var(--bordeaux-deep); font-style:italic;}
  .concept-flow span.arrow{color:var(--brass); font-style:normal;}

  .method-box{
    background:transparent; border:none; border-top:1px solid var(--brass); border-bottom:1px solid var(--brass);
    padding:26px 6px; font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.3rem;
    font-style:italic; color:var(--bordeaux-deep); text-align:center;
  }

  .free-class{background:var(--bordeaux-deep); color:var(--bone); border-radius:4px; padding:40px 34px; text-align:center;}
  .free-class h2{color:var(--bone);}
  .free-class p{opacity:0.85; max-width:44ch; margin:10px auto 22px;}
  .free-class .btn-primary{background:var(--bone); color:var(--bordeaux-deep);}

  .offers{display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px;}
  @media(max-width:760px){ .offers{grid-template-columns:1fr;} }
  .offer-card{border:1px solid var(--line); background:#fff; padding:26px 24px;}
  .offer-card h3{font-size:1.5rem; margin-bottom:6px;}
  .offer-card .price{font-family:'IBM Plex Mono',monospace; color:var(--bordeaux); font-size:0.95rem; margin:10px 0;}
  .offer-card .price div{margin-bottom:4px;}
  .offer-card p{font-size:0.9rem; color:rgba(33,27,22,0.75); margin-bottom:12px;}

  .price-clear{border-top:1px solid var(--line); padding-top:14px;}
  .price-row{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:2px;}
  .price-row .price-label{font-weight:600; color:var(--ink); font-size:0.86rem;}
  .price-row .price-value{font-weight:700; color:var(--bordeaux); font-size:1.05rem;}
  .price-row .price-value small{font-weight:600; font-size:0.7rem;}
  .price-sub{padding-left:14px; opacity:0.68; font-size:0.8rem; margin-bottom:14px;}
  .price-sub small{font-size:0.75rem;}

  .steps{display:flex; flex-direction:column;}
  .step{display:grid; grid-template-columns:56px 1fr; gap:18px; padding:22px 0; border-top:1px solid var(--line);}
  .step:last-child{border-bottom:1px solid var(--line);}
  .step .mono{color:var(--brass); padding-top:2px;}
  .step h4{font-size:1.15rem; margin-bottom:4px;}
  .step p{font-size:0.92rem; color:rgba(33,27,22,0.75); max-width:52ch;}

  .etym-card{
    position:relative;
    background:
      radial-gradient(ellipse at center, rgba(184,147,95,0.07) 0%, rgba(184,147,95,0) 70%),
      var(--bone-warm);
    border:1px solid var(--brass);
    outline:1px solid var(--line);
    outline-offset:6px;
    padding:38px 34px;
  }
  .etym-word{
    font-family:'Cormorant Garamond',serif; font-weight:500; font-size:2.2rem;
    font-style:italic; color:var(--bordeaux-deep); position:relative;
  }
  .etym-word::first-letter{
    font-size:1.7em; font-style:normal; font-weight:700; color:var(--brass);
  }
  .etym-lang{color:var(--sage); font-size:0.85rem; margin-bottom:14px; padding-bottom:14px; border-bottom:1px dashed var(--line);}
  .etym-card dt{font-weight:700; font-size:0.8rem; text-transform:uppercase; color:var(--brass); margin-top:14px;}
  .etym-card dd{margin:4px 0 0; font-size:0.94rem;}
  .etym-sources{margin-top:16px; font-size:0.8rem; color:rgba(33,27,22,0.55); font-style:italic;}

  .social-cards{display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px;}
  @media(max-width:700px){ .social-cards{grid-template-columns:1fr;} }
  .social-card{border:1px solid var(--line); background:var(--bordeaux); padding:30px 22px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;}
  .social-icon{width:32px; height:32px; fill:var(--bone); display:block;}
  .social-seal-btn{display:block; border-radius:50%; transition:transform 0.2s ease, box-shadow 0.2s ease;}
  .social-seal-btn[aria-disabled="true"]{opacity:0.4; cursor:not-allowed; pointer-events:none;}
  .social-seal-btn:not([aria-disabled="true"]):hover{transform:scale(1.08); box-shadow:0 4px 16px rgba(33,27,22,0.2);}
  .social-seal{display:block; width:64px; height:64px; border-radius:50%;}
  a[aria-disabled="true"]{opacity:0.45; cursor:not-allowed; pointer-events:none;}
  .social-card h4{margin-bottom:8px;}
  .social-card p{font-size:0.88rem; color:rgba(33,27,22,0.7); margin-bottom:14px;}

  .about{display:flex; gap:28px; align-items:flex-start; flex-wrap:wrap;}
  .about img{width:160px; height:160px; object-fit:cover; border-radius:4px; background:var(--bone-warm);}
  .about-text{flex:1; min-width:240px;}

  .testis-carousel{display:flex; align-items:center; gap:14px;}
  .testis-viewport{overflow:hidden; flex:1; min-width:0;}
  .testis-track{display:flex; transition:transform 0.4s ease;}
  .testis-track .testi{flex:0 0 100%; box-sizing:border-box; min-width:0;}
  .testis-arrow{background:#fff; border:1px solid var(--line); border-radius:50%; width:38px; height:38px; font-size:1.3rem; line-height:1; cursor:pointer; color:var(--bordeaux-deep); flex-shrink:0; font-family:'Cormorant Garamond',serif;}
  .testis-arrow:hover{background:var(--bone-warm);}
  .testis-dots{display:flex; justify-content:center; gap:8px; margin-top:18px;}
  .testis-dot{width:8px; height:8px; border-radius:50%; background:var(--line); border:none; cursor:pointer; padding:0;}
  .testis-dot.active{background:var(--bordeaux);}
  .testi{background:var(--bone-warm); border-left:3px solid var(--brass); padding:22px 24px 22px 30px; position:relative; overflow:hidden;}
  .testi::before{
    content:"\201C"; position:absolute; top:-38px; left:6px;
    font-family:'Cormorant Garamond',serif; font-size:9rem; font-weight:700;
    color:var(--brass); opacity:0.14; line-height:1; pointer-events:none;
  }
  .testi p{font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.1rem; font-style:italic; color:var(--bordeaux-deep); margin-bottom:10px; position:relative;}
  .testi .who{font-size:0.82rem; color:rgba(33,27,22,0.6); position:relative;}

  details{border-bottom:1px solid var(--line); padding:14px 0;}
  summary{cursor:pointer; font-weight:600; font-size:0.98rem;}
  details p{margin-top:10px; font-size:0.92rem; color:rgba(33,27,22,0.75);}

  /* ---- RESERVA (form) ---- */
  .book-card{background:#fff; border:1px solid var(--line); border-radius:4px; padding:28px; max-width:560px; margin:0 auto;}
  label{display:block; font-size:0.8rem; font-weight:600; margin-top:16px; margin-bottom:6px; color:rgba(33,27,22,0.75);}
  label:first-of-type{margin-top:0;}
  input, select{width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:3px; font-family:inherit; font-size:0.94rem; background:var(--bone);}
  input:focus, select:focus{outline:2px solid var(--brass); outline-offset:1px;}
  a:focus-visible, button:focus-visible, summary:focus-visible{outline:2px solid var(--brass); outline-offset:2px;}
  .skip-link{
    position:absolute; left:-9999px; top:0; z-index:100;
    background:var(--bordeaux); color:var(--bone); padding:10px 16px; border-radius:2px;
  }
  .skip-link:focus{left:16px; top:16px;}
  .radio-row{display:flex; gap:14px; margin-top:8px; flex-wrap:wrap;}
  .radio-row label{display:flex; align-items:center; gap:6px; font-weight:500; margin:0; font-size:0.9rem;}
  .radio-row input[type=radio]{width:auto;}
  .price-preview{margin-top:18px; padding:14px; background:var(--bone-warm); border-radius:3px; font-size:0.94rem;}
  .price-preview strong{color:var(--bordeaux);}
  .msg{padding:12px 14px; border-radius:3px; font-size:0.86rem; margin-top:14px; display:none;}
  .msg.ok{background:rgba(92,107,79,0.12); color:var(--ok); display:block;}
  .msg.err{background:rgba(138,59,59,0.12); color:var(--err); display:block;}
  .msg.info{background:rgba(184,147,95,0.14); color:#8a6a3d; display:block;}
  .hidden{display:none !important;}

  /* ---- ADMIN ---- */
  .admin-section{background:var(--bone-warm); border-top:1px solid var(--line);}
  .pin-gate{max-width:300px; margin:40px auto; text-align:center;}
  .cal-table{border-collapse:collapse; width:100%; min-width:620px;}
  .cal-table th{font-size:0.72rem; padding:6px 4px; color:var(--bordeaux-deep); font-weight:600; text-align:center; white-space:nowrap;}
  .cal-hour{font-size:0.7rem; color:rgba(33,27,22,0.55); padding-right:8px; white-space:nowrap; text-align:right;}
  .cal-cell{width:38px; height:26px; border:1px solid var(--line); background:#fff;}
  .cal-cell.cal-libre{cursor:pointer;}
  .cal-cell.cal-libre:hover{background:var(--bone-warm);}
  .cal-cell.cal-disponible{background:rgba(92,107,79,0.35); cursor:pointer;}
  .cal-cell.cal-disponible:hover{background:rgba(92,107,79,0.55);}
  .cal-cell.cal-disponible-grupal{background:rgba(74,111,165,0.35); cursor:pointer;}
  .cal-cell.cal-disponible-gratis{background:rgba(139,111,158,0.35); cursor:pointer;}
  .cal-cell.cal-disponible-gratis:hover{background:rgba(139,111,158,0.55);}
  .cal-cell.cal-disponible-grupal:hover{background:rgba(74,111,165,0.55);}
  .cal-cell.cal-parcial{background:rgba(184,147,95,0.5);}
  .cal-cell.cal-reservado{background:repeating-linear-gradient(45deg, rgba(107,39,55,0.25), rgba(107,39,55,0.25) 4px, rgba(107,39,55,0.4) 4px, rgba(107,39,55,0.4) 8px); cursor:not-allowed;}
  .cal-cell.cal-ocupado{background:rgba(107,39,55,0.55);}
  .cal-dot{display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:4px; vertical-align:middle; border:1px solid var(--line);}
  .cal-dot.cal-libre{background:#fff;}
  .cal-dot.cal-disponible{background:rgba(92,107,79,0.35);}
  .cal-dot.cal-disponible-grupal{background:rgba(74,111,165,0.35);}
  .cal-dot.cal-disponible-gratis{background:rgba(139,111,158,0.35);}
  .cal-dot.cal-parcial{background:rgba(184,147,95,0.5);}
  .cal-dot.cal-reservado{background:repeating-linear-gradient(45deg, rgba(107,39,55,0.25), rgba(107,39,55,0.25) 2px, rgba(107,39,55,0.4) 2px, rgba(107,39,55,0.4) 4px);}
  .cal-dot.cal-ocupado{background:rgba(107,39,55,0.55);}
  .booking-row{display:flex; justify-content:space-between; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:3px; margin-bottom:8px; font-size:0.86rem; flex-wrap:wrap; gap:8px; background:#fff;}
  .status{font-size:0.7rem; font-weight:700; padding:3px 9px; border-radius:20px; text-transform:uppercase;}
  .status.solicitud_recibida{background:rgba(184,147,95,0.2); color:#8a6a3d;}
  .status.pendiente_de_pago{background:rgba(184,147,95,0.3); color:#8a6a3d;}
  .status.confirmada{background:rgba(92,107,79,0.18); color:var(--sage);}
  .status.realizada{background:rgba(107,39,55,0.12); color:var(--bordeaux);}
  .status.finalizada{background:rgba(33,27,22,0.1); color:rgba(33,27,22,0.6);}
  .status.cancelada, .status.no_asistio{background:rgba(138,59,59,0.12); color:var(--err);}
  .empty{color:rgba(33,27,22,0.5); font-size:0.88rem; font-style:italic;}

  footer{padding:30px 0; text-align:center; font-size:0.8rem; color:rgba(33,27,22,0.55); border-top:1px solid var(--line);}
