/* ======================================
   松田樹峰の館 - リニューアル共通CSS
   アイボリー × ゴールド × サクラピンク (和モダン)
   ====================================== */

:root{
  --ivory:#fdf8ec;
  --cream:#faf0d8;
  --pale-gold:#f5e6b5;
  --gold:#d4a35a;
  --gold-light:#e8c479;
  --gold-deep:#a07b35;
  --gold-bright:#f1c668;
  --gold-shine:#fff3cf;
  --brown-dark:#3a2618;
  --brown:#5c3f23;
  --brown-light:#7a5c3f;
  --sakura:#f2c5cf;
  --sakura-deep:#d99aab;
  --lavender:#b9a8e8;
  --black-rich:#1a0e08;
  --text:#3a2618;
  --text-sub:#6a5238;
  --text-mute:#9a8264;
  --border:#e8d5a8;
  --border-soft:rgba(232,196,121,.3);
  --bg:#fdf8ec;
  --card:#fffdf6;
  --shadow:0 20px 60px rgba(58,38,24,.12);
  --shadow-gold:0 12px 36px rgba(212,163,90,.25);
  --crimson:#a83a3a;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:"Shippori Mincho","Noto Serif JP","Yu Mincho","ヒラギノ明朝 ProN",serif;background:var(--bg);color:var(--text);line-height:1.95;letter-spacing:.04em;overflow-x:hidden;}
.serif-en{font-family:"Cormorant Garamond",serif;letter-spacing:.06em;}
a{color:inherit;text-decoration:none;transition:color .25s;}
img{max-width:100%;height:auto;display:block;}

/* ===== Decorative background ===== */
.bg-deco{position:fixed;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(ellipse at 10% 15%, rgba(212,163,90,.18) 0%, transparent 45%),
  radial-gradient(ellipse at 90% 80%, rgba(242,197,207,.15) 0%, transparent 50%),
  radial-gradient(ellipse at 50% 50%, rgba(253,248,236,1) 0%, var(--bg) 80%);}

.sakura{position:fixed;top:-30px;color:var(--sakura);opacity:.55;font-size:14px;animation:fall linear infinite;z-index:1;pointer-events:none;}
@keyframes fall{0%{transform:translateY(0) rotate(0);}100%{transform:translateY(110vh) rotate(720deg);}}

.sparkle{position:absolute;color:var(--gold-bright);font-size:8px;animation:twinkle 4s infinite ease-in-out;pointer-events:none;}
@keyframes twinkle{0%,100%{opacity:.2;transform:scale(.6);}50%{opacity:1;transform:scale(1.3);}}

/* ===== Header (global nav) ===== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:18px 40px;
  background:rgba(253,248,236,.78);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border-soft);
  transition:all .3s;
}
.site-header-inner{
  max-width:1320px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{display:flex;align-items:center;gap:14px;cursor:pointer;}
.brand-logo{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 50%,var(--gold-deep) 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:"Shippori Mincho",serif;font-size:18px;color:#fff;font-weight:700;
  box-shadow:0 0 20px rgba(212,163,90,.5), inset 0 -2px 4px rgba(0,0,0,.1);
  position:relative;
}
.brand-text{display:flex;flex-direction:column;line-height:1.18;}
.brand-jp{font-size:15px;font-weight:600;color:var(--brown-dark);letter-spacing:.22em;font-family:"Shippori Mincho",serif;}
.brand-en{font-size:9px;color:var(--gold-deep);letter-spacing:.4em;font-family:"Cormorant Garamond",serif;font-weight:500;margin-top:2px;}

.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.nav a{
  font-size:12px;color:var(--brown);padding:8px 12px;letter-spacing:.18em;
  font-family:"Shippori Mincho",serif;font-weight:500;
  position:relative;transition:all .25s;
}
.nav a::after{
  content:'';position:absolute;left:12px;right:12px;bottom:2px;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s;
}
.nav a:hover{color:var(--gold-deep);}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1);}
.nav a.active{color:var(--gold-deep);}
.nav-cta{
  margin-left:8px;padding:9px 18px;font-size:11.5px;letter-spacing:.22em;
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 50%,var(--gold-deep) 100%);
  color:#fff;font-weight:700;border-radius:2px;
  box-shadow:0 4px 14px rgba(212,163,90,.4);
}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(212,163,90,.55);color:#fff;}
.nav-toggle{display:none;background:none;border:none;color:var(--brown-dark);font-size:22px;cursor:pointer;}
.header-spacer{height:80px;}

/* ===== Page hero (sub-page) ===== */
.page-hero{
  position:relative;padding:120px 0 80px 0;
  background:
    radial-gradient(ellipse at 25% 30%, rgba(212,163,90,.22) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 70%, rgba(242,197,207,.18) 0%, transparent 50%),
    linear-gradient(135deg,#fff8e1 0%,var(--ivory) 30%,var(--cream) 70%,var(--pale-gold) 100%);
  color:var(--brown-dark);text-align:center;overflow:hidden;
  border-bottom:1px solid var(--border-soft);
}
.page-hero::after{
  content:'';position:absolute;left:-10%;right:-10%;bottom:-1px;height:80px;pointer-events:none;
  background:radial-gradient(ellipse at center top, transparent 0%, rgba(160,123,53,.1) 70%, rgba(160,123,53,.2) 100%);
  z-index:1;
}
.page-hero-inner{position:relative;z-index:2;max-width:900px;margin:0 auto;padding:0 24px;}
.crumb{font-size:11px;letter-spacing:.32em;color:var(--gold-deep);margin-bottom:18px;font-family:"Cormorant Garamond",serif;font-weight:600;}
.crumb a{color:var(--gold-deep);}
.crumb a:hover{color:var(--gold);}
.crumb-sep{margin:0 10px;opacity:.5;}
.page-title{
  font-size:44px;font-weight:600;letter-spacing:.16em;color:var(--brown-dark);
  margin-bottom:14px;line-height:1.45;font-family:"Shippori Mincho",serif;
  text-shadow:0 2px 12px rgba(255,253,246,.5);
}
.page-title-en{
  font-family:"Cormorant Garamond",serif;font-size:14px;letter-spacing:.5em;
  color:var(--gold-deep);margin-bottom:24px;font-weight:500;
  display:flex;align-items:center;justify-content:center;gap:18px;
}
.page-title-en::before,.page-title-en::after{
  content:'';display:inline-block;width:48px;height:1px;background:var(--gold);
}
.page-lead{font-size:14.5px;line-height:2;color:var(--brown);max-width:680px;margin:0 auto;}

/* ===== TOP Hero (index.html) ===== */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;
  padding:140px 32px 80px;z-index:2;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 28% 28%, rgba(241,198,104,.22) 0%, transparent 50%),
    radial-gradient(circle at 80% 60%, rgba(242,197,207,.20) 0%, transparent 50%);
}
.hero-inner{
  display:grid;grid-template-columns:1fr 1.05fr;gap:60px;align-items:center;
  max-width:1320px;margin:0 auto;position:relative;z-index:2;width:100%;
}
.hero-tag{
  font-family:"Cormorant Garamond",serif;font-size:13px;letter-spacing:.45em;
  color:var(--gold-deep);margin-bottom:14px;font-weight:500;
  display:inline-block;
}
.hero-subtitle{
  font-family:"Shippori Mincho",serif;font-size:22px;font-weight:500;
  color:var(--gold-deep);letter-spacing:.4em;margin-bottom:32px;
}
.hero-title{
  font-family:"Shippori Mincho",serif;font-size:78px;font-weight:700;
  letter-spacing:.16em;color:var(--brown-dark);line-height:1.2;margin-bottom:10px;
  text-shadow:0 2px 8px rgba(212,163,90,.18);
}
.hero-title .gold{
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 50%,var(--gold-deep) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-divider{display:flex;align-items:center;gap:14px;margin:18px 0 18px;}
.hero-divider .line{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.hero-divider i{color:var(--gold);font-size:9px;}
.hero-lead{
  font-size:16px;color:var(--text);line-height:2.3;letter-spacing:.12em;
  margin-bottom:36px;max-width:520px;font-weight:500;
}
.hero-lead .em{color:var(--gold-deep);font-weight:700;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}

.btn{
  display:inline-flex;align-items:center;gap:12px;
  padding:17px 34px;font-size:13px;letter-spacing:.26em;font-weight:600;
  border-radius:2px;cursor:pointer;transition:all .3s;
  font-family:"Shippori Mincho",serif;border:none;position:relative;overflow:hidden;
}
.btn-primary{
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 50%,var(--gold-deep) 100%);
  color:#fff;box-shadow:var(--shadow-gold);
}
.btn-primary::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .6s;
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(212,163,90,.4);color:#fff;}
.btn-primary:hover::before{left:100%;}
.btn-outline{
  background:rgba(255,255,255,.55);color:var(--brown-dark);
  border:1px solid var(--gold);backdrop-filter:blur(4px);
}
.btn-outline:hover{background:var(--gold-shine);color:var(--gold-deep);}
.btn i{font-size:12px;}

/* Hero portrait (right side) */
.hero-portrait{position:relative;display:flex;align-items:center;justify-content:center;}
.hero-portrait-frame{
  position:relative;width:380px;height:380px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.hero-portrait-frame::before{
  content:'';position:absolute;inset:-6px;border-radius:50%;
  background:conic-gradient(from 0deg, var(--gold-deep), var(--gold-shine), var(--gold), var(--gold-bright), var(--gold-deep));
  animation:rotate 14s linear infinite;z-index:1;
}
.hero-portrait-frame::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:var(--ivory);z-index:2;
}
@keyframes rotate{to{transform:rotate(360deg);}}
.hero-portrait-img{
  position:relative;z-index:3;width:96%;height:96%;border-radius:50%;
  object-fit:cover;border:2px solid var(--gold);
  box-shadow:inset 0 0 30px rgba(58,38,24,.18),0 12px 40px rgba(58,38,24,.18);
}
.hero-portrait-orb{
  position:absolute;font-size:11px;color:var(--gold-deep);
  letter-spacing:.32em;font-family:"Cormorant Garamond",serif;
  text-transform:uppercase;font-weight:600;
}
.hero-portrait-orb.top{top:-28px;left:50%;transform:translateX(-50%);}
.hero-portrait-orb.bottom{bottom:-28px;left:50%;transform:translateX(-50%);}

/* ===== Container / Section ===== */
.container{max-width:1180px;margin:0 auto;padding:0 28px;}
section{padding:96px 0;position:relative;z-index:2;}
.section-eyebrow{
  text-align:center;font-family:"Cormorant Garamond",serif;
  font-size:13px;letter-spacing:.5em;color:var(--gold-deep);
  margin-bottom:14px;text-transform:uppercase;font-weight:600;
}
.section-heading{
  text-align:center;font-size:38px;font-weight:600;letter-spacing:.14em;
  color:var(--brown-dark);margin-bottom:18px;line-height:1.5;
  font-family:"Shippori Mincho",serif;
}
.section-heading .gold{
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 50%,var(--gold-deep) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.section-divider{
  display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:26px;
}
.section-divider .line{width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.section-divider i{color:var(--gold);font-size:14px;}
.section-sub{
  text-align:center;font-size:14.5px;color:var(--text-sub);
  margin-bottom:60px;line-height:2;max-width:680px;margin-left:auto;margin-right:auto;
}

/* ===== Cards ===== */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.cards-2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.cards-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.card{
  background:var(--card);border:1px solid var(--border);
  border-radius:6px;padding:36px 28px;position:relative;
  transition:all .35s;overflow:hidden;
}
.card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold-light),var(--gold-deep));
  transform:scaleX(0);transform-origin:left;transition:transform .4s;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold);}
