/* ============================================================
   5ジャンルLP（newborn/maternity/omiyamairi/shichigosan/birthday.html）共通CSS
   全ファイルの<style>ブロックがヒーロー背景画像の3行を除きバイト単位で
   完全一致していたため、ここへ集約した（Opus 5監査 エンジニアM-4対応）。
   各ページ固有のヒーロー背景画像だけは、各ファイル自身の<style>に残している。
   編集する際はこのファイル1つを直せば5ページ全てに反映される。
============================================================ */
/* ══════════════════════════════════════
   RESET & BASE
══════════════════════════════════════ */
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--f-ui);
  color:var(--text);
  background:var(--base);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{display:block;width:100%;height:100%;object-fit:cover;}
picture{display:block;width:100%;height:100%;}
a{text-decoration:none;color:inherit;}
button{font-family:var(--f-ui);cursor:pointer;border:none;background:none;}
ul{list-style:none;}

/* ══════════════════════════════════════
   PAGE VISIBILITY (JS routing)
══════════════════════════════════════ */
.page{display:none;}
.page.active{display:block;}

/* ══════════════════════════════════════
   NAVIGATION
══════════════════════════════════════ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  height:64px;
  background:rgba(250,248,245,.96);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--beige);
  display:flex;align-items:center;
  padding:0 40px;
  transition:background var(--dur) var(--ease);
}
.nav.scrolled{background:rgba(250,248,245,1);}
.nav-logo{
  font-family:var(--f-display);
  font-size:22px;font-weight:300;letter-spacing:.22em;
  color:var(--brown);cursor:pointer;margin-right:auto;
}
.nav-links{
  display:flex;gap:32px;align-items:center;
}
.nav-links a{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);transition:color var(--dur) var(--ease);
}
.nav-links a:hover,.nav-links a.current{color:var(--brown);}
.nav-actions{display:flex;gap:10px;margin-left:32px;align-items:center;}
.btn-line-nav{
  background:var(--line-green);color:#fff;
  font-size:11px;letter-spacing:.06em;
  padding:8px 16px;border-radius:999px;
  transition:background var(--dur) var(--ease);
  display:flex;align-items:center;gap:5px;
}
.btn-line-nav:hover{background:#05a849;}
.btn-ig-nav{
  background:linear-gradient(45deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888);
  color:#fff;
  font-size:11px;letter-spacing:.06em;
  padding:8px 16px;border-radius:999px;
  transition:filter var(--dur) var(--ease);
  display:flex;align-items:center;gap:5px;
}
.btn-ig-nav:hover{filter:brightness(.94);}
.btn-reserve-nav{
  border:1px solid var(--terra);color:var(--terra-dk);
  font-size:11px;letter-spacing:.08em;
  padding:7px 18px;border-radius:999px;
  transition:all var(--dur) var(--ease);
}
.btn-reserve-nav:hover{background:var(--terra);color:#fff;}

/* Hamburger */
.hamburger{
  display:none;flex-direction:column;gap:5px;
  padding:8px;cursor:pointer;margin-left:auto;
}
.hamburger span{width:22px;height:1.5px;background:var(--brown);transition:all var(--dur) var(--ease);}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* Mobile menu */
.mobile-menu{
  display:none;
  position:fixed;inset:0;z-index:800;
  background:var(--base);
  flex-direction:column;align-items:center;justify-content:center;gap:32px;
  padding:80px 40px 120px;
}
.mobile-menu.open{display:flex;}
.mobile-menu a{
  font-family:var(--f-display);font-size:32px;font-weight:300;
  letter-spacing:.12em;color:var(--brown);
  transition:color var(--dur) var(--ease);
}
.mobile-menu a:hover{color:var(--terra-dk);}
.mobile-menu-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px;}

/* Mobile sticky CTA */
.sticky-cta{
  display:none;
  position:fixed;bottom:0;left:0;right:0;z-index:700;
  background:var(--brown);
  padding:12px 20px;
  padding-bottom:calc(12px + env(safe-area-inset-bottom));
  flex:1;gap:10px;
  box-shadow:0 -4px 20px rgba(44,31,26,.15);
}
.sticky-cta .btn-line{flex:1;}
.sticky-cta .btn-ig{flex:1;}
.sticky-cta .btn-primary{flex:2;}

