@charset "UTF-8";
/* ==========================================================================
   福祉レンタカーTF LP
   ========================================================================== */

:root{
  --navy:#1D6E77;
  --navy-dark:#155A62;
  --teal:#2BA9B5;
  --teal-dark:#1D8089;
  --bg-soft:#F2FAFB;
  --bg-teal-pale:#E3F4F5;
  --white:#FFFFFF;
  --text-main:#2B3438;
  --text-sub:#6C7A7E;
  --border:#DCEBEC;
  --error:#C8474B;
  --header-h:88px;
}

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:var(--header-h); -webkit-text-size-adjust:100%; }
body{
  font-family:'Noto Sans JP',sans-serif;
  color:var(--text-main);
  background:var(--white);
  line-height:1.8;
  font-size:15px;
}
h1,h2,h3,.brand{ font-family:'Zen Maru Gothic',sans-serif; }
img{ max-width:100%; }
a{ text-decoration:none; color:inherit; }
ul,ol{ list-style:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
:focus-visible{ outline:3px solid var(--teal); outline-offset:2px; }
.wrap{ max-width:1080px; margin:0 auto; padding:0 24px; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.pc-only{ display:inline; }
.sp-only{ display:none; }

.icon-svg{ width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.icon-arrow{ width:14px; height:14px; }

/* 画像スロット（仮画像キャプション付き） */
.img-slot{ position:relative; overflow:hidden; background:var(--bg-soft); }
.img-slot img{ display:block; width:100%; height:100%; object-fit:cover; }
.img-slot .cap{
  position:absolute; left:10px; bottom:10px; background:#155A62cc; color:#fff;
  font-size:11.5px; padding:5px 10px; border-radius:5px; line-height:1.4;
}

/* ---------- Buttons ---------- */
.btn-cta,.btn-primary-lg,.btn-outline{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  border-radius:24px; font-size:14px; white-space:nowrap; cursor:pointer;
  transition:background-color .2s, color .2s, box-shadow .2s, transform .2s;
}
.btn-cta{ background:var(--teal); color:var(--white); font-weight:700; padding:11px 22px; }
.btn-primary-lg{ background:var(--teal); color:var(--white); font-weight:700; padding:12px 26px; border:0; }
.btn-outline{ border:1px solid var(--teal); color:var(--teal-dark); background:var(--white); font-weight:500; padding:12px 24px; }
.btn-cta:hover,.btn-primary-lg:hover{ background:var(--teal-dark); }
.btn-outline:hover{ background:var(--bg-teal-pale); }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--white);
  border-bottom:1px solid var(--border); color:var(--text-main);
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:20px; height:var(--header-h); }
.brand-mark{ display:flex; align-items:center; gap:10px; }
.logo-mark{ display:block; width:auto; height:52px; flex-shrink:0; }
.brand{ font-family:'Zen Maru Gothic',sans-serif; font-size:18px; font-weight:700; letter-spacing:.03em; color:var(--navy-dark); line-height:1.35; }
.brand-sub{ display:block; font-size:11.5px; color:var(--teal-dark); font-weight:500; }

.global-nav ul{ display:flex; gap:30px; font-size:13.5px; }
.global-nav li{ text-align:center; line-height:1.4; }
.global-nav a{ display:block; transition:color .2s; }
.global-nav a:hover{ color:var(--teal-dark); }
.global-nav a span{ display:block; font-size:9.5px; color:var(--text-sub); letter-spacing:.1em; margin-top:2px; }

.header-cta{ display:flex; align-items:center; gap:28px; }
.phone-row{ display:flex; align-items:center; gap:8px; font-size:13px; line-height:1.5; }
.phone-row .icon-svg{ width:18px; height:18px; color:var(--teal); }
.phone-row b{ font-size:16px; letter-spacing:.02em; }
.phone-row small{ display:block; font-size:10.5px; color:var(--text-sub); }

.menu-toggle{
  display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer;
  position:relative; flex-shrink:0;
}
.menu-toggle span{
  position:absolute; left:11px; width:22px; height:2px; border-radius:2px; background:var(--navy-dark);
  transition:transform .25s, opacity .25s;
}
.menu-toggle span:nth-child(1){ top:15px; }
.menu-toggle span:nth-child(2){ top:21px; }
.menu-toggle span:nth-child(3){ top:27px; }
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero-full{ position:relative; }
.hero-photo-full{ position:relative; aspect-ratio:16/8; width:100%; max-height:calc(100vh - var(--header-h)); min-height:420px; }
.hero-photo-full img{ object-position:center 40%; }
.hero-overlay-gradient::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(21,90,98,.45) 0%, rgba(21,90,98,0) 45%);
}
.hero-overlay-gradient{
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(21,90,98,.65) 0%, rgba(21,90,98,.05) 55%, rgba(21,90,98,0) 100%);
}
.hero-photo-full .cap{ left:auto; right:10px; top:10px; bottom:auto; }
.hero-copy{ position:absolute; left:0; right:0; bottom:64px; padding:0 24px; max-width:1080px; margin:0 auto; color:#fff; }
.hero-copy .eyebrow{ color:#D9F2F2; font-size:13px; font-weight:700; margin-bottom:12px; letter-spacing:.05em; }
.hero-copy h1{ font-size:36px; line-height:1.6; font-weight:700; text-shadow:0 2px 12px rgba(21,90,98,.35); }

.notice-bar{
  position:relative; margin-top:-34px; background:var(--white); border-radius:16px;
  box-shadow:0 16px 34px -18px rgba(29,110,119,.4); padding:18px 26px;
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
.notice-badge{ background:var(--teal); color:#fff; font-size:12px; font-weight:700; padding:6px 14px; border-radius:20px; flex-shrink:0; line-height:1.4; }
.notice-text{ font-size:13.5px; flex:1; min-width:200px; }
.notice-link{ font-size:13px; color:var(--teal-dark); font-weight:700; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.notice-link:hover{ text-decoration:underline; }

.hero-lead-wrap{ padding:52px 0 20px; }
.hero-lead-wrap .lead{ font-size:15px; color:var(--text-sub); margin-bottom:26px; max-width:42em; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }

/* ---------- Section common ---------- */
.section{ padding:72px 0; }
.section-head{ text-align:center; margin-bottom:44px; }
.section-head .tag{ color:var(--teal-dark); font-size:13px; font-weight:700; margin-bottom:10px; letter-spacing:.06em; }
.section-head h2{ font-size:26px; color:var(--navy-dark); font-weight:700; line-height:1.6; }
.section-head p{ color:var(--text-sub); margin-top:12px; font-size:14px; }

/* ---------- Mission / 社会課題 ---------- */
.mission-bg{ background:linear-gradient(160deg, #EAF8F9 0%, #FFFFFF 100%); }
.mission-inner{ max-width:820px; margin:0 auto; text-align:center; position:relative; }
.mission-quote{
  font-family:'Zen Maru Gothic',sans-serif; font-size:90px; line-height:1; color:var(--teal);
  opacity:.18; margin-bottom:-30px;
}
.mission-inner .tag{ color:var(--teal-dark); font-size:13px; font-weight:700; margin-bottom:16px; letter-spacing:.06em; }
.mission-inner h2{ font-size:24px; line-height:1.7; font-weight:700; margin-bottom:24px; color:var(--navy-dark); }
.mission-inner h2 em{ color:var(--teal-dark); font-style:normal; }
.mission-stats{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:36px; }
.stat-card{ background:var(--white); border:1px solid var(--border); border-radius:16px; padding:26px 20px; }
.stat-card .num{ font-family:'Zen Maru Gothic',sans-serif; font-size:32px; color:var(--teal-dark); font-weight:700; line-height:1.2; }
.stat-card .num small{ font-size:15px; margin-left:2px; }
.stat-card .label{ font-size:12.5px; color:var(--text-sub); margin-top:8px; }
.statement{
  font-size:15px; line-height:2; text-align:left; background:var(--white);
  border-left:3px solid var(--teal); padding:22px 26px; border-radius:4px;
}
.statement p + p{ margin-top:1em; }

/* ---------- Pain points ---------- */
.pain-bg{ background:var(--bg-soft); }
.pain-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pain-card{ background:var(--white); border:1px solid var(--border); border-radius:16px; padding:28px 24px; }
.pain-card .icon{
  width:44px; height:44px; border-radius:50%; background:var(--bg-teal-pale); color:var(--teal-dark);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.pain-card h3{ font-size:16px; margin-bottom:10px; color:var(--navy-dark); }
.pain-card p{ font-size:13.5px; color:var(--text-sub); }
.voice-row{ display:flex; align-items:flex-start; gap:10px; margin-top:16px; }
.voice-avatar{ width:42px; height:42px; border-radius:50%; flex-shrink:0; overflow:hidden; background:#F9E2C2; }
.voice-avatar img{ display:block; width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.bubble{
  position:relative; background:var(--bg-teal-pale); color:var(--teal-dark); font-size:13px;
  padding:10px 14px; border-radius:4px 14px 14px 14px; line-height:1.6;
}
.bubble::before{
  content:''; position:absolute; left:-6px; top:10px;
  border-width:6px 7px 6px 0; border-style:solid; border-color:transparent var(--bg-teal-pale) transparent transparent;
}

/* ---------- Solution ---------- */
.solution-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.sol-photo{
  aspect-ratio:16/10; border-radius:48% 52% 38% 62%/56% 44% 56% 44%; margin-bottom:16px;
  box-shadow:0 16px 30px -18px rgba(29,110,119,.4);
}
.sol-photo .cap{ left:50%; transform:translateX(-50%); bottom:14px; }
.sol-card h3{ font-size:16px; color:var(--navy-dark); margin-bottom:8px; }
.sol-card p{ font-size:13.5px; color:var(--text-sub); }

/* ---------- Why us ---------- */
.why-bg{ background:var(--bg-teal-pale); }
.why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.why-card{ background:var(--white); border:1px solid var(--border); border-radius:14px; padding:22px 18px; }
.why-card .icon-svg{ width:26px; height:26px; color:var(--teal); margin-bottom:12px; display:block; }
.why-card h3{ font-size:14.5px; margin-bottom:8px; color:var(--navy-dark); }
.why-card p{ font-size:12.5px; color:var(--text-sub); }

/* ---------- Plans ---------- */
.plan-bg{ background:var(--bg-soft); }
.plan-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:start; }
.plan-card{ background:var(--white); border:1px solid var(--border); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; height:100%; }
.plan-card.featured{ border:2px solid var(--teal); position:relative; }
.plan-badge{
  position:absolute; top:-1px; right:-1px; z-index:1; background:var(--teal); color:#fff;
  font-size:11px; padding:5px 12px; border-radius:0 14px 0 8px; font-weight:700;
}
.plan-photo{ aspect-ratio:16/9; }
.plan-body{ padding:20px 22px; display:flex; flex-direction:column; flex:1; }
.plan-body h3{ font-size:15px; color:var(--navy-dark); margin-bottom:6px; }
.plan-body .price{ font-size:13px; color:var(--text-sub); margin-bottom:14px; }
.plan-body .price b{ font-size:22px; color:var(--teal-dark); font-family:'Zen Maru Gothic',sans-serif; }
.plan-body ul{ margin-bottom:18px; }
.plan-body li{ font-size:13px; color:var(--text-sub); padding:6px 0; border-top:1px dashed var(--border); }
.plan-body li:first-child{ border-top:none; }
.plan-body .plan-link{
  margin-top:auto; font-size:13px; font-weight:700; color:var(--teal-dark);
  display:inline-flex; align-items:center; gap:4px;
}
.plan-body .plan-link:hover{ text-decoration:underline; }
.plan-card.is-coming-soon{ position:relative; background:#FAFCFC; }
.plan-card.is-coming-soon .plan-badge{ background:var(--text-sub); }
.coming-visual{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  background:repeating-linear-gradient(135deg, #EAF4F5, #EAF4F5 12px, #F3F9FA 12px, #F3F9FA 24px);
  color:var(--text-sub);
}
.coming-visual .icon-svg{ width:44px; height:44px; color:#A9C4C7; stroke-width:1.4; margin-bottom:4px; }
.coming-visual-ja{ font-family:'Zen Maru Gothic',sans-serif; font-size:20px; font-weight:700; letter-spacing:.2em; color:var(--text-sub); }
.coming-visual-en{ font-size:10.5px; letter-spacing:.25em; color:#A3B0B3; }
.plan-card.is-coming-soon .price b{ color:var(--text-sub); font-size:18px; }
.coming-note{
  margin-top:auto; font-size:12.5px; color:var(--text-sub); background:var(--bg-soft);
  border-radius:8px; padding:10px 12px; line-height:1.6;
}
.plan-note{ text-align:center; font-size:12px; color:var(--text-sub); margin-top:24px; }
.plan-note a,.faq-list details p a{ color:var(--teal-dark); text-decoration:underline; font-weight:700; }

/* ---------- Facility types ---------- */
.facility-list{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.facility-list li{
  background:var(--bg-teal-pale); color:var(--teal-dark); font-size:13.5px; font-weight:500;
  padding:10px 18px; border-radius:24px; display:flex; align-items:center;
}
.facility-list .icon-svg{ width:15px; height:15px; margin-right:5px; }

/* ---------- Flow ---------- */
.flow-bg{ background:var(--bg-soft); }
.flow-grid{ display:grid; grid-template-columns:repeat(4,1fr); position:relative; }
.flow-step{ text-align:center; padding:0 14px; position:relative; }
.flow-step .num{
  width:40px; height:40px; border-radius:50%; background:var(--teal); color:#fff; font-family:'Zen Maru Gothic',sans-serif;
  display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-weight:700; font-size:15px;
  position:relative; z-index:1;
}
.flow-step h3{ font-size:14.5px; color:var(--navy-dark); margin-bottom:8px; }
.flow-step p{ font-size:12.5px; color:var(--text-sub); }
.flow-step:not(:last-child)::after{
  content:''; position:absolute; top:20px; left:calc(50% + 20px); width:calc(100% - 40px); height:1px; background:var(--border);
}

/* ---------- FAQ ---------- */
.faq-list{ max-width:760px; margin:0 auto; }
.faq-list details{ background:var(--white); border:1px solid var(--border); border-radius:14px; margin-bottom:12px; }
.faq-list summary{
  cursor:pointer; font-size:14.5px; font-weight:500; color:var(--navy-dark); list-style:none;
  padding:16px 52px 16px 20px; position:relative;
}
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::before{ content:'Q.'; color:var(--teal); font-family:'Zen Maru Gothic',sans-serif; font-weight:700; margin-right:8px; }
.faq-list summary::after{
  content:''; position:absolute; right:22px; top:50%; width:9px; height:9px;
  border-right:2px solid var(--teal); border-bottom:2px solid var(--teal);
  transform:translateY(-70%) rotate(45deg); transition:transform .2s;
}
.faq-list details[open] summary::after{ transform:translateY(-30%) rotate(-135deg); }
.faq-list details p{ font-size:13.5px; color:var(--text-sub); padding:0 20px 18px 44px; margin-top:-4px; }

/* ---------- Contact / CTA ---------- */
.cta-bg{ background:linear-gradient(160deg, #E3F4F5 0%, #F6FBFB 100%); }
.cta-inner{ display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:start; }
.cta-intro{ position:sticky; top:calc(var(--header-h) + 32px); }
.cta-intro > .icon-svg{ width:34px; height:34px; color:var(--teal); margin-bottom:14px; }
.cta-intro h2{ font-size:24px; margin-bottom:14px; color:var(--navy-dark); line-height:1.6; }
.cta-intro p{ color:var(--text-sub); font-size:13.5px; }
.tel-box{
  margin-top:28px; background:var(--white); border:1px solid var(--border); border-radius:14px;
  padding:18px 22px; display:flex; align-items:center; gap:14px;
}
.tel-box .icon-svg{ width:28px; height:28px; color:var(--teal); }
.tel-box .tel-label{ font-size:12px; color:var(--text-sub); line-height:1.5; }
.tel-box .tel-num{ font-family:'Zen Maru Gothic',sans-serif; font-size:24px; font-weight:700; color:var(--navy-dark); line-height:1.3; letter-spacing:.02em; }
.tel-box .tel-hours{ font-size:11.5px; color:var(--text-sub); }

.form-card{ background:var(--white); border-radius:16px; padding:32px 28px; box-shadow:0 20px 40px -24px rgba(29,110,119,.35); }
.form-row{ margin-bottom:16px; border:0; }
.form-row > label,.form-row legend{ display:block; font-size:12.5px; color:var(--text-main); font-weight:500; margin-bottom:6px; }
.req,.opt{ display:inline-block; font-size:10.5px; font-weight:700; padding:1px 7px; border-radius:4px; margin-left:6px; vertical-align:1px; line-height:1.6; }
.req{ background:var(--teal); color:#fff; }
.opt{ background:var(--border); color:var(--text-sub); }
.field{
  width:100%; border:1px solid var(--border); border-radius:8px; padding:10px 12px; font-size:15px;
  background:var(--bg-soft); transition:border-color .2s, background-color .2s;
  appearance:none; -webkit-appearance:none;
}
.field::placeholder{ color:#A3B0B3; }
.field:focus{ outline:none; border-color:var(--teal); background:var(--white); box-shadow:0 0 0 3px rgba(43,169,181,.15); }
select.field{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D8089' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center; background-size:18px; padding-right:36px;
}
textarea.field{ min-height:110px; resize:vertical; line-height:1.7; }
.form-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.check-group{ display:flex; flex-wrap:wrap; gap:8px; }
.check-chip{ position:relative; }
.check-chip input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.check-chip span{
  display:inline-block; font-size:13px; padding:7px 14px; border-radius:20px; border:1px solid var(--border);
  background:var(--bg-soft); color:var(--text-sub); transition:all .2s; cursor:pointer;
}
.check-chip input:checked + span{ background:var(--bg-teal-pale); border-color:var(--teal); color:var(--teal-dark); font-weight:700; }
.check-chip input:focus-visible + span{ outline:3px solid var(--teal); outline-offset:2px; }
.agree{ display:flex; align-items:flex-start; gap:8px; font-size:13px; margin:6px 0 4px; cursor:pointer; }
.agree input{ width:18px; height:18px; margin-top:3px; accent-color:var(--teal); flex-shrink:0; }
.agree a{ color:var(--teal-dark); text-decoration:underline; }
.field-error{ display:none; font-size:12px; color:var(--error); margin-top:4px; }
.is-invalid .field{ border-color:var(--error); background:#FDF4F4; }
.is-invalid .field-error{ display:block; }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-submit{
  width:100%; background:var(--teal); color:#fff; font-weight:700; padding:14px; border:0; border-radius:28px;
  font-size:15px; margin-top:14px; cursor:pointer; transition:background-color .2s;
}
.form-submit:hover{ background:var(--teal-dark); }
.form-submit:disabled{ opacity:.6; cursor:wait; }
.form-status{ margin-top:14px; font-size:13px; padding:12px 14px; border-radius:8px; display:none; }
.form-status.is-show{ display:block; }
.form-status.is-error{ background:#FDF4F4; color:var(--error); }
.form-status.is-info{ background:var(--bg-teal-pale); color:var(--teal-dark); }
.form-note{ font-size:11.5px; color:var(--text-sub); margin-top:10px; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--bg-soft); color:var(--text-sub); padding:44px 0 32px; font-size:12.5px; border-top:1px solid var(--border); }
.footer-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:32px; flex-wrap:wrap; padding-bottom:28px; border-bottom:1px solid var(--border); }
.footer-info p{ margin-top:10px; }
.footer-nav ul{ display:flex; flex-wrap:wrap; gap:10px 24px; }
.footer-nav a:hover{ color:var(--teal-dark); }
.footer-bottom{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:20px; }
.footer-bottom a:hover{ color:var(--teal-dark); }
.footer-links{ display:flex; flex-wrap:wrap; gap:6px 24px; }

/* ---------- SP fixed CTA ---------- */
.sp-cta{ display:none; }

/* ---------- Sub pages ---------- */
.page-main{ padding:72px 0 96px; }
.page-main .wrap{ max-width:820px; }
.page-title{ font-size:26px; color:var(--navy-dark); margin-bottom:28px; line-height:1.6; }
.page-body h2{ font-size:17px; color:var(--navy-dark); margin:32px 0 10px; }
.page-body p,.page-body li{ font-size:14px; }
.page-body h2{ padding-bottom:8px; border-bottom:1px solid var(--border); margin-top:44px; }
.page-body h3{ font-size:15px; color:var(--navy-dark); margin:20px 0 6px; }
.page-body a{ color:var(--teal-dark); text-decoration:underline; }
.page-body .num{ color:var(--teal-dark); margin-right:4px; }
.num-list li{ display:flex; gap:4px; margin-bottom:10px; }
.num-list .num{ flex-shrink:0; }
.dot-list li{ position:relative; padding-left:1.1em; margin-bottom:4px; }
.dot-list li::before{ content:''; position:absolute; left:.2em; top:.75em; width:5px; height:5px; border-radius:50%; background:var(--teal); }
.page-body .sign{ text-align:right; margin-top:16px; color:var(--text-sub); font-size:13.5px; }
.page-tag{ color:var(--teal-dark); font-size:13px; font-weight:700; letter-spacing:.06em; margin-bottom:4px; }
.page-tag + .page-title{ margin-bottom:16px; }

/* 保険・補償ページ */
.ins-plans{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:28px; }
.ins-plan{ background:var(--bg-soft); border:1px solid var(--border); border-radius:16px; padding:22px 24px; }
.ins-plan.is-premium{ background:var(--bg-teal-pale); border-color:var(--teal); }
.page-body .ins-plan-name{ font-size:19px; margin:0 0 4px; padding:0; border:0; color:var(--navy-dark); }
.page-body .ins-plan-price{ font-size:13px; color:var(--text-sub); }
.ins-plan-price b{ font-family:'Zen Maru Gothic',sans-serif; font-size:38px; color:var(--navy-dark); margin-right:6px; letter-spacing:.02em; line-height:1.3; }
.ins-plan.is-premium .ins-plan-price b{ color:var(--teal-dark); }
.page-body .ins-plan-lead{ font-size:13.5px; font-weight:700; margin-top:6px; }
.page-body .ins-sub{ font-size:12.5px; color:var(--text-sub); margin-top:-4px; margin-bottom:14px; }

.ins-table-wrap{ overflow-x:auto; border-radius:12px; border:1px solid var(--border); }
.ins-table{ width:100%; border-collapse:collapse; font-size:14px; min-width:420px; }
.ins-table thead th{ background:var(--navy-dark); color:#fff; font-weight:700; font-size:13px; padding:12px 14px; text-align:center; }
.ins-table thead th:first-child{ text-align:left; }
.ins-table thead th.is-premium{ background:var(--teal-dark); }
.ins-table tbody th{ text-align:left; font-weight:500; font-size:13.5px; padding:13px 14px; background:var(--white); }
.ins-table td{ text-align:center; padding:13px 14px; background:var(--white); }
.ins-table td.is-premium{ background:var(--bg-teal-pale); color:var(--teal-dark); font-weight:700; }
.ins-table tbody tr + tr > *{ border-top:1px solid var(--border); }
.ins-table thead tr + tr th{ border-top:1px solid rgba(255,255,255,.2); padding-top:9px; padding-bottom:9px; }
.ins-table thead th[rowspan]{ vertical-align:middle; }
.ins-table thead .ins-th-group{ font-size:12px; font-weight:500; padding-top:9px; padding-bottom:9px; }
.ins-table td.ins-cover-cell{ background:var(--bg-soft); font-weight:700; color:var(--navy-dark); }

/* NOC */
.noc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:16px; }
.noc-box{ border:2px solid var(--teal); border-radius:14px; padding:18px 16px; text-align:center; background:var(--white); }
.page-body .noc-label{ font-weight:700; font-size:15px; color:var(--navy-dark); }
.page-body .noc-price{ font-family:'Zen Maru Gothic',sans-serif; font-size:36px; font-weight:700; color:var(--teal-dark); line-height:1.3; letter-spacing:.02em; }
.noc-price small{ font-size:16px; margin-left:2px; }
.page-body .noc-note{ font-size:12.5px; color:var(--text-sub); }
.page-body .noc-warning{
  margin-top:14px; background:#FFF6EC; border:1px solid #F3D3AE; color:#8A4B10;
  border-radius:10px; padding:12px 16px; font-size:13.5px; font-weight:700;
}
.page-body .noc-foot{ font-size:12.5px; color:var(--text-sub); margin-top:10px; }

.ins-terms dt{ font-weight:700; color:var(--navy-dark); font-size:14px; margin-top:14px; }
.ins-terms dd{ font-size:14px; color:var(--text-sub); margin-top:2px; }

.ins-cta{ margin-top:48px; padding:28px 24px; text-align:center; background:linear-gradient(160deg, #E3F4F5 0%, #F6FBFB 100%); border-radius:16px; }
.ins-cta p{ margin-bottom:16px; }
.page-body .ins-cta a.btn-primary-lg{ color:#fff; text-decoration:none; }

@media (max-width:767px){
  .ins-plans{ grid-template-columns:1fr; gap:12px; }
  .ins-plan{ padding:18px 20px; }
  .ins-plan-price b{ font-size:32px; }
  .ins-table{ font-size:12px; min-width:0; table-layout:fixed; }
  .ins-table thead tr:first-child th:nth-child(1){ width:31%; }
  .ins-table thead tr:first-child th:nth-child(2){ width:17%; }
  .ins-table tbody th{ font-size:11.5px; padding:10px 8px; line-height:1.5; }
  .ins-table td,.ins-table thead th{ padding:10px 4px; line-height:1.5; }
  .noc-grid{ grid-template-columns:1fr; gap:10px; }
  .page-body .noc-price{ font-size:32px; }
}

.thanks{ text-align:center; }
.thanks-logo{ display:block; width:140px; height:auto; margin:0 auto 24px; }
.thanks p{ color:var(--text-sub); margin-bottom:10px; }
.thanks .btn-primary-lg{ margin-top:24px; }

/* ---------- Scroll reveal ---------- */
.js .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.js .reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .js .reveal{ opacity:1; transform:none; transition:none; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1080px){
  .global-nav ul{ gap:20px; }
  .header-cta{ gap:18px; }
  .phone-row small{ display:none; }
}

@media (max-width:960px){
  :root{ --header-h:68px; }
  .menu-toggle{ display:block; }
  .header-cta .phone-row{ display:none; }
  .header-cta .btn-cta{ padding:9px 16px; font-size:13px; }
  .brand{ font-size:16px; }
  .logo-mark{ height:44px; }

  .global-nav{
    position:fixed; top:var(--header-h); left:0; right:0; bottom:0; background:var(--white);
    padding:24px; overflow-y:auto; visibility:hidden; opacity:0; transform:translateY(-8px);
    transition:opacity .25s, transform .25s, visibility .25s;
  }
  .global-nav.is-open{ visibility:visible; opacity:1; transform:none; }
  .global-nav ul{ flex-direction:column; gap:0; font-size:16px; }
  .global-nav li{ text-align:left; border-bottom:1px solid var(--border); }
  .global-nav a{ padding:16px 4px; display:flex; align-items:baseline; gap:12px; }
  .global-nav a span{ display:inline; font-size:11px; margin:0; }
  .global-nav .nav-tel{ display:block; margin-top:24px; }
  body.is-menu-open{ overflow:hidden; }

  .why-grid{ grid-template-columns:repeat(2,1fr); }
  .cta-inner{ grid-template-columns:1fr; gap:36px; }
  .cta-intro{ position:static; }
}
@media (min-width:961px){
  .global-nav .nav-tel,.global-nav .nav-contact-sp{ display:none; }
}

@media (max-width:767px){
  body{ font-size:14.5px; padding-bottom:68px; }
  .pc-only{ display:none; }
  .sp-only{ display:inline; }
  .wrap{ padding:0 16px; }
  .section{ padding:56px 0; }
  .section-head{ margin-bottom:32px; }
  .section-head h2{ font-size:21px; }

  .brand-sub{ font-size:10.5px; }
  .header-cta .btn-cta{ display:none; }

  .hero-photo-full{ aspect-ratio:auto; height:72vh; min-height:440px; max-height:620px; }
  .hero-copy{ bottom:56px; padding:0 16px; }
  .hero-copy h1{ font-size:27px; }
  .notice-bar{ padding:16px 18px; gap:10px; margin-top:-28px; }
  .notice-text{ min-width:0; flex-basis:100%; }
  .hero-lead-wrap{ padding:36px 0 8px; }
  .hero-actions a{ flex:1 1 100%; }

  .mission-quote{ font-size:70px; margin-bottom:-24px; }
  .mission-inner h2{ font-size:20px; }
  .mission-stats{ grid-template-columns:1fr; gap:12px; margin-bottom:24px; }
  .statement{ padding:18px 18px; font-size:14px; }

  .pain-grid,.solution-grid,.plan-grid{ grid-template-columns:1fr; gap:18px; }
  .solution-grid{ gap:32px; }
  .why-grid{ grid-template-columns:1fr; gap:12px; }
  .why-card{ display:grid; grid-template-columns:auto 1fr; column-gap:14px; }
  .why-card .icon-svg{ grid-row:span 2; margin:2px 0 0; }
  .why-card h3{ margin-bottom:4px; }

  .facility-list{ gap:8px; }
  .facility-list li{ font-size:13px; padding:8px 14px; }

  .flow-grid{ grid-template-columns:1fr; gap:0; max-width:420px; margin:0 auto; }
  .flow-step{ text-align:left; display:grid; grid-template-columns:40px 1fr; column-gap:16px; padding:0 0 24px; }
  .flow-step .num{ grid-row:span 2; margin:0; }
  .flow-step h3{ margin:8px 0 2px; }
  .flow-step:not(:last-child)::after{ top:40px; left:20px; width:1px; height:calc(100% - 40px); }

  .form-card{ padding:24px 18px; }
  .form-grid2{ grid-template-columns:1fr; }
  .tel-box .tel-num{ font-size:22px; }

  .footer-bottom{ flex-direction:column; }

  .sp-cta{
    display:grid; grid-template-columns:1fr 1.3fr; gap:8px;
    position:fixed; left:0; right:0; bottom:0; z-index:90;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.97); border-top:1px solid var(--border);
    box-shadow:0 -6px 20px -12px rgba(29,110,119,.4);
    transform:translateY(110%); transition:transform .3s;
  }
  .sp-cta.is-show{ transform:none; }
  .sp-cta a{
    display:flex; align-items:center; justify-content:center; gap:6px;
    height:48px; border-radius:24px; font-size:14px; font-weight:700;
  }
  .sp-cta .sp-cta-tel{ border:1px solid var(--teal); color:var(--teal-dark); background:var(--white); }
  .sp-cta .sp-cta-mail{ background:var(--teal); color:#fff; }
  .sp-cta .icon-svg{ width:18px; height:18px; }
}