.card:hover::before{transform:scaleX(1);}
.card-icon{
  width:60px;height:60px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 50%,var(--gold-deep) 100%);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:22px;margin-bottom:20px;
  box-shadow:0 6px 18px rgba(212,163,90,.32);
}
.card-title{font-size:17px;font-weight:600;color:var(--brown-dark);margin-bottom:10px;letter-spacing:.08em;line-height:1.6;}
.card-title-en{font-family:"Cormorant Garamond",serif;font-size:11px;letter-spacing:.4em;color:var(--gold-deep);margin-bottom:10px;text-transform:uppercase;font-weight:600;}
.card-text{font-size:13px;color:var(--text-sub);line-height:2;}

/* ===== Books strip ===== */
.book-strip{
  background:linear-gradient(180deg,var(--cream) 0%,var(--ivory) 100%);
  padding:80px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);
}
.book-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:36px;}
.book-card{
  background:var(--card);border:1px solid var(--border);padding:24px;
  transition:all .3s;cursor:pointer;border-radius:4px;
}
.book-card:hover{border-color:var(--gold);box-shadow:var(--shadow-gold);transform:translateY(-3px);}
.book-card-tag{display:inline-block;font-size:10px;letter-spacing:.3em;color:var(--gold-deep);background:var(--pale-gold);padding:3px 10px;margin-bottom:12px;border-radius:2px;font-weight:600;}
.book-card-title{font-size:14px;font-weight:600;color:var(--brown-dark);margin-bottom:8px;letter-spacing:.06em;line-height:1.6;}
.book-card-desc{font-size:12px;color:var(--text-sub);line-height:1.95;}
.book-card-more{font-size:11px;color:var(--gold-deep);margin-top:14px;font-family:"Cormorant Garamond",serif;letter-spacing:.22em;font-weight:600;}

