/*
 Theme Name:   Astra Child - 脱毛サロン
 Template:     astra
 Version:      2.0.0
 Text Domain:  astra-child
*/

/* ===== Variables ===== */
:root {
    --pink: #e84b8a;
    --pink-dark: #d63a79;
    --pink-light: #f5a0c0;
    --pink-pale: #fce4ef;
    --pink-bg: #f9f9f9;
    --accent: #e84b8a;
    --accent-grad: linear-gradient(135deg, #e84b8a 0%, #ff6b9d 100%);
    --grad: linear-gradient(135deg, #1a1a1a 0%, #333 100%);
    --grad-soft: linear-gradient(135deg, #e0e0e0 0%, #f5f5f5 100%);
    --text: #2a2a2a;
    --text-light: #5a5a5a;
    --text-muted: #9a9a9a;
    --white: #fff;
    --bg-gray: #f7f7f7;
    --border: rgba(0,0,0,.06);
    --gold: #c9a96e;
    --green-line: #06c755;
    --black: #1a1a1a;
    --ff: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    --ff-en: "Poppins", sans-serif;
    --shadow: 0 2px 8px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06);
    --shadow-lg: 0 4px 12px rgba(0,0,0,.04), 0 16px 48px rgba(0,0,0,.08);
    --shadow-hover: 0 4px 12px rgba(0,0,0,.06), 0 20px 48px rgba(0,0,0,.12);
    --r: 14px;
    --r-lg: 20px;
    --r-full: 100px;
    --trans: .35s cubic-bezier(.4,0,.2,1);
    --hh: 72px;
    --dalmatian: url('assets/img/dalmatian-pattern.svg');
    --dalmatian-white: url('assets/img/dalmatian-pattern-white.svg');
}

/* ===== Reset ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--hh)}
body.datsumo-lp{font-family:var(--ff);color:var(--text);background:var(--white);line-height:1.85;font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;letter-spacing:.02em}
img{max-width:100%;height:auto;vertical-align:middle}
a{text-decoration:none;color:inherit;transition:var(--trans)}
ul{list-style:none}
.container{max-width:1080px;margin:0 auto;padding:0 24px}

/* ===== HEADER ===== */
.lp-header{position:fixed;top:0;left:0;width:100%;height:var(--hh);background:rgba(255,255,255,.96);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);z-index:1000;border-bottom:1px solid rgba(0,0,0,.04)}
.header-inner{max-width:1200px;margin:0 auto;padding:0 28px;height:100%;display:flex;align-items:center;justify-content:space-between}
.header-logo .site-name{font-size:1.15rem;font-weight:700;color:var(--black);letter-spacing:.08em}
.header-nav .nav-list{display:flex;gap:28px}
.header-nav .nav-list li a{font-size:.8rem;font-weight:500;position:relative;padding:4px 0;letter-spacing:.04em;color:var(--text-light)}
.header-nav .nav-list li a::after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--black);transition:width .35s cubic-bezier(.4,0,.2,1)}
.header-nav .nav-list li a:hover{color:var(--black)}
.header-nav .nav-list li a:hover::after{width:100%}
.btn-cta-header{display:inline-block;padding:10px 28px;background:var(--accent-grad);color:var(--white)!important;font-size:.8rem;font-weight:600;border-radius:var(--r-full);box-shadow:0 2px 8px rgba(232,75,138,.2),0 6px 20px rgba(232,75,138,.15);transition:var(--trans);letter-spacing:.04em}
.btn-cta-header:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,75,138,.25),0 10px 28px rgba(232,75,138,.2)}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:1001}
.hamburger span{display:block;width:20px;height:1.5px;background:var(--text);transition:var(--trans);border-radius:2px}
.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* ===== HERO ===== */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;background:#fff;overflow:hidden;padding-top:var(--hh)}
.hero::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian);background-size:180px 180px;opacity:.03;pointer-events:none}
.hero-bg-deco{position:absolute;top:10%;right:-5%;width:50%;height:80%;background:radial-gradient(ellipse,rgba(0,0,0,.02) 0%,transparent 70%);pointer-events:none}
.hero-inner{position:relative;z-index:2;max-width:1100px;margin:0 auto;padding:80px 28px;display:flex;align-items:center;justify-content:space-between;gap:56px}
.hero-text{flex:1;max-width:500px}
.hero-catch{font-size:.85rem;color:var(--text-light);font-weight:500;letter-spacing:.18em;margin-bottom:16px;text-transform:uppercase}
.hero-heading{font-size:2.6rem;font-weight:800;color:var(--black);line-height:1.35;margin-bottom:28px;letter-spacing:.02em}
.hero-heading-sub{font-size:1.3rem;font-weight:600;color:var(--accent);letter-spacing:.04em}
.hero-price-box{background:var(--white);border-radius:var(--r-lg);padding:28px 40px;display:inline-block;box-shadow:var(--shadow);margin-bottom:32px;border:1px solid rgba(0,0,0,.06)}
.hero-price-main{display:flex;align-items:baseline;gap:4px}
.hero-price-num{font-size:3.4rem;font-weight:800;font-family:var(--ff-en);color:var(--black);line-height:1;letter-spacing:-.02em}
.hero-price-yen{font-size:1.3rem;font-weight:700;color:var(--black)}
.hero-price-tax{font-size:.72rem;color:var(--text-muted);margin-left:6px;letter-spacing:.02em}
.hero-price-note{font-size:.72rem;color:var(--text-muted);margin-top:8px;letter-spacing:.02em}
.btn-hero-cta{display:inline-block;padding:18px 48px;background:var(--accent-grad);color:var(--white);font-size:.95rem;font-weight:700;border-radius:var(--r-full);box-shadow:0 4px 16px rgba(232,75,138,.2),0 8px 32px rgba(232,75,138,.15);transition:var(--trans);letter-spacing:.06em}
.btn-hero-cta:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(232,75,138,.25),0 14px 40px rgba(232,75,138,.2);color:var(--white)}
.hero-image{flex:0 0 auto;position:relative}
.hero-image img{max-height:500px;width:auto;filter:drop-shadow(0 12px 40px rgba(0,0,0,.08))}

