/* Saiki Dojo — blanco, negro y el verde del logo */
:root{
  --bg:#FAFAF7;
  --surface:#FFFFFF;
  --ink:#15140F;
  --sub:#5B5D53;
  --line:rgba(21,20,15,.13);
  --green:#298F78;
  --green-deep:#1B5F4E;
  --green-tint:#E3F2EE;
  --btn-bg:#1F7A64;
  --btn-bg-hover:#18614F;
  --btn-fg:#FFFFFF;
  --gold:#C7943C;
  --display:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;
  --body:'Manrope',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --gutter:clamp(18px,5vw,72px);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:16px;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;}
.site{padding-inline:var(--gutter);}
img,video,iframe{max-width:100%;}
a{color:inherit;}
::selection{background:var(--green);color:#fff;}
[hidden]{display:none!important;}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:100;}
.skip:focus{left:8px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

h1,h2,h3{font-family:var(--display);text-transform:uppercase;text-wrap:balance;margin:0;letter-spacing:.01em;color:var(--green);}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sub);display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex:none;}

/* Botones */
.btn-solid,.btn-outline,.nav-cta{font-family:var(--body);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;text-decoration:none;cursor:pointer;display:inline-block;border:1.5px solid transparent;transition:background .2s ease,border-color .2s ease;}
.btn-solid,.nav-cta{background:var(--btn-bg);color:var(--btn-fg);}
.btn-solid:hover,.nav-cta:hover{background:var(--btn-bg-hover);}
.btn-solid{padding:16px 26px;}
.btn-solid[disabled]{opacity:.6;cursor:progress;}
.btn-outline{padding:15px 26px;border-color:var(--ink);color:var(--ink);background:none;}
.btn-outline:hover{border-color:var(--green);color:var(--green-deep);}

/* Nav */
.nav{position:relative;display:flex;align-items:center;gap:12px;padding-block:22px;border-bottom:1px solid var(--line);}
.brand{margin-right:auto;display:flex;align-items:center;}
.brand-logo{height:36px;width:auto;display:block;mix-blend-mode:multiply;}
.navlinks .menu{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0;}
.navlinks .menu a{display:block;padding:12px 4px;text-decoration:none;font-size:15px;font-weight:600;}
.navlinks{display:none;position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:10px 18px 18px;margin-top:6px;box-shadow:0 14px 34px rgba(21,20,15,.1);flex-direction:column;gap:8px;}
.nav.is-open .navlinks{display:flex;}
.nav-cta{padding:12px 22px;font-size:12.5px;white-space:nowrap;}
.nav-cta-bar{display:none;}
.nav-cta-mobile{text-align:center;margin-top:6px;}
.nav-toggle{font-family:var(--body);font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;background:none;border:1.5px solid var(--ink);color:var(--ink);padding:10px 18px;border-radius:999px;cursor:pointer;}
@media(min-width:560px){.nav-cta-bar{display:inline-block;}}
@media(min-width:900px){
  .nav{justify-content:space-between;}
  .brand{margin-right:0;}
  .nav-toggle,.nav-cta-mobile{display:none;}
  .navlinks{display:block;position:static;background:none;border:none;box-shadow:none;padding:0;margin:0;}
  .navlinks .menu{flex-direction:row;gap:28px;}
  .navlinks .menu a{padding:4px 0;font-size:13.5px;opacity:.72;}
  .navlinks .menu a:hover{opacity:1;}
}

/* Hero */
.hero{padding-block:clamp(44px,7vw,84px) clamp(32px,5vw,56px);border-bottom:1px solid var(--line);}
.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--green-tint);color:var(--green-deep);padding:8px 14px;border-radius:999px;margin-bottom:18px;}
.hero h1{font-size:clamp(48px,8vw,110px);line-height:.92;font-weight:800;}
.hero h1 .ink{color:var(--ink);}
.hero-row{display:grid;grid-template-columns:1.3fr .7fr;gap:32px;margin-top:26px;align-items:end;}
@media(max-width:780px){.hero-row{grid-template-columns:1fr;}}
.hero-lede{font-size:16px;line-height:1.65;color:var(--sub);max-width:52ch;margin:0;}
.hero-ctas{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;}
.hero-facts{border-left:1px solid var(--line);padding-left:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:18px;}
@media(max-width:780px){.hero-facts{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:20px;}}
.fact .k{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--sub);}
.fact .v{font-weight:700;font-size:19px;margin-top:3px;}

/* Secciones */
section{padding-block:clamp(44px,7vw,84px);border-bottom:1px solid var(--line);}
#visitanos{border-bottom:none;}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:clamp(30px,4vw,46px);align-items:end;}
@media(max-width:760px){.section-head{grid-template-columns:1fr;}}
.section-head h2{font-size:clamp(32px,4vw,50px);font-weight:800;}
.section-head p{font-size:14.5px;line-height:1.6;color:var(--sub);max-width:44ch;margin:0;}