/* ===== Video / YouTube ===== */
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;}
.video-card{position:relative;background:var(--card);border:1px solid var(--border);padding:0;overflow:hidden;border-radius:4px;}
.video-frame{position:relative;width:100%;padding-bottom:56.25%;overflow:hidden;background:var(--cream);}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.video-meta{padding:20px 24px;border-top:1px solid var(--border-soft);}
.video-meta-tag{display:inline-block;font-size:10px;letter-spacing:.3em;color:var(--gold-deep);background:var(--pale-gold);padding:3px 10px;margin-bottom:10px;border-radius:2px;font-weight:600;}
.video-meta-title{font-size:14px;font-weight:600;color:var(--brown-dark);line-height:1.7;}

/* ===== Goods cards ===== */
.goods-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.goods-card{
  background:var(--card);border:1px solid var(--border);
  padding:32px 26px;position:relative;transition:all .3s;
  display:flex;flex-direction:column;border-radius:4px;
}
.goods-card:hover{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-4px);}
.goods-img{
  width:100%;height:180px;
  background:linear-gradient(135deg,var(--gold-shine) 0%,var(--pale-gold) 50%,var(--cream) 100%);
  border:1px solid var(--border);margin-bottom:20px;
  display:flex;align-items:center;justify-content:center;
  font-size:52px;color:var(--gold-deep);
  position:relative;overflow:hidden;border-radius:2px;
}
.goods-img::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 50% 50%,transparent 30%,rgba(212,163,90,.18) 70%);
}
.goods-name{font-size:16px;font-weight:600;color:var(--brown-dark);margin-bottom:8px;letter-spacing:.06em;line-height:1.6;}
.goods-desc{font-size:12.5px;color:var(--text-sub);line-height:1.95;flex:1;margin-bottom:18px;}
.goods-price{
  font-family:"Cormorant Garamond",serif;font-size:26px;
  color:var(--gold-deep);font-weight:600;letter-spacing:.04em;
  border-top:1px dashed var(--border);padding-top:14px;
}
.goods-price .tax{font-size:11px;color:var(--text-mute);margin-left:6px;font-family:"Shippori Mincho",serif;}