/* Wave Dividers */
.wave-divider{position:absolute;left:0;width:100%;line-height:0;overflow:hidden}
.wave-divider svg{display:block;width:100%;height:auto}
.wave-white{bottom:0}
.wave-pink-top{position:relative;margin-top:-1px}
.wave-pink-bottom{position:relative;margin-bottom:-1px}

/* ===== SECTIONS COMMON ===== */
.sec{padding:100px 0;position:relative}
.sec-header{text-align:center;margin-bottom:56px}
.sec-en{display:block;font-family:var(--ff-en);font-size:.75rem;font-weight:600;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px}
.sec-title{font-size:1.75rem;font-weight:700;letter-spacing:.06em;color:var(--black)}
.sec-desc{margin-top:16px;color:var(--text-light);font-size:.88rem;letter-spacing:.02em}

/* ===== ABOUT ===== */
.about-card-row{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.about-card{background:var(--white);padding:40px 28px;border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow);border:1px solid var(--border);transition:var(--trans)}
.about-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.about-card-icon{width:64px;height:64px;margin:0 auto 20px}
.about-card-icon svg{width:100%;height:100%}
.about-card h3{font-size:.95rem;font-weight:700;margin-bottom:12px;letter-spacing:.04em}
.about-card p{font-size:.84rem;color:var(--text-light);line-height:1.75}

/* ===== PLAN ===== */
.sec-plan{padding:0}
.sec-plan-bg{background:var(--pink-bg);padding:100px 0;position:relative}
.sec-plan-bg::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian);background-size:180px 180px;opacity:.025;pointer-events:none}
.plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:900px;margin:0 auto;position:relative;z-index:1}
.plan-card{background:var(--white);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);transition:var(--trans)}
.plan-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.plan-card-popular{box-shadow:var(--shadow-lg)}
.plan-card-head{background:var(--grad);padding:20px 24px;text-align:center;position:relative;border-radius:var(--r-lg) var(--r-lg) 0 0}
.plan-card-popular .plan-card-head{background:linear-gradient(135deg, #111 0%, #333 50%, #111 100%)}
.plan-popular-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--white);font-size:.68rem;font-weight:700;padding:4px 20px;border-radius:var(--r-full);white-space:nowrap;box-shadow:0 2px 8px rgba(201,169,110,.25);letter-spacing:.08em}
.plan-label{font-size:.95rem;font-weight:700;color:var(--white);letter-spacing:.04em}
.plan-card-body{padding:28px 24px 32px}
/* Illustration area */
.plan-illust-area{display:flex;gap:10px;margin-bottom:24px}
.plan-illust-box{flex:1;background:var(--bg-gray);border-radius:var(--r);padding:12px 8px 14px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.plan-illust-wide{max-width:65%;margin:0 auto}
.plan-illust-label{display:block;font-family:var(--ff-en);font-size:.68rem;font-weight:600;color:var(--text-muted);letter-spacing:.1em}
.plan-illust-box img{max-height:130px;width:auto;object-fit:contain}
/* 3-part layout (FULL BODY + VIO/FACE stacked) */
.plan-illust-3{gap:10px}
.plan-illust-tall{flex:1.2}
.plan-illust-tall img{max-height:160px}
.plan-illust-col{flex:0.8;display:flex;flex-direction:column;gap:8px}
.plan-illust-half{flex:1}
.plan-illust-half img{max-height:60px}
/* Price area */
.plan-price-area{text-align:center}
.plan-badge-lump{display:inline-block;background:var(--grad);color:var(--white);font-size:.72rem;font-weight:700;padding:6px 28px;border-radius:var(--r-full);margin-bottom:14px;letter-spacing:.08em}
.plan-total-price{display:flex;align-items:baseline;justify-content:center;gap:2px;margin-bottom:4px}
.pp-num{font-size:2.8rem;font-weight:800;font-family:var(--ff-en);color:var(--black);line-height:1;letter-spacing:-.02em}
.pp-yen{font-size:1.1rem;font-weight:700;color:var(--black)}
.pp-tax-inline{font-size:.68rem;font-weight:500;color:var(--text-muted);margin-left:4px;letter-spacing:.02em}
.plan-monthly-row{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-top:14px;flex-wrap:wrap}
.plan-badge-installment{display:inline-block;background:var(--black);color:var(--white);font-size:.62rem;font-weight:700;padding:3px 12px;border-radius:var(--r-full);margin-right:4px;letter-spacing:.04em}
.plan-monthly-text{font-size:.82rem;color:var(--text)}
.plan-monthly-num{font-size:2rem;font-weight:800;font-family:var(--ff-en);color:var(--black);line-height:1;letter-spacing:-.02em}
.plan-monthly-yen{font-size:.82rem;font-weight:600;color:var(--text)}
.plan-monthly-ast{font-size:.72rem;color:var(--text-muted)}
.plan-disclaimer{font-size:.62rem;color:var(--text-muted);line-height:1.6;margin-top:16px;text-align:left;padding:0 4px;letter-spacing:.01em}
.plan-cta-wrap{text-align:center;margin-top:44px;position:relative;z-index:1}
.btn-plan-cta{display:inline-block;padding:16px 52px;border:1.5px solid var(--accent);color:var(--accent);font-weight:700;font-size:.9rem;border-radius:var(--r-full);transition:var(--trans);background:var(--white);letter-spacing:.06em}
.btn-plan-cta:hover{background:var(--accent);color:var(--white);box-shadow:0 4px 16px rgba(232,75,138,.2),0 8px 32px rgba(232,75,138,.12)}

/* ===== FEATURES ===== */
.sec-features{padding:100px 0 80px}
.feature-block{display:flex;align-items:center;gap:52px;margin-bottom:48px;padding:44px;background:var(--white);border-radius:var(--r-lg);box-shadow:var(--shadow);border:1px solid var(--border);transition:var(--trans)}
.feature-block:hover{box-shadow:var(--shadow-hover)}
.feature-block:last-child{margin-bottom:0}
.fb-right{flex-direction:row-reverse}
.feature-img{flex:0 0 44%;text-align:center}
.feature-img img{border-radius:var(--r);max-height:280px;width:auto}
.feature-text{flex:1}
.feature-num{display:inline-block;font-family:var(--ff-en);font-size:2.2rem;font-weight:800;color:var(--black);line-height:1;margin-bottom:14px;opacity:.15;letter-spacing:-.02em}
.feature-text h3{font-size:1.2rem;font-weight:700;margin-bottom:14px;line-height:1.55;letter-spacing:.03em}
.feature-text p{font-size:.88rem;color:var(--text-light);line-height:1.85}

/* ===== CTA BAND ===== */
.cta-band{background:var(--black);padding:72px 0;text-align:center;color:var(--white);position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian-white);background-size:180px 180px;opacity:.04;pointer-events:none}
.cta-band-sub{font-size:.82rem;opacity:.7;margin-bottom:8px;position:relative;z-index:1;letter-spacing:.1em}
.cta-band-title{font-size:1.7rem;font-weight:700;margin-bottom:32px;letter-spacing:.08em;position:relative;z-index:1}
.cta-band-btns{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;position:relative;z-index:1}
.btn-cta-white{display:inline-block;padding:15px 48px;background:var(--white);color:var(--accent);font-weight:700;font-size:.9rem;border-radius:var(--r-full);box-shadow:0 2px 8px rgba(0,0,0,.08),0 8px 24px rgba(0,0,0,.06);transition:var(--trans);letter-spacing:.04em}
.btn-cta-white:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1),0 12px 32px rgba(0,0,0,.1);color:var(--accent)}
.btn-cta-outline{display:inline-block;padding:15px 48px;border:1.5px solid rgba(255,255,255,.5);color:var(--white);font-weight:600;font-size:.9rem;border-radius:var(--r-full);transition:var(--trans);letter-spacing:.04em}
.btn-cta-outline:hover{border-color:var(--white);background:rgba(255,255,255,.1);color:var(--white);transform:translateY(-2px)}

