/* =========================================================
   Whity visual refinement — 2026-07
   Less decoration, consistent spacing, and a calm salon tone
========================================================= */
:root {
  --blue: #1e78b2;
  --blue-deep: #173f63;
  --cyan: #5aa9d1;
  --blue-sky: #dcecf4;
  --blue-pale: #f3f8fb;
  --blue-hex: #f1f7fa;
  --cream: #f8fafb;
  --pink: #f8fafb;
  --yellow: #ead46c;
  --red: #1e78b2;
  --border-color: #d6e5ed;
  --surface-shadow: 0 2px 14px rgba(19, 63, 99, 0.06);
  --surface-radius: 12px;
}

html { scroll-behavior: smooth; }
body {
  color: #23384a;
  letter-spacing: 0.02em;
  background: #fff;
}
body:has(.sticky-cta) { padding-bottom: 88px; }
* { -webkit-tap-highlight-color: transparent; }
*, *::before, *::after { animation: none !important; }

/* English eyebrows and decorative labels are intentionally removed. */
.feat-eyebrow,
.reason-eyebrow,
.plan-eyebrow,
.section-eyebrow-voice,
.idx-ac-eyebrow,
.beauty-cta-eyebrow,
.beauty-cta-action-label,
.ac-hero-label,
.ac-section-eyebrow,
.ac-cta-label,
.contact-hero-label,
.faq-hero-label,
.flow-hero-label,
.plan-hero-label,
.section-eyebrow,
.hero-eyebrow,
.auth-eyebrow,
.policy-modal__eyebrow,
.pass-balance-card__eyebrow,
.seat-choice-panel__eyebrow,
.step-label,
.sticky-cta-reservation-sub,
.sticky-cta-line-sub {
  display: none !important;
}