/* ===== Voice / Quote box ===== */
.voice-box{
  background:linear-gradient(135deg,var(--cream) 0%,var(--ivory) 50%,var(--pale-gold) 100%);
  color:var(--brown-dark);padding:64px 56px;border-radius:6px;
  position:relative;overflow:hidden;border:1px solid var(--border);
  box-shadow:var(--shadow-gold);
}
.voice-box::before{
  content:'"';position:absolute;top:-20px;left:30px;
  font-family:"Cormorant Garamond",serif;font-size:200px;color:rgba(212,163,90,.22);
  line-height:1;font-weight:700;
}
.voice-box::after{
  content:'';position:absolute;bottom:-50px;right:-50px;width:240px;height:240px;
  background:radial-gradient(circle,rgba(242,197,207,.25) 0%,transparent 60%);
}
.voice-text{font-size:17px;line-height:2.3;color:var(--brown-dark);position:relative;z-index:2;font-weight:500;letter-spacing:.1em;}
.voice-text strong{color:var(--gold-deep);font-weight:700;}

/* ===== List with markers ===== */
.lux-list{list-style:none;padding:0;}
.lux-list li{
  padding:14px 0 14px 30px;position:relative;
  font-size:14px;color:var(--text);border-bottom:1px dashed var(--border);line-height:1.95;
}
.lux-list li::before{
  content:'❋';position:absolute;left:0;top:14px;color:var(--gold-deep);font-size:14px;
}
.lux-list li strong{color:var(--gold-deep);}