/* ══════════════════════════════════════
   BUTTONS
══════════════════════════════════════ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--f-ui);letter-spacing:.1em;
  border-radius:999px;border:none;cursor:pointer;
  transition:all var(--dur) var(--ease);
  font-size:13px;white-space:nowrap;
}
.btn-primary{
  background:var(--terra);color:#fff;
  padding:14px 36px;
}
.btn-primary:hover{background:var(--terra-dkr);}
.btn-outline{
  background:transparent;color:var(--terra-dk);
  padding:13px 35px;border:1px solid var(--terra);
}
.btn-outline:hover{background:var(--terra);color:#fff;}
.btn-ghost{
  background:transparent;color:var(--text);
  padding:13px 35px;border:1px solid var(--beige);
}
.btn-ghost:hover{border-color:var(--muted);}
.btn-line{
  background:var(--line-green);color:#fff;
  padding:13px 28px;display:inline-flex;align-items:center;gap:8px;
}
.btn-line:hover{background:#05a849;}
.btn-ig{
  background:linear-gradient(45deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888);
  color:#fff;
  padding:13px 28px;display:inline-flex;align-items:center;gap:8px;
}
.btn-ig:hover{filter:brightness(.94);}
.btn-sm{padding:9px 20px;font-size:11px;}

/* ══════════════════════════════════════
   LAYOUT UTILS
══════════════════════════════════════ */
.container{max-width:1100px;margin:0 auto;padding:0 40px;}
.pt-nav{padding-top:64px;}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.flex-center{display:flex;align-items:center;justify-content:center;}
.flex-gap{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.text-center{text-align:center;}

/* Section spacing */
.section{padding:96px 0;}
.section-sm{padding:48px 0;}
.section-alt{background:var(--surface);}

/* Eyebrow + heading */
.eyebrow{
  font-family:var(--f-display);font-size:11px;
  letter-spacing:.35em;text-transform:uppercase;
  color:var(--terra-dk);margin-bottom:16px;
}
.heading-xl{
  font-family:var(--f-display);font-size:52px;font-weight:300;
  letter-spacing:.04em;color:var(--brown);line-height:1.2;
  margin-bottom:24px;
}
.heading-lg{
  font-family:var(--f-display);font-size:38px;font-weight:300;
  letter-spacing:.06em;color:var(--brown);line-height:1.3;
  margin-bottom:24px;
}
.heading-md{
  font-family:var(--f-display);font-size:26px;font-weight:300;
  letter-spacing:.08em;color:var(--brown);
  margin-bottom:12px;
}
.lead{
  font-family:var(--f-body);font-size:17px;font-weight:300;
  color:var(--text);line-height:1.9;margin-bottom:32px;
}
.body-sm{font-size:13px;color:var(--muted);line-height:1.9;}
.divider{border:none;border-top:1px solid var(--beige);margin:32px 0;}

/* ══════════════════════════════════════
   HERO
══════════════════════════════════════ */
.hero{
  min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;
  position:relative;overflow:hidden;
  padding:0 0 80px;
}
@supports (height: 100svh){
  /* iOS Safariの100vhはツールバーが隠れた状態の高さを指すため、初回表示（ツールバー展開時）
     では実際の可視領域より約100px前後大きく確保してしまい、下端のCTAがツールバー裏に隠れる。
     100svhに対応するブラウザでは、常に「見えている領域」基準の高さに切り替える */
  .hero{min-height:100svh;}
}
.hero-bg{
  position:absolute;inset:0;
  background:linear-gradient(135deg, #EDE5D8 0%, #F3EDE4 45%, #FAF8F5 100%);
}
.hero-bg::after{
  content:'';position:absolute;top:0;right:0;
  width:52%;height:100%;
  background-image:url('images/maternity-3.jpg');
  background-image:-webkit-image-set(url('images/maternity-3.webp') type('image/webp'), url('images/maternity-3.jpg') type('image/jpeg'));
  background-image:image-set(url('images/maternity-3.webp') type('image/webp'), url('images/maternity-3.jpg') type('image/jpeg'));
  background-position:center;background-size:cover;background-repeat:no-repeat;
  opacity:.38;
}
.hero-content{
  position:relative;z-index:1;
  max-width:1100px;margin:0 auto;padding:0 40px;
}
.hero-eyebrow{
  font-family:var(--f-display);font-size:12px;
  letter-spacing:.35em;text-transform:uppercase;
  color:var(--terra-dk);margin-bottom:24px;
}
.hero-title{
  font-family:var(--f-display);font-size:clamp(40px,6vw,72px);font-weight:300;
  color:var(--brown);line-height:1.15;letter-spacing:.04em;
  margin-bottom:24px;
}
.hero-sub{
  font-family:var(--f-body);font-size:17px;font-weight:300;
  color:var(--muted);line-height:1.9;max-width:420px;
  margin-bottom:40px;
}
.hero-scroll{
  position:absolute;bottom:32px;right:56px;
  font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);
  writing-mode:vertical-rl;display:flex;align-items:center;gap:12px;
}
.hero-scroll::after{
  content:'';width:1px;height:48px;
  background:linear-gradient(to bottom,var(--muted),transparent);
}

/* Hero タイトルをその場でゆっくりフェード表示 */
@keyframes heroFadeIn{
  from{opacity:0;}
  to{opacity:1;}
}
.hero-title{
  opacity:0;
  animation:heroFadeIn 1.2s var(--ease) .2s forwards;
}
@media (prefers-reduced-motion: reduce){
  .hero-title{opacity:1;animation:none;}
}

/* ══════════════════════════════════════
   PLAN CARDS
══════════════════════════════════════ */
.plan-card{
  background:var(--white);border:1px solid var(--beige);border-radius:6px;
  padding:28px 24px;position:relative;
  transition:all var(--dur) var(--ease);
  display:flex;flex-direction:column;
}
.plan-card:hover{
  box-shadow:0 12px 48px rgba(44,31,26,.1);
  transform:translateY(-3px);
}
.plan-card.featured{border-color:var(--terra);}
.plan-badge{
  position:absolute;top:-11px;left:20px;
  background:var(--terra-dk);color:#fff;
  font-size:10px;letter-spacing:.08em;
  padding:3px 12px;border-radius:20px;
}
.plan-name{
  font-family:var(--f-display);font-size:22px;font-weight:300;
  letter-spacing:.14em;color:var(--brown);margin-bottom:4px;
}
.plan-catch{
  font-size:12px;color:var(--muted);letter-spacing:.02em;white-space:normal;min-height:30px;
  margin-bottom:20px;padding-bottom:16px;
  border-bottom:1px solid var(--surface);
}
.plan-specs{margin-bottom:20px;}
.plan-specs li{
  font-size:13px;color:var(--text);
  padding:6px 0;border-bottom:1px solid var(--surface);
  display:flex;gap:8px;align-items:flex-start;
}
.plan-specs li::before{
  content:'·';color:var(--terra-dk);font-size:20px;
  line-height:1;margin-top:-2px;flex-shrink:0;
}
.plan-price{
  font-family:var(--f-display);font-size:26px;font-weight:300;
  color:var(--brown);letter-spacing:.04em;
  margin-top:auto;
}
.plan-price span{font-size:13px;color:var(--muted);}
.plan-btn{margin-top:16px;width:100%;}

/* ══════════════════════════════════════
   TRUST POINTS
══════════════════════════════════════ */
.trust-item{
  padding:24px;border-top:2px solid var(--terra);
}
.trust-num{
  font-family:var(--f-display);font-size:38px;font-weight:300;
  color:var(--terra-dk);line-height:1;margin-bottom:12px;
}
.trust-title{
  font-family:var(--f-body);font-size:17px;color:var(--brown);
  margin-bottom:8px;
}
.trust-body{font-size:13px;color:var(--muted);line-height:1.8;}

/* ══════════════════════════════════════
   CTA BLOCK
══════════════════════════════════════ */
.cta-block{
  text-align:center;padding:80px 40px;background:var(--surface);
}
.cta-title{
  font-family:var(--f-display);font-size:36px;font-weight:300;
  color:var(--brown);letter-spacing:.06em;margin-bottom:16px;
}
.cta-sub{
  font-size:14px;color:var(--muted);line-height:1.9;
  max-width:480px;margin:0 auto 32px;
}

/* ══════════════════════════════════════
   SIMULATOR
══════════════════════════════════════ */
.sim-wrap{
  background:var(--surface);border-radius:8px;
  padding:40px;
}
.sim-title{
  font-family:var(--f-display);font-size:26px;font-weight:300;
  letter-spacing:.1em;color:var(--brown);margin-bottom:8px;
}
.sim-sub{font-size:13px;color:var(--muted);margin-bottom:28px;}
.sim-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-bottom:20px;}
.sim-step{background:var(--white);border-radius:4px;padding:20px;}
.sim-num{
  font-family:var(--f-display);font-size:32px;font-weight:300;
  color:var(--terra-dk);line-height:1;margin-bottom:8px;
}
.sim-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:12px;}
.sim-select{
  width:100%;padding:10px 12px;
  border:1px solid var(--beige);border-radius:2px;
  font-family:var(--f-ui);font-size:13px;color:var(--text);
  background:var(--white);margin-bottom:6px;
}
.sim-check{
  display:flex;align-items:center;gap:8px;
  padding:6px 0;font-size:12px;color:var(--text);cursor:pointer;
}
.sim-check input{accent-color:var(--terra);}
.sim-result{
  background:var(--terra);color:#fff;border-radius:4px;
  padding:20px 28px;display:flex;
  align-items:center;justify-content:space-between;
}
.sim-result-label{font-size:12px;letter-spacing:.08em;opacity:.8;margin-bottom:2px;}
.sim-result-sub{font-size:10px;opacity:.6;}
.sim-total{
  font-family:var(--f-display);font-size:38px;
  font-weight:300;letter-spacing:.03em;
}