/* Así entrenamos + valores */
.lineage{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
@media(max-width:720px){.lineage{grid-template-columns:1fr;}}
.lineage.values-grid{grid-template-columns:repeat(3,1fr);}
@media(max-width:880px){.lineage.values-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.lineage.values-grid{grid-template-columns:1fr;}}
.lineage-card{background:var(--surface);padding:30px 28px;}
.lineage-tag{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sub);}
.lineage-name{font-family:var(--display);font-weight:800;font-size:26px;text-transform:uppercase;color:var(--ink);margin-top:8px;line-height:1.05;}
.lineage-desc{font-size:13.5px;line-height:1.6;color:var(--sub);margin-top:10px;}
.lineage-desc--tight{margin-top:6px;}
.lineage-merge{grid-column:1 / -1;background:var(--green-tint);padding:24px 28px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.lineage-merge p{font-size:14px;color:var(--ink);margin:0;font-weight:500;max-width:60ch;}

/* Programas */
.program-card{border:1.5px solid var(--green);border-radius:16px;padding:clamp(24px,3vw,34px);display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;background:var(--surface);}
@media(max-width:720px){.program-card{grid-template-columns:1fr;}}
.program-age{font-family:var(--display);font-size:48px;font-weight:900;color:var(--green);line-height:1;}
.program-name{font-weight:800;font-size:22px;text-transform:uppercase;font-family:var(--display);letter-spacing:.02em;}
.program-meta{font-size:13.5px;color:var(--sub);margin-top:6px;line-height:1.6;max-width:56ch;}
.status-open{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--green-deep);background:var(--green-tint);padding:5px 11px;border-radius:999px;display:inline-block;margin-top:8px;}
.interest-block{margin-top:28px;padding:26px 28px;border:1px solid var(--line);border-radius:16px;background:var(--surface);}
.interest-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.interest-head p{margin:0;font-size:14.5px;color:var(--sub);max-width:46ch;}
.age-choices{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap;}
.age-choice{font-family:var(--body);font-weight:700;font-size:13px;padding:13px 20px;border-radius:999px;border:1.5px solid var(--line);background:none;color:var(--ink);cursor:pointer;text-align:left;}
.age-choice:hover,.age-choice.is-active{border-color:var(--green);}
.age-choice.is-active{background:var(--green-tint);}
.age-choice .sub{display:block;font-weight:500;font-size:11.5px;color:var(--sub);margin-top:2px;}
.result-box{margin-top:20px;padding:20px 22px;border-radius:12px;background:var(--green-tint);}
.result-box p{margin:0 0 14px;font-size:14px;color:var(--ink);font-weight:500;}
.result-box.wait{background:var(--bg);border:1px dashed var(--line);}
.mini-form{display:flex;flex-direction:column;gap:12px;max-width:420px;}
.mini-form label,.contact-form label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sub);display:block;margin-bottom:6px;}
.mini-form input[type="text"],.contact-form input[type="text"],.contact-form textarea{font-family:var(--body);font-size:15px;padding:13px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);width:100%;}
.contact-form input[type="text"],.contact-form textarea{background:var(--bg);}
.contact-form textarea{resize:vertical;}
.mini-form input:focus,.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(41,143,120,.2);}
.mini-form .btn-solid,.contact-form .btn-solid{align-self:flex-start;border:none;}
.confirm-msg{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--green-deep);font-size:14.5px;}
.form-error{margin:0;font-size:13.5px;font-weight:600;color:#A32A1B;}

/* Sensei */
.sensei{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(24px,4vw,44px);align-items:start;}
.sensei--video{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);}
.sensei--solo{grid-template-columns:1fr;}
@media(max-width:760px){.sensei,.sensei--video{grid-template-columns:1fr;}}
.sensei-media{border-radius:16px;overflow:hidden;background:var(--green-tint);}
.sensei-media img,.sensei-img{width:100%;height:auto;display:block;}
.sensei-media video{width:100%;display:block;background:#000;}
.sensei-media .embed{position:relative;aspect-ratio:16/9;}
.sensei-media .embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.sensei-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;aspect-ratio:3/4;text-align:center;padding:16px;border:1.5px dashed var(--green);color:var(--green-deep);text-decoration:none;}
.sensei-placeholder span{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;line-height:1.5;}
.sensei-placeholder small{font-size:11px;color:var(--sub);}
.sensei-name{font-family:var(--display);font-size:clamp(28px,3.2vw,38px);font-weight:800;text-transform:uppercase;color:var(--ink);line-height:1;}
.sensei-role{font-size:13px;color:var(--sub);margin-top:6px;font-weight:600;}
.sensei-bio{font-size:15px;line-height:1.7;color:var(--sub);margin:16px 0 0;max-width:58ch;}
.sensei-creds{display:flex;gap:28px;margin-top:20px;flex-wrap:wrap;}
.cred .k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--sub);}
.cred .v{font-weight:700;font-size:15px;margin-top:3px;}