/* ===== Info table ===== */
.info-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:4px;overflow:hidden;}
.info-table th,.info-table td{padding:20px 24px;text-align:left;border-bottom:1px solid var(--border-soft);font-size:14px;line-height:1.95;vertical-align:top;}
.info-table th{
  width:30%;background:linear-gradient(135deg,var(--cream) 0%,var(--pale-gold) 100%);
  color:var(--brown-dark);font-weight:600;letter-spacing:.12em;
  border-bottom:1px solid var(--border);
}
.info-table th .en{display:block;font-family:"Cormorant Garamond",serif;font-size:10px;color:var(--gold-deep);letter-spacing:.3em;margin-top:4px;font-weight:600;}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none;}

/* ===== Pupil tags ===== */
.pupil-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;}
.pupil-tag{
  text-align:center;padding:18px 12px;font-size:13.5px;
  background:var(--card);border:1px solid var(--border);
  color:var(--brown-dark);letter-spacing:.08em;
  transition:all .25s;cursor:default;
  font-weight:500;position:relative;border-radius:2px;
}
.pupil-tag:hover{
  background:linear-gradient(135deg,var(--gold-shine) 0%,var(--pale-gold) 100%);
  color:var(--gold-deep);border-color:var(--gold);
}
.pupil-tag::before{
  content:'峰';position:absolute;top:6px;right:8px;
  font-size:9px;color:var(--gold-deep);font-family:"Cormorant Garamond",serif;opacity:.5;
}

/* ===== Media list ===== */
.media-block{margin-bottom:48px;}
.media-block-h{
  display:flex;align-items:baseline;gap:14px;margin-bottom:20px;
  padding-bottom:14px;border-bottom:2px solid var(--gold);
}
.media-block-h h3{font-size:20px;font-weight:600;color:var(--brown-dark);letter-spacing:.08em;font-family:"Shippori Mincho",serif;}
.media-block-h .pub{font-size:12px;color:var(--text-mute);}
.media-list{list-style:none;padding:0;}
.media-list li{
  padding:12px 0 12px 24px;position:relative;font-size:13.5px;color:var(--text);
  border-bottom:1px dashed var(--border-soft);line-height:1.9;
}
.media-list li::before{
  content:'';position:absolute;left:0;top:22px;width:14px;height:1px;background:var(--gold-deep);
}
.media-list li .date{font-family:"Cormorant Garamond",serif;color:var(--gold-deep);font-weight:600;margin-right:12px;letter-spacing:.04em;}

/* ===== Form ===== */
.form-card{
  background:var(--card);border:1px solid var(--border);
  padding:50px;border-radius:6px;box-shadow:var(--shadow);
}
.form-row{margin-bottom:22px;}
.form-label{display:block;font-size:13px;font-weight:600;color:var(--brown-dark);margin-bottom:8px;letter-spacing:.08em;}
.form-label .req{color:var(--crimson);margin-left:6px;font-size:11px;}
.form-label .en{display:inline-block;font-family:"Cormorant Garamond",serif;font-size:10px;color:var(--gold-deep);margin-left:8px;letter-spacing:.2em;font-weight:600;}
.form-input,.form-select,.form-textarea{
  width:100%;padding:14px 16px;font-size:14px;
  background:var(--ivory);border:1px solid var(--border);
  border-radius:2px;font-family:inherit;color:var(--text);
  transition:all .2s;
}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,163,90,.18);
}
.form-textarea{min-height:140px;resize:vertical;}
.form-actions{text-align:center;margin-top:32px;}