/* ===== FLOW ===== */
.sec-flow{padding:0}
.sec-flow-bg{background:var(--pink-bg);padding:100px 0;position:relative}
.sec-flow-bg::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian);background-size:180px 180px;opacity:.025;pointer-events:none}
.flow-timeline{max-width:860px;margin:0 auto;position:relative;z-index:1}
.flow-item{display:flex;align-items:center;gap:40px;background:var(--white);border-radius:var(--r-lg);padding:32px 36px;box-shadow:var(--shadow);border:1px solid var(--border);transition:var(--trans)}
.flow-item:hover{box-shadow:var(--shadow-hover)}
.flow-item-reverse{flex-direction:row-reverse}
.flow-item-img{flex:0 0 40%;text-align:center}
.flow-item-img img{border-radius:var(--r);max-height:200px;width:auto}
.flow-item-body{flex:1}
.flow-step-badge{display:inline-block;background:var(--grad);color:var(--white);font-family:var(--ff-en);font-size:.7rem;font-weight:700;padding:5px 18px;border-radius:var(--r-full);margin-bottom:14px;letter-spacing:.1em}
.flow-step-badge em{font-style:normal;font-size:1.05rem;font-weight:800}
.flow-item-body h3{font-size:1.05rem;font-weight:700;margin-bottom:10px;letter-spacing:.03em}
.flow-item-body p{font-size:.84rem;color:var(--text-light);line-height:1.8}
.flow-connector-v{width:2px;height:24px;background:rgba(0,0,0,.1);margin:0 auto;border-radius:2px}

