:root{
  --ink:#4b352c;
  --brown:#704f43;
  --pink:#df8087;
  --pink-dark:#b96f76;
  --pink-soft:#fff7f6;
  --cream:#fffdfb;
  --line:#eadbd6;
  --shadow:0 8px 30px rgba(111,72,57,.07);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;color:var(--ink);background:var(--cream);font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;line-height:1.9;-webkit-text-size-adjust:100%}
button,input,select,textarea{font:inherit}
img{max-width:100%}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 5%;background:rgba(255,253,251,.97);border-bottom:1px solid #eaded8;backdrop-filter:blur(8px)}
.brand{text-decoration:none;color:#5a392b;display:flex;flex-direction:column;min-width:0}
.brand-main{font-size:1.15rem;letter-spacing:.08em}
.brand-sub{font-size:.72rem;color:#b77c74}
.nav{display:flex;gap:20px;align-items:center}
.nav a{color:#6b4a3d;text-decoration:none;white-space:nowrap}
.nav a:hover,.nav a:focus-visible{color:var(--pink);outline:none}
.menu-button{display:none;border:0;background:transparent;font-size:1.7rem;color:#6b4a3d;padding:8px;cursor:pointer}
.hero{background:#fffaf7;overflow:hidden}
.hero img{display:block;width:100%;height:auto;object-fit:contain;object-position:center}
.section{padding:90px 7%}
.soft-bg{background:linear-gradient(180deg,#fff7f6,#fffdfb)}
.eyebrow{text-align:center;color:#d7787f;letter-spacing:.18em;font-size:.9rem;margin:0 0 8px}
.section h1,.section h2{text-align:center;font-weight:500;line-height:1.55;margin:0 auto 34px}
.section h1{font-size:clamp(1.8rem,4vw,3.2rem);max-width:950px}
.section h2{font-size:clamp(1.65rem,3.2vw,2.5rem)}
.lead{max-width:850px;margin:30px auto 0;text-align:center;font-size:1.05rem}
.narrow{max-width:720px}
.concerns{max-width:850px;margin:40px auto;display:grid;gap:14px}
.concerns p{margin:0;padding:15px 20px;border-left:4px solid #e8a4a7;background:#fff8f7}
.cards{max-width:1100px;margin:45px auto;display:grid;gap:24px}
.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{position:relative;background:white;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:var(--shadow)}
.card h3{margin:6px 0 12px;font-weight:500}
.icon{text-align:center;font-size:2.4rem}
.center-note{max-width:850px;margin:35px auto 0;text-align:center}
.price-card{text-align:center}
.price{font-size:2rem;margin:10px 0;color:#774938}
.price span{font-size:.8rem}
.featured{border:2px solid #e7a0a5;transform:translateY(-8px)}
.badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:#e7858b;color:white;border-radius:999px;padding:3px 18px;font-size:.8rem;white-space:nowrap}
.detail-button,.submit-button{border:0;border-radius:999px;background:var(--pink);color:white;padding:12px 24px;cursor:pointer;transition:filter .2s,transform .2s}
.detail-button:hover,.submit-button:hover{filter:brightness(.95)}
.detail-button:active,.submit-button:active{transform:scale(.98)}
.detail-button:focus-visible,.submit-button:focus-visible,.menu-button:focus-visible{outline:3px solid rgba(223,128,135,.35);outline-offset:3px}
.course-detail{margin-top:18px;padding:18px 20px;border-radius:14px;background:var(--pink-soft);text-align:left;line-height:1.9}
.course-detail[hidden]{display:none}
.accordion-button[aria-expanded="true"]{background:var(--pink-dark)}
.small-panel{max-width:950px;margin:10px auto;display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-items:center;padding:20px;border-radius:16px;background:#f8eeee}
.small-panel span{padding:7px 12px;background:white;border-radius:999px}
.faq-list{max-width:900px;margin:40px auto}
.faq-list details{border-bottom:1px solid #e7d8d2;padding:18px 0}
.faq-list summary{cursor:pointer;font-size:1.08rem}
.faq-list summary::marker{color:var(--pink)}
.faq-list p{padding:0 20px}
.coming-soon{text-align:center;color:#8b7167;font-size:.9rem}
.profile-grid{max-width:1050px;margin:auto;display:grid;grid-template-columns:1.15fr .85fr;gap:55px;align-items:center}
.profile-grid h2{text-align:left;margin-bottom:25px}
.profile-grid .eyebrow{text-align:left}
.profile-grid img{width:100%;max-height:620px;object-fit:cover;border-radius:30px;box-shadow:0 12px 35px rgba(95,55,43,.14)}
.quote{font-size:1.25rem;color:#d2767d}
.contact-section{background:#fffaf6}
.contact-form{max-width:920px;margin:45px auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.contact-form label{display:flex;flex-direction:column;gap:7px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #dbcac3;border-radius:12px;background:white;padding:13px;color:#49342c}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:3px solid rgba(223,128,135,.18);border-color:var(--pink)}
.full{grid-column:1/-1}
.form-note{font-size:.88rem;color:#806b63}
.submit-button{justify-self:center;min-width:280px}
footer{text-align:center;background:var(--brown);color:white;padding:55px 7%}
.footer-brand{font-size:1.3rem}
.future-links{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin:25px 0;font-size:.85rem;color:#f2dedd}

@media(max-width:820px){
  html{scroll-padding-top:78px}
  .site-header{padding:14px 5%}
  .menu-button{display:block;flex:0 0 auto}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:white;padding:22px;flex-direction:column;align-items:center;border-bottom:1px solid #eaded8;box-shadow:0 12px 25px rgba(78,51,40,.08)}
  .nav.open{display:flex}
  .brand-main{font-size:clamp(.92rem,4.6vw,1.15rem);white-space:nowrap;letter-spacing:.04em}
  .brand-sub{font-size:.7rem}
  .hero img{width:100%;height:auto;min-height:0;object-fit:contain;object-position:center}
  .cards.three,.cards.two,.profile-grid,.contact-form{grid-template-columns:1fr}
  .featured{transform:none}
  .profile-grid{gap:30px}
  .profile-grid h2,.profile-grid .eyebrow{text-align:center}
  .section{padding:68px 6%}
  .section h1{font-size:clamp(1.7rem,8vw,2.4rem)}
  .section h2{font-size:clamp(1.5rem,7vw,2.1rem)}
  .card{padding:26px 22px}
  .price{font-size:1.8rem}
  .full{grid-column:auto}
  .submit-button{width:100%;min-width:0}
}

@media(max-width:420px){
  .brand-main{font-size:.92rem}
  .brand-sub{font-size:.64rem}
  .menu-button{font-size:1.5rem}
  .section{padding-left:5%;padding-right:5%}
  .small-panel{align-items:stretch}
  .small-panel strong,.small-panel span{width:100%;text-align:center}
}

.instagram-section{
  background:linear-gradient(180deg,#fffdfb,#fff7f7);
  text-align:center;
}
.instagram-link-wrap{
  margin-top:32px;
}
.instagram-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:240px;
  padding:14px 28px;
  border-radius:999px;
  background:#df8087;
  color:#fff;
  text-decoration:none;
  font-size:1rem;
  letter-spacing:.06em;
  box-shadow:0 8px 24px rgba(150,82,88,.16);
  transition:transform .2s ease,filter .2s ease;
}
.instagram-button:hover{
  filter:brightness(.96);
  transform:translateY(-2px);
}
.footer-instagram{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px;
}
