/* ================================================================
   めんたいこ終活サポート — style.css
   ================================================================ */
*, ::before, ::after { box-sizing: border-box; }
* { background-repeat: no-repeat; padding: 0; margin: 0; }
html { overflow-y: scroll; -webkit-text-size-adjust: 100%; }
article, aside, footer, header, main, nav, section { display: block; }
a { background-color: transparent; text-decoration: none; color: inherit; }
img { border: none; vertical-align: bottom; max-width: 100%; height: auto; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; }

/* ================================================================
   CSS Variables
   ================================================================ */
:root {
  --red: #CB2E27;
  --teal: #00A5AB;
  --dark: #2E2E2E;
  --bg: #F9F7F4;
  --border: #E8E0D8;
}

/* ================================================================
   Base
   ================================================================ */
body {
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Hiragino Sans", sans-serif;
  font-size: 14px;
  line-height: 1.8;
  background: #fff;
  color: var(--dark);
}

/* ================================================================
   Header
   ================================================================ */
.l-header {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  z-index: 100;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
}
.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 4vw;
  height: 14vw;
}
.l-header__logo {
  display: flex;
  align-items: center;
  gap: 2vw;
  text-decoration: none;
}
.l-header__logoMark {
  width: 9.3vw; height: 9.3vw;
  background: var(--red);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.l-header__logoMark span {
  color: #fff;
  font-size: 4vw;
  font-weight: 700;
  font-family: serif;
}
.l-header__logoTxt { display: flex; flex-direction: column; }
.l-header__logoName {
  font-size: 3.8vw;
  font-weight: 700;
  color: var(--dark);
  letter-spacing: 0.05em;
  line-height: 1.2;
}
.l-header__logoSub {
  font-size: 2vw;
  color: #999;
  letter-spacing: 0.08em;
  line-height: 1;
}

/* Hamburger */
.l-header__hamburger {
  display: flex;
  flex-direction: column;
  gap: 1.6vw;
  padding: 2vw;
}
.l-header__hamburger span {
  display: block;
  width: 6vw; height: 0.8vw;
  background: var(--red);
  border-radius: 1px;
  transition: .3s;
}
.l-header__hamburger span:nth-child(2) { width: 5vw; }

/* SP Nav Drawer */
.l-nav {
  position: fixed;
  top: 0; right: 0;
  width: 80vw; height: 100vh;
  background: #fff;
  z-index: 99;
  padding: 20vw 8vw 8vw;
  transform: translateX(100%);
  transition: transform .3s ease;
  overflow-y: auto;
}
.l-nav.is-open { transform: translateX(0); }
.l-nav__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.4);
  z-index: 98;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}
.l-nav__overlay.is-open { opacity: 1; pointer-events: auto; }
.l-nav__list { display: flex; flex-direction: column; gap: 6vw; }
.l-nav__item a {
  font-size: 4.5vw;
  font-weight: 600;
  color: var(--dark);
  letter-spacing: 0.05em;
}
.l-nav__contact {
  margin-top: 8vw;
  background: var(--red);
  border-radius: 2px;
  text-align: center;
  padding: 3.5vw;
  color: #fff;
  font-weight: 700;
  font-size: 4vw;
}

/* ================================================================
   PC Nav
   ================================================================ */
.u-pc { display: none; }
.u-sp { display: block; }

/* ================================================================
   Hero
   ================================================================ */