/* Header and general surface language */
.site-header,
.lp-page header {
  border-bottom: 1px solid #d9e8ef !important;
  box-shadow: none !important;
  background: rgba(255,255,255,0.98) !important;
}
.site-header { backdrop-filter: blur(8px); }
.header-inner { min-height: 76px; }
.header-nav a,
.footer-nav a { font-weight: 700; }
.btn-reservation-top,
.hero-cta,
.idx-cta-btn-primary,
.beauty-cta-reserve-btn,
.form-submit,
.faq-cta .btn-reservation,
.flow-cta .btn-reservation,
.ac-cta-btn,
.policy-modal__confirm,
.change-save,
.reservation-page .btn-primary,
.lp-page .cta-btn,
.lp-page .line-badge {
  background: var(--blue) !important;
  color: #fff !important;
  border: 1px solid var(--blue) !important;
  border-radius: var(--surface-radius) !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.btn-reservation-top,
.hero-cta,
.idx-cta-btn-primary,
.beauty-cta-reserve-btn,
.form-submit,
.faq-cta .btn-reservation,
.flow-cta .btn-reservation,
.ac-cta-btn,
.policy-modal__confirm,
.change-save,
.reservation-page .btn-primary,
.lp-page .cta-btn {
  min-height: 48px;
  padding: 13px 22px !important;
}
.btn-reservation-top:hover,
.hero-cta:hover,
.idx-cta-btn-primary:hover,
.beauty-cta-reserve-btn:hover,
.form-submit:hover,
.faq-cta .btn-reservation:hover,
.flow-cta .btn-reservation:hover,
.ac-cta-btn:hover,
.policy-modal__confirm:hover,
.change-save:hover,
.reservation-page .btn-primary:hover,
.lp-page .cta-btn:hover,
.lp-page .line-badge:hover {
  transform: none !important;
  box-shadow: none !important;
  background: #176591 !important;
  opacity: 1 !important;
}

/* Keep cards restrained: one radius and no exaggerated depth. */
[class~="card"],
[class*="-card"],
[class~="panel"],
[class*="-panel"] {
  border-radius: var(--surface-radius) !important;
  box-shadow: none !important;
}

.feat-card,
.reason-card,
.plan-card-mini,
.flow-item,
.voice-card,
.eq-feature,
.idx-ac-info,
.contact-form,
.ac-store-card,
.ac-route-card,
.ac-hours-card,
.faq-item,
.guide-card,
.plan-card,
.member-status-card,
.beauty-cta-inner,
.reservation-page .summary,
.reservation-page .agree,
.reservation-page .slot-wrap,
.reservation-page .pass-balance-card,
.reservation-page .seat-choice,
.change-card,
.change-current,
.friend-card {
  border-radius: var(--surface-radius) !important;
  box-shadow: none !important;
}
.feat-card,
.reason-card,
.plan-card-mini,
.flow-item,
.voice-card,
.eq-feature,
.idx-ac-info,
.contact-form,
.ac-store-card,
.ac-route-card,
.ac-hours-card,
.faq-item,
.guide-card,
.plan-card,
.beauty-cta-inner,
.change-card,
.friend-card {
  border-color: var(--border-color) !important;
}
.feat-card:hover,
.reason-card:hover,
.plan-card-mini:hover,
.flow-item:hover,
.voice-card:hover,
.eq-feature:hover,
.ac-route-card:hover,
.guide-card:hover,
.plan-card:hover {
  transform: none !important;
  box-shadow: none !important;
}

/* Main site: reduce template-like visual noise. */
.main-content h2::after,
.feat-heading::after,
.idx-ac-heading::after,
.voice-title::after,
.plan-heading::after { background: var(--cyan) !important; height: 2px !important; width: 42px !important; }
.features-section-new { padding: 72px 20px !important; }
.features-section-new .feat-grid { gap: 16px !important; }
.features-section-new .feat-img-wrap { display: none !important; }
.features-section-new .feat-card { overflow: visible !important; }
.features-section-new .feat-body { padding: 26px !important; }
.features-section-new .feat-title { font-size: 18px !important; line-height: 1.55 !important; }
.features-section-new .feat-desc { color: #53697a !important; }
.features-section-new .feat-point { border-left: 0 !important; background: #f4f8fa !important; color: var(--blue-deep) !important; border-radius: 8px !important; }

.reason-section,
.price-section-new,
.flow-section,
.voice-section,
.whity-whitening-section,
.idx-access-section {
  background: #f5f9fb !important;
}
.reason-cards { gap: 16px !important; padding-top: 0 !important; }
.reason-card { padding: 26px 24px !important; text-align: left !important; border: 1px solid var(--border-color) !important; }
.reason-badge,
.reason-icon-svg,
.feat-num-badge,
.plan-popular-ribbon { display: none !important; }
.reason-title { font-size: 18px !important; margin-bottom: 10px !important; }
.reason-desc { color: #53697a !important; }

.plan-cards-mini { gap: 16px !important; padding-top: 0 !important; }
.plan-popular-wrap { padding-top: 0 !important; }
.plan-card-mini { border: 1px solid var(--border-color) !important; }
.plan-card-popular { border-color: var(--blue) !important; }
.plan-badge-mini { border-radius: 8px !important; background: #eef5f8 !important; }
.plan-price-mini { color: var(--blue-deep) !important; }
.plan-local-price { color: #607584 !important; }

.flow-section .flow-steps { gap: 16px !important; }
.flow-section .flow-item { border: 1px solid var(--border-color) !important; padding: 18px !important; }
.flow-section .flow-item:not(:last-child)::after { display: none !important; }
.flow-section .step-title { font-size: 15px !important; }
.flow-section .step-image { border-radius: 8px !important; margin-bottom: 14px !important; }

/* Testimonials: remove unverified-looking numerical and before/after displays. */
.voice-summary,
.voice-habits,
.voice-ba,
.voice-tone-up,
.voice-avatar { display: none !important; }
.voice-lead { max-width: 620px; margin: 0 auto 28px !important; color: #53697a !important; }
.voice-cards { gap: 16px !important; }
.voice-card { padding: 24px !important; gap: 14px !important; }
.voice-card .voice-user { border-top: 0 !important; padding: 0 !important; }
.voice-comment { padding-left: 0 !important; font-size: 14px !important; }
.voice-comment::before { display: none !important; }
.voice-stars { color: var(--blue) !important; letter-spacing: 1px !important; }
.voice-user-name { color: var(--blue-deep) !important; }

.whity-whitening-section { padding: 72px 20px !important; }
.whitening-effect-block,
.equipment-section-new { background: #fff !important; border: 1px solid var(--border-color) !important; border-radius: var(--surface-radius) !important; box-shadow: none !important; }
.claim-badge,
.eq-img-placeholder,
.eq-feature { border-radius: var(--surface-radius) !important; box-shadow: none !important; }

/* Access section on top page. */
.idx-ac-map { border-radius: var(--surface-radius) !important; box-shadow: none !important; border: 1px solid var(--border-color) !important; }
.idx-ac-info { border: 1px solid var(--border-color) !important; }
.idx-ac-icon { display: none !important; }
.idx-ac-row { display: block !important; padding: 16px 20px !important; }
.idx-ac-label { color: #6b8394 !important; margin-bottom: 5px !important; }
.idx-ac-link { background: var(--blue) !important; }

/* Last CTA is simplified into a quiet, easy-to-scan reservation block. */
.beauty-cta-section,
.idx-cta-section {
  background: #f4f9fc !important;
  padding: 64px 20px !important;
  overflow: visible !important;
}
.beauty-cta-section::before,
.idx-cta-section::before { display: none !important; }
.beauty-cta-inner {
  max-width: 920px !important;
  display: grid !important;
  grid-template-columns: minmax(0,1fr) 320px !important;
  gap: 36px !important;
  align-items: center !important;
  background: #fff !important;
  border: 1px solid var(--border-color) !important;
  padding: 42px !important;
  text-align: left !important;
}
.beauty-cta-heading { color: var(--blue-deep) !important; font-size: clamp(26px,3vw,36px) !important; line-height: 1.45 !important; }
.beauty-cta-heading::after { background: var(--cyan) !important; }
.beauty-cta-lead { color: #53697a !important; line-height: 1.9 !important; }
.beauty-cta-points { color: #53697a !important; }
.beauty-cta-action {
  border-radius: var(--surface-radius) !important;
  border: 1px solid #cde2ee !important;
  background: #f7fbfd !important;
  box-shadow: none !important;
  padding: 28px !important;
}
.beauty-cta-action-text { color: var(--blue-deep) !important; }
.beauty-cta-contact-link { color: var(--blue-deep) !important; }

/* Access page: typography first, icon-free. */
.ac-hero { background: #1d6fa7 !important; padding: 72px 20px 64px !important; }
.ac-hero::before { display: none !important; }
.ac-hero h1 em { color: #fff !important; }
.ac-hero p { max-width: 700px; margin-left: auto; margin-right: auto; }
.ac-quickbar { background: #f4f9fc !important; padding: 22px 20px !important; }
.ac-quickbar-inner { display: grid !important; grid-template-columns: repeat(4, minmax(0,1fr)) !important; gap: 12px !important; max-width: 1040px !important; }
.ac-qitem { display: block !important; padding: 20px !important; background: #fff !important; border: 1px solid var(--border-color) !important; }
.ac-qitem::before { display: none !important; }
.ac-qitem:last-child { border-right: 1px solid var(--border-color) !important; }
.ac-qicon,
.ac-info-icon,
.ac-route-icon,
.ac-route-num { display: none !important; }
.ac-qlabel { font-size: 11px !important; color: #6b8394 !important; margin-bottom: 6px !important; }
.ac-qvalue,
.ac-qvalue span { color: var(--blue-deep) !important; }
.ac-map-wrap { border-radius: var(--surface-radius) !important; box-shadow: none !important; border: 1px solid var(--border-color) !important; }
.ac-store-header { background: #f4f9fc !important; color: var(--blue-deep) !important; border-bottom: 1px solid var(--border-color) !important; }
.ac-store-tag { display: none !important; }
.ac-info-row { display: block !important; padding: 15px 0 !important; }
.ac-info-label { color: #6b8394 !important; margin-bottom: 5px !important; }
.ac-route-card { padding: 24px !important; }
.ac-route-card::before { background: var(--cyan) !important; height: 2px !important; }
.ac-route-title { margin-top: 0 !important; }
.ac-route-time { background: #eef5f8 !important; color: var(--blue-deep) !important; border-radius: 8px !important; }
.ac-hours-card { border: 1px solid var(--border-color) !important; }
.ac-hours-grid.is-single { grid-template-columns: minmax(0, 320px) !important; justify-content: center !important; }
.ac-hours-day,
.ac-hours-card.is-weekend .ac-hours-day { background: #f4f9fc !important; color: var(--blue-deep) !important; border-bottom: 1px solid var(--border-color) !important; }
.ac-cta { background: #f4f9fc !important; padding: 64px 20px !important; }
.ac-cta::before { display: none !important; }
.ac-cta h2 { color: var(--blue-deep) !important; }
.ac-cta h2 em { color: inherit !important; }
.ac-cta p,
.ac-cta-sub { color: #53697a !important; }

/* Footer stays quiet and useful. */
.site-footer,
.lp-page footer {
  background: #173f63 !important;
  border-top: 0 !important;
  box-shadow: none !important;
}
.site-footer { padding: 48px 20px 24px !important; }
.site-footer .footer-logo,
.lp-page .footer-logo { width: 164px !important; margin: 0 auto 18px !important; }
.site-footer .footer-logo-img,
.lp-page .footer-logo .logo-img { width: 100% !important; height: auto !important; max-height: 82px !important; object-fit: contain !important; filter: brightness(0) invert(1) !important; }
.footer-legal { border-top: 1px solid rgba(255,255,255,.16) !important; }
.footer-sns { gap: 10px !important; }
.footer-sns a { border-radius: 8px !important; background: rgba(255,255,255,.1) !important; }

/* Fixed bottom CTA: single bar, equal-weight choices, no content overlap. */
.sticky-cta {
  left: 50% !important;
  right: auto !important;
  bottom: 14px !important;
  width: min(460px, calc(100vw - 24px)) !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
  padding: 8px !important;
  background: rgba(255,255,255,.97) !important;
  border: 1px solid #d2e2ea !important;
  border-radius: var(--surface-radius) !important;
  box-shadow: var(--surface-shadow) !important;
  transform: translateX(-50%) !important;
}
.sticky-cta > .sticky-cta-btn,
.sticky-cta > a.sticky-cta-primary,
.sticky-cta > a.sticky-cta-line {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 54px !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  gap: 8px !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  white-space: nowrap !important;
}
.sticky-cta-primary { background: var(--blue) !important; border-color: var(--blue) !important; color: #fff !important; }
.sticky-cta-line { background: #fff !important; border-color: #a7dfbd !important; color: #1f3d50 !important; }
.sticky-cta .sticky-cta-reservation-icon-wrap,
.sticky-cta .sticky-cta-line-icon-wrap {
  flex: 0 0 30px !important;
  width: 30px !important;
  min-width: 30px !important;
  height: 30px !important;
  min-height: 30px !important;
  border-radius: 7px !important;
  box-shadow: none !important;
}
.sticky-cta .sticky-cta-reservation-icon { width: 18px !important; height: 18px !important; }
.sticky-cta .sticky-cta-line-icon { width: 30px !important; height: 30px !important; }
.sticky-cta .sticky-cta-reservation-text,
.sticky-cta .sticky-cta-line-text { display: block !important; flex: 0 1 auto !important; height: auto !important; overflow: visible !important; }
.sticky-cta .sticky-cta-reservation-main,
.sticky-cta .sticky-cta-line-main { display: block !important; color: inherit !important; font-size: 14px !important; line-height: 1 !important; }
.sticky-cta .sticky-cta-reservation-arrow,
.sticky-cta .sticky-cta-line-arrow { display: none !important; }

/* Reservation screens: primary actions follow the same blue system. */
.reservation-page .page-header,
.reservation-page .hero,
.reservation-page .auth-hero { box-shadow: none !important; }
.reservation-page .btn-primary,
.reservation-page .form-submit,
.reservation-page .reservation-submit,
.reservation-page .auth-choice-main { background: var(--blue) !important; border-color: var(--blue) !important; box-shadow: none !important; border-radius: 10px !important; }
.reservation-page .menu-card,
.reservation-page .seat-choice,
.reservation-page .payment-pill,
.reservation-page .summary,
.reservation-page .agree { border-radius: 10px !important; box-shadow: none !important; }

/* LP-specific cleanup. */
.lp-page { background: #fff; }
.lp-page .header-in { max-width: 1120px; padding: 12px 20px !important; }
.lp-page .logo-img { height: 48px !important; }
.lp-page .gnav { font-size: 13px !important; color: #35566e !important; }
.lp-page .gnav a { border-left: 0 !important; padding: 0 .8em !important; }
.lp-page .gnav a::after { display: none !important; }
.lp-page .line-badge { width: auto !important; height: auto !important; min-height: 44px !important; margin: 0 0 0 auto !important; padding: 10px 16px !important; font-size: 14px !important; line-height: 1.2 !important; }
.lp-page .line-badge .l1,
.lp-page .line-badge .l3 { display: none !important; }
.lp-page .line-badge .l2 { font-size: 14px !important; }
.lp-page .hero { background: #fff !important; }
.lp-page .campaign-hero { background: #fff !important; }
.lp-page .points { background: #f5f9fb !important; padding: 46px 24px !important; }
.lp-page .points-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 12px !important; }
.lp-page .point { border: 1px solid var(--border-color) !important; border-radius: var(--surface-radius) !important; box-shadow: none !important; color: var(--blue-deep) !important; padding: 14px 16px !important; justify-content: center !important; text-align: center !important; background: #fff !important; }
.lp-page .checkbox { display: none !important; }
.lp-page .shine,
.lp-page .pricing,
.lp-page .machine,
.lp-page .kodawari,
.lp-page .stressfree,
.lp-page .flow,
.lp-page .voice,
.lp-page .qa,
.lp-page .access { background: #fff !important; }
.lp-page .shine { padding: 70px 24px !important; }
.lp-page .shine-num,
.lp-page .shine-head,
.lp-page .shine-catch { color: var(--blue-deep) !important; filter: none !important; }
.lp-page .stay-circle { border-radius: var(--surface-radius) !important; border-color: var(--blue-deep) !important; box-shadow: none !important; }
.lp-page .reasons { background: #f5f9fb !important; color: #23384a !important; padding: 72px 24px !important; }
.lp-page .reasons .slash-title,
.lp-page .pricing .slash-title,
.lp-page .machine .slash-title,
.lp-page .kodawari .slash-title,
.lp-page .stressfree .slash-title,
.lp-page .flow .slash-title,
.lp-page .voice .slash-title { color: var(--blue-deep) !important; }
.lp-page .reasons-lead { color: #53697a !important; }
.lp-page .reason-card,
.lp-page .price-row,
.lp-page .sf-item,
.lp-page .voice-item,
.lp-page .qa-item,
.lp-page .step { border-radius: var(--surface-radius) !important; box-shadow: none !important; }
.lp-page .reason-card { border: 1px solid var(--border-color) !important; color: #23384a !important; }
.lp-page .reason-card::before,
.lp-page .reason-card .rc-num,
.lp-page .reason-card .rc-divider { display: none !important; }
.lp-page .rc-title { color: var(--blue-deep) !important; }
.lp-page .rc-title em,
.lp-page .rc-fact { color: var(--blue) !important; }
.lp-page .pricing { padding: 72px 24px !important; }
.lp-page .price-row { border: 1px solid var(--border-color) !important; background: #fff !important; }
.lp-page .price-row.popular { outline: 0 !important; background: #fff !important; border-color: var(--blue) !important; transform: none !important; }
.lp-page .ribbon,
.lp-page .otoku { display: none !important; }
.lp-page .per,
.lp-page .per .p1,
.lp-page .per .p2 { color: var(--blue-deep) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
.lp-page .machine-hex,
.lp-page .reason-circle::before { display: none !important; }
.lp-page .kodawari-num { border-radius: 8px !important; box-shadow: none !important; }
.lp-page .sf-item { border: 1px solid var(--border-color) !important; background: #fff !important; }
.lp-page .sf-item .ph { border-radius: 8px !important; width: 100% !important; }
.lp-page .flow { background: #f5f9fb !important; }
.lp-page .flow-grid { gap: 24px !important; }
.lp-page .step-head .num::before { display: none !important; }
.lp-page .step-head .num { color: var(--blue) !important; padding: 0 !important; }
.lp-page .step .ph,
.lp-page .qa-photo .ph { border-radius: 8px !important; box-shadow: none !important; }
.lp-page .effect { background: #fff !important; }
.lp-page .effect-q { border-radius: var(--surface-radius) !important; box-shadow: none !important; }
.lp-page .effect-q::before,
.lp-page .effect-q::after { display: none !important; }
.lp-page .effect-big .marker { background: none !important; }
.lp-page .voice { background: #fff !important; }
.lp-page .voice-item { border: 1px solid var(--border-color) !important; padding: 28px !important; }
.lp-page .ba-box { border-radius: var(--surface-radius) !important; border-color: var(--border-color) !important; }
.lp-page .qa { background: #f5f9fb !important; }
.lp-page .qa-q { border-color: var(--border-color) !important; color: var(--blue-deep) !important; border-radius: var(--surface-radius) !important; box-shadow: none !important; }
.lp-page .access { padding-top: 64px !important; }
.lp-page .access h2 { color: var(--blue-deep) !important; }
.lp-page .cta-band { background: #f5f9fb !important; padding: 30px 24px !important; }
.lp-page .cta-btn { max-width: 460px !important; justify-content: center !important; font-size: 16px !important; }
.lp-page .cta-btn::before { display: none !important; }
.lp-page .cta-btn .arrow { background: transparent !important; color: #fff !important; width: auto !important; height: auto !important; border: 0 !important; }
.lp-page .fixed-cta { left: 50% !important; right: auto !important; bottom: 14px !important; width: min(440px, calc(100vw - 24px)) !important; padding: 8px !important; border: 1px solid var(--border-color) !important; border-radius: var(--surface-radius) !important; background: rgba(255,255,255,.98) !important; box-shadow: var(--surface-shadow) !important; transform: translate(-50%, 110%) !important; }
.lp-page .fixed-cta.on { transform: translate(-50%, 0) !important; }
.lp-page .fixed-cta .micro { display: none !important; }
.lp-page .fixed-cta .cta-btn { margin: 0 auto !important; min-height: 48px !important; }
.lp-page footer { padding: 42px 24px !important; }
.lp-page .footer-in { gap: 22px !important; }
.lp-page .footer-links { margin-left: 0 !important; }

@media (max-width: 860px) {
  body:has(.sticky-cta) { padding-bottom: 86px; }
  .header-inner { min-height: auto; }
  .beauty-cta-inner { grid-template-columns: 1fr !important; padding: 30px 24px !important; gap: 22px !important; }
  .ac-quickbar-inner { grid-template-columns: 1fr 1fr !important; }
  .ac-qitem:last-child { border-right: 1px solid var(--border-color) !important; }
  .lp-page .points-grid { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 560px) {
  .site-header .header-inner { padding-left: 16px !important; padding-right: 16px !important; }
  .site-header .header-nav { overflow-x: auto; width: 100%; }
  .site-header .header-nav ul { min-width: max-content; }
  .sticky-cta { bottom: 0 !important; width: 100% !important; border-radius: 12px 12px 0 0 !important; border-bottom: 0 !important; }
  .sticky-cta > .sticky-cta-btn,
  .sticky-cta > a.sticky-cta-primary,
  .sticky-cta > a.sticky-cta-line { height: 52px !important; min-height: 52px !important; font-size: 13px !important; }
  .sticky-cta .sticky-cta-reservation-main,
  .sticky-cta .sticky-cta-line-main { font-size: 13px !important; }
  .voice-cards,
  .reason-cards,
  .plan-cards-mini { grid-template-columns: 1fr !important; }
  .flow-section .flow-steps { grid-template-columns: 1fr !important; }
  .ac-quickbar-inner { grid-template-columns: 1fr !important; }
  .lp-page .points-grid { grid-template-columns: 1fr !important; }
  .lp-page .gnav { display: none !important; }
  .lp-page .header-in { justify-content: space-between !important; }
}


/* =========================================================
   MOBILE RESERVATION SAFETY — 2026-07-07
========================================================= */
@media (max-width: 640px) {
  body.reservation-page { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
  .reservation-page .site-header .header-inner { min-height: 60px !important; }
  .reservation-page .header-nav { gap: 6px !important; }
  .reservation-page .header-nav > a { min-height: 36px !important; padding: 0 9px !important; }
  .reservation-page .auth-card,
  .reservation-page .complete-card,
  .reservation-page .member-status-card { border-radius: 12px !important; }
  .reservation-page .menu-card-main,
  .reservation-page .payment-options { padding-left: 16px !important; padding-right: 16px !important; }
  .reservation-page .menu-card-head { align-items: flex-start !important; }
  .reservation-page .menu-card-price { font-size: 21px !important; }
  .reservation-page .btn-primary,
  .reservation-page .form-submit,
  .reservation-page .reservation-submit { min-height: 52px !important; }
}


/* =========================================================
   FINAL RESPONSIVE / LINE LOGO RESTORE PATCH — 2026-07-08
   - LINE icon is shown in fixed CTA again.
   - Prevents common mobile horizontal overflow.
   - Keeps forms, reservation UI, cards and tables readable on small screens.
   ========================================================= */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}
img, svg, video, canvas, iframe {
  max-width: 100%;
}
img {
  height: auto;
}
.container,
.page-container,
.reservation-page .container {
  box-sizing: border-box;
  max-width: min(1120px, calc(100% - 32px));
}
pre, code, table {
  max-width: 100%;
}

/* LINEアイコン復旧：以前のスマホ最適化で非表示にした指定を上書き */
.sticky-cta .sticky-cta-line-icon-wrap,
.sticky-cta-line-icon-wrap {
  display: grid !important;
  place-items: center !important;
  flex: 0 0 32px !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  background: #06c755 !important;
}
.sticky-cta .sticky-cta-line-icon,
.sticky-cta-line-icon {
  display: block !important;
  width: 32px !important;
  height: 32px !important;
  object-fit: contain !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.sticky-cta-line {
  gap: 8px !important;
}

@media (max-width: 767px) {
  body {
    padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important;
  }

  .container,
  .page-container,
  .reservation-page .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .site-header,
  .header-inner {
    width: 100% !important;
    max-width: 100% !important;
  }
  .header-inner {
    gap: 8px !important;
  }
  .header-nav,
  .header-nav-member {
    min-width: 0 !important;
  }
  .site-header .logo img,
  .site-header .header-logo-img,
  .footer-logo-img {
    max-width: 150px !important;
    height: auto !important;
    object-fit: contain !important;
  }

  /* Bottom CTA: LINEロゴを残しつつ、2ボタンを押しやすく */
  .sticky-cta {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 9000 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    margin: 0 !important;
    background: rgba(255,255,255,.98) !important;
    border-radius: 0 !important;
    border-top: 1px solid #d4e4eb !important;
    box-shadow: 0 -2px 12px rgba(21,81,143,.08) !important;
    transform: none !important;
  }
  .sticky-cta > .sticky-cta-btn,
  .sticky-cta > a.sticky-cta-primary,
  .sticky-cta > a.sticky-cta-line {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    width: 100% !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border-radius: 12px !important;
    box-shadow: none !important;
  }
  .sticky-cta .sticky-cta-reservation-icon-wrap,
  .sticky-cta .sticky-cta-reservation-arrow,
  .sticky-cta .sticky-cta-line-arrow,
  .sticky-cta .sticky-cta-reservation-sub,
  .sticky-cta .sticky-cta-line-sub {
    display: none !important;
  }
  .sticky-cta .sticky-cta-line-icon-wrap {
    display: grid !important;
    flex: 0 0 28px !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
    border-radius: 8px !important;
  }
  .sticky-cta .sticky-cta-line-icon {
    display: block !important;
    width: 28px !important;
    height: 28px !important;
  }
  .sticky-cta .sticky-cta-reservation-text,
  .sticky-cta .sticky-cta-line-text {
    display: block !important;
    min-width: 0 !important;
    overflow: visible !important;
  }
  .sticky-cta .sticky-cta-reservation-main,
  .sticky-cta .sticky-cta-line-main {
    display: block !important;
    color: inherit !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  /* Common grid/cards */
  .features-grid,
  .reason-grid,
  .flow-grid,
  .plan-grid,
  .pricing-grid,
  .voice-grid,
  .access-grid,
  .contact-grid,
  .datetime-grid,
  .dashboard-grid,
  .admin-grid,
  .cards-grid {
    grid-template-columns: 1fr !important;
  }
  .card,
  .panel,
  .menu-card-main,
  .payment-options,
  .summary-card,
  .calendar-wrap,
  .slot-wrap,
  .faq-item,
  .voice-card,
  .access-card,
  .contact-card {
    max-width: 100% !important;
    border-radius: 12px !important;
    box-shadow: none !important;
  }

  /* Reservation UI */
  .reservation-page #step-indicator.steps,
  .reservation-page .steps {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .reservation-page #step-indicator .step,
  .reservation-page .step {
    min-width: 0 !important;
    padding: 9px 6px !important;
    font-size: 12px !important;
  }
  .payment-radios,
  .payment-options,
  .form-grid,
  .member-form-grid {
    grid-template-columns: 1fr !important;
  }
  input, select, textarea, button {
    max-width: 100% !important;
  }
  .slot-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Long text / tables */
  .table-wrap,
  .admin-table-wrap,
  .ledger-table-wrap {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  table {
    display: block !important;
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* Images in content */
  .flow-photo,
  .step img,
  .voice-ba img,
  .hero-img,
  .main-visual img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
  }

  /* BAR Tnb限定ページ */
  .bartnb-page main.container {
    padding-top: 16px !important;
  }
  .bartnb-page .panel {
    overflow: hidden !important;
  }
}

@media (max-width: 380px) {
  .sticky-cta .sticky-cta-reservation-main,
  .sticky-cta .sticky-cta-line-main {
    font-size: 12px !important;
  }
  .sticky-cta .sticky-cta-line-icon-wrap {
    flex-basis: 24px !important;
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    min-height: 24px !important;
  }
  .sticky-cta .sticky-cta-line-icon {
    width: 24px !important;
    height: 24px !important;
  }
}

/* =========================================================
   DESKTOP PAGE CENTERING FIX — 2026-07-11
   Keep header-linked subpage wrappers centered on desktop.
   ========================================================= */
@media (min-width: 768px) {
  .page-container {
    width: 100% !important;
    max-width: min(1120px, calc(100% - 32px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