/* ══════════════════════════════════════
   OPTION TABLE
══════════════════════════════════════ */
.option-table{width:100%;border-collapse:collapse;}
.option-table th{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:10px 16px;text-align:left;
  border-bottom:2px solid var(--beige);font-weight:400;
  background:var(--surface);
}
.option-table td{
  padding:12px 16px;border-bottom:1px solid var(--beige);
  font-size:13px;color:var(--text);
}
.option-table tr:last-child td{border-bottom:none;}
.option-table .price{
  font-family:var(--f-display);font-size:16px;
  color:var(--brown);white-space:nowrap;
}
.option-table .discount{color:var(--green-text);}

/* ══════════════════════════════════════
   AREA TABLE
══════════════════════════════════════ */
.area-table{width:100%;border-collapse:collapse;}
.area-table th{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:10px 16px;font-weight:400;
  border-bottom:2px solid var(--beige);background:var(--surface);
  text-align:left;
}
.area-table th:last-child{text-align:right;}
.area-table tr{border-bottom:1px solid var(--beige);}
.area-table td{padding:12px 16px;font-size:13px;color:var(--text);}
.area-table td:first-child{color:var(--brown);}
.area-table td:last-child{
  font-family:var(--f-display);font-size:15px;
  color:var(--terra-dk);text-align:right;
}
.area-free{color:var(--green-text) !important;}