.p-mv {
  padding-top: 17vw;
  background: linear-gradient(135deg, #fff8f8 0%, #fff 50%, #f0fafa 100%);
  position: relative;
  overflow: hidden;
}
.p-mv::before {
  content: "";
  position: absolute;
  top: -10vw; right: -10vw;
  width: 70vw; height: 70vw;
  background: radial-gradient(circle, rgba(203,46,39,.06) 0%, transparent 70%);
  border-radius: 50%;
}
.p-mv::after {
  content: "";
  position: absolute;
  bottom: -5vw; left: -5vw;
  width: 50vw; height: 50vw;
  background: radial-gradient(circle, rgba(0,165,171,.06) 0%, transparent 70%);
  border-radius: 50%;
}
.p-mv__inner {
  padding: 12vw 6vw 14vw;
  position: relative;
  z-index: 1;
}
.p-mv__badge {
  display: inline-block;
  background: var(--teal);
  color: #fff;
  font-size: 3.2vw;
  padding: 1.2vw 3vw;
  border-radius: 20px;
  letter-spacing: 0.08em;
  margin-bottom: 5vw;
}
.p-mv__hdg {
  font-size: 8.5vw;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.02em;
  color: var(--dark);
}
.p-mv__hdg em { font-style: normal; color: var(--red); }
.p-mv__read {
  font-size: 3.7vw;
  line-height: 1.9;
  margin-top: 5vw;
  color: #555;
}
.p-mv__btns {
  display: flex;
  flex-direction: column;
  gap: 3vw;
  margin-top: 8vw;
}
.p-mv__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4vw 6vw;
  border-radius: 3px;
  font-size: 4vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  transition: .3s;
  border: 2px solid var(--red);
}
.p-mv__btn--primary { background: var(--red); color: #fff; }
.p-mv__btn--secondary { background: transparent; color: var(--red); }
.p-mv__visual { display: none; }
.p-mv__scroll { text-align: center; padding-bottom: 6vw; }
.p-mv__scrollLine {
  display: inline-block;
  width: 1px; height: 14vw;
  background: linear-gradient(to bottom, transparent, var(--red));
  animation: scrollDown 1.5s ease-in-out infinite;
}
@keyframes scrollDown {
  0%   { opacity: 0; transform: scaleY(0); transform-origin: top; }
  50%  { opacity: 1; }
  100% { opacity: 0; transform: scaleY(1); transform-origin: top; }
}

/* ================================================================
   Common Section
   ================================================================ */
.c-secHdg {
  text-align: center;
  font-size: 5.5vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding-top: 5vw;
  position: relative;
}
.c-secHdg::before {
  content: "";
  display: block;
  width: 10vw; height: 10vw;
  margin: 0 auto 3vw;
  background-size: contain;
}
.c-secHdg--soso::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 35 35'%3E%3Cpath fill='%23CB2E27' d='M17.5,3A14.5,14.5,0,1,0,32,17.5,14.52,14.52,0,0,0,17.5,3Zm0,27A12.5,12.5,0,1,1,30,17.5,12.51,12.51,0,0,1,17.5,30ZM22,16H19V13a1,1,0,0,0-2,0v3H14a1,1,0,0,0,0,2h3v3a1,1,0,0,0,2,0V18h3a1,1,0,0,0,0-2Z'/%3E%3C/svg%3E");
}
.c-secHdg--service::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 35 35'%3E%3Cpath fill='%2300A5AB' d='M28,6H7A2,2,0,0,0,5,8V26a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V8A2,2,0,0,0,28,6Zm0,20H7V12H28Z'/%3E%3C/svg%3E");
}
.c-secHdg--case::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 35 35'%3E%3Cpath fill='%2300A5AB' d='M17.5,3A14.5,14.5,0,1,0,32,17.5,14.52,14.52,0,0,0,17.5,3Zm6.56,11.06-7.5,7.5a1,1,0,0,1-1.41,0l-3.5-3.5a1,1,0,0,1,1.41-1.41L16,19.44l6.79-6.79a1,1,0,0,1,1.41,1.41Z'/%3E%3C/svg%3E");
}
.c-secHdg--pricing::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 35 35'%3E%3Cpath fill='%23CB2E27' d='M17.5,4A13.5,13.5,0,1,0,31,17.5,13.51,13.51,0,0,0,17.5,4Zm1,19.91V25.5a1,1,0,0,1-2,0V23.91A5,5,0,0,1,12.59,20a1,1,0,0,1,1.91-.62A3,3,0,0,0,17.5,21a3,3,0,0,0,0-6,5,5,0,0,1,0-10V3.5a1,1,0,0,1,2,0V5a5,5,0,0,1,3.91,3.38,1,1,0,1,1-1.91.62A3,3,0,0,0,17.5,7a3,3,0,0,0,0,6,5,5,0,0,1,0,10Z'/%3E%3C/svg%3E");
}
.c-secHdg__en {
  display: block;
  font-size: 2.8vw;
  color: var(--teal);
  letter-spacing: 0.2em;
  font-weight: 400;
  margin-bottom: 2vw;
}
.c-secRead {
  text-align: center;
  font-size: 3.5vw;
  color: #666;
  margin-top: 3vw;
  line-height: 1.8;
}