/* Reseñas */
.reviews-head-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px;}
.rating-badge{display:flex;align-items:center;gap:10px;font-weight:800;font-size:24px;font-family:var(--display);}
.stars{color:var(--gold);font-size:16px;letter-spacing:1px;}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
@media(max-width:900px){.review-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.review-grid{grid-template-columns:1fr;}}
.review-card{background:var(--surface);padding:24px 22px;display:flex;flex-direction:column;gap:10px;}
.review-top{display:flex;align-items:center;gap:10px;}
.review-avatar{width:36px;height:36px;border-radius:50%;background:var(--green-tint);color:var(--green-deep);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none;}
.review-name{font-weight:700;font-size:14px;}
.review-date{font-size:11.5px;color:var(--sub);}
.review-text{font-size:13.5px;line-height:1.6;color:var(--sub);margin:0;}
.reviews-link{display:inline-block;margin-top:22px;font-size:13.5px;font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.reviews-empty{display:block;padding:26px;border:1.5px dashed var(--green);border-radius:16px;color:var(--green-deep);font-weight:700;text-decoration:none;}
.reviews-empty small{display:block;font-weight:500;color:var(--sub);margin-top:4px;}

/* Visítanos */
.visit-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,44px);}
@media(max-width:820px){.visit-grid{grid-template-columns:1fr;}}
.map-embed{border-radius:16px;border:1px solid var(--line);overflow:hidden;aspect-ratio:4/3;background:var(--green-tint);}
.map-embed iframe{width:100%;height:100%;border:0;display:block;}
.map-line{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 0;font-size:14px;font-weight:600;}
.map-line a{font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.map-card{border-radius:16px;border:1px solid var(--line);overflow:hidden;min-height:280px;background:repeating-linear-gradient(0deg,transparent,transparent 27px,var(--line) 27px,var(--line) 28px),repeating-linear-gradient(90deg,transparent,transparent 27px,var(--line) 27px,var(--line) 28px),var(--green-tint);display:flex;align-items:flex-end;padding:22px;}
.map-pin{background:var(--surface);border-radius:12px;padding:16px 18px;display:flex;gap:12px;align-items:flex-start;box-shadow:0 6px 20px rgba(0,0,0,.08);max-width:340px;}
.map-pin-dot{width:14px;height:14px;border-radius:50%;background:var(--green);flex:none;margin-top:3px;box-shadow:0 0 0 4px var(--green-tint);}
.map-pin b{display:block;font-size:14px;}
.map-pin span{display:block;font-size:12.5px;color:var(--sub);margin-top:3px;line-height:1.5;}
.map-pin a{font-size:12.5px;font-weight:700;margin-top:8px;display:inline-block;text-decoration:underline;}
.admin-note{display:block;margin-top:10px;font-size:11.5px;color:var(--sub);line-height:1.5;}
.schedule-mini{margin-top:16px;display:flex;flex-direction:column;}
.schedule-row{display:flex;justify-content:space-between;gap:12px;padding-block:10px;border-top:1px solid var(--line);font-size:13.5px;}
.schedule-row:last-child{border-bottom:1px solid var(--line);}
.schedule-row .day{font-weight:600;}
.schedule-row .time{color:var(--sub);}

.contact-card{border:1px solid var(--line);border-radius:16px;padding:clamp(22px,3vw,30px);background:var(--surface);}
.whatsapp-cta{display:flex;align-items:center;gap:14px;background:var(--green-tint);border-radius:12px;padding:16px 18px;margin-bottom:22px;text-decoration:none;}
.whatsapp-icon{width:38px;height:38px;border-radius:50%;background:var(--btn-bg);color:var(--btn-fg);display:flex;align-items:center;justify-content:center;flex:none;font-size:18px;}
.whatsapp-text b{display:block;color:var(--ink);font-size:14.5px;}
.whatsapp-text span{display:block;color:var(--sub);font-size:12.5px;margin-top:2px;}
.contact-form{display:flex;flex-direction:column;gap:14px;}
.form-divider{display:flex;align-items:center;gap:12px;margin:4px 0 18px;color:var(--sub);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;}
.form-divider::before,.form-divider::after{content:"";flex:1;height:1px;background:var(--line);}
.social-line{margin:18px 0 0;font-size:13.5px;font-weight:700;}

/* Pie */
.site-footer{padding-block:30px 46px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--sub);border-top:1px solid var(--line);}

/* Páginas y entradas */
.entry-wrap{max-width:760px;margin-inline:auto;}
.entry-title{font-size:clamp(34px,5vw,56px);font-weight:800;line-height:1;margin-bottom:18px;}
.entry-title a{text-decoration:none;}
.entry-meta{color:var(--sub);font-size:13px;margin:0 0 18px;}
.entry-content{font-size:16.5px;line-height:1.75;}
.entry-content a{color:var(--green-deep);text-underline-offset:3px;}
.entry-content h2,.entry-content h3{margin:1.6em 0 .5em;}
.entry{margin-bottom:34px;}
.pagination{margin-top:20px;font-weight:700;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none!important;}
}
