@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500&family=Cinzel:wght@500;600&family=Zen+Maru+Gothic:wght@400;500;700;900&family=Noto+Sans+JP:wght@400;500;700&display=swap');

:root{
  --coral:#df6f78;
  --coral-dark:#b84b59;
  --coral-light:#f7dcdd;
  --teal:#19767a;
  --teal-dark:#0b4a50;
  --teal-light:#d9efeb;
  --sun:#d9a84b;
  --sand:#fbf7ef;
  --sand-deep:#eee3d1;
  --ink:#25312e;
  --ink-soft:#5a625d;
  --monstera:#35664d;
  --white:#ffffff;
  --shadow:0 26px 64px -30px rgba(22,54,49,.38);
  --shadow-sm:0 14px 34px -22px rgba(22,54,49,.34);
  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:10px;
  --font-en:'Cormorant Garamond',serif;
  --font-label:'Cinzel',serif;
  --font-jp-head:'Zen Maru Gothic',sans-serif;
  --font-jp-body:'Noto Sans JP',sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{
  margin:0;
  font-family:var(--font-jp-body);
  color:var(--ink);
  background:var(--sand);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
h1,h2,h3,h4{font-family:var(--font-jp-head);line-height:1.5;margin:0 0 .6em;word-break:keep-all;overflow-wrap:anywhere}
p{margin:0 0 1em}
.container{width:92%;max-width:1180px;margin:0 auto}
section{position:relative;padding:88px 0}
@media (max-width:720px){section{padding:64px 0}}

.eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--font-label);
  letter-spacing:.22em;
  font-size:.78rem;
  color:var(--teal-dark);
  text-transform:uppercase;
  margin-bottom:1em;
}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--coral)}

h2.section-title{
  font-size:clamp(1.7rem,3.6vw,2.6rem);
  color:var(--ink);
}
h2.section-title .en{
  display:block;
  font-family:var(--font-en);
  font-style:italic;
  font-size:.5em;
  color:var(--coral-dark);
  letter-spacing:.04em;
  margin-bottom:.3em;
}
.lead{color:var(--ink-soft);max-width:640px}

.btn{
  display:inline-flex;align-items:center;gap:.5em;
  padding:.95em 1.9em;
  border-radius:999px;
  font-weight:700;
  font-size:.95rem;
  border:2px solid transparent;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease;
  cursor:pointer;
}
.btn svg{width:1.1em;height:1.1em;flex:none}
.icon-svg{width:1.2em;height:1.2em;flex:none}
.btn-primary{background:linear-gradient(135deg,var(--coral),var(--coral-dark));color:var(--white);box-shadow:var(--shadow-sm)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-outline{border-color:var(--teal);color:var(--teal-dark);background:rgba(255,255,255,.5)}
.btn-outline:hover{background:var(--teal);color:var(--white);transform:translateY(-2px)}
.btn-ghost{color:var(--teal-dark);border-color:transparent;padding:.6em 0}
.btn-ghost svg{transition:transform .2s ease}
.btn-ghost:hover svg{transform:translateX(4px)}
.btn-sun{background:linear-gradient(135deg,var(--sun),#d18f22);color:var(--white);box-shadow:var(--shadow-sm)}
.btn-sun:hover{transform:translateY(-2px);box-shadow:var(--shadow)}

/* ---------- decorative motifs ---------- */
.motif{position:absolute;pointer-events:none;opacity:.9;z-index:0}
.motif-monstera{color:var(--monstera)}
.motif-hibiscus{color:var(--coral)}
.motif svg{width:100%;height:100%;display:block}

.wave-divider{line-height:0;position:relative;z-index:1}
.wave-divider svg{width:100%;height:auto;display:block}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(251,243,231,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(43,35,32,.08);
}
.site-header .container{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
}
.brand{display:flex;align-items:center;gap:.7em}
.brand-mark{width:44px;height:44px;flex:none}
.brand-text .name{
  font-family:var(--font-en);font-weight:600;font-size:1.35rem;letter-spacing:.03em;color:var(--ink);
  display:block;
}
.brand-text .sub{
  font-family:var(--font-jp-body);font-size:.66rem;letter-spacing:.08em;color:var(--teal-dark);
  display:block;
}
.main-nav{display:flex;align-items:center;gap:28px}
.main-nav a{
  font-size:.92rem;font-weight:500;position:relative;padding:6px 0;
}
.main-nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--coral);
  transition:width .25s ease;
}
.main-nav a:hover::after,.main-nav a.active::after{width:100%}
.main-nav .btn{padding:.6em 1.4em;font-size:.85rem}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;position:relative;z-index:110}
.nav-toggle svg{width:28px;height:28px;color:var(--ink)}

@media (max-width:940px){
  .main-nav{
    position:fixed;inset:0 0 0 auto;width:min(320px,84vw);height:100vh;
    background:var(--sand);flex-direction:column;align-items:flex-start;
    padding:100px 32px 40px;gap:22px;
    box-shadow:-20px 0 40px rgba(0,0,0,.15);
    transform:translateX(100%);transition:transform .35s ease;
  }
  .main-nav.open{transform:translateX(0)}
  .nav-toggle{display:block}
  body.nav-open{overflow:hidden}
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:88vh;
  display:flex;align-items:flex-end;
  color:var(--white);
  background-size:cover;background-position:center;
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(18,22,20,.86) 8%,rgba(18,45,45,.55) 55%,rgba(18,45,45,.28) 100%);
}
.hero-inner{position:relative;z-index:2;padding-bottom:72px;width:100%}
.hero .eyebrow{color:var(--sand)}
.hero .eyebrow::before{background:var(--sun)}
.hero h1{
  font-size:clamp(2.3rem,5.6vw,4.2rem);
  color:var(--white);
  margin-bottom:.4em;
}
.hero h1 .en{
  display:block;font-family:var(--font-en);font-style:italic;font-weight:500;
  font-size:.42em;letter-spacing:.05em;color:var(--sun);margin-bottom:.35em;
}
.hero p.lead{color:rgba(255,255,255,.86);font-size:1.05rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:1.6em}
.hero-silhouette{position:absolute;right:2%;bottom:0;width:min(360px,32vw);opacity:.9;z-index:1;color:rgba(255,255,255,.16)}
@media (max-width:720px){.hero-silhouette{width:44vw;opacity:.5}}

.page-hero{
  min-height:56vh;display:flex;align-items:flex-end;
}
.page-hero .hero-inner{padding-bottom:56px}

/* ---------- class intro cards (top page) ---------- */
.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:48px}
@media (max-width:940px){.class-grid{grid-template-columns:1fr}}
.class-card{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  background:var(--white);box-shadow:var(--shadow-sm);
  transition:transform .3s ease,box-shadow .3s ease;
  display:flex;flex-direction:column;
}
.class-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.class-card .thumb{height:220px;background-size:cover;background-position:center;position:relative}
.class-card .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(20,20,18,.55))}
.class-card .tag{
  position:absolute;left:18px;bottom:14px;z-index:2;color:var(--white);
  font-family:var(--font-en);font-style:italic;font-size:1.5rem;
}
.class-card .body{padding:26px 26px 30px;display:flex;flex-direction:column;gap:.8em;flex:1}
.class-card .body h3{font-size:1.3rem;margin:0}
.class-card .body p{color:var(--ink-soft);font-size:.92rem;flex:1}
.class-card.coral .tag,.class-card.coral .body h3{color:var(--coral-dark)}
.class-card.teal .tag,.class-card.teal .body h3{color:var(--teal-dark)}
.class-card.sun .tag,.class-card.sun .body h3{color:#a86d1a}

/* ---------- band / cta ---------- */
.band{background:linear-gradient(135deg,var(--teal),var(--teal-dark));color:var(--white)}
.band .section-title,.band .eyebrow{color:var(--white)}
.band .eyebrow::before{background:var(--sun)}
.band .lead{color:rgba(255,255,255,.85)}

.cta-panel{
  border-radius:var(--radius-lg);
  background:linear-gradient(135deg,var(--coral),var(--coral-dark));
  color:var(--white);padding:52px;
  display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
  box-shadow:var(--shadow);
}
.cta-panel h3{font-size:1.6rem;margin-bottom:.3em;color:var(--white)}
.cta-panel p{color:rgba(255,255,255,.9);margin:0}

/* ---------- profile digest (top page) ---------- */
.profile-digest{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;
}
@media (max-width:860px){.profile-digest{grid-template-columns:1fr}}
.profile-photo{
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);
  aspect-ratio:4/5;background-size:cover;background-position:center;position:relative;
}
.profile-photo .badge{
  position:absolute;left:-18px;bottom:24px;background:var(--white);
  padding:14px 20px;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);
  font-family:var(--font-en);font-style:italic;color:var(--coral-dark);font-size:1.1rem;
}
.profile-copy .name{font-family:var(--font-en);font-style:italic;font-size:1.1rem;color:var(--coral-dark);margin-bottom:.3em}