.c-btn {
  display: inline-flex;
  align-items: center;
  gap: 2vw;
  padding: 3.5vw 6vw;
  border: 2px solid var(--red);
  border-radius: 3px;
  color: var(--red);
  font-weight: 700;
  font-size: 3.5vw;
  letter-spacing: 0.05em;
  transition: .3s;
}
.c-btn:hover { background: var(--red); color: #fff; }
.c-btn--fill { background: var(--red); color: #fff; }
.c-btn--fill:hover { background: #a82320; border-color: #a82320; }

/* ================================================================
   Concept
   ================================================================ */
.p-concept {
  padding: 18vw 6vw;
  background: #fff;
}
.p-concept__lead {
  text-align: center;
  font-size: 5.5vw;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 8vw;
}
.p-concept__lead em { font-style: normal; color: var(--red); }
.p-concept__txt {
  font-size: 3.7vw;
  line-height: 2;
  color: #444;
  margin-bottom: 8vw;
}
.p-concept__feature {
  display: flex;
  flex-direction: column;
  gap: 4vw;
}
.p-concept__featureItem {
  background: var(--bg);
  border-left: 4px solid var(--red);
  padding: 5vw 5vw 5vw 6vw;
}
.p-concept__featureNum {
  font-size: 2.5vw;
  color: var(--teal);
  letter-spacing: 0.15em;
  font-weight: 600;
  margin-bottom: 1vw;
}
.p-concept__featureTtl {
  font-size: 4.5vw;
  font-weight: 700;
  margin-bottom: 2vw;
}
.p-concept__featureTxt { font-size: 3.5vw; color: #555; line-height: 1.8; }

/* ================================================================
   Service Cards
   ================================================================ */
.p-service {
  padding: 18vw 6vw;
  background: var(--bg);
}
.p-service__inner { max-width: 1200px; margin: 0 auto; }
.p-service__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4vw;
  margin-top: 8vw;
}
.p-service__card {
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
  transition: transform .2s, box-shadow .2s;
}
.p-service__card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.1); }
.p-service__cardHead {
  background: var(--red);
  padding: 6vw 4vw;
  text-align: center;
}
.p-service__cardHead--teal { background: var(--teal); }
.p-service__cardIco {
  width: 14vw; height: 14vw;
  margin: 0 auto 3vw;
}
.p-service__cardIco svg { width: 100%; height: 100%; }
.p-service__cardTtl {
  color: #fff;
  font-size: 4.5vw;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.p-service__cardBody { padding: 5vw; }
.p-service__cardTxt { font-size: 3.5vw; line-height: 1.8; color: #444; }
.p-service__cardList {
  margin-top: 3vw;
  display: flex;
  flex-direction: column;
  gap: 2vw;
}
.p-service__cardList li {
  font-size: 3.3vw;
  color: #555;
  padding-left: 4vw;
  position: relative;
}
.p-service__cardList li::before {
  content: "▶";
  position: absolute;
  left: 0;
  color: var(--red);
  font-size: 2.5vw;
  top: 0.5vw;
}
.p-service__btn { text-align: center; margin-top: 8vw; }

/* ================================================================
   Case Cards
   ================================================================ */
.p-case {
  padding: 18vw 6vw;
  background: #fff;
}
.p-case__inner { max-width: 1200px; margin: 0 auto; }
.p-case__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6vw;
  margin-top: 8vw;
}
.p-case__card {
  background: var(--bg);
  border-radius: 4px;
  overflow: hidden;
  border-left: 4px solid var(--teal);
}
.p-case__cardHead {
  background: var(--teal);
  padding: 4vw 5vw;
  color: #fff;
}
.p-case__cardTag {
  font-size: 2.8vw;
  letter-spacing: 0.1em;
  opacity: .85;
  margin-bottom: 1vw;
}
.p-case__cardTtl {
  font-size: 4.2vw;
  font-weight: 700;
  line-height: 1.4;
}
.p-case__cardBody { padding: 5vw; }
.p-case__cardMeta { font-size: 3vw; color: #999; margin-bottom: 3vw; }
.p-case__cardTxt { font-size: 3.5vw; line-height: 1.9; color: #444; }
.p-case__cardResult {
  margin-top: 3vw;
  padding: 3vw 4vw;
  background: #fff;
  border-radius: 3px;
  font-size: 3.5vw;
  font-weight: 700;
  color: var(--red);
}

/* ================================================================
   Pricing
   ================================================================ */
.p-pricing {
  padding: 18vw 6vw;
  background: var(--bg);
}
.p-pricing__inner { max-width: 1000px; margin: 0 auto; }
.p-priceSec { margin-top: 12vw; }
.p-priceSec:first-of-type { margin-top: 8vw; }
.p-priceSec__ttl {
  font-size: 4.5vw;
  font-weight: 700;
  padding: 3vw 4vw;
  background: var(--red);
  color: #fff;
  border-radius: 3px 3px 0 0;
  letter-spacing: 0.05em;
}
.p-priceSec__ttl--teal { background: var(--teal); }
.p-priceSec__body {
  background: #fff;
  padding: 5vw;
  border-radius: 0 0 3px 3px;
}
.p-priceSec__read {
  font-size: 3.5vw;
  color: #555;
  line-height: 1.8;
  margin-bottom: 4vw;
}
.p-priceSec__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 3.3vw;
  margin-bottom: 4vw;
}
.p-priceSec__table th,
.p-priceSec__table td {
  border: 1px solid var(--border);
  padding: 2.5vw 3vw;
  text-align: left;
  vertical-align: top;
}
.p-priceSec__table th {
  background: var(--bg);
  font-weight: 700;
  color: var(--dark);
  white-space: nowrap;
}
.p-priceSec__table td:last-child {
  font-weight: 700;
  color: var(--red);
  white-space: nowrap;
}
.p-priceSec__note {
  font-size: 3vw;
  color: #888;
  line-height: 1.8;
  border-top: 1px solid var(--border);
  padding-top: 3vw;
}

/* 空き家管理 プランカード */
.p-planCards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4vw;
  margin-bottom: 4vw;
}
.p-planCard {
  border: 2px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.p-planCard--recommended { border-color: var(--red); }
.p-planCard__head {
  padding: 4vw 5vw;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}
.p-planCard--recommended .p-planCard__head { background: var(--red); }
.p-planCard__badge {
  display: inline-block;
  background: var(--red);
  color: #fff;
  font-size: 2.5vw;
  padding: 0.8vw 2.5vw;
  border-radius: 20px;
  margin-bottom: 2vw;
  letter-spacing: 0.1em;
}
.p-planCard__name {
  font-size: 4.5vw;
  font-weight: 700;
  color: var(--dark);
}
.p-planCard--recommended .p-planCard__name { color: #fff; }
.p-planCard__freq {
  font-size: 2.8vw;
  color: #888;
  margin-top: 1vw;
}
.p-planCard--recommended .p-planCard__freq { color: rgba(255,255,255,.8); }
.p-planCard__price {
  font-size: 7vw;
  font-weight: 700;
  color: var(--red);
  line-height: 1;
  margin-top: 2vw;
}
.p-planCard--recommended .p-planCard__price { color: #fff; }
.p-planCard__price span { font-size: 3.5vw; font-weight: 400; }
.p-planCard__body { padding: 4vw 5vw; }
.p-planCard__list { display: flex; flex-direction: column; gap: 2vw; }
.p-planCard__list li {
  font-size: 3.3vw;
  color: #555;
  padding-left: 5vw;
  position: relative;
}
.p-planCard__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--teal);
  font-weight: 700;
}

/* ================================================================
   Staff
   ================================================================ */
.p-staff {
  padding: 18vw 6vw;
  background: #fff;
}
.p-staff__inner { max-width: 1100px; margin: 0 auto; }
.p-staff__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6vw;
  margin-top: 8vw;
}
.p-staff__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4vw;
}
.p-staff__thumb {
  width: 40vw; height: 40vw;
  border-radius: 50%;
  overflow: hidden;
  background: var(--bg);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-staff__thumbImg {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: top center;
}
.p-staff__thumbPlaceholder {
  color: #ccc;
  font-size: 3vw;
  text-align: center;
}
.p-staff__info { text-align: center; }
.p-staff__role {
  font-size: 3vw;
  color: var(--teal);
  letter-spacing: 0.1em;
  font-weight: 600;
  margin-bottom: 1vw;
}
.p-staff__name {
  font-size: 6vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 3vw;
}
.p-staff__name span {
  display: block;
  font-size: 3.5vw;
  color: #888;
  font-weight: 400;
  letter-spacing: 0.15em;
}
.p-staff__bio { font-size: 3.5vw; color: #555; line-height: 1.9; }

/* ================================================================
   Partner
   ================================================================ */
.p-topPartner {
  padding: 18vw 6vw;
  text-align: center;
  background: var(--bg);
}
.p-topPartner__hdg {
  font-size: 5.5vw;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.p-topPartner__hdg small {
  display: block;
  font-size: 3vw;
  color: var(--teal);
  letter-spacing: 0.2em;
  margin-bottom: 2vw;
  font-weight: 400;
}
.p-topPartner__list {
  display: flex;
  justify-content: center;
  gap: 4vw;
  flex-wrap: wrap;
  margin-top: 8vw;
}
.p-topPartner__item a {
  display: block;
  padding: 5vw 6vw;
  border: 2px solid var(--border);
  border-radius: 4px;
  color: var(--dark);
  font-size: 3.8vw;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: background .2s, color .2s;
  background: #fff;
  min-width: 40vw;
}
.p-topPartner__item a:hover { background: var(--red); color: #fff; border-color: var(--red); }
.p-topPartner__label {
  display: block;
  font-size: 2.8vw;
  color: #999;
  margin-bottom: 1.5vw;
  font-weight: 400;
}
.p-topPartner__item a:hover .p-topPartner__label { color: rgba(255,255,255,.8); }

/* ================================================================
   Footer Contact
   ================================================================ */
.l-footerContact {
  background: var(--dark);
  color: #fff;
  text-align: center;
  padding: 16vw 6vw;
}
.l-footerContact__ttl {
  font-size: 6vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 4vw;
}
.l-footerContact__read {
  font-size: 3.5vw;
  line-height: 1.9;
  opacity: .85;
  margin-bottom: 6vw;
}
.l-footerContact__tel {
  display: block;
  font-size: 9vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff;
  margin-bottom: 2vw;
}
.l-footerContact__telNote {
  font-size: 3vw;
  opacity: .7;
  margin-bottom: 8vw;
}
.l-footerContact__btn {
  display: inline-block;
  padding: 4vw 8vw;
  background: var(--red);
  color: #fff;
  font-size: 3.7vw;
  font-weight: 700;
  border-radius: 3px;
  transition: .3s;
}
.l-footerContact__btn:hover { background: #a82320; }

/* ================================================================
   Footer Nav
   ================================================================ */
.l-footerNav {
  background: #1a1a1a;
  color: #fff;
  padding: 12vw 6vw;
}
.l-footerNav__logo {
  display: flex;
  align-items: center;
  gap: 3vw;
  font-size: 4.5vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 8vw;
}
.l-footerNav__logoMark {
  width: 10vw; height: 10vw;
  background: var(--red);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.l-footerNav__logoMark span {
  color: #fff;
  font-size: 4.5vw;
  font-weight: 700;
  font-family: serif;
}
.l-footerNav__list {
  display: flex;
  flex-direction: column;
  gap: 4vw;
}
.l-footerNav__link { font-size: 3.5vw; color: #aaa; letter-spacing: 0.05em; }
.l-footerNav__link:hover { color: #fff; }
.l-footerCopy {
  background: #111;
  color: #666;
  text-align: center;
  padding: 4vw;
  font-size: 2.8vw;
  letter-spacing: 0.05em;
}

/* ================================================================
   Fixed Bar (SP)
   ================================================================ */
.l-fixBar {
  position: fixed;
  bottom: 0; left: 0;
  width: 100%;
  display: flex;
  z-index: 200;
}
.l-fixBar__tel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.6vw 2vw;
  background: var(--dark);
  color: #fff;
  width: 42%;
  gap: 0.3vw;
  text-decoration: none;
}
.l-fixBar__telLabel { font-size: 2.4vw; letter-spacing: 0.05em; opacity: .8; }
.l-fixBar__telNum { font-size: 3.8vw; font-weight: 700; letter-spacing: 0.05em; }
.l-fixBar__form {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.6vw;
  background: var(--red);
  color: #fff;
  width: 58%;
  font-size: 3.2vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
}
.l-fixBarSpacer { height: 9vw; }

/* ================================================================
   PC (769px+)
   ================================================================ */
@media (min-width: 769px) {
  .u-pc { display: block; }
  .u-sp { display: none; }
  .l-fixBar { display: none; }
  .l-fixBarSpacer { display: none; }

  .l-header__inner {
    height: 5vw;
    padding: 0 3vw;
    max-width: 1400px;
    margin: 0 auto;
  }
  .l-header__logoMark { width: 3.2vw; height: 3.2vw; }
  .l-header__logoMark span { font-size: 1.5vw; }
  .l-header__logo { gap: 0.8vw; }
  .l-header__logoName { font-size: 1.2vw; }
  .l-header__logoSub { font-size: 0.6vw; }
  .l-header__hamburger { display: none; }
  .l-header__contact {
    display: flex;
    align-items: center;
    padding: 0.7vw 2vw;
    background: var(--red);
    color: #fff;
    font-size: 0.85vw;
    font-weight: 700;
    border-radius: 3px;
    letter-spacing: 0.05em;
  }

  .l-nav {
    position: static;
    width: auto; height: auto;
    background: none;
    transform: none;
    padding: 0;
    overflow: visible;
  }
  .l-nav__list { flex-direction: row; gap: 2.5vw; }
  .l-nav__item a { font-size: 0.9vw; color: var(--dark); }
  .l-nav__item a:hover { color: var(--red); }
  .l-nav__contact { display: none; }

  /* Hero */
  .p-mv { padding-top: 5vw; min-height: 80vh; display: flex; align-items: center; }
  .p-mv__inner {
    padding: 8vw 6.25vw;
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 4vw;
  }
  .p-mv__scroll { display: none; }
  .p-mv__badge { font-size: 0.9vw; padding: 0.5vw 1.5vw; margin-bottom: 1.5vw; }
  .p-mv__hdg { font-size: 3.3vw; }
  .p-mv__read { font-size: 1.1vw; margin-top: 1.5vw; }
  .p-mv__btns { flex-direction: row; margin-top: 3vw; }
  .p-mv__btn { padding: 1.2vw 2.5vw; font-size: 1vw; gap: 0.5vw; }
  .p-mv__visual { display: flex; align-items: center; justify-content: center; }
  .p-mv__visualBox {
    width: 100%; height: 30vw;
    background: linear-gradient(135deg, #fff0f0 0%, #fff 40%, #f0fafa 100%);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,.10);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    border: 2px solid var(--border);
  }
  .p-mv__visualBox::before {
    content: "相続";
    font-size: 7vw;
    font-weight: 900;
    font-family: serif;
    color: rgba(203,46,39,.08);
    letter-spacing: -0.05em;
    position: absolute;
  }
  .p-mv__visualBox::after {
    content: "終活";
    font-size: 4.5vw;
    font-weight: 900;
    font-family: serif;
    color: rgba(0,165,171,.08);
    position: absolute;
    bottom: 10%; right: 10%;
  }
  .p-mv__visualInner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5vw;
    position: relative;
    z-index: 1;
  }
  .p-mv__visualIcon {
    width: 5vw; height: 5vw;
    background: var(--red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-mv__visualIcon span {
    color: #fff;
    font-size: 2.5vw;
    font-weight: 700;
    font-family: serif;
  }
  .p-mv__visualTxt {
    font-size: 1.2vw;
    font-weight: 700;
    color: var(--dark);
    text-align: center;
    line-height: 1.6;
  }
  .p-mv__visualTags {
    display: flex;
    gap: 0.8vw;
    flex-wrap: wrap;
    justify-content: center;
  }
  .p-mv__visualTag {
    font-size: 0.85vw;
    padding: 0.4vw 1.2vw;
    border-radius: 20px;
    font-weight: 600;
    letter-spacing: 0.05em;
  }
  .p-mv__visualTag--red { background: rgba(203,46,39,.1); color: var(--red); }
  .p-mv__visualTag--teal { background: rgba(0,165,171,.1); color: var(--teal); }

  /* Sections */
  .p-concept { padding: 7vw 6.25vw; }
  .p-concept__lead { font-size: 2.2vw; }
  .p-concept__txt { font-size: 1.05vw; }
  .p-concept__feature { flex-direction: row; }
  .p-concept__featureItem { flex: 1; }
  .p-concept__featureNum { font-size: 0.8vw; }
  .p-concept__featureTtl { font-size: 1.3vw; }
  .p-concept__featureTxt { font-size: 1vw; }

  .p-service { padding: 7vw 6.25vw; }
  .p-service__grid { grid-template-columns: repeat(2, 1fr); gap: 2vw; margin-top: 3vw; }
  .p-service__cardHead { padding: 2.5vw 2vw; }
  .p-service__cardIco { width: 5vw; height: 5vw; margin-bottom: 1vw; }
  .p-service__cardTtl { font-size: 1.3vw; }
  .p-service__cardBody { padding: 2vw; }
  .p-service__cardTxt { font-size: 1vw; }
  .p-service__cardList li { font-size: 0.95vw; padding-left: 1.5vw; }
  .p-service__cardList li::before { font-size: 0.8vw; top: 0.2vw; }
  .p-service__btn { margin-top: 3vw; }
  .c-secHdg { font-size: 2vw; }
  .c-secHdg::before { width: 3.5vw; height: 3.5vw; margin-bottom: 1vw; }
  .c-secHdg__en { font-size: 0.9vw; }
  .c-secRead { font-size: 1.1vw; margin-top: 1vw; }
  .c-btn { font-size: 1vw; padding: 1vw 2.5vw; gap: 0.5vw; }

  .p-case { padding: 7vw 6.25vw; }
  .p-case__grid { grid-template-columns: repeat(3, 1fr); gap: 2vw; margin-top: 3vw; }
  .p-case__cardHead { padding: 1.5vw 2vw; }
  .p-case__cardTag { font-size: 0.85vw; }
  .p-case__cardTtl { font-size: 1.2vw; }
  .p-case__cardBody { padding: 2vw; }
  .p-case__cardMeta { font-size: 0.85vw; }
  .p-case__cardTxt { font-size: 1vw; }
  .p-case__cardResult { font-size: 1vw; padding: 1vw 1.5vw; margin-top: 1.5vw; }

  .p-pricing { padding: 7vw 6.25vw; }
  .p-priceSec { margin-top: 4vw; }
  .p-priceSec:first-of-type { margin-top: 3vw; }
  .p-priceSec__ttl { font-size: 1.3vw; padding: 1vw 1.5vw; }
  .p-priceSec__body { padding: 2vw; }
  .p-priceSec__read { font-size: 1vw; margin-bottom: 1.5vw; }
  .p-priceSec__table { font-size: 0.95vw; }
  .p-priceSec__table th, .p-priceSec__table td { padding: 0.8vw 1vw; }
  .p-priceSec__note { font-size: 0.85vw; padding-top: 1vw; }
  .p-planCards { grid-template-columns: repeat(3, 1fr); gap: 1.5vw; }
  .p-planCard__head { padding: 1.5vw 2vw; }
  .p-planCard__name { font-size: 1.3vw; }
  .p-planCard__freq { font-size: 0.85vw; }
  .p-planCard__price { font-size: 2.5vw; margin-top: 0.8vw; }
  .p-planCard__price span { font-size: 1vw; }
  .p-planCard__body { padding: 1.5vw 2vw; }
  .p-planCard__list li { font-size: 0.95vw; padding-left: 1.5vw; }
  .p-planCard__badge { font-size: 0.8vw; padding: 0.3vw 1vw; }

  .p-staff { padding: 7vw 6.25vw; }
  .p-staff__grid { grid-template-columns: repeat(2, 1fr); gap: 4vw; margin-top: 3vw; }
  .p-staff__card { flex-direction: row; align-items: flex-start; text-align: left; }
  .p-staff__thumb { width: 10vw; height: 10vw; }
  .p-staff__info { text-align: left; }
  .p-staff__role { font-size: 0.85vw; }
  .p-staff__name { font-size: 2vw; margin-bottom: 1vw; }
  .p-staff__name span { font-size: 1vw; }
  .p-staff__bio { font-size: 1vw; }

  .p-topPartner { padding: 7vw 6.25vw; }
  .p-topPartner__hdg { font-size: 2vw; }
  .p-topPartner__hdg small { font-size: 0.9vw; }
  .p-topPartner__list { gap: 1.5vw; margin-top: 3vw; }
  .p-topPartner__item a { min-width: 12vw; padding: 1.5vw 2vw; font-size: 1vw; }
  .p-topPartner__label { font-size: 0.8vw; }

  .l-footerContact { padding: 6vw 6.25vw; }
  .l-footerContact__ttl { font-size: 2.2vw; }
  .l-footerContact__read { font-size: 1.1vw; }
  .l-footerContact__tel { font-size: 3.5vw; }
  .l-footerContact__telNote { font-size: 0.9vw; }
  .l-footerContact__btn { font-size: 1.1vw; padding: 1.2vw 3vw; }

  .l-footerNav { padding: 4vw 6.25vw; }
  .l-footerNav__logo { font-size: 1.3vw; gap: 0.8vw; margin-bottom: 3vw; }
  .l-footerNav__logoMark { width: 3vw; height: 3vw; }
  .l-footerNav__logoMark span { font-size: 1.4vw; }
  .l-footerNav__list { flex-direction: row; flex-wrap: wrap; gap: 2vw; }
  .l-footerNav__link { font-size: 0.9vw; }
  .l-footerCopy { font-size: 0.8vw; padding: 1.5vw; }
}
