/* ================================================================
   めんたいこフォト — 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;
  --warm: #FDF6F0;
}

/* ================================================================
   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;
}
.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 svg { width: 55%; height: 55%; }
.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;
}

.u-pc { display: none; }
.u-sp { display: block; }

/* ================================================================
   Hero
   ================================================================ */
.p-mv {
  padding-top: 14vw;
  background: var(--warm);
  position: relative;
  overflow: hidden;
}
.p-mv__imgWrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4/3;
  background: linear-gradient(160deg, #f5e6e0 0%, #e8f5f5 100%);
  overflow: hidden;
}
.p-mv__imgWrap::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 30% 40%, rgba(203,46,39,.12) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 60%, rgba(0,165,171,.10) 0%, transparent 60%);
}
.p-mv__imgLabel {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  text-align: center;
  color: rgba(46,46,46,.3);
}
.p-mv__imgLabel svg { width: 20vw; height: 20vw; }
.p-mv__imgLabel span {
  display: block;
  font-size: 3vw;
  margin-top: 2vw;
  letter-spacing: 0.1em;
}
.p-mv__body {
  padding: 8vw 6vw 12vw;
}
.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: 4vw;
}
.p-mv__hdg {
  font-size: 9vw;
  font-weight: 700;
  line-height: 1.3;
  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: 4vw;
  color: #555;
}
.p-mv__btns {
  display: flex;
  flex-direction: column;
  gap: 3vw;
  margin-top: 7vw;
}
.p-mv__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2vw;
  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); }

/* ================================================================
   Common
   ================================================================ */
.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--photo::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='M29,10H24l-3-5H14l-3,5H6a3,3,0,0,0-3,3V27a3,3,0,0,0,3,3H29a3,3,0,0,0,3-3V13A3,3,0,0,0,29,10ZM17.5,26A7.5,7.5,0,1,1,25,18.5,7.51,7.51,0,0,1,17.5,26Zm0-13A5.5,5.5,0,1,0,23,18.5,5.51,5.51,0,0,0,17.5,13Z'/%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--flow::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__inner { max-width: 1100px; margin: 0 auto; }
.p-concept__lead {
  text-align: center;
  font-size: 5.8vw;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 7vw;
}
.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__points {
  display: flex;
  flex-direction: column;
  gap: 4vw;
}
.p-concept__point {
  display: flex;
  align-items: flex-start;
  gap: 4vw;
  padding: 5vw;
  background: var(--warm);
  border-radius: 4px;
}
.p-concept__pointNum {
  width: 12vw; height: 12vw;
  background: var(--red);
  border-radius: 50%;
  color: #fff;
  font-size: 4vw;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.p-concept__pointBody {}
.p-concept__pointTtl {
  font-size: 4.3vw;
  font-weight: 700;
  margin-bottom: 1.5vw;
}
.p-concept__pointTxt { font-size: 3.4vw; 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: 5vw 4vw;
  text-align: center;
}
.p-service__cardHead--teal { background: var(--teal); }
.p-service__cardIco {
  width: 12vw; height: 12vw;
  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__cardSub {
  color: rgba(255,255,255,.8);
  font-size: 2.8vw;
  margin-top: 1vw;
  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; }

/* ================================================================
   Flow
   ================================================================ */
.p-flow {
  padding: 18vw 6vw;
  background: #fff;
}
.p-flow__inner { max-width: 800px; margin: 0 auto; }
.p-flow__list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 8vw;
  position: relative;
}
.p-flow__item {
  display: flex;
  gap: 5vw;
  align-items: flex-start;
  position: relative;
  padding-bottom: 8vw;
}
.p-flow__item:last-child { padding-bottom: 0; }
.p-flow__item::before {
  content: "";
  position: absolute;
  left: 5.5vw;
  top: 11vw;
  width: 2px;
  bottom: 0;
  background: var(--border);
}
.p-flow__item:last-child::before { display: none; }
.p-flow__num {
  width: 11vw; height: 11vw;
  background: var(--red);
  border-radius: 50%;
  color: #fff;
  font-size: 4.5vw;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.p-flow__body { padding-top: 1.5vw; flex: 1; }
.p-flow__ttl {
  font-size: 4.3vw;
  font-weight: 700;
  margin-bottom: 1.5vw;
}
.p-flow__txt { font-size: 3.4vw; color: #555; line-height: 1.8; }

/* ================================================================
   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;
}

/* ================================================================
   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: 8vw;
  margin-top: 8vw;
}
.p-staff__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5vw;
}
.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; 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.2vw;
  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 svg { width: 60%; height: 60%; }
.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 svg { width: 55%; height: 55%; }
  .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 PC: 左テキスト・右画像 */
  .p-mv {
    padding-top: 5vw;
    display: flex;
    flex-direction: row-reverse;
    min-height: 82vh;
    align-items: stretch;
  }
  .p-mv__imgWrap {
    width: 50%;
    aspect-ratio: auto;
    flex-shrink: 0;
  }
  .p-mv__imgLabel svg { width: 7vw; height: 7vw; }
  .p-mv__imgLabel span { font-size: 1vw; }
  .p-mv__body {
    width: 50%;
    padding: 0 5vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .p-mv__badge { font-size: 0.9vw; padding: 0.5vw 1.5vw; margin-bottom: 1.5vw; }
  .p-mv__hdg { font-size: 3.5vw; }
  .p-mv__read { font-size: 1.1vw; margin-top: 1.5vw; }
  .p-mv__btns { flex-direction: row; margin-top: 3vw; gap: 1vw; }
  .p-mv__btn { padding: 1.2vw 2.5vw; font-size: 1vw; gap: 0.5vw; }

  .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-concept { padding: 7vw 6.25vw; }
  .p-concept__lead { font-size: 2.3vw; }
  .p-concept__txt { font-size: 1.05vw; }
  .p-concept__points { flex-direction: row; gap: 2vw; }
  .p-concept__point { flex: 1; flex-direction: column; gap: 1.5vw; align-items: flex-start; padding: 2vw; }
  .p-concept__pointNum { width: 4vw; height: 4vw; font-size: 1.3vw; }
  .p-concept__pointTtl { font-size: 1.2vw; }
  .p-concept__pointTxt { font-size: 1vw; }

  .p-service { padding: 7vw 6.25vw; }
  .p-service__grid { grid-template-columns: repeat(3, 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.2vw; }
  .p-service__cardSub { font-size: 0.8vw; }
  .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.7vw; top: 0.2vw; }
  .p-service__btn { margin-top: 3vw; }

  .p-flow { padding: 7vw 6.25vw; }
  .p-flow__list { margin-top: 3vw; }
  .p-flow__item { gap: 2vw; padding-bottom: 3vw; }
  .p-flow__item::before { left: 2.2vw; top: 4.5vw; }
  .p-flow__num { width: 4.5vw; height: 4.5vw; font-size: 1.5vw; }
  .p-flow__body { padding-top: 0.8vw; }
  .p-flow__ttl { font-size: 1.2vw; margin-bottom: 0.5vw; }
  .p-flow__txt { font-size: 1vw; }

  .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-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; }
  .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__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; }
}
