/* ================================================================
   めんたいこITサポート — 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: 3.5vw;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.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 (hidden on SP)
   ================================================================ */
.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); border: 2px solid 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 Components
   ================================================================ */
.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--it::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,8H6A2,2,0,0,0,4,10V24a2,2,0,0,0,2,2H14v2H12a1,1,0,0,0,0,2H23a1,1,0,0,0,0-2H21V26h8a2,2,0,0,0,2-2V10A2,2,0,0,0,29,8ZM19,28H16V26h3Zm9-5H7V11H28Z'/%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;
}

/* Common Button */
.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 Section
   ================================================================ */
.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;
  display: block;
  transition: transform .2s, box-shadow .2s;
  color: inherit;
}
.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__cardLink {
  display: flex;
  align-items: center;
  gap: 2vw;
  margin-top: 4vw;
  font-size: 3.5vw;
  font-weight: 700;
  color: var(--red);
}
.p-service__cardArr { width: 2vw; height: 3.5vw; fill: var(--red); }
.p-service__btn { text-align: center; margin-top: 8vw; }

/* ================================================================
   Case Study 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 Section
   ================================================================ */
.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;
}

/* ================================================================
   Partner Section
   ================================================================ */
.p-partner {
  padding: 18vw 6vw;
  background: var(--teal);
  color: #fff;
  text-align: center;
}
.p-partner__hdg {
  font-size: 5.5vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.p-partner__hdg small {
  display: block;
  font-size: 3vw;
  letter-spacing: 0.2em;
  opacity: .8;
  margin-bottom: 2vw;
  font-weight: 400;
}
.p-partner__txt {
  font-size: 3.5vw;
  line-height: 1.9;
  margin-top: 5vw;
  opacity: .9;
}
.p-partner__link {
  display: inline-flex;
  align-items: center;
  gap: 2vw;
  margin-top: 6vw;
  padding: 4vw 8vw;
  background: #fff;
  color: var(--teal);
  font-size: 3.7vw;
  font-weight: 700;
  border-radius: 3px;
  transition: .3s;
}
.p-partner__link:hover { background: rgba(255,255,255,.85); }

/* ================================================================
   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: 3.5vw;
  font-weight: 700;
}
.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; }

/* ================================================================
   Partner (bottom, simple)
   ================================================================ */
.p-topPartner {
  padding: 60px 20px 80px;
  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); }

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

  /* Header */
  .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.1vw; }
  .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;
  }

  /* PC Nav */
  .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, var(--teal) 0%, #007a7f 60%, var(--red) 100%);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,.12);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
  }
  .p-mv__visualBox::before {
    content: "IT";
    font-size: 8vw;
    font-weight: 900;
    color: rgba(255,255,255,.12);
    letter-spacing: -0.05em;
    position: absolute;
  }
  .p-mv__visualBox::after {
    content: "DX";
    font-size: 5vw;
    font-weight: 900;
    color: rgba(255,255,255,.1);
    position: absolute;
    bottom: 10%;
    right: 10%;
  }

  /* Common */
  .c-secHdg { font-size: 2.2vw; padding-top: 3.5vw; }
  .c-secHdg::before { width: 3vw; height: 3vw; margin-bottom: 1vw; }
  .c-secHdg__en { font-size: 0.85vw; margin-bottom: 0.5vw; }
  .c-secRead { font-size: 1vw; margin-top: 1.2vw; }
  .c-btn { padding: 1.2vw 2.5vw; font-size: 0.9vw; gap: 0.8vw; }

  /* Concept */
  .p-concept { padding: 6.25vw; }
  .p-concept__lead { font-size: 2.2vw; margin-bottom: 3vw; }
  .p-concept__txt { font-size: 1vw; margin-bottom: 3vw; }
  .p-concept__feature { flex-direction: row; gap: 2vw; }
  .p-concept__featureItem { padding: 2vw; }
  .p-concept__featureNum { font-size: 0.75vw; }
  .p-concept__featureTtl { font-size: 1.2vw; margin-bottom: 0.8vw; }
  .p-concept__featureTxt { font-size: 0.9vw; }

  /* Services */
  .p-service { padding: 6.25vw; }
  .p-service__grid { grid-template-columns: repeat(3, 1fr); gap: 1.5vw; margin-top: 3vw; }
  .p-service__cardHead { padding: 2vw; }
  .p-service__cardIco { width: 4vw; height: 4vw; margin-bottom: 1vw; }
  .p-service__cardTtl { font-size: 1.1vw; }
  .p-service__cardBody { padding: 1.5vw; }
  .p-service__cardTxt { font-size: 0.85vw; }
  .p-service__cardLink { font-size: 0.85vw; gap: 0.5vw; margin-top: 1.2vw; }
  .p-service__cardArr { width: 0.5vw; height: 0.9vw; }
  .p-service__btn { margin-top: 3vw; }

  /* Cases */
  .p-case { padding: 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.75vw; }
  .p-case__cardTtl { font-size: 1.1vw; }
  .p-case__cardBody { padding: 1.5vw 2vw; }
  .p-case__cardMeta { font-size: 0.75vw; }
  .p-case__cardTxt { font-size: 0.85vw; }
  .p-case__cardResult { font-size: 0.9vw; padding: 1vw 1.5vw; margin-top: 1vw; }

  /* Pricing */
  .p-pricing { padding: 6.25vw; }
  .p-priceSec { margin-top: 4vw; }
  .p-priceSec:first-of-type { margin-top: 3vw; }
  .p-priceSec__ttl { font-size: 1.1vw; padding: 1vw 1.5vw; }
  .p-priceSec__body { padding: 2vw; }
  .p-priceSec__read { font-size: 0.9vw; margin-bottom: 1.5vw; }
  .p-priceSec__table { font-size: 0.85vw; }
  .p-priceSec__table th,
  .p-priceSec__table td { padding: 0.8vw 1vw; }
  .p-priceSec__note { font-size: 0.78vw; padding-top: 1vw; }

  /* Partner (teal) */
  .p-partner { padding: 6.25vw; }
  .p-partner__hdg { font-size: 2.2vw; }
  .p-partner__hdg small { font-size: 0.85vw; }
  .p-partner__txt { font-size: 1vw; margin-top: 2vw; }
  .p-partner__link { font-size: 1vw; padding: 1.2vw 3vw; gap: 0.8vw; margin-top: 2.5vw; }

  /* Partner (bottom) */
  .p-topPartner { padding: 80px 40px; }
  .p-topPartner__hdg { font-size: 2vw; }
  .p-topPartner__hdg small { font-size: 0.85vw; }
  .p-topPartner__list { gap: 1.5vw; margin-top: 3vw; }
  .p-topPartner__item a { padding: 1.5vw 2.5vw; font-size: 1vw; min-width: 14vw; }
  .p-topPartner__label { font-size: 0.75vw; }

  /* Footer Contact */
  .l-footerContact { padding: 6.25vw; }
  .l-footerContact__ttl { font-size: 2.2vw; margin-bottom: 1.5vw; }
  .l-footerContact__read { font-size: 1vw; margin-bottom: 2vw; }
  .l-footerContact__tel { font-size: 3vw; margin-bottom: 0.5vw; }
  .l-footerContact__telNote { font-size: 0.85vw; margin-bottom: 2.5vw; }
  .l-footerContact__btn { font-size: 1vw; padding: 1.2vw 3vw; }

  /* Footer Nav */
  .l-footerNav {
    padding: 4vw 6.25vw;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .l-footerNav__logo { font-size: 1.2vw; gap: 0.8vw; margin-bottom: 0; }
  .l-footerNav__logoMark { width: 2.5vw; height: 2.5vw; }
  .l-footerNav__logoMark span { font-size: 0.85vw; }
  .l-footerNav__list { flex-direction: row; gap: 2vw; }
  .l-footerNav__link { font-size: 0.85vw; }
  .l-footerCopy { font-size: 0.78vw; padding: 1.5vw; }
}