/* ===== FAQ ===== */
.sec-faq{padding:100px 0}
.faq-list{max-width:760px;margin:0 auto}
.faq-item{margin-bottom:8px;border-radius:var(--r);overflow:hidden;background:var(--white);box-shadow:0 1px 4px rgba(0,0,0,.03),0 4px 12px rgba(0,0,0,.04);border:1px solid var(--border);transition:var(--trans)}
.faq-item:hover{box-shadow:var(--shadow)}
.faq-q{width:100%;display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--white);border:none;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);transition:var(--trans)}
.faq-q:hover{background:var(--bg-gray)}
.faq-q-icon{flex-shrink:0;width:28px;height:28px;background:var(--grad);color:var(--white);font-weight:700;font-family:var(--ff-en);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem}
.faq-q-text{flex:1;font-weight:600;font-size:.88rem;letter-spacing:.02em}
.faq-toggle{flex-shrink:0;width:18px;height:18px;position:relative}
.faq-toggle span{position:absolute;background:var(--text-muted);border-radius:2px;transition:var(--trans)}
.faq-toggle span:first-child{top:50%;left:0;width:100%;height:1.5px;transform:translateY(-50%)}
.faq-toggle span:last-child{top:0;left:50%;width:1.5px;height:100%;transform:translateX(-50%)}
.faq-item.active .faq-toggle span:last-child{transform:translateX(-50%) rotate(90deg);opacity:0}
.faq-a{display:none;padding:0 24px 20px;gap:16px;align-items:flex-start}
.faq-item.active .faq-a{display:flex}
.faq-a-icon{flex-shrink:0;width:28px;height:28px;background:var(--bg-gray);color:var(--text-light);font-weight:700;font-family:var(--ff-en);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem}
.faq-a p{font-size:.84rem;color:var(--text-light);line-height:1.8;flex:1}

/* ===== DOCTOR ===== */
.sec-doctor{padding:100px 0;background:var(--bg-gray)}
.doctor-card{display:flex;gap:44px;align-items:flex-start;background:var(--white);border-radius:var(--r-lg);padding:44px;max-width:800px;margin:0 auto;box-shadow:var(--shadow);border:1px solid var(--border)}
.doctor-photo{flex:0 0 auto}
.doctor-photo img{border-radius:var(--r);max-width:240px}
.doctor-info{flex:1}
.doctor-position{font-size:.75rem;color:var(--text-muted);margin-bottom:6px;letter-spacing:.1em}
.doctor-name{font-size:1.4rem;font-weight:700;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(0,0,0,.08);letter-spacing:.04em}
.doctor-career h4{font-size:.82rem;font-weight:700;margin-bottom:10px;letter-spacing:.04em}
.doctor-career ul{margin-bottom:24px}
.doctor-career li{font-size:.78rem;color:var(--text-light);line-height:2.1;padding-left:0}
.btn-doctor{display:inline-block;padding:11px 32px;background:var(--accent-grad);color:var(--white);font-size:.82rem;font-weight:600;border-radius:var(--r-full);transition:var(--trans);letter-spacing:.04em}
.btn-doctor:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,75,138,.2),0 8px 24px rgba(232,75,138,.12);color:var(--white)}

/* ===== CLINIC ===== */
.sec-clinic{padding:0}
.sec-clinic-bg{background:var(--pink-bg);padding:100px 0 80px;position:relative}
.sec-clinic-bg::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian);background-size:180px 180px;opacity:.025;pointer-events:none}
.clinic-en{font-family:"Dancing Script","Satisfy",cursive;font-size:1.5rem!important;font-weight:400!important;letter-spacing:0!important}
.clinic-area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative;z-index:1}
.clinic-area-block{background:var(--white);border-radius:var(--r);padding:24px;border:1px solid var(--border);transition:var(--trans)}
.clinic-area-block:hover{box-shadow:var(--shadow)}
.area-title{font-size:.82rem;font-weight:700;margin-bottom:14px;padding-left:12px;border-left:2px solid var(--black);letter-spacing:.04em}
.area-tags{display:flex;flex-wrap:wrap;gap:6px}
.area-tags a{display:inline-block;padding:6px 14px;border:1px solid rgba(0,0,0,.08);border-radius:var(--r);font-size:.76rem;color:var(--text-light);transition:var(--trans);background:var(--white)}
.area-tags a:hover{border-color:var(--black);color:var(--black);background:var(--bg-gray)}

/* ===== CONTACT ===== */
.sec-contact{background:var(--black);padding:100px 0;color:var(--white);position:relative;overflow:hidden}
.sec-contact::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian-white);background-size:180px 180px;opacity:.04;pointer-events:none}
.sec-header-light .sec-en{color:rgba(255,255,255,.4)}
.sec-header-light .sec-title{color:var(--white)}
.sec-header-light .sec-desc{color:rgba(255,255,255,.7)}
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative;z-index:1}
.contact-card{background:rgba(255,255,255,.08);backdrop-filter:blur(16px);padding:36px 24px;border-radius:var(--r-lg);text-align:center;border:1px solid rgba(255,255,255,.1);transition:var(--trans)}
.contact-card:hover{background:rgba(255,255,255,.14);transform:translateY(-3px)}
.contact-card-icon{margin-bottom:16px;opacity:.9}
.contact-card h3{font-size:1rem;font-weight:700;margin-bottom:8px;letter-spacing:.04em}
.contact-card p{font-size:.76rem;opacity:.6;margin-bottom:20px;letter-spacing:.02em}
.btn-contact{display:inline-block;padding:11px 32px;background:var(--white);color:var(--accent);font-weight:700;font-size:.82rem;border-radius:var(--r-full);transition:var(--trans);letter-spacing:.04em}
.btn-contact:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.1),0 8px 24px rgba(0,0,0,.08);color:var(--accent)}
.btn-contact-line{background:var(--green-line);color:var(--white)}
.btn-contact-line:hover{color:var(--white);background:#05b34c}

/* ===== FOOTER ===== */
.lp-footer{background:#111;color:rgba(255,255,255,.6);padding:56px 0 0}
.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.06)}
.footer-logo{display:flex;align-items:center;gap:24px}
.footer-logo .site-name{font-size:1.05rem;font-weight:700;color:var(--white);letter-spacing:.06em}
.btn-footer-cta{display:inline-block;padding:9px 28px;background:var(--accent-grad);color:var(--white)!important;font-size:.78rem;font-weight:600;border-radius:var(--r-full);transition:var(--trans);letter-spacing:.04em}
.btn-footer-cta:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,75,138,.25)}
.footer-sns{display:flex;gap:10px}
.footer-sns a{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.05);border-radius:50%;color:rgba(255,255,255,.4);transition:var(--trans)}
.footer-sns a:hover{background:var(--accent);color:var(--white)}
.footer-sns a svg{width:16px;height:16px}
.footer-nav{display:flex;gap:52px;padding:32px 0;flex-wrap:wrap}
.footer-nav-col{display:flex;flex-direction:column;gap:10px}
.footer-nav-col a{font-size:.76rem;color:rgba(255,255,255,.4);transition:var(--trans);letter-spacing:.02em}
.footer-nav-col a:hover{color:rgba(255,255,255,.75)}
.footer-sub-nav{display:flex;flex-wrap:wrap;gap:16px;padding:20px 0;border-top:1px solid rgba(255,255,255,.05)}
.footer-sub-nav a{font-size:.7rem;color:rgba(255,255,255,.25);letter-spacing:.02em}
.footer-sub-nav a:hover{color:rgba(255,255,255,.5)}
.footer-bottom{text-align:right;padding:20px 0;border-top:1px solid rgba(255,255,255,.04)}
.footer-bottom p{font-size:.68rem;color:rgba(255,255,255,.2);letter-spacing:.04em}

