*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
        --paper:#ffffff; --paper-deep:#f1f6f9; --paper-warm:#f4f9f6;
        --ink:#15212c; --ink-soft:#333d47; --ink-mute:#5b6772;
        --line:#d6dde2; --line-soft:#e7ecef;
        --blue:#2b7ea6; --blue-deep:#1b5e7e; --teal:#1488a4; --teal-soft:#e4f2f5;
        --green:#2f8f63; --pink:#e9899a; --pink-soft:#fbeef0;
    }
    html { scroll-behavior:smooth; scroll-padding-top:76px; overflow-x:clip; }
    body { font-family:'Noto Sans JP',sans-serif; font-weight:400; font-size:17px; line-height:1.95;
        color:var(--ink-soft); background:var(--paper); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:clip; }
    @media (min-width:768px){ body{ font-size:18px; } }
    img { max-width:100%; display:block; }
    a { color:inherit; text-decoration:none; transition:color .25s ease, opacity .25s ease; }
    button { font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
    ul { list-style:none; }
    .mincho { font-family:'Shippori Mincho',serif; }
    .container { max-width:1100px; margin:0 auto; padding:0 28px; }

    .cta { display:inline-flex; align-items:center; gap:14px; padding:16px 26px; border:1.5px solid var(--ink); border-radius:2px;
        font-weight:700; font-size:1rem; color:var(--ink); background:var(--paper); transition:background .25s ease, color .25s ease; width:max-content; }
    .cta .arrow { transition:transform .25s ease; }
    .cta:hover { background:var(--ink); color:#fff; }
    .cta:hover .arrow { transform:translateX(5px); }
    .cta-primary { border-color:var(--teal); color:#fff; background:var(--teal); }
    .cta-primary:hover { background:var(--blue-deep); border-color:var(--blue-deep); }

    /* ===== HEADER（indexと共通） ===== */
    .site-header { position:sticky; top:0; z-index:100; background:rgba(255,255,255,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
    .header-inner { max-width:1280px; margin:0 auto; padding:12px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
    .logo-mark { display:flex; flex-direction:column; line-height:1.25; }
    .logo-mark .name { font-family:'Shippori Mincho',serif; font-weight:700; font-size:1.15rem; color:var(--ink); letter-spacing:.04em; }
    .logo-mark .en { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:.8rem; color:var(--blue); letter-spacing:.06em; }
    .nav { display:flex; align-items:center; gap:26px; }
    .nav-list { display:flex; gap:22px; }
    .nav-list a { font-size:.95rem; font-weight:500; color:var(--ink); display:flex; align-items:baseline; gap:5px; }
    .nav-list a:hover { color:var(--blue); }
    .nav-list a.current { color:var(--teal); }
    .nav-list .num { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:.8rem; color:var(--blue); }
    .header-reserve { display:inline-flex; align-items:center; gap:9px; background:var(--teal); color:#fff; font-weight:700; font-size:.95rem; padding:11px 20px; border-radius:3px; white-space:nowrap; }
    .header-reserve:hover { background:var(--blue-deep); }
    .menu-toggle { display:none; width:42px; height:42px; position:relative; }
    .menu-toggle span, .menu-toggle span::before, .menu-toggle span::after { content:''; position:absolute; left:9px; width:24px; height:2px; background:var(--ink); transition:.3s; }
    .menu-toggle span { top:20px; } .menu-toggle span::before { top:-7px; } .menu-toggle span::after { top:7px; }
    .menu-toggle.open span { background:transparent; }
    .menu-toggle.open span::before { top:0; transform:rotate(45deg); }
    .menu-toggle.open span::after { top:0; transform:rotate(-45deg); }
    @media (max-width:980px){
        .menu-toggle { display:block; }
        .nav { position:fixed; inset:60px 0 auto 0; flex-direction:column; gap:0; background:#fff; border-bottom:1px solid var(--line); padding:8px 0 22px; transform:translateY(-130%); transition:transform .35s ease; box-shadow:0 18px 30px rgba(0,0,0,.08); }
        .nav.open { transform:none; }
        .nav-list { flex-direction:column; gap:0; width:100%; }
        .nav-list li { width:100%; border-bottom:1px solid var(--line-soft); }
        .nav-list a { padding:15px 28px; font-size:1.05rem; }
        .header-reserve { margin:14px 28px 0; }
    }

    /* ===== PAGE HERO ===== */
    .page-hero { position:relative; padding:64px 0 56px; background:var(--teal-soft); border-bottom:1px solid var(--line); overflow:hidden; }
    .page-hero .breadcrumb { font-size:.85rem; color:var(--ink-mute); margin-bottom:18px; }
    .page-hero .breadcrumb a:hover { color:var(--blue); }
    .page-hero .en { font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--teal); font-size:1.4rem; letter-spacing:.04em; }
    .page-hero h1 { font-family:'Shippori Mincho',serif; font-weight:700; color:var(--ink); font-size:clamp(30px,6vw,46px); line-height:1.35; margin:4px 0 18px; }
    .page-hero p { color:var(--ink-soft); max-width:760px; line-height:2; }
    .page-hero .tax { display:inline-block; margin-top:18px; font-size:.9rem; font-weight:700; color:var(--teal); border:1px solid var(--teal); border-radius:3px; padding:4px 14px; }

    /* ===== セクション共通 ===== */
    .sec { padding:72px 0; }
    .sec:nth-of-type(even) { background:var(--paper-deep); }
    .sec-head { margin-bottom:34px; text-align:center; }
    .sec-head .en { display:block; font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--blue); font-size:1.15rem; margin-bottom:4px; }
    .sec-head h2 { font-family:'Shippori Mincho',serif; font-weight:600; color:var(--ink); font-size:clamp(24px,4.5vw,34px); }
    .sec-head .note { margin-top:10px; color:var(--ink-mute); font-size:.95rem; }

    /* ===== PRICE TABLE ===== */
    .price-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
    @media (max-width:820px){ .price-grid { grid-template-columns:1fr; } }
    .price-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); }
    .price-table th, .price-table td { border:1px solid var(--line); padding:13px 12px; text-align:center; }
    .price-table thead th { background:var(--teal); color:#fff; font-weight:600; font-size:.95rem; letter-spacing:.02em; }
    .price-table tbody th { text-align:left; font-family:'Shippori Mincho',serif; font-weight:600; color:var(--ink); font-size:1.02rem; white-space:nowrap; background:#fff; }
    .price-table td { color:var(--ink-soft); font-weight:700; font-size:1.05rem; letter-spacing:.02em; white-space:nowrap; }
    .price-table td.dash { color:var(--ink-mute); font-weight:500; }
    .price-table tbody tr:nth-child(even) th, .price-table tbody tr:nth-child(even) td { background:var(--paper-deep); }
    .price-table tbody tr:nth-child(even) th { background:var(--paper-deep); }
    .price-table .yen { font-size:.82em; color:var(--ink-mute); font-weight:500; }
    .price-cat { max-width:520px; margin:34px auto 0; }
    .cat-head { text-align:center; font-family:'Shippori Mincho',serif; font-weight:600; color:var(--ink); font-size:1.25rem; margin-bottom:14px; }

    .notes { max-width:900px; margin:30px auto 0; border:1px solid var(--line); border-left:3px solid var(--teal); border-radius:3px; background:#fff; padding:22px 26px; }
    .notes li { position:relative; padding-left:22px; margin:8px 0; color:var(--ink-soft); font-size:.98rem; line-height:1.8; }
    .notes li::before { content:''; position:absolute; left:4px; top:13px; width:7px; height:7px; border-radius:50%; background:var(--teal); }

    /* ===== CARE LIST ===== */
    .care-list { max-width:680px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
    .care-list li { display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:16px 26px; border-bottom:1px solid var(--line-soft); }
    .care-list li:last-child { border-bottom:none; }
    .care-list .name { font-family:'Shippori Mincho',serif; font-weight:600; color:var(--ink); font-size:1.08rem; }
    .care-list .name small { font-family:'Noto Sans JP',sans-serif; font-weight:400; color:var(--ink-mute); font-size:.82rem; margin-left:6px; }
    .care-list .price { font-weight:700; color:var(--teal); font-size:1.1rem; white-space:nowrap; }

    /* ===== PLAN CARDS ===== */
    .plans { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:900px; margin:0 auto; }
    @media (max-width:760px){ .plans { grid-template-columns:1fr; } }
    .plan { border:1px solid var(--line); border-top:3px solid var(--teal); border-radius:6px; background:#fff; padding:30px 28px; text-align:center; }
    .plan .en { font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--teal); font-size:1.05rem; }
    .plan h3 { font-family:'Shippori Mincho',serif; font-weight:600; color:var(--ink); font-size:1.5rem; margin:2px 0 16px; }
    .plan .desc { color:var(--ink-soft); font-size:1rem; line-height:1.85; min-height:84px; }
    .plan .desc .plus { display:inline-block; color:var(--teal); font-weight:700; margin:0 6px; }
    .plan .price { margin-top:18px; font-family:'Shippori Mincho',serif; font-weight:700; color:var(--ink); font-size:1.9rem; }
    .plan .price .yen { font-size:.55em; color:var(--ink-mute); font-weight:500; margin-left:2px; }

    /* ===== DISCOUNT（強調） ===== */
    .discount-box { position:relative; max-width:820px; margin:0 auto; border-radius:18px;
        background:linear-gradient(135deg,#1488a4 0%,#1b5e7e 100%); color:#fff; padding:52px 40px 48px;
        text-align:center; box-shadow:0 26px 54px rgba(20,136,164,.30); overflow:hidden; }
    .discount-box::after { content:''; position:absolute; width:280px; height:280px; border-radius:50%;
        background:rgba(255,255,255,.07); top:-120px; right:-90px; pointer-events:none; }
    .discount-box .badge { position:relative; z-index:1; display:inline-block; background:rgba(255,255,255,.16);
        border:1px solid rgba(255,255,255,.55); color:#fff; font-weight:700; font-size:.82rem; letter-spacing:.12em;
        padding:7px 20px; border-radius:99px; margin-bottom:18px; }
    .discount-box .intro { position:relative; z-index:1; color:#eaf6f9; font-size:1.08rem; margin-bottom:30px; }
    .discount-box .intro strong { color:#fff; font-weight:700; border-bottom:2px solid rgba(255,255,255,.5); padding-bottom:1px; }
    .discount-rows { position:relative; z-index:1; display:flex; gap:20px; justify-content:center; flex-wrap:wrap; }
    .discount-card { position:relative; background:#fff; border-radius:14px; padding:30px 26px 26px; flex:1 1 240px;
        max-width:300px; box-shadow:0 12px 26px rgba(0,0,0,.18); }
    .discount-card .term { font-family:'Shippori Mincho',serif; font-weight:600; color:var(--ink-soft); font-size:1.08rem; }
    .discount-card .off { display:block; font-family:'Shippori Mincho',serif; font-weight:800; color:var(--teal);
        font-size:3rem; line-height:1.05; margin-top:8px; letter-spacing:.01em; }
    .discount-card .off span { font-size:.42em; font-weight:700; margin-left:2px; }
    .discount-card.best { background:#fff; box-shadow:0 16px 32px rgba(0,0,0,.26); transform:translateY(-6px); border:2px solid #ffd34d; }
    .discount-card.best .off { color:var(--blue-deep); }
    .discount-card .best-tag { position:absolute; top:-14px; left:50%; transform:translateX(-50%); white-space:nowrap;
        background:var(--pink); color:#fff; font-weight:700; font-size:.8rem; letter-spacing:.04em; padding:5px 16px; border-radius:99px; box-shadow:0 4px 10px rgba(233,137,154,.45); }
    .discount-foot { position:relative; z-index:1; margin-top:28px; color:#dff0f4; font-size:.95rem; }
    @media (max-width:560px){ .discount-card.best { transform:none; } }

    /* ===== OPTION ===== */
    .option-list { max-width:680px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
    .option-row { padding:20px 26px; border-bottom:1px solid var(--line-soft); }
    .option-row:last-child { border-bottom:none; }
    .option-row .name { font-family:'Shippori Mincho',serif; font-weight:600; color:var(--ink); font-size:1.15rem; margin-bottom:10px; }
    .option-row .tiers { display:flex; flex-wrap:wrap; gap:10px 28px; }
    .option-row .tier { display:flex; align-items:baseline; gap:12px; }
    .option-row .tier .w { color:var(--ink-mute); font-size:.95rem; min-width:64px; }
    .option-row .tier .p { font-weight:700; color:var(--teal); font-size:1.08rem; }

    /* ===== CTA BAND ===== */
    .cta-band { padding:80px 0; background:var(--ink); color:#fff; text-align:center; }
    .cta-band .en { font-family:'Cormorant Garamond',serif; font-style:italic; color:#8fd0dd; font-size:1.2rem; }
    .cta-band h2 { font-family:'Shippori Mincho',serif; font-weight:600; font-size:clamp(22px,4vw,32px); margin:6px 0 14px; }
    .cta-band p { color:#cdd6db; max-width:620px; margin:0 auto 30px; line-height:1.95; }
    .cta-band-btns { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
    .cta-band .cta { background:transparent; color:#fff; border-color:#fff; }
    .cta-band .cta:hover { background:#fff; color:var(--ink); }
    .cta-band .cta.tel { border-color:var(--teal); background:var(--teal); }
    .cta-band .cta.tel:hover { background:#fff; color:var(--teal); border-color:#fff; }
    .cta-band .cta.line { border-color:#22B94E; background:#22B94E; }
    .cta-band .cta.line:hover { background:#fff; color:#22B94E; border-color:#fff; }

    /* ===== FOOTER（indexと共通） ===== */
    .site-footer { background:var(--ink); color:#aeb9c0; padding:64px 0 36px; border-top:1px solid rgba(255,255,255,.12); }
    .footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; }
    .footer-brand .name { font-family:'Shippori Mincho',serif; font-weight:700; font-size:1.4rem; color:#fff; }
    .footer-brand .en { font-family:'Cormorant Garamond',serif; font-style:italic; color:#8fd0dd; margin-top:4px; }
    .footer-brand p { margin-top:18px; font-size:.92rem; line-height:1.9; }
    .footer-col h4 { color:#fff; font-size:.95rem; letter-spacing:.08em; margin-bottom:16px; }
    .footer-col a { display:block; padding:6px 0; font-size:.95rem; color:#aeb9c0; }
    .footer-col a:hover { color:#fff; }
    .footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:48px; padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:.82rem; }
    .footer-bottom a { color:#aeb9c0; margin-left:18px; }
    @media (max-width:760px){ .footer-grid { grid-template-columns:1fr; gap:28px; } }

    /* ===== FLOATING ===== */
    .floating-buttons { position:fixed; right:20px; bottom:20px; z-index:95; display:flex; flex-direction:column; gap:10px; }
    .floating-btn { display:inline-flex; align-items:center; gap:10px; padding:13px 20px; border-radius:4px; font-weight:700; font-size:.92rem; box-shadow:0 8px 22px rgba(0,0,0,.16); transition:transform .25s ease; }
    .floating-btn:hover { transform:translateY(-2px); }
    .floating-btn .num { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.05rem; }
    .floating-btn.tel { background:#fff; color:var(--ink); border:1.5px solid var(--ink); }
    .floating-btn.line { background:#22B94E; color:#fff; }
    .floating-btn.line img { width:18px; height:18px; }
    .floating-btn.reserve { background:var(--teal); color:#fff; }
    @media (max-width:600px){
        .floating-buttons { right:10px; bottom:10px; gap:8px; }
        .floating-btn { padding:10px 14px; font-size:.8rem; }
        .floating-btn .num { font-size:.9rem; }
        .floating-btn.tel .num { display:none; }
    }