/* ===== CTA band ===== */
.cta-band{
  background:linear-gradient(135deg,var(--cream) 0%,var(--pale-gold) 50%,var(--cream) 100%);
  color:var(--brown-dark);padding:90px 0;position:relative;overflow:hidden;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);
}
.cta-band::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%, rgba(241,198,104,.25) 0%, transparent 45%),
    radial-gradient(circle at 80% 70%, rgba(242,197,207,.22) 0%, transparent 50%);
}
.cta-band-inner{position:relative;z-index:2;text-align:center;}
.cta-band-eyebrow{font-family:"Cormorant Garamond",serif;font-size:13px;letter-spacing:.5em;color:var(--gold-deep);margin-bottom:14px;font-weight:600;}
.cta-band-h{font-size:34px;font-weight:600;color:var(--brown-dark);letter-spacing:.14em;margin-bottom:22px;line-height:1.6;font-family:"Shippori Mincho",serif;}
.cta-band-h .gold{
  background:linear-gradient(135deg,var(--gold-bright) 0%,var(--gold) 50%,var(--gold-deep) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.cta-band-lead{font-size:14.5px;color:var(--brown);max-width:580px;margin:0 auto 36px;line-height:2.1;letter-spacing:.08em;}

/* ===== Footer ===== */
.site-footer{
  background:linear-gradient(180deg,var(--brown-dark) 0%,var(--black-rich) 100%);
  color:var(--gold-shine);padding:80px 0 30px;position:relative;z-index:2;
}
.site-footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.footer-inner{max-width:1180px;margin:0 auto;padding:0 28px;
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px;}
.footer-brand{display:flex;flex-direction:column;gap:14px;}
.footer-brand .brand .brand-jp{color:var(--gold-shine);}
.footer-brand .brand .brand-en{color:var(--gold);}
.footer-brand p{font-size:12px;color:rgba(245,230,181,.7);line-height:2;margin-top:10px;}
.footer-col h4{
  font-size:13px;font-weight:600;color:var(--gold-light);
  letter-spacing:.22em;margin-bottom:18px;padding-bottom:10px;
  border-bottom:1px solid rgba(212,163,90,.3);font-family:"Shippori Mincho",serif;
}
.footer-col ul{list-style:none;padding:0;}
.footer-col li{margin-bottom:10px;}
.footer-col a{font-size:12.5px;color:rgba(245,230,181,.75);letter-spacing:.06em;}
.footer-col a:hover{color:var(--gold-light);}
.footer-bottom{
  border-top:1px solid rgba(212,163,90,.2);padding-top:24px;margin-top:24px;
  text-align:center;font-size:11px;color:rgba(245,230,181,.5);
  letter-spacing:.2em;font-family:"Cormorant Garamond",serif;
}
.footer-links{display:flex;gap:20px;justify-content:center;margin-bottom:14px;font-size:11px;flex-wrap:wrap;}
.footer-links a{color:rgba(245,230,181,.6);letter-spacing:.12em;}
.footer-links a:hover{color:var(--gold-light);}

/* ===== Fade-in animations ===== */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease, transform .9s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .hero-inner{grid-template-columns:1fr;text-align:center;gap:48px;}
  .hero-title{font-size:54px;}
  .hero-lead{margin-left:auto;margin-right:auto;}
  .hero-actions{justify-content:center;}
  .hero-divider{justify-content:center;}
  .cards-3,.video-grid,.goods-grid{grid-template-columns:repeat(2,1fr);}
  .cards-4,.book-grid{grid-template-columns:repeat(2,1fr);}
  .pupil-grid{grid-template-columns:repeat(4,1fr);}
  .footer-inner{grid-template-columns:1fr 1fr;}
  .site-header{padding:14px 24px;}
}
@media (max-width:720px){
  .nav{display:none;position:absolute;top:78px;left:0;right:0;
    background:rgba(253,248,236,.98);flex-direction:column;align-items:stretch;
    padding:20px;gap:0;border-top:1px solid var(--border);backdrop-filter:blur(12px);}
  .nav.open{display:flex;}
  .nav a{padding:14px 18px;border-bottom:1px solid var(--border-soft);}
  .nav a::after{display:none;}
  .nav-cta{margin:10px 0 0;text-align:center;}
  .nav-toggle{display:block;}
  .hero{padding:120px 24px 60px;}
  .hero-title{font-size:40px;letter-spacing:.1em;}
  .hero-portrait-frame{width:260px;height:260px;}
  .page-title{font-size:30px;}
  .section-heading{font-size:28px;}
  section{padding:60px 0;}
  .cards-3,.cards-2,.video-grid,.goods-grid,.cards-4,.book-grid{grid-template-columns:1fr;}
  .pupil-grid{grid-template-columns:repeat(3,1fr);}
  .footer-inner{grid-template-columns:1fr;gap:32px;}
  .info-table th{width:35%;padding:14px;}
  .info-table td{padding:14px;}
  .form-card{padding:28px 20px;}
  .voice-box{padding:40px 24px;}
  .voice-box::before{font-size:120px;}
  .voice-text{font-size:15px;line-height:2;}
  .cta-band-h{font-size:24px;}
}