/* ===== FIXED CTA ===== */
.fixed-cta{display:none;position:fixed;bottom:0;left:0;width:100%;z-index:999;padding:12px 16px;background:rgba(255,255,255,.96);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(0,0,0,.04)}
.fixed-cta-btn{display:block;text-align:center;padding:14px;background:var(--accent-grad);color:var(--white);font-weight:700;font-size:.9rem;border-radius:var(--r-full);box-shadow:0 2px 8px rgba(232,75,138,.2),0 6px 20px rgba(232,75,138,.15);letter-spacing:.06em}
.fixed-cta-btn:hover{color:var(--white)}

/* ===== SUB PAGE ===== */
/* Sub Navigation */
.sub-nav-wrap{position:sticky;top:var(--hh);z-index:990;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
.sub-nav{display:flex;justify-content:center;gap:0}
.sub-nav-link{display:block;padding:14px 32px;font-size:.82rem;font-weight:600;color:var(--text-muted);position:relative;transition:var(--trans);letter-spacing:.04em}
.sub-nav-link:hover{color:var(--black)}
.sub-nav-link.active{color:var(--black)}
.sub-nav-link.active::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--black);border-radius:2px 2px 0 0}

/* Sub Hero */
.sub-hero{background:#fff;padding:calc(var(--hh) + 72px) 0 56px;text-align:center;position:relative}
.sub-hero::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian);background-size:180px 180px;opacity:.025;pointer-events:none}
.datsumo-sub .sub-hero{padding-top:72px}
.sub-hero-en{display:block;font-family:var(--ff-en);font-size:.75rem;font-weight:600;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px;position:relative;z-index:1}
.sub-hero-title{font-size:1.7rem;font-weight:700;margin-bottom:16px;position:relative;z-index:1;letter-spacing:.06em}
.sub-hero-desc{font-size:.88rem;color:var(--text-light);max-width:580px;margin:0 auto;position:relative;z-index:1;letter-spacing:.02em}

/* Sub Sections */
.sub-main{padding-bottom:0}
.sub-sec{padding:80px 0}
.sub-sec-alt{background:var(--pink-bg);position:relative}
.sub-sec-alt::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian);background-size:180px 180px;opacity:.025;pointer-events:none}
.sub-sec-header{text-align:center;margin-bottom:48px;position:relative;z-index:1}
.sub-sec-en{display:block;font-family:var(--ff-en);font-size:.75rem;font-weight:600;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px}
.sub-sec-title{font-size:1.5rem;font-weight:700;letter-spacing:.06em}

/* Brand Message */
.brand-message-box{max-width:720px;margin:0 auto;background:var(--white);border-radius:var(--r-lg);padding:48px 44px;box-shadow:var(--shadow);border:1px solid var(--border);text-align:center;position:relative;z-index:1}
.sub-sec-alt .brand-message-box{background:var(--white)}
.brand-catch{font-size:1.3rem;font-weight:700;color:var(--black);margin-bottom:24px;letter-spacing:.06em;line-height:1.6}
.brand-message-box p{font-size:.88rem;color:var(--text-light);line-height:2.1}

/* Point List (はじめての方へ) */
.point-list{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}
.point-item{display:flex;gap:24px;background:var(--white);border-radius:var(--r-lg);padding:32px 36px;box-shadow:var(--shadow);border:1px solid var(--border);transition:var(--trans)}
.point-item:hover{box-shadow:var(--shadow-hover)}
.point-num{flex-shrink:0;width:44px;height:44px;background:var(--grad);color:var(--white);font-family:var(--ff-en);font-size:1rem;font-weight:800;border-radius:50%;display:flex;align-items:center;justify-content:center}
.point-body h3{font-size:1rem;font-weight:700;margin-bottom:10px;letter-spacing:.03em}
.point-body p{font-size:.84rem;color:var(--text-light);line-height:1.85}

