:root { --off:#f7f7f4; --ink:#121212; --aqua:#53d6c7; --orange:#ff6c3f; --yellow:#f3c742; --blue:#3157c8; --white:#fff; }
body { background:var(--off); color:var(--ink); font-family:"Chiron GoRound TC","Apple SD Gothic Neo",sans-serif; line-height:1.55; }
.site-header { position:fixed; z-index:60; inset:14px 18px auto; display:grid; grid-template-columns:auto 1fr auto; align-items:center; min-height:62px; padding:7px; border:3px solid var(--ink); border-radius:6px; background:rgba(247,247,244,.92); box-shadow:5px 5px 0 var(--ink); backdrop-filter:blur(10px); }
.brand { display:flex; align-items:center; gap:10px; padding:0 10px; font-weight:700; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:38px; height:38px; border:3px solid var(--ink); border-radius:4px; background:var(--aqua); font:800 11px/1 Montserrat,sans-serif; }
.site-nav { display:flex; justify-content:center; gap:clamp(13px,2.1vw,30px); }
.site-nav a { font-size:12px; font-weight:700; text-decoration:none; }
.site-nav a:hover { box-shadow:inset 0 -6px 0 var(--yellow); }
.lang-switch { gap:4px; }
.lang-switch button { width:38px; height:38px; border:2px solid var(--ink); border-radius:3px; background:#fff; color:var(--ink); font:700 10px/1 Montserrat,sans-serif; }
.lang-switch button[aria-pressed="true"] { background:var(--blue); color:#fff; }
.hero { position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; color:#fff; }
.hero-media img { object-position:center 45%; filter:saturate(.95) contrast(1.06); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.85),rgba(0,0,0,.24) 68%),linear-gradient(0deg,rgba(0,0,0,.76),transparent 62%); }
.hero-copy { position:relative; z-index:4; width:min(830px,calc(100% - 44px)); margin:0 0 92px 6vw; }
.concept-label { display:inline-block; margin:0 0 20px; padding:7px 10px; border:3px solid var(--ink); border-radius:3px; background:var(--aqua); color:var(--ink); font:800 11px/1 Montserrat,sans-serif; box-shadow:4px 4px 0 var(--ink); }
.eyebrow { margin:0 0 15px; color:var(--blue); font:800 11px/1.35 Montserrat,sans-serif; text-transform:uppercase; }
.hero .eyebrow { color:var(--yellow); text-shadow:2px 2px 0 #000; }
.hero h1 { margin:0; max-width:830px; font-family:Montserrat,sans-serif; font-size:clamp(52px,8.7vw,128px); font-weight:800; line-height:.93; letter-spacing:0; word-break:keep-all; -webkit-text-stroke:1px #000; text-shadow:4px 5px 0 #000,0 14px 34px #000; }
.hero-lead { max-width:650px; margin:24px 0; font-size:clamp(16px,1.4vw,20px); font-weight:700; line-height:1.7; text-shadow:2px 2px 0 #000,0 0 14px #000; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; }
.button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; padding:0 22px; border:3px solid var(--ink); border-radius:4px; background:#fff; color:var(--ink); font-weight:800; text-decoration:none; box-shadow:5px 5px 0 var(--ink); cursor:pointer; }
.button.primary { background:var(--yellow); }
.button.secondary { background:var(--aqua); }
.hero-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:28px; }
.hero-chips span { padding:7px 10px; border:2px solid #fff; border-radius:3px; background:rgba(0,0,0,.42); font:700 10px/1 Montserrat,sans-serif; box-shadow:2px 2px 0 #000; }
.hero-ornament { position:absolute; z-index:3; right:-30px; top:18%; display:grid; grid-template-columns:repeat(2,90px); transform:rotate(7deg); }
.hero-ornament::before,.hero-ornament::after { display:grid; place-items:center; width:90px; height:90px; border:4px solid var(--ink); color:var(--ink); font:800 18px/1 Montserrat,sans-serif; box-shadow:6px 6px 0 var(--ink); }
.hero-ornament::before { content:"WT"; background:var(--blue); color:#fff; }
.hero-ornament::after { content:"ITF"; background:var(--orange); }
.hero-foot { position:absolute; z-index:5; left:18px; right:18px; bottom:18px; display:flex; justify-content:space-between; color:#fff; font:700 10px/1 Montserrat,sans-serif; text-shadow:2px 2px 0 #000; }
.slider-dot { background:#fff; border:2px solid var(--ink); border-radius:2px; box-shadow:2px 2px 0 var(--ink); }
.slider-dot.is-active { width:26px; background:var(--yellow); }
.section { padding:clamp(80px,9vw,138px) max(20px,6vw); }
.section-head { display:grid; grid-template-columns:160px 1fr; gap:30px; max-width:1220px; margin:0 auto 64px; }
.section-head .eyebrow { grid-row:1/span 2; align-self:start; padding:12px; border:3px solid var(--ink); border-radius:4px; background:var(--aqua); color:var(--ink); box-shadow:5px 5px 0 var(--ink); }
.section h2 { max-width:950px; margin:0; font-family:Montserrat,sans-serif; font-size:clamp(39px,5.5vw,76px); font-weight:800; line-height:1.07; letter-spacing:0; word-break:keep-all; }
.section-lead { max-width:720px; margin:20px 0 0; font-size:17px; }
.greeting { display:grid; grid-template-columns:.78fr 1.22fr; max-width:1220px; margin:auto; border:3px solid var(--ink); border-radius:6px; overflow:hidden; background:#fff; box-shadow:10px 10px 0 var(--aqua),20px 20px 0 var(--ink); }
.greeting-photo { min-height:560px; border-right:3px solid var(--ink); }
.greeting-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.greeting-copy { align-self:center; padding:clamp(32px,6vw,86px); }
.greeting-copy .eyebrow { display:inline-block; padding:7px 10px; border-radius:3px; background:var(--yellow); color:var(--ink); }
.greeting-copy blockquote { margin:24px 0; font-size:clamp(24px,3vw,42px); font-weight:700; line-height:1.45; word-break:keep-all; }
.greeting-copy strong,.greeting-copy span { display:block; }
.greeting-copy span { color:var(--blue); font:700 11px/1.5 Montserrat,sans-serif; }
.strength-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:1220px; margin:110px auto; }
.strength-grid article { min-height:280px; padding:26px; border:3px solid var(--ink); border-radius:5px; background:var(--yellow); box-shadow:6px 6px 0 var(--ink); }
.strength-grid article:nth-child(2) { background:var(--aqua); }
.strength-grid article:nth-child(3) { background:var(--orange); }
.strength-grid b { font:800 12px/1 Montserrat,sans-serif; }
.strength-grid h3 { margin:72px 0 10px; font-size:24px; }
.master-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1220px; margin:auto; }
.master-grid article { overflow:hidden; border:3px solid var(--ink); border-radius:6px; background:#fff; box-shadow:6px 6px 0 var(--ink); }
.master-grid article:nth-child(2) { transform:translateY(26px); }
.master-grid img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center top; }
.master-grid div { padding:18px; border-top:3px solid var(--ink); }
.master-grid h3,.master-grid p { margin:0; }
.master-grid p { color:var(--blue); font:700 11px/1.5 Montserrat,sans-serif; }
.programs { background:var(--aqua); border-block:3px solid var(--ink); }
.program-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; max-width:1220px; margin:auto; }
.program-grid article { position:relative; grid-column:span 3; min-height:430px; overflow:hidden; border:3px solid var(--ink); border-radius:5px; background:var(--ink); box-shadow:7px 7px 0 var(--ink); }
.program-grid .program-feature { grid-column:1 / span 4; grid-row:1; min-height:620px; }
.program-grid .program-oneday { grid-column:5 / span 2; grid-row:1; min-height:620px; }
.program-grid img { width:100%; height:100%; object-fit:cover; }
.program-grid article div { position:absolute; inset:auto 0 0; padding:72px 22px 22px; background:linear-gradient(transparent,rgba(0,0,0,.94)); color:#fff; }
.program-grid span { display:inline-block; padding:5px 8px; border-radius:2px; background:var(--yellow); color:var(--ink); font:800 10px/1 Montserrat,sans-serif; }
.program-grid h3 { margin:9px 0 3px; font-size:28px; }
.program-grid p { margin:0; }
.schedule-layout { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:1220px; margin:auto; }
.schedule-list { display:grid; gap:12px; }
.schedule-list > div { display:grid; grid-template-columns:1fr auto; padding:22px; border:3px solid var(--ink); border-radius:5px; background:#fff; box-shadow:5px 5px 0 var(--ink); }
.schedule-list > div:nth-child(2) { background:var(--yellow); }
.schedule-list p { grid-column:1/-1; margin:7px 0 0; }
.schedule-list span { color:var(--blue); font:700 11px/1.5 Montserrat,sans-serif; }
.location-card { overflow:hidden; border:3px solid var(--ink); border-radius:5px; background:#fff; box-shadow:8px 8px 0 var(--blue); }
.placeholder-map { display:flex; flex-direction:column; justify-content:space-between; padding:28px; background-color:var(--blue); background-image:linear-gradient(45deg,rgba(255,255,255,.08) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.08) 75%),linear-gradient(45deg,rgba(255,255,255,.08) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.08) 75%); background-position:0 0,18px 18px; background-size:36px 36px; color:#fff; }
.placeholder-map strong { font:800 clamp(38px,5.8vw,72px)/.92 Montserrat,sans-serif; }
.placeholder-map span { font:700 10px/1 Montserrat,sans-serif; }
.location-copy { padding:26px; border-top:3px solid var(--ink); }
.location-copy p { margin:4px 0 16px; }
.gallery { background:var(--yellow); border-block:3px solid var(--ink); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1220px; margin:auto; }
.gallery-grid article { overflow:hidden; border:3px solid var(--ink); border-radius:5px; background:#fff; box-shadow:7px 7px 0 var(--ink); }
.gallery-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; border-bottom:3px solid var(--ink); }
.gallery-grid div { padding:20px; }
.gallery-grid h3,.gallery-grid p { margin:0 0 7px; }
.inquiry { display:grid; grid-template-columns:1fr 1fr; gap:6vw; background:var(--blue); color:#fff; }
.inquiry .eyebrow { color:var(--yellow); }
.inquiry h2 { margin:0; }
.contact-channels { display:grid; gap:8px; margin-top:38px; }
.contact-channels a { display:flex; justify-content:space-between; padding:14px; border:2px solid #fff; border-radius:4px; text-decoration:none; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:28px; border:3px solid var(--ink); border-radius:6px; background:var(--off); color:var(--ink); box-shadow:9px 9px 0 var(--ink); }
.contact-form label { display:grid; gap:6px; font-size:12px; font-weight:700; }
.contact-form label:nth-child(4),.contact-form .button,.contact-form small,.form-status { grid-column:1/-1; }
.contact-form input,.contact-form select,.contact-form textarea { padding:12px; border:2px solid var(--ink); border-radius:3px; background:#fff; }
.links { background:var(--off); }
.link-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; max-width:1220px; margin:auto; }
.link-list a { display:flex; justify-content:space-between; min-height:90px; align-items:center; padding:18px; border:3px solid var(--ink); border-radius:5px; background:#fff; font-size:clamp(17px,1.8vw,24px); font-weight:700; text-decoration:none; box-shadow:5px 5px 0 var(--ink); }
.link-list a:hover { background:var(--aqua); }
footer { display:grid; grid-template-columns:1fr 1fr auto; gap:30px; align-items:end; padding:56px 6vw; background:var(--orange); border-top:3px solid var(--ink); }
footer p { margin:0; }
@media (max-width:900px) {
  .site-header { grid-template-columns:1fr auto auto; inset:10px 10px auto; }
  .site-header .brand > span:last-child { display:none; }
  .menu-toggle { display:grid; place-items:center; width:40px; height:40px; border:0; background:none; font-size:22px; }
  .site-nav { position:absolute; top:68px; left:0; right:0; display:none; padding:18px; border:3px solid var(--ink); border-radius:5px; background:var(--off); box-shadow:5px 5px 0 var(--ink); }
  .site-nav.is-open { display:grid; }
  .hero-copy { margin-left:24px; }
  .hero-ornament { transform:scale(.75) rotate(7deg); transform-origin:top right; }
  .section-head { grid-template-columns:1fr; }
  .section-head .eyebrow { grid-row:auto; justify-self:start; }
  .greeting,.schedule-layout,.inquiry { grid-template-columns:1fr; }
  .greeting-photo { border-right:0; border-bottom:3px solid var(--ink); }
  .strength-grid,.master-grid,.gallery-grid { grid-template-columns:1fr; }
  .master-grid article:nth-child(2) { transform:none; }
  .link-list { grid-template-columns:1fr; }
  footer { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .lang-switch button { width:34px; }
  .hero-copy { width:calc(100% - 32px); margin:0 16px 78px; }
  .hero h1 { font-size:clamp(42px,13.2vw,57px); }
  .hero-lead { font-size:15px; }
  .hero-ornament { display:none; }
  .hero-chips span:nth-child(n+3) { display:none; }
  .section { padding:76px 18px; }
  .section-head { margin-bottom:42px; }
  .program-grid { grid-template-columns:1fr; }
  .program-grid article,.program-grid .program-feature,.program-grid .program-oneday { grid-column:auto; grid-row:auto; min-height:430px; }
  .contact-form { grid-template-columns:1fr; padding:20px; }
  .contact-form label { grid-column:1; }
}