/* ══════════════════════════════════════
   GALLERY
══════════════════════════════════════ */
.gallery-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;}
.gallery-tab{
  font-size:12px;letter-spacing:.06em;padding:6px 16px;
  border-radius:20px;cursor:pointer;border:none;font-family:var(--f-ui);
  transition:all var(--dur) var(--ease);
  background:var(--surface);color:var(--muted);
}
.gallery-tab.active{background:var(--terra);color:#fff;}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-template-rows:auto auto;
  gap:8px;
}
.gitem{overflow:hidden;border-radius:2px;background:var(--beige);}
.gitem img{transition:transform .5s var(--ease),filter .3s var(--ease);filter:sepia(8%) saturate(.95);}
.gitem:hover img{transform:scale(1.04);filter:none;}
/* クラスベースspan（フィルター後もレイアウト崩れなし） */
.gitem.span-5{grid-column:span 5;}
.gitem.span-4{grid-column:span 4;}
.gitem.span-3{grid-column:span 3;}
.gitem.span-12{grid-column:span 12;}
.gitem.ar-45{aspect-ratio:4/5;}
.gitem.ar-34{aspect-ratio:3/4;}
.gitem.ar-11{aspect-ratio:1/1;}
.gitem.ar-54{aspect-ratio:5/4;}
.gitem.ar-32{aspect-ratio:3/2;}
.gitem[hidden]{display:none!important;}

/* ══════════════════════════════════════
   REVIEW CARDS
══════════════════════════════════════ */
.review-card{
  background:var(--base);border-radius:6px;
  padding:28px 24px;position:relative;
}
.review-card::before{
  content:'"';font-family:var(--f-display);font-size:80px;
  color:var(--beige);position:absolute;top:4px;left:14px;line-height:1;
}
.stars{color:var(--terra-dk);font-size:13px;margin-bottom:8px;}
.review-text{
  font-family:var(--f-body);font-size:13px;color:var(--text);
  line-height:1.9;margin-top:16px;
}
.review-author{
  font-size:11px;color:var(--muted);letter-spacing:.06em;
  margin-top:12px;
}