/* Doctor Message (はじめての方へ) */
.doctor-msg-box{display:flex;gap:40px;align-items:flex-start;max-width:720px;margin:0 auto;background:var(--white);border-radius:var(--r-lg);padding:40px;box-shadow:var(--shadow);border:1px solid var(--border)}
.doctor-msg-photo img{border-radius:var(--r);max-width:200px}
.doctor-msg-text{flex:1}
.doctor-msg-position{font-size:.75rem;color:var(--text-muted);margin-bottom:4px;letter-spacing:.1em}
.doctor-msg-name{font-size:1.25rem;font-weight:700;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid rgba(0,0,0,.08);letter-spacing:.04em}
.doctor-msg-body{font-size:.86rem;color:var(--text-light);line-height:2.1}

/* Age Blocks (未成年の方へ) */
.notice-lead{max-width:720px;margin:0 auto 44px;text-align:center;font-size:.92rem;color:var(--text);line-height:2}
.notice-lead strong{color:var(--black);font-weight:700}
.age-blocks{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.age-block{background:var(--white);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--border)}
.age-block-head{background:var(--grad);padding:18px 28px;display:flex;align-items:center;gap:16px}
.age-badge{display:inline-block;background:var(--white);color:var(--black);font-size:.82rem;font-weight:800;padding:4px 18px;border-radius:var(--r-full);font-family:var(--ff-en)}
.age-badge-gray{background:rgba(255,255,255,.85);color:var(--text-light)}
.age-label{color:var(--white);font-weight:700;font-size:.92rem;letter-spacing:.04em}
.age-block-body{padding:28px 32px}
.age-req h4{font-size:.88rem;font-weight:700;margin-bottom:12px;padding-left:12px;border-left:2px solid var(--black);letter-spacing:.03em}
.age-req ul{margin-bottom:18px;padding-left:20px}
.age-req li{font-size:.84rem;color:var(--text-light);line-height:2.1;list-style:disc}
.age-alert{display:flex;gap:12px;align-items:flex-start;background:var(--bg-gray);border:1px solid rgba(0,0,0,.06);border-radius:var(--r);padding:16px 20px;margin-top:10px}
.age-alert svg{flex-shrink:0;color:var(--black);margin-top:2px}
.age-alert p{font-size:.8rem;color:var(--text);line-height:1.75}
.age-alert strong{color:var(--black)}
.age-note{background:var(--bg-gray);border-radius:var(--r);padding:14px 18px;margin-top:14px}
.age-note p{font-size:.78rem;color:var(--text-muted);line-height:1.7}
.age-block-body > p{font-size:.86rem;color:var(--text-light);line-height:1.85}

/* Download Box */
.download-box{max-width:720px;margin:44px auto 0;display:flex;align-items:center;gap:24px;background:var(--white);border:1px solid rgba(0,0,0,.08);border-radius:var(--r-lg);padding:32px 36px;box-shadow:var(--shadow)}
.download-icon{flex-shrink:0}
.download-text{flex:1}
.download-text h3{font-size:.95rem;font-weight:700;margin-bottom:6px;letter-spacing:.03em}
.download-text p{font-size:.78rem;color:var(--text-light);line-height:1.7}
.btn-download{flex-shrink:0;display:inline-block;padding:12px 32px;background:var(--accent-grad);color:var(--white);font-size:.82rem;font-weight:700;border-radius:var(--r-full);transition:var(--trans);white-space:nowrap;letter-spacing:.04em}
.btn-download:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,75,138,.2),0 8px 24px rgba(232,75,138,.12);color:var(--white)}

/* Parents Link Box */
.parents-link-box{max-width:720px;margin:36px auto 0;text-align:center;padding:28px;background:var(--bg-gray);border-radius:var(--r-lg)}
.parents-link-box p{font-size:.86rem;color:var(--text-light);margin-bottom:14px}
.btn-parents-link{display:inline-block;padding:10px 32px;border:1.5px solid var(--black);color:var(--black);font-weight:700;font-size:.82rem;border-radius:var(--r-full);transition:var(--trans);letter-spacing:.04em}
.btn-parents-link:hover{background:var(--black);color:var(--white)}

/* Safety Grid (保護者の皆様へ) */
.safety-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:720px;margin:0 auto;position:relative;z-index:1}
.safety-card{background:var(--white);border-radius:var(--r-lg);padding:32px 28px;text-align:center;box-shadow:var(--shadow);border:1px solid var(--border);transition:var(--trans)}
.safety-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.safety-icon{margin-bottom:16px}
.safety-card h3{font-size:.92rem;font-weight:700;margin-bottom:10px;letter-spacing:.03em}
.safety-card p{font-size:.8rem;color:var(--text-light);line-height:1.8}

/* Contract Flow (保護者の皆様へ) */
.contract-flow{max-width:620px;margin:0 auto;display:flex;flex-direction:column;gap:0;position:relative}
.contract-flow::before{content:"";position:absolute;top:28px;left:21px;bottom:28px;width:1.5px;background:rgba(0,0,0,.1)}
.contract-step{display:flex;gap:24px;padding:18px 0;position:relative}
.contract-step-num{flex-shrink:0;width:44px;height:44px;background:var(--grad);color:var(--white);font-family:var(--ff-en);font-size:1.1rem;font-weight:800;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}
.contract-step-body{flex:1;padding-top:8px}
.contract-step-body h3{font-size:.95rem;font-weight:700;margin-bottom:8px;letter-spacing:.03em}
.contract-step-body p{font-size:.84rem;color:var(--text-light);line-height:1.8}