/* ---------- blog / news ---------- */
.news-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
@media (max-width:940px){.news-strip{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.news-strip{grid-template-columns:1fr}}
.news-card{
  background:var(--white);border-radius:var(--radius-md);overflow:hidden;
  box-shadow:var(--shadow-sm);display:flex;flex-direction:column;
  transition:transform .25s ease,box-shadow .25s ease;
}
.news-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.news-card .thumb{aspect-ratio:16/9;background-size:cover;background-position:center;background-color:var(--sand-deep)}
.news-card .thumb.portrait{object-fit:contain;background:var(--sand-deep)}
.news-card .meta{padding:18px 20px 0;display:flex;align-items:center;gap:.7em;font-size:.78rem;color:var(--ink-soft)}
.cat-pill{
  display:inline-block;padding:.25em .9em;border-radius:999px;
  font-size:.72rem;font-weight:700;letter-spacing:.03em;
}
.cat-pill.hula{background:var(--coral-light);color:var(--coral-dark)}
.cat-pill.tahitian{background:var(--teal-light);color:var(--teal-dark)}
.cat-pill.kids{background:#fbe6bd;color:#a86d1a}
.news-card h4{padding:10px 20px 0;font-size:1.02rem;margin:0}
.news-card p.excerpt{padding:8px 20px 22px;color:var(--ink-soft);font-size:.86rem;margin:0;flex:1}
.news-empty{
  padding:40px;text-align:center;color:var(--ink-soft);
  background:var(--white);border-radius:var(--radius-md);border:1px dashed var(--sand-deep);
}
.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px}

.archive-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px}
@media (max-width:940px){.archive-list{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.archive-list{grid-template-columns:1fr}}

.post-detail{max-width:760px;margin:0 auto;background:var(--white);padding:48px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
@media (max-width:620px){.post-detail{padding:28px 22px}}
.post-detail .thumb{aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;background-size:cover;background-position:center;margin-bottom:28px}
.post-detail .content{line-height:2}
.post-detail .content img{border-radius:var(--radius-sm);margin:1.2em 0}
.post-detail .content h2{font-size:1.3rem;margin-top:1.4em}
.post-detail .content h3{font-size:1.1rem;margin-top:1.2em}
.post-back{margin-bottom:24px}

/* ---------- info blocks (class pages) ---------- */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
@media (max-width:860px){.info-grid{grid-template-columns:1fr}}
.info-card{background:var(--white);border-radius:var(--radius-md);padding:30px;box-shadow:var(--shadow-sm)}
.info-card .icon{width:44px;height:44px;margin-bottom:16px;color:var(--coral)}
.info-card h4{font-size:1.05rem;margin-bottom:.5em}
.info-card p{color:var(--ink-soft);font-size:.9rem;margin:0}

.schedule-table{width:100%;border-collapse:collapse;margin-top:28px;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}
.schedule-table th,.schedule-table td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--sand-deep);font-size:.92rem}
.schedule-table th{background:var(--teal-light);color:var(--teal-dark);font-weight:700}
.schedule-note{font-size:.8rem;color:var(--ink-soft);margin-top:.8em}

.faq-list{margin-top:28px;display:flex;flex-direction:column;gap:14px}
.faq-item{background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);overflow:hidden}
.faq-item summary{padding:18px 22px;cursor:pointer;font-weight:700;display:flex;justify-content:space-between;align-items:center;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:1.4rem;color:var(--coral);transition:transform .2s ease}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item .a{padding:0 22px 20px;color:var(--ink-soft);font-size:.92rem}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:var(--sand);padding:64px 0 28px;position:relative;overflow:hidden}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}}
.footer-brand .name{font-family:var(--font-en);font-style:italic;font-size:1.4rem;color:var(--white)}
.footer-brand p{color:rgba(251,243,231,.7);font-size:.86rem;margin-top:.8em}
.footer-col h5{font-size:.8rem;letter-spacing:.1em;color:var(--sun);margin-bottom:1em;font-family:var(--font-jp-body)}
.footer-col a{display:block;color:rgba(251,243,231,.82);font-size:.88rem;margin-bottom:.8em}
.footer-col a:hover{color:var(--white)}
.footer-social{display:flex;gap:12px;margin-top:.4em}
.footer-social a{
  width:38px;height:38px;border-radius:50%;background:rgba(251,243,231,.1);
  display:flex;align-items:center;justify-content:center;
}
.footer-social a svg{width:18px;height:18px}
.footer-bottom{
  margin-top:48px;padding-top:24px;border-top:1px solid rgba(251,243,231,.15);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:.78rem;color:rgba(251,243,231,.55);
}

/* ---------- legal pages ---------- */
.legal-body{max-width:760px;margin:0 auto;background:var(--white);padding:48px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
@media (max-width:620px){.legal-body{padding:28px 22px}}
.legal-body h2{font-size:1.15rem;margin-top:1.6em;color:var(--teal-dark)}
.legal-body table{width:100%;border-collapse:collapse;margin-top:1em}
.legal-body th,.legal-body td{text-align:left;padding:14px;border-bottom:1px solid var(--sand-deep);font-size:.9rem;vertical-align:top}
.legal-body th{width:32%;color:var(--ink-soft);font-weight:700}
.legal-note{
  background:var(--coral-light);color:var(--coral-dark);border-radius:var(--radius-sm);
  padding:16px 20px;font-size:.85rem;margin:1.4em 0;
}

/* ---------- admin ---------- */
.admin-body{background:var(--sand-deep);min-height:100vh;font-family:var(--font-jp-body)}
.admin-shell{display:flex;min-height:100vh}
.admin-side{width:230px;flex:none;background:var(--ink);color:var(--sand);padding:28px 20px}
.admin-side .brand{color:var(--white);font-family:var(--font-en);font-style:italic;font-size:1.3rem;margin-bottom:2em}
.admin-side a{display:block;padding:10px 14px;border-radius:10px;margin-bottom:6px;color:rgba(251,243,231,.8);font-size:.9rem}
.admin-side a:hover,.admin-side a.active{background:rgba(251,243,231,.12);color:var(--white)}
.admin-main{flex:1;padding:36px 42px;max-width:1100px}
.admin-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--teal-dark),var(--ink))}
.admin-login form{background:var(--white);padding:44px 40px;border-radius:var(--radius-lg);box-shadow:var(--shadow);width:min(380px,90vw)}
.admin-login h1{font-family:var(--font-en);font-style:italic;text-align:center;color:var(--coral-dark)}
.admin-login p.sub{text-align:center;color:var(--ink-soft);font-size:.85rem;margin-bottom:1.6em}
.field{margin-bottom:18px}
.field label{display:block;font-size:.82rem;font-weight:700;margin-bottom:.4em;color:var(--ink-soft)}
.field input[type=text],.field input[type=password],.field input[type=date],.field select,.field textarea{
  width:100%;padding:.85em 1em;border:1px solid var(--sand-deep);border-radius:var(--radius-sm);
  font-size:.95rem;font-family:inherit;background:var(--white);
}
.field-hint{font-size:.76rem;color:var(--ink-soft);margin-top:.3em}
.error-box{background:#fbe0e2;color:#b23246;padding:12px 16px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:16px}
.success-box{background:#dcefe0;color:#1f6b39;padding:12px 16px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:16px}

.tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.tabs a{padding:.6em 1.3em;border-radius:999px;background:var(--white);font-size:.85rem;font-weight:700;color:var(--ink-soft);box-shadow:var(--shadow-sm)}
.tabs a.active{background:var(--coral);color:var(--white)}

.admin-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}
.admin-table th,.admin-table td{padding:14px 16px;text-align:left;font-size:.85rem;border-bottom:1px solid var(--sand-deep)}
.admin-table th{background:var(--sand);color:var(--ink-soft)}
.admin-table img.thumb-sm{width:64px;height:44px;object-fit:cover;border-radius:6px;background:var(--sand-deep)}
.status-badge{padding:.3em .8em;border-radius:999px;font-size:.72rem;font-weight:700}
.status-badge.published{background:#dcefe0;color:#1f6b39}
.status-badge.draft{background:#eee0c9;color:#9a6c14}
.row-actions a{font-size:.8rem;margin-right:10px;color:var(--teal-dark);font-weight:700}
.row-actions a.danger{color:#b23246}

.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;flex-wrap:wrap;gap:12px}
.admin-editor-grid{display:grid;grid-template-columns:1fr 300px;gap:28px}
@media (max-width:900px){.admin-editor-grid{grid-template-columns:1fr}}
.editor-card{background:var(--white);padding:26px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:20px}
.thumb-preview{width:100%;aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--sand) center/cover no-repeat;margin-bottom:14px;border:1px dashed var(--sand-deep)}

/* ---------- utility ---------- */
.text-center{text-align:center}
.mt-0{margin-top:0}
.stack{display:flex;flex-direction:column;gap:10px}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--coral);color:#fff;padding:10px 16px;z-index:1000}
.skip-link:focus{left:10px;top:10px}

/* ---------- 2026 tropical resort refinement ---------- */
body{
  background:
    radial-gradient(circle at 88% 12%,rgba(217,168,75,.10),transparent 28rem),
    radial-gradient(circle at 8% 42%,rgba(25,118,122,.06),transparent 30rem),
    var(--sand);
}
section{isolation:isolate;overflow:hidden}
section>.container{position:relative;z-index:2}
.container{max-width:1160px}

.site-header{
  background:rgba(251,247,239,.84);
  border-bottom:1px solid rgba(11,74,80,.10);
  transition:background .25s ease,box-shadow .25s ease;
}
.site-header.scrolled{background:rgba(251,247,239,.96);box-shadow:0 8px 28px rgba(11,74,80,.08)}
.site-header .container{padding:11px 0}
.brand-mark{width:48px;height:48px;filter:drop-shadow(0 6px 12px rgba(184,75,89,.15))}
.brand-text .name{font-size:1.42rem;letter-spacing:.08em}
.brand-text .sub{letter-spacing:.18em;text-transform:uppercase}
.main-nav{gap:25px}
.main-nav a{font-size:.86rem;letter-spacing:.015em}
.main-nav .btn{box-shadow:none}

.eyebrow{font-size:.72rem;letter-spacing:.28em;font-weight:600}
.eyebrow::before{width:36px;background:linear-gradient(90deg,var(--coral),var(--sun))}
h2.section-title{font-size:clamp(1.9rem,3.5vw,2.75rem);letter-spacing:.02em}
h2.section-title .en{font-size:.56em;letter-spacing:.08em;color:var(--coral-dark)}
.lead{font-size:1rem;line-height:2.05}

.hero{
  min-height:calc(100svh - 70px);
  background-position:center 42%;
}
.hero::before{
  background:
    linear-gradient(90deg,rgba(8,37,40,.78) 0%,rgba(8,37,40,.54) 43%,rgba(8,37,40,.08) 76%),
    linear-gradient(0deg,rgba(8,31,32,.68) 0%,transparent 58%);
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(circle at 73% 26%,rgba(255,240,184,.30) 0,rgba(255,240,184,.10) 12%,transparent 30%),
    linear-gradient(112deg,transparent 45%,rgba(255,255,255,.09) 52%,transparent 61%);
  mix-blend-mode:screen;
}
.hero-inner{padding-bottom:96px;max-width:1160px}
.hero .hero-inner>*{max-width:760px}
.hero .eyebrow{color:rgba(255,255,255,.92);text-shadow:0 2px 18px rgba(0,0,0,.25)}
.hero h1{font-size:clamp(2.45rem,5vw,4.55rem);line-height:1.35;letter-spacing:.025em;text-shadow:0 5px 30px rgba(0,0,0,.24)}
.hero h1 .en{font-size:.48em;color:#f2c86d;letter-spacing:.09em;text-shadow:none}
.hero p.lead{max-width:650px;font-size:1rem;line-height:2;color:rgba(255,255,255,.9);text-shadow:0 2px 12px rgba(0,0,0,.2)}
.hero-actions{margin-top:1.9em}
.hero-silhouette{right:4%;width:min(350px,29vw);color:rgba(255,255,255,.13);filter:drop-shadow(0 20px 20px rgba(6,43,42,.18))}
.page-hero{min-height:64vh}
.page-hero .hero-inner{padding-bottom:80px}

.hero-wave{margin-top:-1px;background:transparent;z-index:5}
.hero-wave svg{height:64px;margin-top:-63px;position:relative}
.hero-wave path{filter:drop-shadow(0 -8px 12px rgba(11,74,80,.06))}

.btn{letter-spacing:.025em;box-shadow:none}
.btn-primary{background:linear-gradient(135deg,#e37b7f,var(--coral-dark));box-shadow:0 12px 28px -16px rgba(184,75,89,.7)}
.btn-outline{border-width:1px;border-color:rgba(25,118,122,.65);background:rgba(255,255,255,.78);backdrop-filter:blur(8px)}
.hero .btn-outline{color:#fff;border-color:rgba(255,255,255,.65);background:rgba(255,255,255,.10)}
.hero .btn-outline:hover{background:#fff;color:var(--teal-dark)}

#about::before,#founder::before,#contact::before{
  content:"";position:absolute;width:520px;height:520px;border-radius:50%;z-index:0;pointer-events:none;
  background:radial-gradient(circle,rgba(25,118,122,.075),transparent 68%);
}
#about::before{left:-290px;top:-180px}
#founder::before{right:-250px;bottom:-220px;background:radial-gradient(circle,rgba(223,111,120,.09),transparent 68%)}
#contact::before{left:-260px;bottom:-260px;background:radial-gradient(circle,rgba(217,168,75,.12),transparent 68%)}

.band{
  background:
    radial-gradient(circle at 84% 14%,rgba(216,239,235,.15),transparent 28rem),
    radial-gradient(circle at 8% 88%,rgba(217,168,75,.13),transparent 24rem),
    linear-gradient(135deg,#176f72 0%,#0b4a50 72%,#083c42 100%);
}
.band::after{
  content:"";position:absolute;inset:0;z-index:0;opacity:.17;pointer-events:none;
  background-image:repeating-radial-gradient(ellipse at 50% 110%,transparent 0,transparent 18px,rgba(255,255,255,.13) 19px,transparent 21px);
  background-size:220px 70px;
}
.band h2.section-title .en{color:#f2c86d}

.class-grid{gap:24px;margin-top:52px}
.class-card{border-radius:32px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.96);box-shadow:0 24px 54px -36px rgba(0,26,28,.75)}
.class-card .thumb{height:245px;overflow:hidden;transition:background-size .45s ease;background-size:cover}
.class-card .thumb::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.05),transparent 44%);z-index:1}
.class-card .thumb::after{background:linear-gradient(180deg,transparent 45%,rgba(6,36,38,.7))}
.class-card .tag{font-size:1.8rem;left:22px;bottom:16px;color:#fff!important;text-shadow:0 2px 12px rgba(0,0,0,.25)}
.class-card .body{padding:28px 28px 32px}
.class-card .body h3{font-size:1.35rem}
.class-card:hover{transform:translateY(-8px)}

.info-card,.news-card,.faq-item,.post-detail,.legal-body,.editor-card{
  border:1px solid rgba(11,74,80,.075);
  box-shadow:0 18px 48px -34px rgba(11,74,80,.55);
}
.info-card{position:relative;padding:34px 30px 32px;overflow:hidden}
.info-card::after{content:"";position:absolute;left:30px;right:30px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--coral),var(--sun));transform:scaleX(.25);transform-origin:left;opacity:.65;transition:transform .3s ease}
.info-card:hover::after{transform:scaleX(1)}
.info-card>.card-art{
  width:112px;height:112px;margin:-10px 0 12px -8px;
  display:grid;place-items:center;position:relative;
}
.info-card>.card-art::after{
  content:"";position:absolute;width:62px;height:12px;left:21px;bottom:5px;border-radius:50%;
  background:rgba(11,74,80,.09);filter:blur(9px);transform:scaleY(.45);z-index:0;
}
.info-card>.card-art img{
  width:100%;height:100%;object-fit:contain;position:relative;z-index:1;
  filter:drop-shadow(0 10px 9px rgba(11,74,80,.14));
  transition:transform .45s cubic-bezier(.22,.61,.36,1),filter .45s ease;
}
.info-card:hover>.card-art img{transform:translateY(-5px) rotate(-1.5deg) scale(1.035);filter:drop-shadow(0 15px 12px rgba(11,74,80,.18))}
.page-kids .info-card>.card-art{width:118px;height:118px;margin-top:-12px}
.page-kids .info-card:nth-child(2):hover>.card-art img{transform:translateY(-6px) rotate(2deg) scale(1.04)}

.profile-digest{gap:72px}
.profile-photo{border-radius:42% 42% 28px 28px;box-shadow:0 30px 70px -40px rgba(11,74,80,.6)}
.profile-photo::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.5);border-radius:inherit;box-shadow:inset 0 0 60px rgba(255,245,224,.08)}
.profile-photo .badge{left:20px;bottom:20px;border-radius:999px;background:rgba(251,247,239,.92);backdrop-filter:blur(8px)}