/* ══════════════════════════════════════
   BOOKING FORM
══════════════════════════════════════ */
.flow-row{
  display:flex;align-items:stretch;gap:0;
  overflow-x:auto;padding-bottom:8px;margin-bottom:40px;
}
.flow-step{
  background:var(--surface);border:1px solid var(--beige);
  border-radius:6px;padding:16px 14px;text-align:center;
  min-width:108px;flex-shrink:0;
}
.flow-step.hl{background:#FDF1EB;border-color:var(--terra-lt);}
.flow-arrow{
  display:flex;align-items:center;padding:0 4px;
  font-size:20px;color:var(--beige);flex-shrink:0;
}
.flow-num{
  font-family:var(--f-display);font-size:24px;font-weight:300;
  color:var(--terra-dk);line-height:1;margin-bottom:4px;
}
.flow-label{font-size:11px;color:var(--text);line-height:1.4;}
.flow-note{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.3;}

.form-wrap{
  max-width:640px;background:var(--surface);
  padding:40px;border-radius:8px;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-field{margin-bottom:20px;}
.form-label{
  display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px;
}
.form-label .req{color:var(--terra-dk);}
.form-input{
  width:100%;padding:12px 16px;
  background:var(--white);border:1px solid var(--beige);border-radius:2px;
  font-family:var(--f-body);font-size:14px;color:var(--text);
  transition:border-color var(--dur) var(--ease);outline:none;
}
.form-input:focus{border-color:var(--terra);}
.form-select{
  width:100%;padding:12px 16px;
  background:var(--white);border:1px solid var(--beige);border-radius:2px;
  font-family:var(--f-body);font-size:14px;color:var(--text);
  outline:none;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238B7355' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
}
.form-select:focus{border-color:var(--terra);outline:none;}
textarea.form-input{resize:vertical;min-height:100px;}
.check-row{
  display:flex;align-items:flex-start;gap:10px;
  padding:7px 0;cursor:pointer;font-size:13px;color:var(--text);
}
.check-row input{accent-color:var(--terra);margin-top:2px;flex-shrink:0;}
.opt-group{
  background:var(--white);border:1px solid var(--beige);
  border-radius:4px;padding:12px 16px;margin-bottom:4px;
}
.opt-group-title{
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px;
}
.privacy-wrap{
  background:var(--white);border:1px solid var(--beige);
  border-radius:4px;padding:14px 16px;margin-bottom:20px;
}
.privacy-wrap a{color:var(--terra-dk);text-decoration:underline;}
.form-submit{width:100%;padding:16px;font-size:14px;letter-spacing:.1em;}
.form-note{
  font-size:11px;color:var(--muted);text-align:center;
  margin-top:12px;line-height:1.8;
}

/* ══════════════════════════════════════
   POLICY BLOCKS
══════════════════════════════════════ */
.policy-intro{
  background:var(--surface);border-radius:6px;
  padding:20px 24px;margin-bottom:24px;
  font-size:14px;line-height:1.9;color:var(--text);
}
.policy-intro strong{font-weight:400;}
.policy-block{border:1px solid var(--beige);border-radius:6px;overflow:hidden;margin-bottom:16px;}
.policy-hd{
  display:flex;align-items:center;gap:10px;
  padding:12px 20px;font-size:13px;
}
.policy-hd.green{background:var(--green-bg);color:var(--green-text);}
.policy-hd.blue{background:var(--blue-bg);color:var(--blue-text);}
.policy-hd.red{background:var(--red-bg);color:var(--red-text);font-size:12px;}
.policy-bd{padding:16px 20px;font-size:13px;color:var(--text);line-height:1.9;background:var(--white);}
.policy-positive{
  background:var(--green-bg);border-radius:4px;
  padding:10px 14px;font-size:12px;color:var(--green-text);
  margin-top:10px;line-height:1.7;
}

/* ══════════════════════════════════════
   FAQ
══════════════════════════════════════ */
.faq-item{border-bottom:1px solid var(--beige);padding:20px 0;}
.faq-item:last-child{border-bottom:none;}
.faq-q{
  font-family:var(--f-body);font-size:16px;color:var(--brown);
  display:flex;gap:16px;align-items:flex-start;
  cursor:pointer;
  background:none;border:none;width:100%;text-align:left;padding:0;
  justify-content:space-between;
}
.faq-q-inner{display:flex;gap:16px;align-items:flex-start;flex:1;}
.faq-q-mark{
  font-family:var(--f-display);font-size:24px;font-weight:300;
  color:var(--terra-dk);line-height:1.2;flex-shrink:0;
}
.faq-icon{
  flex-shrink:0;width:20px;height:20px;
  border-radius:50%;border:1px solid var(--beige);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;color:var(--muted);margin-top:2px;
  transition:transform var(--dur) var(--ease),background var(--dur) var(--ease);
}
.faq-item.open .faq-icon{
  transform:rotate(45deg);
  background:var(--terra);color:#fff;border-color:var(--terra);
}
.faq-a{
  font-size:13px;color:var(--muted);line-height:1.9;
  margin-top:0;padding-left:40px;
  max-height:0;overflow:hidden;
  transition:max-height .35s var(--ease),margin-top .2s var(--ease);
}
.faq-item.open .faq-a{
  max-height:400px;
  margin-top:12px;
}

/* ══════════════════════════════════════
   PRIVACY
══════════════════════════════════════ */
.priv-section{margin-bottom:32px;}
.priv-heading{
  font-family:var(--f-body);font-size:15px;color:var(--brown);
  margin-bottom:10px;padding-bottom:8px;
  border-bottom:1px solid var(--beige);
}
.priv-body{font-size:13px;color:var(--text);line-height:1.9;}

/* ══════════════════════════════════════
   FOOTER
══════════════════════════════════════ */
footer{
  background:var(--brown);color:rgba(255,255,255,.55);
  padding:64px 0 40px;
}
.footer-logo{
  font-family:var(--f-display);font-size:30px;font-weight:300;
  letter-spacing:.28em;color:rgba(255,255,255,.9);
  margin-bottom:12px;
}
.footer-tagline{font-size:13px;margin-bottom:32px;}
.footer-links{
  display:flex;gap:24px;flex-wrap:wrap;
  margin-bottom:24px;
}
.footer-links a{
  font-size:11px;letter-spacing:.08em;
  color:rgba(255,255,255,.6);
  transition:color var(--dur) var(--ease);
}
.footer-links a:hover{color:rgba(255,255,255,.8);}
.footer-social{display:flex;gap:10px;margin-bottom:32px;}
.footer-social a{
  font-size:11px;letter-spacing:.06em;
  padding:8px 18px;border-radius:2px;
}
.social-line{background:var(--line-green);color:#fff;}
.social-ig{background:linear-gradient(45deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888);color:#fff;}
.footer-copy{
  font-size:11px;color:rgba(255,255,255,.5);letter-spacing:.06em;
  border-top:1px solid rgba(255,255,255,.08);padding-top:24px;
}

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media(max-width:1023px){
  .grid-4{grid-template-columns:1fr 1fr;}
  .grid-3{grid-template-columns:1fr 1fr;}
  .sim-grid{grid-template-columns:1fr;}
  .hero-bg::after{width:100%;opacity:.08;}
}
@media(max-width:767px){
  .nav-links,.nav-actions{display:none;}
  .hamburger{display:flex;}
  .sticky-cta{display:flex;}
  .container{padding:0 20px;}
  .hero-content{padding:0 20px;}
  .hero-scroll{display:none;}
  .heading-xl{font-size:36px;}
  .heading-lg{font-size:28px;}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
  /* おすすめバッジがカード上端の外にはみ出すため、縦積み時は前のカードとの間隔を広げる */
  .grid-4{row-gap:28px;}
  /* モバイルでは4枚が縦積みになり、おすすめ(standard)が2番目に沈んでファーストビューに
     入らなくなるため、モバイルでのみ先頭に繰り上げる */
  .plan-card.featured{order:-1;}
  .form-row{grid-template-columns:1fr;}
  .section{padding:56px 0;}
  .cta-block{padding:56px 20px;}
  body{padding-bottom:64px;}
  .gitem.span-5{grid-column:span 7;}
  .gitem.span-4{grid-column:span 5;}
  .gitem.span-3{grid-column:span 5;}
  .gitem.span-12{grid-column:span 12;}
  .gitem.ar-54{grid-column:span 12;}
  .gitem.ar-32{grid-column:span 12;}
  .gitem.ar-54.span-4{display:none;}
}