/* Sub Page Responsive */
@media(max-width:768px){
    .sub-nav-link{padding:12px 16px;font-size:.76rem}
    .sub-hero{padding:calc(var(--hh) + 44px) 0 40px}
    .datsumo-sub .sub-hero{padding-top:40px}
    .sub-hero-title{font-size:1.35rem}
    .sub-sec{padding:56px 0}
    .brand-message-box{padding:32px 24px}
    .brand-catch{font-size:1.1rem}
    .point-item{flex-direction:column;gap:14px;padding:24px}
    .doctor-msg-box{flex-direction:column;align-items:center;text-align:center;padding:28px}
    .doctor-msg-photo img{max-width:160px}
    .age-block-head{flex-direction:column;gap:8px;text-align:center}
    .age-block-body{padding:24px}
    .download-box{flex-direction:column;text-align:center;padding:28px 24px}
    .safety-grid{grid-template-columns:1fr}
    .contract-flow::before{left:21px}
}

/* ===== SCROLL ANIMATION ===== */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
    .clinic-area-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
    :root{--hh:60px}
    .hamburger{display:flex}
    .header-nav{position:fixed;top:0;right:-100%;width:80%;max-width:300px;height:100vh;background:var(--white);padding:80px 28px 28px;box-shadow:var(--shadow-lg);transition:right .35s cubic-bezier(.4,0,.2,1);z-index:1000}
    .header-nav.active{right:0}
    .header-nav .nav-list{flex-direction:column;gap:0}
    .header-nav .nav-list li a{display:block;padding:16px 0;font-size:.9rem;border-bottom:1px solid var(--border);color:var(--text)}
    .btn-cta-header{display:none}
    /* Hero */
    .hero{min-height:auto;padding:calc(var(--hh) + 48px) 0 80px}
    .hero-inner{flex-direction:column;text-align:center;gap:36px}
    .hero-text{max-width:100%}
    .hero-heading{font-size:1.8rem}
    .hero-heading-sub{font-size:1.1rem}
    .hero-price-box{padding:24px 32px}
    .hero-price-num{font-size:2.4rem}
    .hero-image img{max-height:320px}
    .btn-hero-cta{padding:16px 36px;font-size:.88rem}
    /* Sections */
    .sec{padding:72px 0}
    .sec-title{font-size:1.4rem}
    .sec-header{margin-bottom:40px}
    .about-card-row{grid-template-columns:1fr;gap:14px}
    .sec-plan-bg,.sec-flow-bg,.sec-clinic-bg{padding:72px 0}
    .plan-grid{grid-template-columns:1fr;max-width:440px}
    .plan-illust-wide{max-width:80%}
    /* Features */
    .feature-block,.fb-right{flex-direction:column;gap:24px;padding:28px;margin-bottom:20px}
    .feature-img{flex:auto;width:100%}
    .feature-img img{max-height:220px}
    .feature-num{font-size:1.8rem}
    .feature-text h3{font-size:1.05rem}
    /* CTA Band */
    .cta-band{padding:56px 0}
    .cta-band-title{font-size:1.35rem}
    .cta-band-btns{flex-direction:column;align-items:center}
    .btn-cta-white,.btn-cta-outline{width:100%;max-width:300px;text-align:center}
    /* Flow */
    .flow-item,.flow-item-reverse{flex-direction:column;gap:20px;padding:24px}
    .flow-item-img{flex:auto;width:100%}
    /* Doctor */
    .doctor-card{flex-direction:column;align-items:center;text-align:center;padding:32px 24px}
    .doctor-photo img{max-width:200px}
    /* Clinic */
    .clinic-area-grid{grid-template-columns:1fr}
    /* Contact */
    .contact-cards{grid-template-columns:1fr}
    /* Footer */
    .footer-top{flex-direction:column;gap:20px;text-align:center}
    .footer-logo{flex-direction:column}
    .footer-nav{flex-direction:column;gap:24px;align-items:center;text-align:center}
    .footer-sub-nav{justify-content:center}
    .footer-bottom{text-align:center}
    /* Fixed CTA */
    .fixed-cta{display:block}
    .lp-footer{padding-bottom:76px}
}
@media(max-width:480px){
    .hero-heading{font-size:1.5rem}
    .hero-price-num{font-size:2rem}
    .hero-price-box{padding:20px 24px}
    .pp-num{font-size:1.8rem}
    .plan-card-body{padding:20px 16px 24px}
    .cta-band-title{font-size:1.2rem}
}