.news-card{border-radius:22px}
.news-card .thumb{transition:transform .45s ease}
.news-card:hover .thumb{transform:scale(1.025)}
.cat-pill{border:1px solid rgba(255,255,255,.75)}

.schedule-table{border:1px solid rgba(255,255,255,.22);box-shadow:0 24px 50px -35px rgba(0,0,0,.5)}
.schedule-table th{background:#d8efeb}
.faq-item summary{padding:20px 24px}
.faq-item summary::after{font-family:var(--font-en);font-weight:400}

.cta-panel{position:relative;overflow:hidden;padding:56px;background:linear-gradient(135deg,#df767e 0%,#bd4f5b 72%,#a53e4d 100%)}
.cta-panel::after{content:"";position:absolute;width:260px;height:260px;right:-72px;top:-120px;border:1px solid rgba(255,255,255,.24);border-radius:50%;box-shadow:0 0 0 28px rgba(255,255,255,.035),0 0 0 58px rgba(255,255,255,.025)}
.cta-panel>*{position:relative;z-index:1}

.site-footer{background:linear-gradient(145deg,#182a27,#0c3536);padding-top:72px}
.footer-brand .name{font-size:1.7rem;letter-spacing:.1em;color:#f2c86d}
.footer-social{flex-wrap:wrap;gap:8px;margin-top:16px}
.footer-social a{
  width:auto;height:auto;padding:8px 13px;border:1px solid rgba(242,200,109,.32);border-radius:999px;
  background:rgba(251,243,231,.055);font-family:var(--font-en);font-size:.66rem;font-weight:600;letter-spacing:.12em;
}
.footer-social a:hover{background:rgba(242,200,109,.14);border-color:rgba(242,200,109,.62)}

.motif{filter:drop-shadow(0 10px 18px rgba(11,74,80,.08))}
.motif-hibiscus{color:#df767e}

@media (prefers-reduced-motion:no-preference){
  .motif-hibiscus{animation:tropical-float 8s ease-in-out infinite}
  .motif-monstera{animation:tropical-sway 10s ease-in-out infinite;transform-origin:80% 100%}
  @keyframes tropical-float{0%,100%{translate:0 0}50%{translate:0 -8px}}
  @keyframes tropical-sway{0%,100%{rotate:-1deg}50%{rotate:2deg}}
}

@media (max-width:940px){
  .main-nav{background:linear-gradient(160deg,#fbf7ef,#f3eadc)}
  .hero::before{background:linear-gradient(90deg,rgba(8,37,40,.75),rgba(8,37,40,.4)),linear-gradient(0deg,rgba(8,31,32,.62),transparent 62%)}
  .class-card .thumb{height:280px}
}

@media (max-width:720px){
  .site-header .container{padding:9px 0}
  .brand-mark{width:42px;height:42px}
  .brand-text .name{font-size:1.25rem}
  .hero{min-height:82svh;background-position:58% center}
  .page-hero{min-height:67svh}
  .hero-inner,.page-hero .hero-inner{padding-bottom:64px}
  .hero h1{font-size:clamp(2rem,10vw,3rem);line-height:1.42}
  .hero h1 .en{font-size:.52em}
  .hero p.lead{font-size:.91rem;line-height:1.9}
  .hero-silhouette{right:-8%;width:58vw;opacity:.25!important}
  .hero-wave svg{height:38px;margin-top:-37px}
  .hero-actions{gap:10px}
  .hero-actions .btn{width:100%;justify-content:center;padding:.85em 1.15em}
  .class-grid{margin-top:36px}
  .class-card .thumb{height:225px}
  .profile-digest{gap:40px}
  .profile-photo{border-radius:36% 36% 22px 22px}
  .cta-panel{padding:36px 26px}
  .cta-panel .btn{width:100%;justify-content:center}
  .section-head-row{align-items:flex-start}
}

@media (max-width:390px){
  .container{width:90%}
  section{padding:58px 0}
  .hero .eyebrow{font-size:.62rem;letter-spacing:.18em}
  .hero h1{font-size:2.05rem}
  h2.section-title{font-size:1.7rem}
  .info-card{padding:28px 24px}
  .schedule-table th,.schedule-table td{padding:13px 11px;font-size:.82rem}
}

/* ---------- generated Hawaiian art direction ---------- */
body::before{
  content:"";position:fixed;inset:-10%;z-index:-2;pointer-events:none;
  background-image:url('/assets/img/hawaiian-pattern-v2.webp');
  background-size:760px 760px;
  opacity:.035;mix-blend-mode:multiply;
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(ellipse at 18% 12%,rgba(255,255,255,.72),transparent 25%),
    repeating-radial-gradient(ellipse at 50% -20%,transparent 0 24px,rgba(25,118,122,.025) 26px 28px,transparent 30px 54px);
  opacity:.7;
}

.motif-monstera,.motif-hibiscus{display:none}

.band::before{
  content:"";position:absolute;inset:-80px;z-index:0;pointer-events:none;
  background-image:url('/assets/img/hawaiian-pattern-v2.webp');
  background-size:600px 600px;
  opacity:.23;
  mix-blend-mode:soft-light;
}

#about::after,
.page-hula .hero-wave + section::after,
.page-tahitian .hero-wave + section::after,
.page-kids .hero-wave + section::after{
  content:"";position:absolute;z-index:1;pointer-events:none;
  width:min(520px,42vw);aspect-ratio:1;
  right:-72px;top:34px;
  background:url('/assets/img/botanical-corner-v2.webp') center/contain no-repeat;
  opacity:.82;
  transform-origin:78% 90%;
  filter:drop-shadow(0 26px 30px rgba(13,63,55,.16));
}
.page-hula .hero-wave + section::after,
.page-tahitian .hero-wave + section::after,
.page-kids .hero-wave + section::after{opacity:.68;right:-95px;top:18px}

#founder::after,
.instagram-section::before{
  content:"";position:absolute;z-index:1;pointer-events:none;
  width:min(460px,38vw);aspect-ratio:1;left:-94px;
  background:url('/assets/img/botanical-left-palm-v3.webp') center/contain no-repeat;
  opacity:.6;transform-origin:28% 92%;
  filter:drop-shadow(0 24px 28px rgba(13,63,55,.13));
}
#founder::after{top:30px;opacity:.46}
.instagram-section::before{bottom:-32px}
.page-kids .instagram-section::before,
#contact::after{background-image:url('/assets/img/botanical-left-ti-v3.webp')}
#contact::after{
  content:"";position:absolute;z-index:1;pointer-events:none;width:min(410px,35vw);aspect-ratio:1;
  left:-80px;top:58px;background-position:center;background-size:contain;background-repeat:no-repeat;
  opacity:.34;transform-origin:30% 90%;filter:drop-shadow(0 22px 26px rgba(13,63,55,.12));
}

/* ---------- official Instagram profile embeds ---------- */
.instagram-section{background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(244,236,224,.72));overflow:hidden}
.instagram-section>.container{position:relative;z-index:2}
.instagram-grid{display:grid;grid-template-columns:minmax(0,560px);justify-content:center;gap:28px;margin-top:42px}
.instagram-grid-two{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.instagram-profile{
  position:relative;padding:22px;border:1px solid rgba(11,74,80,.09);border-radius:28px;
  background:rgba(255,255,255,.88);box-shadow:0 26px 60px -42px rgba(11,74,80,.58);backdrop-filter:blur(8px);
}
.instagram-profile::after{
  content:"";position:absolute;inset:9px;border:1px solid rgba(217,168,75,.2);border-radius:21px;pointer-events:none;
}
.instagram-profile-head{display:flex;align-items:center;gap:13px;padding:0 6px 17px;position:relative;z-index:1}
.instagram-profile-flower{width:40px;height:40px;color:var(--coral);display:grid;place-items:center}
.instagram-profile-flower .icon-svg{width:38px;height:38px;stroke-width:1.25}
.instagram-profile-label{display:block;color:var(--teal);font-family:var(--font-en);font-size:.66rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.instagram-profile-head strong{display:block;margin-top:2px;font-size:.98rem;color:var(--ink)}
.instagram-profile .instagram-media{width:100%!important;min-width:0!important;max-width:none!important;margin:0 auto!important;border-radius:18px!important;overflow:hidden}
.instagram-profile .instagram-media>a{display:flex;min-height:320px;align-items:center;justify-content:center;padding:28px;text-align:center;color:var(--teal);background:linear-gradient(145deg,var(--sand),#fff)}
.instagram-profile iframe{max-width:100%!important}
.instagram-profile-link{position:relative;z-index:2;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 6px 2px;color:var(--teal);font-size:.82rem;font-weight:700}
.instagram-profile-link .icon-svg{width:18px;height:18px}

#classes::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(115deg,rgba(4,45,48,.18),transparent 38%,rgba(248,223,196,.06));
}

.hero{background-size:cover}
.hero{--hero-y:42%;--hero-shift:0px;background-position:center calc(var(--hero-y) + var(--hero-shift))}
.page-hula .hero{--hero-y:49%}
.page-tahitian .hero{--hero-y:46%}
.page-kids .hero{--hero-y:48%}
.hero::after{background-position:0 0,0 0;will-change:background-position}
.hero .container{transition:transform .12s linear}
.hero-inner{width:92%;margin-inline:auto}
.hero-silhouette{display:none}

.hero-inner>.eyebrow,.hero-inner>h1,.hero-inner>.lead,.hero-inner>.hero-actions{
  animation:hero-copy-in .9s cubic-bezier(.22,.61,.36,1) both;
}
.hero-inner>h1{animation-delay:.08s}
.hero-inner>.lead{animation-delay:.16s}
.hero-inner>.hero-actions{animation-delay:.24s}
@keyframes hero-copy-in{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}

.page-hula .hero::before{
  background:linear-gradient(90deg,rgba(20,42,38,.82),rgba(56,49,39,.47) 58%,rgba(112,68,49,.16)),linear-gradient(0deg,rgba(15,35,31,.62),transparent 62%);
}
.page-tahitian .hero::before{
  background:linear-gradient(90deg,rgba(5,47,51,.84),rgba(10,74,76,.44) 58%,rgba(10,74,76,.12)),linear-gradient(0deg,rgba(4,39,42,.65),transparent 62%);
}
.page-kids .hero::before{
  background:linear-gradient(90deg,rgba(31,54,48,.8),rgba(91,71,39,.4) 58%,rgba(180,123,38,.10)),linear-gradient(0deg,rgba(24,44,39,.62),transparent 62%);
}

.class-card,.info-card,.news-card,.profile-digest,.instagram-profile,.cta-panel,.faq-item,.schedule-table{
  transition-property:opacity,transform,box-shadow;
  transition-duration:.7s;
  transition-timing-function:cubic-bezier(.22,.61,.36,1);
}
.reveal-ready{opacity:0;transform:translateY(26px)}
.reveal-ready.is-visible{opacity:1;transform:translateY(0)}
.class-card.reveal-ready:nth-child(2),.info-card.reveal-ready:nth-child(2),.news-card.reveal-ready:nth-child(2){transition-delay:.1s}
.class-card.reveal-ready:nth-child(3),.info-card.reveal-ready:nth-child(3),.news-card.reveal-ready:nth-child(3){transition-delay:.2s}

@media (prefers-reduced-motion:no-preference){
  body::before{animation:generated-pattern-drift 46s linear infinite}
  body::after{animation:water-light-shift 18s ease-in-out infinite alternate}
  .band::before{animation:generated-pattern-band 34s linear infinite}
  #about::after,
  .page-hula .hero-wave + section::after,
  .page-tahitian .hero-wave + section::after,
  .page-kids .hero-wave + section::after{animation:generated-botanical-sway 8s ease-in-out infinite}
  #founder::after,.instagram-section::before,#contact::after{animation:generated-botanical-sway-left 10s ease-in-out infinite}
  @keyframes generated-pattern-drift{to{transform:translate3d(120px,80px,0)}}
  @keyframes generated-pattern-band{to{background-position:600px 220px}}
  @keyframes water-light-shift{0%{transform:translate3d(-1.5%,0,0) scale(1)}100%{transform:translate3d(1.5%,1%,0) scale(1.025)}}
  @keyframes generated-botanical-sway{0%,100%{transform:rotate(-1.2deg) translateY(0)}50%{transform:rotate(1.6deg) translateY(-9px)}}
  @keyframes generated-botanical-sway-left{0%,100%{transform:rotate(1.1deg) translateY(0)}50%{transform:rotate(-1.8deg) translateY(-11px)}}
}

.cta-panel::before{
  content:"";position:absolute;inset:-80px;z-index:0;pointer-events:none;
  background:url('/assets/img/hawaiian-pattern-v2.webp') center/560px repeat;
  opacity:.12;mix-blend-mode:soft-light;
}
.cta-panel::after{opacity:.72}

.legal-body{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
}
.field input[type=text],.field input[type=password],.field input[type=date],.field select,.field textarea{
  border-color:rgba(11,74,80,.14);
  background:rgba(255,255,255,.88);
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.field input[type=text]:focus,.field input[type=password]:focus,.field input[type=date]:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:rgba(25,118,122,.72);background:#fff;
  box-shadow:0 0 0 4px rgba(25,118,122,.10),0 12px 30px -24px rgba(11,74,80,.7);
}

.site-footer::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:url('/assets/img/hawaiian-pattern-v2.webp') center/660px repeat;
  opacity:.055;mix-blend-mode:luminosity;
}
.site-footer>.container{position:relative;z-index:1}
.footer-col a{transition:color .2s ease,transform .2s ease}
.footer-col a:hover{transform:translateX(4px)}

@media (max-width:940px){
  .main-nav::before{
    content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:url('/assets/img/hawaiian-pattern-v2.webp') center/480px repeat;
    opacity:.055;
  }
}

/* ---------- Generated AINA mark + access map ---------- */
.brand-mark{display:block;object-fit:contain;transform:scale(1.16);transform-origin:center}
.access-map{
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 8% 18%,rgba(242,171,169,.18),transparent 25rem),
    linear-gradient(145deg,#f7f0e5,#eee1d2);
}
.access-map::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:url('/assets/img/hawaiian-pattern-v2.webp') center/620px repeat;
  opacity:.045;mix-blend-mode:multiply;
}
.access-map>.container{position:relative;z-index:1}
.access-map-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:24px;margin-top:36px;align-items:stretch}
.access-map-frame{min-height:450px;overflow:hidden;border:8px solid rgba(255,255,255,.74);border-radius:34px;box-shadow:0 28px 70px -44px rgba(27,68,63,.62)}
.access-map-frame iframe{display:block;width:100%;height:100%;min-height:434px;border:0;filter:saturate(.8) sepia(.06)}
.access-map-card{
  position:relative;overflow:hidden;padding:38px 34px;border-radius:34px;color:#f7efe3;
  background:linear-gradient(155deg,#184f4d,#0c3838);box-shadow:0 28px 70px -44px rgba(7,49,48,.9);
}
.access-map-card::after{content:"";position:absolute;right:-70px;bottom:-74px;width:210px;height:210px;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:0 0 0 24px rgba(255,255,255,.025),0 0 0 50px rgba(255,255,255,.02)}
.access-map-mark{display:block;width:90px;height:90px;margin:-10px 0 8px;object-fit:contain;filter:drop-shadow(0 12px 20px rgba(0,0,0,.2))}
.access-map-kicker{display:block;color:#edc977;font:600 .68rem/1 var(--font-en);letter-spacing:.16em;text-transform:uppercase}
.access-map-card h3{margin:12px 0 9px;color:#fff;font-size:clamp(1.45rem,2.2vw,2rem)}
.access-map-card p{color:rgba(255,255,255,.8)}
.access-map-card ul{display:grid;gap:7px;margin:22px 0;padding:0;list-style:none;font-weight:700}
.access-map-card li::before{content:"✦";margin-right:9px;color:#efc874}
.access-map-card .access-map-note{font-size:.76rem;line-height:1.75;color:rgba(255,255,255,.63)}
.access-map-card .btn{position:relative;z-index:1;margin-top:20px}

.page-tahitian .access-map{
  background:
    radial-gradient(circle at 8% 12%,rgba(236,112,34,.22),transparent 26rem),
    linear-gradient(145deg,#3a2118,#21120e);
}
.page-tahitian .access-map h2.section-title{color:#fff3e0}
.page-tahitian .access-map h2.section-title .en{color:#f0a34b}
.page-tahitian .access-map .eyebrow{color:#f1c895}
.page-tahitian .access-map-card{background:linear-gradient(155deg,#a4451f,#5d2718 72%,#3a1b13)}
.page-tahitian .access-map-frame{border-color:rgba(246,221,190,.17);box-shadow:0 30px 80px -48px rgba(0,0,0,.92)}

@media (max-width:820px){
  .access-map-grid{grid-template-columns:1fr}
  .access-map-frame{min-height:370px}
  .access-map-frame iframe{min-height:354px}
}
@media (max-width:620px){
  .access-map-grid{margin-top:28px;gap:16px}
  .access-map-frame{min-height:320px;border-width:5px;border-radius:24px}
  .access-map-frame iframe{min-height:310px}
  .access-map-card{padding:30px 24px;border-radius:24px}
  .access-map-mark{width:76px;height:76px}
}

@media (max-width:940px){
  #about::after,
  .page-hula .hero-wave + section::after,
  .page-tahitian .hero-wave + section::after,
  .page-kids .hero-wave + section::after{
    width:420px;right:-210px;top:40px;opacity:.25;
  }
  .band::before{background-size:480px 480px;opacity:.2}
  #founder::after,.instagram-section::before,#contact::after{width:360px;left:-210px;opacity:.22}
  .instagram-grid-two{grid-template-columns:1fr}
}

@media (max-width:620px){
  body::before{background-size:460px 460px;opacity:.025}
  #about::after,
  .page-hula .hero-wave + section::after,
  .page-tahitian .hero-wave + section::after,
  .page-kids .hero-wave + section::after{
    width:330px;right:-190px;top:90px;opacity:.18;
  }
  .band::before{opacity:.15}
  .instagram-grid{margin-top:30px;gap:20px}
  .instagram-profile{padding:12px;border-radius:22px}
  .instagram-profile::after{inset:6px;border-radius:17px}
  .instagram-profile-head{padding:8px 8px 14px}
  .instagram-profile .instagram-media>a{min-height:250px}
  #founder::after,.instagram-section::before,#contact::after{width:290px;left:-190px;opacity:.15}
  .hero{--hero-y:52%}
  .page-hula .hero{--hero-y:50%}
  .hero-inner{width:90%}
}

@media (prefers-reduced-motion:reduce){
  .reveal-ready{opacity:1;transform:none}
  .hero-inner>.eyebrow,.hero-inner>h1,.hero-inner>.lead,.hero-inner>.hero-actions{animation:none}
}

/* ---------- Tahitian: traditional ember palette ---------- */
body.page-tahitian{background:#2a1812;color:#3a251d}
.page-tahitian .hero::before{
  background:
    linear-gradient(90deg,rgba(31,16,11,.92) 0%,rgba(57,27,16,.72) 48%,rgba(93,42,19,.25) 78%,rgba(34,16,10,.28)),
    linear-gradient(0deg,rgba(27,13,9,.78),transparent 64%);
}
.page-tahitian .hero::after{
  background:
    radial-gradient(circle at 76% 25%,rgba(239,137,44,.34) 0,rgba(218,88,24,.12) 19%,transparent 38%),
    radial-gradient(ellipse at 20% 105%,rgba(255,104,28,.24),transparent 34%),
    linear-gradient(112deg,transparent 45%,rgba(255,191,92,.08) 53%,transparent 62%);
  mix-blend-mode:screen;
}
.page-tahitian .hero h1 .en{color:#f4a64e}
.page-tahitian .hero .eyebrow{color:#f6dfbc}
.page-tahitian .hero .eyebrow::before{background:linear-gradient(90deg,#d85b20,#f2b35e)}
.page-tahitian .hero .btn-primary{background:linear-gradient(135deg,#df7628,#a63c18);box-shadow:0 15px 34px -18px rgba(224,103,29,.85)}

.page-tahitian .hero-wave + section{
  background:
    radial-gradient(circle at 8% 100%,rgba(222,95,31,.13),transparent 26rem),
    linear-gradient(145deg,#f4e5d1,#ead0ae);
}
.page-tahitian .hero-wave + section::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:url('/assets/img/hawaiian-pattern-v2.webp') center/650px repeat;
  opacity:.045;mix-blend-mode:multiply;
}
.page-tahitian .hero-wave + section>.container{position:relative;z-index:2}
.page-tahitian h2.section-title .en{color:#bd501f}
.page-tahitian .eyebrow{color:#7d3c22}
.page-tahitian .eyebrow::before{background:linear-gradient(90deg,#b44018,#ed962f)}
.page-tahitian .info-card{
  background:linear-gradient(155deg,#fffaf1,#f8ead6);border-color:rgba(113,54,27,.14);
  box-shadow:0 22px 52px -36px rgba(72,31,17,.72);
}
.page-tahitian .info-card::after{background:linear-gradient(90deg,#b43f18,#ed8d2d,#e8bd6a)}
.page-tahitian .info-card h4{color:#3b2018}
.page-tahitian .info-card p{color:#69534a}
.page-tahitian .info-card>.card-art{width:132px;height:132px;margin-top:-16px;margin-bottom:6px}

.page-tahitian .band{
  background:
    radial-gradient(ellipse at 5% 110%,rgba(240,95,24,.48) 0,rgba(195,61,16,.18) 19%,transparent 43%),
    radial-gradient(ellipse at 94% 108%,rgba(244,139,36,.34) 0,rgba(189,67,18,.12) 22%,transparent 46%),
    linear-gradient(145deg,#4b2618 0%,#2b1711 58%,#1e110d 100%);
}
.page-tahitian .band::before{opacity:.13;mix-blend-mode:screen;filter:sepia(.55) saturate(1.35)}
.page-tahitian .band::after{opacity:.12;background-image:repeating-radial-gradient(ellipse at 50% 112%,transparent 0 19px,rgba(246,165,73,.24) 20px,transparent 23px)}
.page-tahitian .band h2.section-title .en{color:#f2a548}
.page-tahitian .band .eyebrow{color:#f5d4a0}
.page-tahitian .band .eyebrow::before{background:linear-gradient(90deg,#f06e24,#f2bb62)}
.page-tahitian .schedule-table{border-color:rgba(242,161,74,.24);box-shadow:0 28px 60px -38px rgba(0,0,0,.85)}
.page-tahitian .schedule-table th{background:#a9441f;color:#fff3df}
.page-tahitian .schedule-table td{background:#f4e3cb;color:#4b3024}
.page-tahitian .schedule-note{color:rgba(255,239,216,.75)}

.page-tahitian #news{
  background:
    radial-gradient(circle at 82% 20%,rgba(230,112,34,.18),transparent 24rem),
    linear-gradient(145deg,#4a291d,#2e1b15);
  color:#f9ead5;
}
.page-tahitian #news h2.section-title{color:#fff7e9}
.page-tahitian #news h2.section-title .en{color:#f0a34b}
.page-tahitian #news .eyebrow{color:#f3d3a5}
.page-tahitian #news .btn-ghost{color:#f5c078;border-color:rgba(245,192,120,.42)}
.page-tahitian #news .news-card{color:#3a2118;background:#fffaf1}
.page-tahitian #news .news-card h4{color:#4a2518}
.page-tahitian #news .news-card .meta{color:#745d52}

.page-tahitian .instagram-section{
  background:
    radial-gradient(circle at 12% 92%,rgba(211,80,20,.24),transparent 25rem),
    linear-gradient(160deg,#352018,#20120e);
}
.page-tahitian .instagram-section h2.section-title{color:#fff4e5}
.page-tahitian .instagram-section h2.section-title .en{color:#f09a3d}
.page-tahitian .instagram-section .eyebrow{color:#f1c895}
.page-tahitian .instagram-profile{background:rgba(255,248,237,.96);border-color:rgba(234,141,54,.28)}

.page-tahitian #instagram + section{
  background:
    radial-gradient(circle at 90% 10%,rgba(219,100,34,.11),transparent 25rem),
    linear-gradient(145deg,#f2dfc6,#e9cba8);
}
.page-tahitian #instagram + section + section{background:linear-gradient(145deg,#382018,#24130f)}
.page-tahitian #instagram + section + section .cta-panel{background:linear-gradient(135deg,#cf5a22,#8d321a 76%,#5d2418)}
.page-tahitian .faq-item{background:#fff8ed;border-color:rgba(121,58,27,.14)}
.page-tahitian .faq-item summary::after{color:#c65422}
.page-tahitian+.site-footer,.page-tahitian .site-footer{background:linear-gradient(145deg,#2c1a14,#180e0b)}

@media (max-width:620px){
  .page-tahitian .info-card>.card-art{width:124px;height:124px;margin-top:-12px}
}

@media (prefers-reduced-motion:no-preference){
  .page-tahitian .band::after{animation:tahitian-ember-breathe 5.5s ease-in-out infinite alternate}
  @keyframes tahitian-ember-breathe{
    from{opacity:.08;filter:brightness(.9) saturate(1)}
    to{opacity:.18;filter:brightness(1.25) saturate(1.35)}
  }
}

/* ---------- 2026-08-11 ブランド刷新：公式ロゴのグリーンを基調色に採用 ---------- */
/* NOTE: 上の .page-tahitian ブロック（タヒチアン単独ページ用の日没オレンジテーマ）は
   フラ&タヒチアン統合ページには使わなくなったため現状未使用。Codexがフラ&タヒチアン
   統合ページの「タヒチアンの違い」セクションを作り込む際の参考として残置。 */
:root{
  --brand-green:#00bf63;
  --brand-green-dark:#00a856;
  --brand-green-deep:#027a45;
}

.site-header{
  background:linear-gradient(120deg,var(--brand-green) 0%,var(--brand-green-dark) 100%);
  border-bottom:1px solid rgba(0,60,32,.18);
}
.site-header.scrolled{background:linear-gradient(120deg,var(--brand-green-dark) 0%,var(--brand-green-deep) 100%);box-shadow:0 10px 30px -16px rgba(0,50,28,.5)}
.site-header .brand-text .name{color:#fff}
.site-header .brand-text .sub{color:rgba(255,255,255,.86)}
.site-header .brand-mark{width:42px;height:42px;filter:none;transform:none}
.site-header .main-nav a{color:rgba(255,255,255,.92)}
.site-header .main-nav a::after{background:#fff}
.site-header .main-nav .btn-primary{background:#fff;color:var(--brand-green-deep);box-shadow:0 10px 24px -12px rgba(0,30,16,.45)}
.site-header .main-nav .btn-primary:hover{background:#fbf7ef;transform:translateY(-2px)}
.site-header .nav-toggle svg{color:#fff}
@media (max-width:940px){
  .site-header .main-nav{background:linear-gradient(160deg,#fbf7ef,#f3eadc)}
  .site-header .main-nav a{color:var(--ink)}
  .site-header .main-nav a::after{background:var(--coral)}
  .site-header .main-nav .btn-primary{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-dark));color:#fff}
}

.site-footer{background:linear-gradient(165deg,#0d1f16,#0a1710)}
.footer-logo{width:150px;height:auto;margin-bottom:14px;display:block}
.footer-brand .name{display:none}

.line-btn{background:#06c755;color:#fff;box-shadow:0 14px 30px -16px rgba(6,199,85,.65)}
.line-btn:hover{background:#05b34c;transform:translateY(-2px);color:#fff}
.line-btn svg{width:1.2em;height:1.2em}
.team-badge{
  display:inline-flex;align-items:center;gap:.5em;
  padding:.35em 1em;border-radius:999px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);
  font-family:var(--font-en);font-style:italic;font-size:1rem;color:#fff;
  backdrop-filter:blur(4px);
}
.hero .team-badge{margin-bottom:1em}

/* ---------- フラ&タヒチアン 統合ページ：比較セクション ---------- */
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
@media (max-width:780px){.compare-grid{grid-template-columns:1fr}}
.compare-card{background:var(--white);border-radius:var(--radius-lg);padding:34px;box-shadow:var(--shadow-sm);border-top:5px solid var(--coral)}
.compare-card.tahitian{border-top-color:#e0862f}
.compare-card .compare-eyebrow{font-family:var(--font-en);font-style:italic;font-size:1.3rem;color:var(--coral-dark);display:block;margin-bottom:.2em}
.compare-card.tahitian .compare-eyebrow{color:#c46a1f}
.compare-card h3{font-size:1.25rem;margin-bottom:.5em}
.compare-card ul{margin-top:1em;display:flex;flex-direction:column;gap:.6em}
.compare-card li{display:flex;gap:.6em;font-size:.9rem;color:var(--ink-soft);align-items:flex-start}
.compare-card li svg{width:1.1em;height:1.1em;flex:none;color:var(--coral);margin-top:.15em}
.compare-card.tahitian li svg{color:#e0862f}
.compare-audience{
  display:inline-flex;align-items:center;gap:.4em;margin-top:1.2em;
  padding:.4em 1em;border-radius:999px;font-size:.78rem;font-weight:700;
  background:var(--coral-light);color:var(--coral-dark);
}
.compare-card.tahitian .compare-audience{background:#f7e2c8;color:#a8611f}

/* ---------- キッズダンス：エネルギッシュ/クール トーン ---------- */
.page-kids .hero::before{
  background:
    linear-gradient(100deg,rgba(10,12,20,.86) 0%,rgba(10,12,20,.58) 46%,rgba(10,12,20,.15) 78%),
    linear-gradient(0deg,rgba(6,8,14,.7) 0%,transparent 55%);
}
.page-kids .hero .eyebrow{color:#7CF29C}
.page-kids .hero .eyebrow::before{background:linear-gradient(90deg,var(--brand-green),#7CF29C)}
.page-kids .hero h1 .en{color:#7CF29C}
.page-kids .hero .btn-primary{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep));box-shadow:0 16px 34px -16px rgba(0,191,99,.55)}
.page-kids .team-badge{background:rgba(0,191,99,.22);border-color:rgba(124,242,156,.5)}
.page-kids .eyebrow::before{background:linear-gradient(90deg,var(--brand-green),#7CF29C)}
.page-kids h2.section-title .en{color:var(--brand-green-deep)}
.page-kids .info-card{border-bottom:4px solid var(--brand-green)}
.page-kids .cat-pill.kids{background:rgba(0,191,99,.16);color:var(--brand-green-deep)}
.page-kids .band{background:linear-gradient(135deg,#0d1f16,#071108)}
.page-kids .band .section-title,.page-kids .band .eyebrow{color:#fff}
.page-kids .band .lead{color:rgba(255,255,255,.78)}
.page-kids .schedule-table th{background:var(--brand-green);color:#fff}
.page-kids .cta-panel{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep))}

.cat-pill.hula_tahitian{background:var(--coral-light);color:var(--coral-dark)}

/* ---------- hero スライドショー（トップページ・フラ&タヒチアンページ） ---------- */
.hero-slides{position:absolute;inset:0;z-index:-1}
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.6s ease;
}
.hero-slide.is-active{opacity:1}

/* ---------- トップページ：ハワイ感を抑えた中立トーン ---------- */
.page-top .hero .eyebrow::before{background:linear-gradient(90deg,var(--brand-green),var(--sun))}
.page-top .hero h1 .en{color:#bfe3c9}
.page-top .hero .btn-outline{border-color:#fff;color:#fff}
.page-top .hero .btn-outline:hover{background:#fff;color:var(--brand-green-deep)}
.page-top .program-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:44px}
@media (max-width:780px){.page-top .program-grid{grid-template-columns:1fr}}
.program-card{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  background:var(--white);box-shadow:var(--shadow-sm);
  transition:transform .3s ease,box-shadow .3s ease;
}
.program-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.program-card .thumb{height:260px;background-size:cover;background-position:center;position:relative}
.program-card .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(10,14,10,.68))}
.program-card .thumb .team{position:absolute;left:22px;bottom:16px;z-index:2;color:#fff}
.program-card .thumb .team .en{display:block;font-family:var(--font-en);font-style:italic;font-size:1.5rem}
.program-card .thumb .team .kana{display:block;font-size:.76rem;letter-spacing:.1em;opacity:.85}
.program-card .body{padding:28px 28px 32px}
.program-card .body h3{font-size:1.35rem;margin-bottom:.4em}
.program-card .body p{color:var(--ink-soft);font-size:.92rem}
.program-card.green .body h3{color:var(--brand-green-deep)}
.program-card.dark{background:#0d1f16}
.program-card.dark .body h3{color:#fff}
.program-card.dark .body p{color:rgba(255,255,255,.72)}

.dual-note{
  display:flex;gap:18px;align-items:flex-start;
  background:var(--white);border-radius:var(--radius-md);padding:26px 28px;
  box-shadow:var(--shadow-sm);margin-top:36px;border-left:5px solid var(--brand-green);
}
.dual-note .icon{width:32px;height:32px;flex:none;color:var(--brand-green-deep)}
.dual-note p{margin:0;color:var(--ink-soft);font-size:.92rem}
.dual-note strong{color:var(--ink)}
.cta-panel.line-cta{background:linear-gradient(135deg,#06c755,#049644)}
.cta-panel.line-cta .line-btn{background:#fff;color:#06c755;box-shadow:0 10px 26px -14px rgba(0,0,0,.4)}
.cta-panel.line-cta .line-btn:hover{background:#f3fff8;color:#049644}

/* ---------- 2026-08-11 design direction: official AINA brand ---------- */
:root{
  --aina-night:#08130e;
  --aina-graphite:#121816;
  --aina-lime:#8dff9d;
  --aina-cream:#f7f4ec;
}

/* The official mark is bold and graphic: keep the shared chrome clean and green. */
.site-header{box-shadow:0 8px 28px -20px rgba(0,55,29,.55)}
.site-header .container{min-height:58px}
.site-header .main-nav a{font-weight:700}
.site-header .main-nav a.active::after{height:3px}
.footer-logo{width:168px}

/* ---------- Top: neutral, inclusive studio brand ---------- */
.page-top::before,.page-kids::before{opacity:0;animation:none}
.page-top::after,.page-kids::after{opacity:.3;background:radial-gradient(circle at 8% 8%,rgba(0,191,99,.08),transparent 26rem)}
.page-top #about::after{display:none}
.page-top .hero-slide:first-child{
  background-image:url('/assets/img/hero-dual-programs-v1.webp')!important;
  background-position:center center;
}
.page-top .hero-slide:nth-child(3){background-image:url('/assets/img/hero-kids-urban-v1.webp')!important;background-position:center center}
.page-top .hero::before{
  background:linear-gradient(90deg,rgba(4,17,11,.91) 0%,rgba(4,22,13,.73) 38%,rgba(4,19,12,.2) 72%),linear-gradient(0deg,rgba(5,18,12,.62),transparent 58%);
}
.page-top .hero::after{background:linear-gradient(112deg,transparent 46%,rgba(0,191,99,.13) 53%,transparent 61%)}
.page-top .hero h1 .en{
  font-family:var(--font-jp-body);font-style:normal;font-weight:700;text-transform:uppercase;
  font-size:.31em;letter-spacing:.16em;color:var(--aina-lime);
}
.page-top .hero-wave + section{background:linear-gradient(180deg,#f7f8f4 0%,var(--aina-cream) 100%)}
.page-top .dual-note{
  position:relative;overflow:hidden;padding:30px 32px;border:1px solid rgba(0,191,99,.18);border-left:7px solid var(--brand-green);
  background:linear-gradient(110deg,#fff 0%,#fff 64%,rgba(0,191,99,.08) 100%);
}
.page-top .dual-note::after{content:"";position:absolute;right:-38px;top:-75px;width:170px;height:170px;border:22px solid rgba(0,191,99,.06);border-radius:50%}
.page-top .dual-note .icon{position:relative;z-index:1;width:38px;height:38px;color:var(--brand-green)}
.page-top .dual-note p{position:relative;z-index:1;font-size:.98rem;line-height:1.9}
.page-top .program-card{border:1px solid rgba(0,55,29,.1);border-radius:22px}
.page-top .program-card .thumb{height:290px}
.page-top .program-card.green{background:linear-gradient(160deg,#fff,#f0faf4)}
.page-top .program-card.dark{background:linear-gradient(145deg,#101814,#06100b)}
.page-top .program-card.dark .thumb{background-image:url('/assets/img/hero-kids-urban-v1.webp')!important;background-position:64% center}
.page-top .program-card.dark .body{position:relative}
.page-top .program-card.dark .body::after{content:"";position:absolute;right:-30px;top:24px;width:120px;height:2px;background:var(--brand-green);transform:rotate(-12deg);opacity:.5}

/* ---------- Ti Aiata: warm, authentic Polynesian atmosphere ---------- */
.page-hula-tahitian{
  background:radial-gradient(circle at 92% 18%,rgba(223,111,120,.1),transparent 28rem),linear-gradient(180deg,#fcf7ed,#f5ecdd);
}
.page-hula-tahitian::before{opacity:.055;animation:generated-pattern-drift 46s linear infinite}
.page-hula-tahitian .motif-monstera,.page-hula-tahitian .motif-hibiscus{display:block}
.page-hula-tahitian .hero{--hero-y:50%}
.page-hula-tahitian .hero::before{
  background:linear-gradient(90deg,rgba(8,45,36,.91) 0%,rgba(13,64,47,.7) 43%,rgba(76,53,34,.2) 78%),linear-gradient(0deg,rgba(5,38,29,.66),transparent 62%);
}
.page-hula-tahitian .hero::after{
  background:radial-gradient(circle at 78% 24%,rgba(255,203,120,.28),transparent 30%),linear-gradient(112deg,transparent 44%,rgba(255,255,255,.12) 52%,transparent 61%);
}
.page-hula-tahitian .hero h1 .en{color:#ffd68a}
.page-hula-tahitian .hero-silhouette{display:block;right:3%;width:min(330px,28vw);color:rgba(255,255,255,.13);opacity:.65!important}
.page-hula-tahitian .hero-wave + section{
  background:radial-gradient(circle at 8% 90%,rgba(0,191,99,.1),transparent 26rem),linear-gradient(145deg,#fffaf1,#f3e6d3);
}
.page-hula-tahitian .hero-wave + section::after{
  content:"";position:absolute;z-index:1;pointer-events:none;width:min(500px,42vw);aspect-ratio:1;right:-110px;top:28px;
  background:url('/assets/img/botanical-corner-v2.webp') center/contain no-repeat;opacity:.56;filter:drop-shadow(0 24px 28px rgba(13,63,55,.13));
}
.page-hula-tahitian h2.section-title .en{color:#b24f5b}
.page-hula-tahitian .eyebrow{color:#126a54}
.page-hula-tahitian .eyebrow::before{background:linear-gradient(90deg,var(--brand-green),var(--coral))}
.page-hula-tahitian .compare-grid{gap:28px;margin-top:48px}
.page-hula-tahitian .compare-card{
  padding:0 34px 34px;border:1px solid rgba(90,52,36,.1);border-top:0;overflow:hidden;
  box-shadow:0 28px 65px -42px rgba(36,64,50,.65);background:rgba(255,255,255,.96);
}
.page-hula-tahitian .compare-card::before{
  content:"";display:block;height:clamp(250px,28vw,350px);margin:0 -34px 28px;
  background-image:linear-gradient(0deg,rgba(11,46,35,.12),transparent 35%),url('/assets/img/compare-hula-tahitian-v1.webp');
  background-size:200% auto;background-repeat:no-repeat;background-position:left 10%;
}
.page-hula-tahitian .compare-card.tahitian::before{background-position:right 10%}
.page-hula-tahitian .compare-card.hula{border-bottom:5px solid var(--coral)}
.page-hula-tahitian .compare-card.tahitian{border-bottom:5px solid #d77a25}
.page-hula-tahitian .compare-card .compare-eyebrow{font-size:1.65rem}
.page-hula-tahitian .compare-card h3{font-size:1.38rem}
.page-hula-tahitian .band{
  background:radial-gradient(circle at 85% 10%,rgba(255,198,115,.16),transparent 26rem),linear-gradient(135deg,#11654f,#073d36 72%,#042c28);
}
.page-hula-tahitian .band::before{opacity:.3}
.page-hula-tahitian .info-card{background:linear-gradient(155deg,#fff,#fff9ef);border-color:rgba(0,115,72,.11)}
.page-hula-tahitian .info-card::after{background:linear-gradient(90deg,var(--coral),#dfa345,var(--brand-green))}
.page-hula-tahitian .instagram-section{background:linear-gradient(160deg,#f8eee1,#efe0ce)}
.page-hula-tahitian .cta-panel{background:linear-gradient(135deg,#c85462,#9f394b)}

/* ---------- team.N: urban, kinetic and non-tropical ---------- */
.page-kids{background:#f1f3ef}
.page-kids .hero{
  min-height:72vh;background-image:url('/assets/img/hero-kids-urban-v1.webp')!important;background-position:center center!important;
}
.page-kids .hero::before{
  background:linear-gradient(96deg,rgba(3,8,6,.96) 0%,rgba(5,13,9,.83) 40%,rgba(5,10,8,.22) 72%),linear-gradient(0deg,rgba(2,7,5,.75),transparent 58%);
}
.page-kids .hero::after{
  background:linear-gradient(116deg,transparent 0 43%,rgba(0,191,99,.18) 43.2% 43.7%,transparent 44% 100%),linear-gradient(102deg,transparent 0 72%,rgba(141,255,157,.1) 72.2% 72.5%,transparent 72.7% 100%);
  mix-blend-mode:screen;
}
.page-kids .hero-inner{padding-bottom:72px}
.page-kids .hero h1{
  max-width:670px;font-family:var(--font-jp-body);font-weight:900;line-height:1.18;letter-spacing:-.045em;text-transform:none;
  text-shadow:0 10px 40px rgba(0,0,0,.5);
}
.page-kids .hero h1 .en{
  font-family:var(--font-jp-body);font-style:italic;font-weight:900;font-size:.34em;letter-spacing:.02em;text-transform:uppercase;color:var(--aina-lime);
}
.page-kids .team-badge{
  border-radius:4px;transform:skewX(-8deg);background:var(--brand-green);border:0;color:#031009;font-family:var(--font-jp-body);font-style:normal;font-weight:900;text-transform:uppercase;
}
.page-kids .team-badge>*{transform:skewX(8deg)}
.page-kids .hero-wave{height:16px;margin-top:-8px;background:linear-gradient(90deg,#07110b 0 14%,var(--brand-green) 14% 68%,var(--aina-lime) 68% 72%,#07110b 72%);transform:skewY(-.7deg);z-index:6}
.page-kids .hero-wave svg{display:none}
.page-kids .hero-wave + section{
  background:linear-gradient(165deg,#f5f7f3 0%,#e8ede8 100%);padding-top:106px;
}
.page-kids .hero-wave + section::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:repeating-linear-gradient(118deg,transparent 0 74px,rgba(0,191,99,.045) 75px 77px,transparent 78px 154px);
}
.page-kids .hero-wave + section::after{background:none!important;animation:none!important}
.page-kids h2.section-title{font-family:var(--font-jp-body);font-weight:900;line-height:1.3;letter-spacing:-.035em}
.page-kids h2.section-title .en{
  font-family:var(--font-jp-body);font-style:italic;font-weight:900;font-size:.46em;letter-spacing:.01em;text-transform:uppercase;color:var(--brand-green-deep);
}
.page-kids .eyebrow{font-family:var(--font-jp-body);font-weight:900;letter-spacing:.14em}
.page-kids .info-grid{gap:18px;margin-top:52px}
.page-kids .info-card{
  min-height:340px;padding:36px 30px;border:0;border-radius:6px;color:#fff;
  background:linear-gradient(145deg,#18211d,#0a100d);box-shadow:12px 16px 0 rgba(0,191,99,.13),0 28px 55px -38px rgba(0,0,0,.8);
  clip-path:polygon(0 0,94% 0,100% 9%,100% 100%,0 100%);
}
.page-kids .info-card:nth-child(2){margin-top:28px;background:linear-gradient(145deg,#111b16,#050b08)}
.page-kids .info-card:nth-child(3){margin-top:56px}
.page-kids .info-card::before{content:"";position:absolute;left:0;top:0;width:72%;height:5px;background:linear-gradient(90deg,var(--brand-green),var(--aina-lime),transparent)}
.page-kids .info-card::after{left:30px;right:auto;width:86px;height:4px;background:var(--brand-green);opacity:1;transform:none}
.page-kids .info-card>.card-art{width:104px;height:104px;margin:-8px 0 18px;filter:grayscale(.15) contrast(1.08) saturate(.85)}
.page-kids .info-card>.card-art::after{background:rgba(0,191,99,.35)}
.page-kids .info-card h4{font-family:var(--font-jp-body);font-size:1.2rem;font-weight:900;color:#fff}
.page-kids .info-card p{color:rgba(255,255,255,.69);line-height:1.9}
.page-kids .band{margin-top:20px;background:linear-gradient(112deg,#050a07 0 64%,#0a1c12 64%)}
.page-kids .band::before{
  background:repeating-linear-gradient(122deg,transparent 0 58px,rgba(0,191,99,.08) 59px 61px,transparent 62px 126px);opacity:.8;animation:none;
}
.page-kids .band::after{background:linear-gradient(90deg,var(--brand-green),transparent);height:5px;inset:auto 0 0;opacity:1}
.page-kids .schedule-table{border-radius:4px;border:1px solid rgba(141,255,157,.28);box-shadow:18px 18px 0 rgba(0,191,99,.08)}
.page-kids .schedule-table th{background:var(--brand-green);color:#031009;text-transform:uppercase}
.page-kids .schedule-table td{background:#111815;color:#eef6f0;border-color:rgba(255,255,255,.08)}
.page-kids .schedule-note{color:rgba(255,255,255,.65)}
.page-kids .instagram-section{
  background:linear-gradient(168deg,#eff2ed,#dfe6df);
}
.page-kids .instagram-section::before{display:none}
.page-kids .instagram-profile{border-radius:8px;border:1px solid rgba(0,191,99,.22);box-shadow:14px 14px 0 rgba(0,191,99,.1)}
.page-kids #instagram + section{background:#f8f9f6}
.page-kids .faq-item{border-radius:4px;border-left:5px solid var(--brand-green)}
.page-kids .faq-item summary::after{color:var(--brand-green-deep);font-family:var(--font-jp-body);font-weight:900}
.page-kids .cta-panel{
  border-radius:6px;background:linear-gradient(112deg,#07110b 0 62%,#00a856 62% 100%);box-shadow:16px 16px 0 rgba(0,191,99,.14);
}
.page-kids .cta-panel::before{background:repeating-linear-gradient(122deg,transparent 0 54px,rgba(255,255,255,.08) 55px 57px,transparent 58px 118px);opacity:.45}
.page-kids .cta-panel::after{border-radius:0;transform:rotate(18deg);opacity:.25}

@media (max-width:940px){
  .page-hula-tahitian .hero-silhouette{width:38vw;right:-4%}
  .page-hula-tahitian .hero-wave + section::after{width:400px;right:-220px;opacity:.24}
  .page-kids .info-card:nth-child(2),.page-kids .info-card:nth-child(3){margin-top:0}
}

@media (max-width:620px){
  .page-top .hero-slide:first-child{background-position:58% center}
  .page-top .hero-slide:nth-child(3){background-position:62% center}
  .page-top .dual-note{padding:24px 22px;gap:13px}
  .page-top .dual-note .icon{width:30px;height:30px}
  .page-top .program-card .thumb{height:230px}
  .page-hula-tahitian .hero-silhouette{width:58vw;right:-17%;opacity:.24!important}
  .page-hula-tahitian .compare-card{padding:0 22px 28px}
  .page-hula-tahitian .compare-card::before{height:260px;margin:0 -22px 24px}
  .page-hula-tahitian .hero-wave + section::after{width:320px;right:-205px;top:100px;opacity:.16}
  .page-kids .hero{min-height:75svh;background-position:64% center!important}
  .page-kids .hero-inner{padding-bottom:54px}
  .page-kids .hero h1{font-size:clamp(2.15rem,11vw,3.05rem);line-height:1.18}
  .page-kids .hero-wave{height:12px}
  .page-kids .hero-wave + section{padding-top:78px}
  .page-kids .info-grid{gap:16px;margin-top:36px}
  .page-kids .info-card{min-height:0;padding:30px 24px;box-shadow:8px 10px 0 rgba(0,191,99,.12)}
  .page-kids .info-card::after{left:24px}
  .page-kids .cta-panel{background:linear-gradient(150deg,#07110b 0 70%,#008f4b 70%)}
}

@media (prefers-reduced-motion:reduce){
  .page-hula-tahitian::before{animation:none}
}

/* ---------- 2026-08-11 tone recalibration: friendly local studio ---------- */
.page-hula-tahitian .compare-card::before{
  background-image:linear-gradient(0deg,rgba(23,72,55,.08),transparent 38%),url('/assets/img/compare-hula-tahitian-v2.webp');
}
.page-hula-tahitian .compare-card.tahitian{border-bottom-color:#d89555}
.page-hula-tahitian .compare-card.tahitian .compare-eyebrow{color:#b36a2e}
.page-hula-tahitian .compare-card.tahitian .compare-audience{background:#f7eadb;color:#97602d}

.page-top .hero-slide:nth-child(3){
  background-image:url('/assets/img/hero-kids-community-v2.webp')!important;
  background-position:center center;
}
.page-top .program-card.dark{
  background:linear-gradient(150deg,#f7fbf8,#e7f3eb);
  border-color:rgba(0,121,67,.15);
}
.page-top .program-card.dark .thumb{
  background-image:url('/assets/img/hero-kids-community-v2.webp')!important;
  background-position:62% center;
}
.page-top .program-card.dark .body h3{color:var(--brand-green-deep)}
.page-top .program-card.dark .body p{color:var(--ink-soft)}
.page-top .program-card.dark .body::after{opacity:.24}

.page-kids{background:#f6f5f0}
.page-kids .hero{
  background-image:url('/assets/img/hero-kids-community-v2.webp')!important;
  background-position:center center!important;
}
.page-kids .hero::before{
  background:linear-gradient(94deg,rgba(11,47,34,.9) 0%,rgba(18,67,49,.76) 41%,rgba(22,59,45,.18) 73%),linear-gradient(0deg,rgba(11,42,31,.5),transparent 58%);
}
.page-kids .hero::after{
  background:linear-gradient(116deg,transparent 0 55%,rgba(255,255,255,.1) 55.2% 55.7%,transparent 56%),radial-gradient(circle at 76% 24%,rgba(255,231,178,.2),transparent 29%);
  mix-blend-mode:screen;
}
.page-kids .hero h1{
  font-weight:800;line-height:1.25;letter-spacing:-.025em;text-shadow:0 7px 28px rgba(0,38,23,.34);
}
.page-kids .hero h1 .en{font-style:normal;font-weight:800;letter-spacing:.08em;color:#d9f8df}
.page-kids .team-badge{
  border-radius:999px;transform:none;background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.7);color:var(--brand-green-deep);
  box-shadow:0 10px 28px -20px rgba(0,44,24,.65);
}
.page-kids .team-badge>*{transform:none}
.page-kids .hero-wave{
  height:12px;margin-top:-6px;transform:none;background:linear-gradient(90deg,#e7f0e9 0 16%,var(--brand-green) 16% 70%,#9be3ae 70% 74%,#e7f0e9 74%);
}
.page-kids .hero-wave + section{
  background:linear-gradient(165deg,#faf9f5 0%,#eef3ed 100%);padding-top:96px;
}
.page-kids .hero-wave + section::before{
  background:repeating-linear-gradient(118deg,transparent 0 96px,rgba(0,137,73,.025) 97px 99px,transparent 100px 194px);
}
.page-kids h2.section-title{font-weight:800;letter-spacing:-.02em}
.page-kids h2.section-title .en{font-style:normal;font-weight:800;letter-spacing:.06em;color:#40815e}
.page-kids .eyebrow{font-weight:700;letter-spacing:.13em}
.page-kids .info-grid{gap:22px;margin-top:46px}
.page-kids .info-card,
.page-kids .info-card:nth-child(2),
.page-kids .info-card:nth-child(3){
  min-height:320px;margin-top:0;padding:34px 30px;border:1px solid rgba(0,121,67,.12);border-radius:20px;color:var(--ink);
  background:linear-gradient(155deg,#fff,#f5faf6);box-shadow:0 22px 52px -38px rgba(16,78,52,.48);clip-path:none;
}
.page-kids .info-card:nth-child(2){background:linear-gradient(155deg,#fffdf8,#f4f7ee)}
.page-kids .info-card:nth-child(3){background:linear-gradient(155deg,#fff,#eef7f1)}
.page-kids .info-card::before{left:30px;top:0;width:74px;height:4px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--brand-green),#8fd8a3)}
.page-kids .info-card::after{left:30px;width:72px;height:3px;background:#8ccca0;opacity:.8}
.page-kids .info-card>.card-art{width:108px;height:108px;margin:-8px 0 18px;filter:saturate(.78) contrast(.98)}
.page-kids .info-card>.card-art::after{background:rgba(0,121,67,.13)}
.page-kids .info-card h4{font-size:1.15rem;font-weight:800;color:var(--ink)}
.page-kids .info-card p{color:var(--ink-soft)}
.page-kids .band{
  margin-top:0;background:radial-gradient(circle at 88% 12%,rgba(255,221,158,.11),transparent 25rem),linear-gradient(135deg,#2e7057,#15513e 74%,#0d4334);
}
.page-kids .band::before{background:repeating-linear-gradient(120deg,transparent 0 92px,rgba(255,255,255,.035) 93px 95px,transparent 96px 188px);opacity:1;animation:none}
.page-kids .band::after{height:3px;background:linear-gradient(90deg,#9bddae,var(--brand-green),#ccebd5)}
.page-kids .schedule-table{border-radius:14px;border:1px solid rgba(255,255,255,.22);box-shadow:0 20px 48px -34px rgba(0,35,22,.7)}
.page-kids .schedule-table th{background:#dff1e4;color:#205e40}
.page-kids .schedule-table td{background:#fff;color:var(--ink);border-color:#e6eee7}
.page-kids .schedule-note{color:rgba(255,255,255,.75)}
.page-kids .instagram-section{background:linear-gradient(168deg,#f8f7f2,#e9efe8)}
.page-kids .instagram-profile{border-radius:20px;border-color:rgba(0,137,73,.13);box-shadow:0 22px 50px -38px rgba(18,74,49,.48)}
.page-kids #instagram + section{background:#fbfaf7}
.page-kids .faq-item{border-radius:12px;border-left:4px solid #7cc993}
.page-kids .cta-panel{
  border-radius:22px;background:linear-gradient(135deg,#29bc6a,#078b4b);box-shadow:0 22px 50px -32px rgba(0,92,49,.65);
}
.page-kids .cta-panel::before{background:radial-gradient(circle at 82% 18%,rgba(255,255,255,.16),transparent 30%);opacity:1}
.page-kids .cta-panel::after{border-radius:50%;transform:none;opacity:.45}

@media (max-width:620px){
  .page-top .hero-slide:nth-child(3){background-position:62% center}
  .page-kids .hero{background-position:61% center!important}
  .page-kids .hero h1{line-height:1.24}
  .page-kids .hero-wave + section{padding-top:72px}
  .page-kids .info-card,.page-kids .info-card:nth-child(2),.page-kids .info-card:nth-child(3){padding:30px 24px;border-radius:16px}
  .page-kids .info-card::before,.page-kids .info-card::after{left:24px}
  .page-kids .cta-panel{background:linear-gradient(145deg,#29bc6a,#078b4b)}
}
