/*
Theme Name: Unino Hama - Victory 24
Theme URI: https://example.com
Description: ユニの浜 上陸ツアー 合同会社カッシア公式テーマ
Version: 1.0.0
Author: 合同会社カッシア
Text Domain: unino-hama
*/

/* ============================================
   VICTORY 24 - ユニの浜
   Design: カンプ準拠 - 砂浜クリーム × 海ターコイズ × チョコレートブラウン
   ============================================ */

/* --- Reset --- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:19px}
body{
    font-family:'Noto Sans JP',sans-serif;
    color:#4a3a2a;
    background:#faf8f4;
    line-height:1.9;
    overflow-x:hidden;
    padding-bottom:62px;
}

/* ============================================
   HEADER
   ============================================ */
.site-header{
    position:fixed;top:0;left:0;right:0;z-index:999;
    transition:background .4s,box-shadow .4s,backdrop-filter .4s;
    background:transparent;
}
.site-header.scrolled{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    box-shadow:0 2px 12px rgba(0,0,0,.06);
}
.header-inner{
    max-width:800px;margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 24px;
}
.header-logo{
    font-family:'Shippori Mincho',serif;
    font-size:.95rem;font-weight:600;letter-spacing:.08em;
    color:#fff;transition:color .4s;text-decoration:none;
    white-space:nowrap;
}
.site-header.scrolled .header-logo{color:#4a3a2a}

/* Desktop Nav */
.header-nav{
    display:flex;align-items:center;gap:22px;
}
.header-nav a{
    font-size:.78rem;font-weight:400;letter-spacing:.04em;
    color:rgba(255,255,255,.75);
    transition:color .3s;text-decoration:none;
    position:relative;
}
.header-nav a::after{
    content:'';position:absolute;bottom:-3px;left:0;right:0;
    height:1.5px;background:#e0736c;transform:scaleX(0);
    transition:transform .3s;transform-origin:center;
}
.header-nav a:hover{color:#fff}
.header-nav a:hover::after{transform:scaleX(1)}
.site-header.scrolled .header-nav a{color:#6b5b4b}
.site-header.scrolled .header-nav a:hover{color:#4a3a2a}

/* WP Nav Menu integration */
.header-nav .menu{
    display:flex;align-items:center;gap:22px;
    list-style:none;margin:0;padding:0;
}
.header-nav .menu li{margin:0;padding:0}
.header-nav .menu li a{
    font-size:.78rem;font-weight:400;letter-spacing:.04em;
    color:rgba(255,255,255,.75);
    transition:color .3s;text-decoration:none;
    position:relative;
}
.header-nav .menu li a::after{
    content:'';position:absolute;bottom:-3px;left:0;right:0;
    height:1.5px;background:#e0736c;transform:scaleX(0);
    transition:transform .3s;transform-origin:center;
}
.header-nav .menu li a:hover{color:#fff}
.header-nav .menu li a:hover::after{transform:scaleX(1)}
.site-header.scrolled .header-nav .menu li a{color:#6b5b4b}
.site-header.scrolled .header-nav .menu li a:hover{color:#4a3a2a}

/* CTA in header */
.header-nav-cta{
    background:#e0736c!important;color:#fff!important;
    padding:7px 18px;border-radius:20px;
    font-weight:500!important;font-size:.75rem!important;
    transition:background .3s,transform .3s!important;
}
.header-nav-cta::after{display:none!important}
.header-nav-cta:hover{
    background:#d06058!important;color:#fff!important;
    transform:translateY(-1px);
}
.site-header.scrolled .header-nav-cta{
    color:#fff!important;
}

/* Hamburger */
.hamburger{
    display:none;
    background:none;border:none;cursor:pointer;
    width:30px;height:22px;position:relative;
    z-index:1001;
}
.hamburger span{
    display:block;position:absolute;left:0;
    width:100%;height:2px;
    background:#fff;border-radius:2px;
    transition:all .35s ease;
}
.site-header.scrolled .hamburger span{background:#4a3a2a}
.hamburger span:nth-child(1){top:0}
.hamburger span:nth-child(2){top:10px}
.hamburger span:nth-child(3){top:20px}
.hamburger.open span:nth-child(1){top:10px;transform:rotate(45deg);background:#4a3a2a}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){top:10px;transform:rotate(-45deg);background:#4a3a2a}

/* Mobile menu overlay */
.header-nav.open{
    display:flex!important;
    position:fixed;top:0;left:0;right:0;bottom:0;
    background:rgba(250,248,244,.97);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    flex-direction:column;
    align-items:center;justify-content:center;
    gap:0;z-index:1000;
}
.header-nav.open a{
    color:#4a3a2a!important;
    font-family:'Shippori Mincho',serif;
    font-size:1.15rem;font-weight:500;
    padding:16px 0;letter-spacing:.1em;
    border-bottom:1px solid #ede6dc;
    width:200px;text-align:center;
}
.header-nav.open a:last-child{border-bottom:none}
.header-nav.open a::after{display:none}
.header-nav.open .header-nav-cta{
    margin-top:12px;
    padding:12px 32px!important;border-radius:28px;
    font-size:1rem!important;width:auto;border-bottom:none;
}
/* WP menu in open state */
.header-nav.open .menu{
    display:flex;flex-direction:column;align-items:center;
    list-style:none;margin:0;padding:0;gap:0;
}
.header-nav.open .menu li{width:200px;text-align:center}
.header-nav.open .menu li a{
    color:#4a3a2a!important;
    font-family:'Shippori Mincho',serif;
    font-size:1.15rem;font-weight:500;
    padding:16px 0;letter-spacing:.1em;
    border-bottom:1px solid #ede6dc;
    display:block;
}
.header-nav.open .menu li a::after{display:none}

.page-reserve{padding-bottom:0;}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

.container{max-width:520px;margin:0 auto;padding:0 24px}

/* utility */
.sp-br{display:inline}
.en-inline{font-size:.72rem;color:#b8a99a;margin-left:6px}
.en-sm{font-size:.72rem;color:#b8a99a;font-weight:400}

/* ============================================
   HERO
   ============================================ */
.hero{
    position:relative;width:100%;
    height:100vh;min-height:560px;max-height:880px;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
}
.hero-bg{
    position:absolute;inset:0;z-index:0;
    background:url('images/hero-bg.jpg') center center/cover no-repeat;
}
.hero-overlay{
    position:absolute;inset:0;z-index:1;
    background:linear-gradient(180deg,
        rgba(100,200,230,.08) 0%,
        rgba(255,255,255,.05) 40%,
        rgba(255,252,245,.12) 100%
    );
}
.hero-content{
    position:relative;z-index:2;
    text-align:center;color:#fff;padding:70px 20px 20px;
}
.hero-arc{
    font-family:'Cormorant Garamond',serif;
    font-size:.8rem;letter-spacing:.5em;
    color:rgba(255,255,255,.7);
    margin-bottom:16px;
    text-shadow:0 1px 6px rgba(0,0,0,.25);
}
.hero-title-wrap{margin-bottom:18px}
.hero-title{
    font-family:'Shippori Mincho',serif;
    font-size:3.6rem;font-weight:700;
    writing-mode:vertical-rl;
    display:inline-block;
    letter-spacing:.2em;line-height:1.4;
    text-shadow:0 3px 20px rgba(0,0,0,.3);
}
.hero-catchcopy{
    font-family:'Shippori Mincho',serif;
    font-size:1.05rem;letter-spacing:.16em;
    color:rgba(255,255,255,.92);
    text-shadow:0 2px 12px rgba(0,0,0,.35);
    margin-bottom:24px;
}
.hero-meta{
    display:flex;flex-direction:column;align-items:center;gap:2px;
}
.hero-meta-item{
    font-size:.6rem;
    color:rgba(255,255,255,.5);
    letter-spacing:.06em;
}
.hero-cta-btn{
    display:inline-flex;align-items:center;gap:8px;
    margin-top:28px;
    background:rgba(255,255,255,.92);color:#5c4033;
    padding:14px 36px;border-radius:30px;
    font-family:'Shippori Mincho',serif;
    font-size:1.05rem;font-weight:600;letter-spacing:.1em;
    box-shadow:0 6px 24px rgba(0,0,0,.2);
    transition:all .4s ease;
    text-decoration:none;
}
.hero-cta-btn:hover{
    background:#fff;color:#e0736c;
    transform:translateY(-3px);
    box-shadow:0 8px 30px rgba(0,0,0,.25);
}
.hero-cta-btn i{
    font-size:.95rem;
}
.hero-scroll{
    position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
    z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;
}
.hero-scroll span{
    font-family:'Cormorant Garamond',serif;
    font-size:.6rem;letter-spacing:.18em;color:rgba(255,255,255,.45);
}
.scroll-line{
    width:1px;height:36px;
    background:linear-gradient(180deg,rgba(255,255,255,.45),transparent);
    animation:pulse 2.5s ease infinite;
}
@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}

/* ============================================
   SECTIONS
   ============================================ */
.sec{position:relative}
.sec-heading{text-align:center;margin-bottom:28px}
.sec-heading h2{
    font-family:'Shippori Mincho',serif;
    font-size:1.2rem;font-weight:600;
    color:#4a3a2a;letter-spacing:.05em;
    line-height:1.8;
}
.sec-heading.light h2,.sec-heading.light .heading-en{color:#fff}
.sec-heading.light .star-line{color:#d4a574}
.sec-icon{display:block;font-size:1.4rem;margin-bottom:6px}
.star-line{
    font-family:'Shippori Mincho',serif;
    font-size:1.15rem;font-weight:600;
    color:#6b4226;letter-spacing:.06em;margin-bottom:3px;
}
.heading-en{
    font-family:'Cormorant Garamond',serif;
    font-size:.72rem;letter-spacing:.1em;color:#bbb;
}

/* ============================================
   ABOUT
   ============================================ */
.sec-about{padding:52px 0 28px;background:#faf8f4}
.about-sub{
    font-family:'Shippori Mincho',serif;
    font-size:1.05rem;font-weight:600;
    text-align:center;margin-bottom:16px;color:#4a3a2a;
}
.about-sub small{font-size:.82rem;color:#999;font-weight:400}
.about-block p{
    font-size:.95rem;line-height:2;color:#5c4c3c;
    margin-bottom:8px;text-align:justify;
}
.about-block strong{color:#2aa4b5;font-weight:600}

/* ============================================
   PHOTO
   ============================================ */
.sec-photo{padding:16px 0 28px;background:#faf8f4}
.photo-frame{
    border:5px solid #fff;
    box-shadow:0 3px 18px rgba(0,0,0,.06);
    overflow:hidden;
}
.photo-frame img{width:100%;transition:transform .6s ease}
.photo-frame:hover img{transform:scale(1.03)}

/* ============================================
   ABOUT EN
   ============================================ */
.sec-about-en{padding:8px 0 40px;background:#faf8f4}
.about-en-block{
    border-left:3px solid #d6cec4;
    padding-left:16px;
}
.about-en-block p{font-size:.82rem;color:#b8a99a;line-height:1.9}

/* ============================================
   CHARM
   ============================================ */
.sec-charm{padding:40px 0 44px;background:#faf8f4;border-top:1px solid #ede6dc}
.charm-body{margin-bottom:20px}
.charm-body p{font-size:.95rem;line-height:2;color:#5c4c3c;margin-bottom:8px}
.charm-body strong{color:#2aa4b5}
.charm-en{
    border-left:3px solid #d6cec4;
    padding-left:16px;
}
.charm-en p{font-size:.82rem;color:#b8a99a;line-height:1.9}

/* ============================================
   BOAT
   ============================================ */
.sec-boat{padding:20px 0 48px;background:#faf8f4}
.boat-photo-frame{
    position:relative;
    border:5px solid #fff;
    box-shadow:0 3px 18px rgba(0,0,0,.06);
    overflow:hidden;
}
.boat-photo-frame img{width:100%;transition:transform .6s ease}
.boat-photo-frame:hover img{transform:scale(1.03)}
.boat-caption{
    position:absolute;bottom:0;left:0;right:0;
    background:linear-gradient(transparent,rgba(0,0,0,.5));
    padding:20px 16px 12px;
    font-family:'Cormorant Garamond',serif;
    font-size:1rem;letter-spacing:.12em;
    color:rgba(255,255,255,.85);
}

/* ============================================
   PLAN SECTION
   ============================================ */
.sec-plan{padding:56px 0 48px;overflow:hidden}
.plan-bg-image{
    position:absolute;inset:0;z-index:0;
    background:url('images/plan-bg.jpg') center bottom/cover no-repeat;
}
.plan-bg-overlay{
    position:absolute;inset:0;z-index:1;
    background:rgba(255,252,248,.84);
}
.plan-inner{position:relative;z-index:2}

/* Plan Card */
.plan-card{
    background:rgba(255,255,255,.92);
    border-radius:8px;
    padding:28px 22px;margin-bottom:20px;
    box-shadow:0 2px 16px rgba(0,0,0,.05);
    border:1px solid rgba(224,115,108,.15);
}
.plan-name{
    font-family:'Shippori Mincho',serif;
    font-size:1.25rem;font-weight:600;color:#4a3a2a;
    margin-bottom:3px;
}
.plan-name-en{font-size:.78rem;color:#bbb;margin-bottom:16px}
.plan-detail-list p{
    font-size:.92rem;color:#5c4c3c;margin-bottom:4px;
    display:flex;align-items:center;gap:8px;
}
.plan-detail-list i{color:#e0736c;width:16px;text-align:center;font-size:.92rem}
.plan-detail-en{margin-bottom:16px}
.plan-detail-en p{font-size:.78rem;color:#bbb;line-height:1.7}

/* Price Table */
.plan-price-table{
    background:linear-gradient(135deg,#fdf7f0,#fefcf8);
    border-radius:8px;padding:16px 18px;
    margin-bottom:20px;border:1px solid rgba(224,115,108,.15);
}
.price-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:8px 0;border-bottom:1px dashed #e8ddd2;
}
.price-row:last-child{border-bottom:none}
.price-row.en-row{padding:4px 0;border-bottom:none}
.price-row.en-row span{font-size:.72rem;color:#c4b5a5}
.price-label{font-size:.95rem;color:#5c4c3c}
.price-val{
    font-family:'Shippori Mincho',serif;
    font-size:1.45rem;font-weight:700;color:#e0736c;
}
.price-val.child{font-size:1.25rem}

/* Inc / Exc */
.plan-inc-exc{margin-bottom:16px}
.plan-inc,.plan-exc{padding:14px 0;border-top:1px dashed #e8ddd2}
.plan-inc h4,.plan-exc h4{font-size:.95rem;font-weight:600;margin-bottom:8px;color:#4a3a2a}
.plan-inc ul,.plan-exc ul{list-style:none;padding-left:4px}
.plan-inc li,.plan-exc li{
    font-size:.88rem;color:#6b5b4b;
    padding-left:16px;position:relative;margin-bottom:4px;line-height:1.7;
}
.plan-inc li::before{content:'・';position:absolute;left:2px;color:#2aa4b5;font-weight:bold}
.plan-exc li::before{content:'・';position:absolute;left:2px;color:#ccc}

/* Notes */
.plan-notes{padding-top:14px;border-top:1px dashed #e8ddd2}
.plan-notes p{font-size:.82rem;color:#a89888;line-height:1.8}
.plan-note-en{font-size:.72rem!important;color:#c4b5a5!important;margin-top:4px}

/* Cancel */
.cancel-block{
    background:rgba(255,255,255,.88);border-radius:8px;
    padding:18px 22px;margin-bottom:20px;
    border:1px solid #ede6dc;text-align:center;
}
.cancel-block h4{font-size:1rem;font-weight:600;margin-bottom:8px;color:#4a3a2a}
.cancel-block p{font-size:.92rem;color:#6b5b4b;line-height:1.7}
.cancel-en{font-size:.75rem;color:#bbb;margin-top:4px}

/* CTA */
.plan-cta{text-align:center}
.cta-btn{
    display:inline-block;
    background:#e0736c;color:#fff;
    padding:14px 44px;border-radius:28px;
    font-size:1.05rem;font-weight:600;letter-spacing:.1em;
    box-shadow:0 4px 16px rgba(224,115,108,.3);
    transition:all .3s;border:none;cursor:pointer;
    font-family:'Noto Sans JP',sans-serif;
}
.cta-btn:hover{background:#d06058;transform:translateY(-2px);box-shadow:0 6px 20px rgba(224,115,108,.4)}
.cta-btn.full{width:100%;text-align:center}

/* ============================================
   INFO (DARK BROWN)
   ============================================ */
.sec-info{
    background:linear-gradient(180deg,#5c4033,#4e3524);
    padding:44px 0;color:#fff;
}
.info-block{
    text-align:center;
    margin-bottom:26px;padding-bottom:22px;
    border-bottom:1px solid rgba(255,255,255,.1);
}
.info-block:last-of-type{margin-bottom:0;padding-bottom:0;border-bottom:none}
.info-block h4{
    font-family:'Shippori Mincho',serif;
    font-size:1.08rem;font-weight:500;margin-bottom:8px;letter-spacing:.06em;
}
.info-block p{font-size:.92rem;color:rgba(255,255,255,.75);line-height:1.8}
.info-note{font-size:.82rem!important;color:rgba(255,255,255,.45)!important}
.info-en{font-size:.78rem;color:rgba(255,255,255,.4);margin-top:4px}

/* Contact */
.info-contact{padding-top:4px}
.contact-row{
    display:flex;align-items:center;justify-content:center;gap:10px;
    margin-bottom:10px;font-size:.98rem;
}
.contact-row i{font-size:1rem;color:rgba(255,255,255,.55);width:22px;text-align:center}
.contact-row a{color:#fff;transition:color .3s}
.contact-row a:hover{color:#e0736c}

/* Instagram */
.info-insta{text-align:center;margin-top:20px}
.insta-circle{
    display:inline-flex;align-items:center;justify-content:center;
    width:52px;height:52px;border-radius:50%;
    background:linear-gradient(135deg,#f09433,#dc2743,#bc1888);
    color:#fff;font-size:1.4rem;
    transition:transform .3s,box-shadow .3s;
}
.insta-circle:hover{transform:scale(1.1);box-shadow:0 4px 16px rgba(220,39,67,.4)}

/* ============================================
   PAYMENT
   ============================================ */
.sec-payment{padding:48px 0 40px;overflow:hidden}
.payment-bg-image{
    position:absolute;inset:0;z-index:0;
    background:url('images/payment-bg.jpg') center center/cover no-repeat;
}
.payment-bg-overlay{
    position:absolute;inset:0;z-index:1;
    background:rgba(250,248,244,.88);
}
.payment-inner{position:relative;z-index:2}
.payment-body{text-align:center;margin-bottom:20px}
.payment-body p{font-size:.92rem;line-height:2;color:#5c4c3c;margin-bottom:4px}
.payment-body strong{color:#2aa4b5}
.payment-note{font-size:.82rem!important;color:#a89888!important;margin-top:6px}
.payment-en-block{
    max-width:420px;margin:0 auto 24px;
    padding:12px 16px;
    border-left:3px solid #d6cec4;background:rgba(0,0,0,.02);border-radius:0 6px 6px 0;
}
.payment-en-block p{font-size:.78rem;color:#b8a99a;line-height:1.8}
.payment-icons{
    display:flex;flex-wrap:wrap;justify-content:center;gap:16px;
}
.payment-icons span{font-size:2rem;color:#bbb;transition:color .3s}
.payment-icons span:hover{color:#888}

/* ============================================
   BOTTOM NAV
   ============================================ */
.bottom-nav{
    position:fixed;bottom:0;left:0;right:0;
    background:#fff;display:flex;justify-content:space-around;align-items:center;
    height:60px;box-shadow:0 -2px 10px rgba(0,0,0,.06);
    z-index:1000;border-top:1px solid #f0ebe4;
}
.bnav-item{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:2px;font-size:.65rem;color:#a89888;
    transition:color .3s;padding:6px 8px;
}
.bnav-item i{font-size:1rem;margin-bottom:1px}
.bnav-item.active,.bnav-item:hover{color:#e0736c}
.bnav-cta{position:relative}
.bnav-cta i{
    background:#e0736c;color:#fff;
    width:40px;height:40px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:.95rem;margin-top:-18px;
    box-shadow:0 3px 12px rgba(224,115,108,.35);
}
.bnav-cta span{color:#e0736c;font-weight:500}

/* ============================================
   FOOTER
   ============================================ */
.site-footer{
    background:#3d3020;padding:36px 0 24px;
    text-align:center;color:rgba(255,255,255,.5);
}
.footer-logo{
    font-family:'Shippori Mincho',serif;
    font-size:1.05rem;font-weight:600;letter-spacing:.08em;
    color:rgba(255,255,255,.7);margin-bottom:2px;
}
.footer-company{font-size:.8rem;color:rgba(255,255,255,.45);margin-bottom:12px}
.footer-legal{margin-bottom:18px}
.footer-legal p{font-size:.65rem;color:rgba(255,255,255,.25);line-height:1.6}
.footer-nav{
    display:flex;flex-wrap:wrap;justify-content:center;
    gap:8px 18px;margin-bottom:16px;
}
.footer-nav a{font-size:.8rem;color:rgba(255,255,255,.45);transition:color .3s}
.footer-nav a:hover{color:#e0736c}
/* WP footer menu */
.footer-nav .menu{
    display:flex;flex-wrap:wrap;justify-content:center;
    gap:8px 18px;list-style:none;margin:0;padding:0;
}
.footer-nav .menu li a{font-size:.8rem;color:rgba(255,255,255,.45);transition:color .3s}
.footer-nav .menu li a:hover{color:#e0736c}

.footer-sns{display:flex;justify-content:center;gap:14px;margin-bottom:16px}
.footer-sns a{
    width:34px;height:34px;border-radius:50%;
    background:rgba(255,255,255,.06);
    display:flex;align-items:center;justify-content:center;
    font-size:1rem;color:rgba(255,255,255,.35);transition:all .3s;
}
.footer-sns a:hover{background:rgba(255,255,255,.12);color:#e0736c}
.footer-copy{font-size:.65rem;color:rgba(255,255,255,.2)}

/* ============================================
   RESERVE PAGE
   ============================================ */
.reserve-hero{
    position:relative;height:260px;padding-top:56px;
    display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.reserve-hero-bg{
    position:absolute;inset:0;
    background:url('images/reserve-hero-bg.jpg') center center/cover no-repeat;
}
.reserve-hero-overlay{
    position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(70,140,160,.35),rgba(80,60,40,.4));
}
.reserve-hero-content{position:relative;z-index:2;text-align:center;color:#fff}
.reserve-hero-label{
    font-family:'Cormorant Garamond',serif;
    font-size:.82rem;letter-spacing:.3em;
    color:rgba(255,255,255,.6);margin-bottom:6px;
}
.reserve-hero-title{
    font-family:'Shippori Mincho',serif;
    font-size:2.2rem;font-weight:600;letter-spacing:.2em;
    text-shadow:0 2px 12px rgba(0,0,0,.25);margin-bottom:12px;
}
.back-link{
    font-size:.82rem;color:rgba(255,255,255,.6);
    transition:color .3s;
}
.back-link i{margin-right:4px}
.back-link:hover{color:#fff}

/* Reserve Page Content */
.sec-reserve-page{padding:40px 0 48px;background:#faf8f4}

.rsv-summary{
    background:#fff;border-radius:8px;padding:24px 22px;
    margin-bottom:32px;box-shadow:0 2px 14px rgba(0,0,0,.04);
    border:1px solid rgba(224,115,108,.12);text-align:center;
}
.rsv-summary h2{
    font-family:'Shippori Mincho',serif;
    font-size:1.25rem;font-weight:600;color:#4a3a2a;margin-bottom:2px;
}
.rsv-summary-en{font-size:.75rem;color:#bbb;margin-bottom:14px}
.rsv-summary-meta{
    display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
    margin-bottom:14px;
}
.rsv-summary-meta span{font-size:.88rem;color:#6b5b4b;display:flex;align-items:center;gap:5px}
.rsv-summary-meta i{color:#e0736c}
.rsv-summary-price{
    display:flex;gap:10px;
    background:#fdf7f0;border-radius:6px;padding:12px;
}
.rsv-summary-price>div{
    flex:1;text-align:center;
}
.rsv-summary-price span{display:block;font-size:.82rem;color:#a89888;margin-bottom:2px}
.rsv-summary-price strong{
    font-family:'Shippori Mincho',serif;
    font-size:1.35rem;font-weight:700;color:#e0736c;
}
.rsv-summary-price strong.child{color:#2aa4b5}

/* Methods */
.rsv-sec-title{
    font-family:'Shippori Mincho',serif;
    font-size:1.12rem;font-weight:600;color:#4a3a2a;
    text-align:center;margin-bottom:14px;
}
.rsv-methods{margin-bottom:32px}
.rsv-method{
    display:flex;align-items:center;gap:14px;
    background:#fff;border-radius:8px;padding:16px 18px;
    margin-bottom:8px;
    box-shadow:0 1px 8px rgba(0,0,0,.03);
    border:1px solid #f0ebe4;
    transition:all .3s;
}
.rsv-method:hover{border-color:#e0736c;box-shadow:0 3px 14px rgba(224,115,108,.1)}
.method-icon{
    width:42px;height:42px;border-radius:50%;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    font-size:1.15rem;color:#fff;
}
.method-icon.line{background:#06C755}
.method-icon.phone{background:#e0736c}
.method-icon.insta{background:linear-gradient(135deg,#f09433,#dc2743,#bc1888)}
.method-text{flex:1}
.method-text h3{font-size:1rem;font-weight:600;color:#4a3a2a;margin-bottom:2px}
.method-text p{font-size:.82rem;color:#a89888}
.badge-rec{
    display:inline-block;background:#e0736c;color:#fff;
    font-size:.6rem;padding:2px 7px;border-radius:8px;
    vertical-align:middle;margin-left:4px;
}
.badge-day{
    display:inline-block;background:#f0c060;color:#5c4033;
    font-size:.6rem;padding:2px 7px;border-radius:8px;
    vertical-align:middle;margin-left:4px;
}

/* Form */
.rsv-form-note{font-size:.82rem;color:#a89888;text-align:center;margin-bottom:14px}
.rsv-form{
    background:#fff;border-radius:8px;padding:24px 22px;
    box-shadow:0 2px 14px rgba(0,0,0,.04);margin-bottom:24px;
}
.fg{margin-bottom:14px}
.fg label{display:block;font-size:.9rem;font-weight:500;color:#4a3a2a;margin-bottom:5px}
.req{
    background:#e0736c;color:#fff;font-size:.6rem;
    padding:1px 6px;border-radius:3px;margin-left:4px;vertical-align:middle;
}
.fg input,.fg select,.fg textarea{
    width:100%;padding:10px 14px;
    border:1px solid #e4ddd4;border-radius:6px;
    font-size:.95rem;font-family:'Noto Sans JP',sans-serif;
    color:#4a3a2a;background:#fcfaf7;transition:all .3s;
}
.fg input:focus,.fg select:focus,.fg textarea:focus{
    outline:none;border-color:#2aa4b5;background:#fff;
    box-shadow:0 0 0 3px rgba(42,164,181,.08);
}
.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}

.rsv-estimate{
    background:#fdf7f0;border-radius:6px;padding:14px;
    text-align:center;margin-bottom:16px;
    border:1px solid rgba(224,115,108,.12);
}
.est-label{display:block;font-size:.75rem;color:#a89888;margin-bottom:3px}
.est-detail{display:block;font-size:.85rem;color:#6b5b4b}
.est-total{display:block;margin-top:4px;font-size:.95rem;color:#4a3a2a}
.est-total strong{
    font-family:'Shippori Mincho',serif;
    font-size:1.4rem;color:#e0736c;
}

/* Thank You */
.rsv-thankyou{
    text-align:center;padding:40px 20px;
    background:#fff;border-radius:8px;
    box-shadow:0 2px 14px rgba(0,0,0,.04);margin-bottom:24px;
}
.ty-icon{font-size:3rem;margin-bottom:14px}
.rsv-thankyou h3{
    font-family:'Shippori Mincho',serif;
    font-size:1.3rem;margin-bottom:10px;color:#4a3a2a;
}
.rsv-thankyou p{font-size:.92rem;color:#a89888;line-height:1.8;margin-bottom:16px}

/* Cancel */
.rsv-cancel{
    background:#fff;border-radius:8px;padding:20px;
    text-align:center;box-shadow:0 1px 8px rgba(0,0,0,.03);border:1px solid #f0ebe4;
}
.rsv-cancel h4{font-size:1rem;font-weight:600;margin-bottom:8px;color:#4a3a2a}
.rsv-cancel p{font-size:.88rem;color:#6b5b4b}

/* ============================================
   ANIMATIONS
   ============================================ */
.fade-in{
    opacity:0;transform:translateY(24px);
    transition:opacity .7s ease,transform .7s ease;
}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* ============================================
   RESPONSIVE
   ============================================ */
@media(max-width:767px){
    .header-nav{display:none}
    .hamburger{display:block}
}
@media(min-width:600px){
    .container{max-width:560px}
    .hero-title{font-size:4.5rem}
    .hero-catchcopy{font-size:1.05rem}
}
@media(min-width:768px){
    body{padding-bottom:0}
    .bottom-nav{display:none}
    .container{max-width:640px}
    .hero-title{font-size:5rem}
    .hero{max-height:100vh}
    .hamburger{display:none!important}
}
@media(min-width:1024px){
    .container{max-width:720px}
    .hero-title{font-size:5.5rem}
    .header-inner{max-width:960px}
}
@media(max-width:360px){
    .hero-title{font-size:2.8rem}
    .hero-catchcopy{font-size:.85rem}
    .plan-card{padding:22px 16px}
    .fg-row{grid-template-columns:1fr}
}

/* ============================================
   LOGO IMAGE
   ============================================ */
.header-logo-img{
    height:24px;width:auto;
    display:inline-block;vertical-align:middle;
}
/* SP用ロゴ表示、PC用非表示 */
.header-logo-img--pc{display:none!important}
.header-logo-img--sp{display:inline-block!important}
@media(min-width:768px){
    .header-logo-img{height:28px}
    .header-logo-img--pc{display:inline-block!important}
    .header-logo-img--sp{display:none!important}
}

/* ============================================
   BOOKING EMBED SECTION
   ============================================ */
.sec-booking-embed{
    padding:48px 0 40px;
    background:#faf8f4;
}
.booking-embed-wrapper{
    max-width:640px;
    margin:0 auto;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

/* ============================================
   PC TEXT SIZE ADJUSTMENT (768px+, 15px以下を+2px相当)
   base 19px: 0.78rem=14.8px以下が対象
   ============================================ */
@media(min-width:768px){
    /* .60rem(11.4px) → .71rem(13.5px) */
    .hero-meta-item{font-size:.71rem}
    .hero-scroll span{font-size:.71rem}
    .badge-rec,.badge-day{font-size:.71rem}

    /* .65rem(12.4px) → .76rem(14.4px) */
    .bnav-item{font-size:.76rem}
    .footer-legal p{font-size:.76rem}
    .footer-copy{font-size:.76rem}

    /* .72rem(13.7px) → .83rem(15.8px) */
    .en-inline{font-size:.83rem}
    .en-sm{font-size:.83rem}
    .heading-en{font-size:.83rem}
    .price-row.en-row span{font-size:.83rem}
    .plan-note-en{font-size:.83rem!important}

    /* .75rem(14.3px) → .86rem(16.3px) */
    .header-nav-cta{font-size:.86rem!important}
    .cancel-en{font-size:.86rem}
    .rsv-summary-en{font-size:.86rem}

    /* .78rem(14.8px) → .89rem(16.9px) */
    .header-nav a{font-size:.89rem}
    .header-nav .menu li a{font-size:.89rem}
    .plan-name-en{font-size:.89rem}
    .plan-detail-en p{font-size:.89rem}
    .info-en{font-size:.89rem}
    .payment-en-block p{font-size:.89rem}

    /* .80rem(15.2px) → .91rem(17.3px) */
    .hero-arc{font-size:.91rem}
    .footer-company{font-size:.91rem}
    .footer-nav a{font-size:.91rem}
    .footer-nav .menu li a{font-size:.91rem}

    /* .82rem(15.6px) → .93rem(17.7px) */
    .about-sub small{font-size:.93rem}
    .about-en-block p{font-size:.93rem}
    .charm-en p{font-size:.93rem}
    .plan-notes p{font-size:.93rem}
    .info-note{font-size:.93rem!important}
    .payment-note{font-size:.93rem!important}
    .method-text p{font-size:.93rem}
    .rsv-form-note{font-size:.93rem}
    .rsv-summary-price span{font-size:.93rem}
    .reserve-hero-label{font-size:.93rem}
    .back-link{font-size:.93rem}

    /* .88rem(16.7px) → PC向け微調整不要だが改行バランス用に余白確保 */
    .plan-inc li,.plan-exc li{font-size:.93rem;line-height:1.8}
    .fg label{font-size:.95rem}
    .req{font-size:.71rem}
}

/* ============================================
   PC LINE-BREAK BALANCE (768px+)
   文字サイズ拡大後の不自然な改行を調整
   ============================================ */
@media(min-width:768px){
    /* セクション見出し: 1行収まりやすく */
    .sec-heading h2{
        letter-spacing:.03em;
        white-space:normal;
        word-break:keep-all;
        overflow-wrap:break-word;
    }
    /* 星付き見出し: 1行維持 */
    .star-line{
        letter-spacing:.04em;
        white-space:nowrap;
    }
    /* 英語サブ見出し: 1行維持 */
    .heading-en{
        white-space:nowrap;
    }
    /* CHARM見出しの改行調整 */
    .sec-charm .sec-heading h2{
        word-break:keep-all;
    }
    .sp-br{display:none}
    /* プラン名: 1行 */
    .plan-name{white-space:nowrap}
    .plan-name-en{white-space:nowrap}
    /* 料金テーブル行: 横並び維持 */
    .price-row{flex-wrap:nowrap}
    .price-row.en-row span{white-space:nowrap}
    /* 含まれるもの / 含まれないもの: en-inline折返し防止 */
    .plan-inc li,.plan-exc li{
        white-space:normal;
        word-break:keep-all;
    }
    /* キャンセルポリシー: 1行 */
    .cancel-block h4{white-space:nowrap}
    /* INFOセクション: 短文の折返し防止 */
    .info-block h4{white-space:nowrap}
    .contact-row{white-space:nowrap}
    /* フッター法的情報: 1行 */
    .footer-legal p{white-space:nowrap}
    .footer-company{white-space:nowrap}
    /* 予約サマリ: メタ情報は1行 */
    .rsv-summary-meta span{white-space:nowrap}
    /* 予約方法カード: テキストバランス */
    .method-text h3{white-space:nowrap}
    /* コンテナ幅微拡張（改行余地確保） */
    .container{max-width:660px}
}
@media(min-width:1024px){
    .container{max-width:740px}
    /* 広い画面では余裕があるので追加調整不要 */
}

/* ============================================
   WordPress Interference Removal
   ============================================ */
html{margin-top:0!important}
#wpadminbar{display:none}
body.admin-bar{margin-top:0}
.wp-block-image img{max-width:100%}