/* ===== BOOKING PAGE ===== */
.booking-hero{background:#fff;padding:calc(var(--hh) + 72px) 0 56px;text-align:center;position:relative}
.booking-hero::before{content:"";position:absolute;inset:0;background-image:var(--dalmatian);background-size:180px 180px;opacity:.025;pointer-events:none}
.booking-hero-en{display:block;font-family:var(--ff-en);font-size:.75rem;font-weight:600;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px;position:relative;z-index:1}
.booking-hero-title{font-size:1.7rem;font-weight:700;margin-bottom:16px;position:relative;z-index:1;letter-spacing:.06em}
.booking-hero-desc{font-size:.88rem;color:var(--text-light);max-width:580px;margin:0 auto;position:relative;z-index:1;letter-spacing:.02em;line-height:1.9}
.booking-main{padding:56px 0 80px}
.booking-form-wrap{max-width:800px;margin:0 auto;background:var(--white);border-radius:var(--r-lg);padding:44px;box-shadow:var(--shadow);border:1px solid var(--border)}
.booking-notes{max-width:800px;margin:36px auto 0;background:var(--bg-gray);border-radius:var(--r-lg);padding:32px 36px}
.booking-notes h3{font-size:.92rem;font-weight:700;margin-bottom:14px;letter-spacing:.03em}
.booking-notes ul{padding-left:20px}
.booking-notes li{font-size:.82rem;color:var(--text-light);line-height:2.2;list-style:disc}
.booking-notes a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.booking-notes a:hover{color:var(--pink-dark)}

/* ===== BOOKINGPRESS CSS OVERRIDES ===== */
/* Primary color */
.bookingpress_form .bookingpress_service_category_item.bookingpress_selected_category,
.bookingpress_form .bookingpress_service_item.bookingpress_selected_service{border-color:var(--accent)!important;background:var(--pink-pale)!important}
.bookingpress_form .bookingpress_steps_nav_btn.bookingpress_next_step_btn,
.bookingpress_form .bookingpress_confirm_booking_btn{background:var(--accent-grad)!important;border:none!important;border-radius:var(--r-full)!important;font-family:var(--ff)!important;font-weight:700!important;letter-spacing:.04em;padding:14px 40px!important;box-shadow:0 4px 16px rgba(232,75,138,.2),0 8px 32px rgba(232,75,138,.15)!important;transition:var(--trans)!important;font-size:.9rem!important}
.bookingpress_form .bookingpress_steps_nav_btn.bookingpress_next_step_btn:hover,
.bookingpress_form .bookingpress_confirm_booking_btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(232,75,138,.25),0 14px 40px rgba(232,75,138,.2)!important}
.bookingpress_form .bookingpress_steps_nav_btn.bookingpress_back_step_btn{border:1.5px solid var(--border)!important;border-radius:var(--r-full)!important;background:var(--white)!important;color:var(--text-light)!important;font-family:var(--ff)!important;font-weight:600!important;padding:14px 40px!important;transition:var(--trans)!important;font-size:.9rem!important}
.bookingpress_form .bookingpress_steps_nav_btn.bookingpress_back_step_btn:hover{border-color:var(--black)!important;color:var(--black)!important}

/* Card & container styling */
.bookingpress_form{font-family:var(--ff)!important;color:var(--text)!important}
.bookingpress_form .bookingpress_service_item{border-radius:var(--r)!important;border:1px solid var(--border)!important;box-shadow:var(--shadow)!important;transition:var(--trans)!important;padding:20px!important}
.bookingpress_form .bookingpress_service_item:hover{box-shadow:var(--shadow-hover)!important;transform:translateY(-2px)}

/* Calendar styling */
.bookingpress_form .bookingpress_calendar .bookingpress_calendar_date_selected,
.bookingpress_form .bookingpress_calendar td.bookingpress_selected_date{background:var(--accent)!important;color:var(--white)!important;border-radius:50%!important}
.bookingpress_form .bookingpress_calendar td.bookingpress_available_date:hover{background:var(--pink-pale)!important;color:var(--accent)!important;border-radius:50%!important}
.bookingpress_form .bookingpress_calendar th{font-family:var(--ff-en)!important;font-weight:600;color:var(--text-muted)!important;font-size:.75rem!important}
.bookingpress_form .bookingpress_calendar .bookingpress_calendar_header{font-weight:700!important;font-size:1rem!important}

/* Time slot styling */
.bookingpress_form .bookingpress_timeslot_item{border-radius:var(--r)!important;border:1px solid var(--border)!important;transition:var(--trans)!important;font-family:var(--ff-en)!important;font-weight:500!important}
.bookingpress_form .bookingpress_timeslot_item.bookingpress_selected_timeslot{background:var(--accent)!important;color:var(--white)!important;border-color:var(--accent)!important}
.bookingpress_form .bookingpress_timeslot_item:hover{border-color:var(--accent)!important;color:var(--accent)!important}

/* Input fields */
.bookingpress_form input[type="text"],
.bookingpress_form input[type="email"],
.bookingpress_form input[type="tel"],
.bookingpress_form input[type="number"],
.bookingpress_form select,
.bookingpress_form textarea{font-family:var(--ff)!important;border-radius:var(--r)!important;border:1px solid rgba(0,0,0,.1)!important;padding:12px 16px!important;font-size:.88rem!important;transition:var(--trans)!important}
.bookingpress_form input:focus,
.bookingpress_form select:focus,
.bookingpress_form textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(232,75,138,.12)!important;outline:none!important}

/* Step indicator */
.bookingpress_form .bookingpress_steps_wrap .bookingpress_step_item.bookingpress_active_step,
.bookingpress_form .bookingpress_steps_wrap .bookingpress_step_item.bookingpress_completed_step{color:var(--accent)!important}
.bookingpress_form .bookingpress_steps_wrap .bookingpress_step_item.bookingpress_active_step .bookingpress_step_number,
.bookingpress_form .bookingpress_steps_wrap .bookingpress_step_item.bookingpress_completed_step .bookingpress_step_number{background:var(--accent)!important;color:var(--white)!important}
.bookingpress_form .bookingpress_steps_wrap .bookingpress_step_item .bookingpress_step_number{border-radius:50%!important;font-family:var(--ff-en)!important;font-weight:700!important}

/* Service price */
.bookingpress_form .bookingpress_service_price{color:var(--accent)!important;font-weight:700!important;font-family:var(--ff-en)!important}

/* Summary / confirmation */
.bookingpress_form .bookingpress_summary_wrap{border-radius:var(--r-lg)!important;border:1px solid var(--border)!important;box-shadow:var(--shadow)!important;padding:28px!important}

/* Booking page responsive */
@media(max-width:768px){
    .booking-hero{padding:calc(var(--hh) + 44px) 0 40px}
    .booking-hero-title{font-size:1.35rem}
    .booking-form-wrap{padding:24px 16px}
    .booking-notes{padding:24px 20px}
    .booking-main{padding:40px 0 60px}
}
