/* ***************************************ヘッダー***************************************** */
/* ===== iOS viewportズレ対策（追加） ===== */
:root{
  --app-height: 100dvh; /* 対応ブラウザはこれが効く / JSでpx上書き */
}

/* =========================
   Base typography
   - SPでも明朝に落ちないように全体フォントを固定
========================= */
html{
  font-family: var(--font-sans);
  font-weight: var(--fw-regular);
  line-height: var(--lh-base);
  color: var(--c-text);
  letter-spacing: var(--ls-base);

  -webkit-text-size-adjust: 100%;
  font-synthesis: none;
}

body{
  margin: 0;
  background: var(--c-bg);
}


/* =========================
Arrow utility
========================= */

/* =========================
Header base
========================= */
.site-header{
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* Top bar */
.site-header__top{
  background: linear-gradient(180deg, #ffffff 0%, #fff6f9 100%);
  border-bottom: 1px solid rgba(240,145,179,.18);
}
.site-header__top-inner{
  width: min(1280px, calc(100% - 40px));
  margin-inline: auto;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
}
.site-header__top-note{
  margin:0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  color: rgba(0,0,0,.66);
  letter-spacing: var(--ls-base);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* SNS */
.site-header__sns{
  display:flex;
  gap: 8px;
  flex: 0 0 auto;
}
.site-header__sns-link{
  width: 34px;
  height: 34px;
  border-radius: var(--r-sns);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 12px 26px rgba(0,0,0,.06);
}
.site-header__sns-link svg{
  width: 18px;
  height: 18px;
  fill: rgba(0,0,0,.78);
}
/* Main bar */
.site-header__bar{
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
}
.site-header__inner{
  width: min(1280px, calc(100% - 40px));
  margin-inline: auto;
  padding: 14px 0;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
}

/* Brand */
.site-header__brand{
  display:flex;
  flex-direction: column;
  gap: 4px;
  text-decoration:none;
  flex: 0 0 auto;
  min-width: 0;
}
.site-header__logo{
  width: 160px;
  height: auto;
  display: block;
}
.site-header__tagline{
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  color: rgba(0,0,0,.56);
  white-space: nowrap;
}

/* Nav (mobile hidden) */
.site-header__nav{ display:none; }
.site-header__list{
  display:flex;
  gap: 10px;
  list-style:none;
  padding:0;
  margin:0;
  white-space: nowrap;
}
.site-header__link{
  text-decoration:none;
  font-weight: var(--fw-bold);
  font-size: var(--fs-kicker);
  letter-spacing: var(--ls-base);
  padding: 10px 10px;
}
/* Actions */
.site-header__actions{
  display:flex;
  align-items:center;
  gap: 10px;
  flex: 0 0 auto;
  white-space: nowrap;
}

/* CTA */

/* Hamburger */
.site-header__toggle{
  width: 46px;
  height: 46px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
  display:inline-flex;
  align-items:center;
  justify-content:center;

  /* 追加：iOSの青いタップハイライト対策 */
  -webkit-tap-highlight-color: transparent;
}
.site-header__toggle:focus-visible{
  outline: 3px solid rgba(255,143,186,.55);
  outline-offset: 3px;
}
.site-header__toggle-lines{
  width: 18px;
  height: 14px;
  position: relative;
}
.site-header__toggle-lines::before,
.site-header__toggle-lines::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height: 2px;
  border-radius: var(--r-pill);

  /* 追加：色を明示（状態で青くなるのを回避） */
  background: #353536;
}
.site-header__toggle-lines::before{ top: 2px; }
.site-header__toggle-lines::after{ bottom: 2px; }

/* =========================
PC: 3-column grid + nav overflow safe
========================= */
@media (min-width: 1280px){
  .site-header__inner{
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) max-content;
    align-items: center;
    column-gap: 18px;
  }

  .site-header__brand{ justify-self: start; }
  .site-header__actions{ justify-self: end; }

  .site-header__nav{
    display:block;
    justify-self: center;
    min-width: 0;
    overflow: hidden;
  }

  .site-header__list{
    justify-content: center;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .site-header__list::-webkit-scrollbar{ display:none; }
  .site-header__toggle{ display:none; }
}

@media (min-width: 980px) and (max-width: 1120px){
}


/* =========================
Drawer
========================= */

.site-drawer{
  position: fixed;
  inset: 0;
  z-index: 1100;
  pointer-events: none;
  opacity: 0;
  transition: opacity .32s cubic-bezier(.22,.61,.36,1);

  /* 追加：iOSで下が切れる問題の本命 */
  height: var(--app-height);
}
.site-drawer.is-open{
  opacity: 1;
  pointer-events: auto;
}
.site-drawer__overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.35);
  opacity: 0;
  transition: opacity .32s cubic-bezier(.22,.61,.36,1);
}
.site-drawer.is-open .site-drawer__overlay{
  opacity: 1;
}

.site-drawer__panel{
  position:absolute;
  right: 0;
  top: 0;
  width: min(380px, 92vw);
  background: linear-gradient(180deg, #ffffff 0%, #fff6f9 100%);
  border-left: 1px solid rgba(0,0,0,.08);
  box-shadow: -20px 0 60px rgba(0,0,0,.18);
  padding: 16px;

  /* ===== 修正：iOSで切れないようにする ===== */
  height: var(--app-height);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;

  /* safe-area分も確保（ホームバーで最後が押しにくいの防止） */
  padding-bottom: calc(env(safe-area-inset-bottom) + 24px);

  will-change: transform, opacity;
  transform: translateX(28px);
}
.site-drawer.is-open .site-drawer__panel{ transform: translateX(0); }

.site-drawer__head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.site-drawer__brand{ display:inline-flex; align-items:center; text-decoration:none; }
.site-drawer__logo{ width: 150px; height:auto; display:block; }
.site-drawer__close{
  width: 44px;
  height: 44px;
  border-radius: var(--r-sm);
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.82);
  font-size: 22px;
  font-weight: var(--fw-bold);

  -webkit-tap-highlight-color: transparent;
}
.site-drawer__close:focus-visible{
  outline: 3px solid rgba(255,143,186,.55);
  outline-offset: 3px;
}

/* ×ボタンが青く見える対策（iOS） */
.site-drawer__close{
  color: var(--ink);          /* 文字色を明示 */
  -webkit-text-fill-color: rgba(0,0,0,.70); /* iOSの変な上書き保険 */
  -webkit-tap-highlight-color: transparent;
}

/* タップ/フォーカス時も青くしない */
.site-drawer__close:active,
.site-drawer__close:focus{
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
}

.site-drawer__contact{
  margin-top: 14px;
  padding: 14px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 12px 30px rgba(0,0,0,.06);
  text-align:center;
}
.site-drawer__tel{
  display:block;
  text-decoration:none;
  font-weight: var(--fw-bold);
  font-size: var(--fs-subhead);
  letter-spacing: 0.1em;
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: var(--accent-500);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
  text-decoration-skip-ink: none;
}
.site-drawer__time{
  display:inline-block;
  margin-top: 10px;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  color: rgba(0,0,0,.66);
  padding: 6px 10px;
  border-radius: var(--r-pill);
  background: rgba(240,145,179,.14);
  border: 1px solid rgba(240,145,179,.18);
}

.site-drawer__nav{
  margin-top: 16px;
  display:grid;
  gap: 10px;
}
.site-drawer__link{
  text-decoration:none;
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-btn);
  padding: 14px 14px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 12px 30px rgba(0,0,0,.06);
}
.site-drawer__cta{
  margin-top: 14px;
  display:grid;
  gap: 10px;
}

.site-drawer__sns{
  margin-top: 16px;
  display:flex;
  gap: 10px;
  justify-content:center;
}


/* 追加：sr-only */


/* 追加：ドロワー下部メタ */
.site-drawer__meta{
  margin-top: 18px;
  display: grid;
  gap: 12px;
}

/* 追加：提供時間 */
.site-drawer__hours{
  border-radius: var(--r-sm);
  padding: 16px 14px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  background:
    radial-gradient(14px 14px at 12px 12px, rgba(240,145,179,.22), transparent 60%),
    radial-gradient(14px 14px at 34px 30px, rgba(240,145,179,.14), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,246,249,.92) 100%);
}

.site-drawer__hours-title{
  margin: 0 0 10px 0;
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  font-size: var(--fs-base);
}

.site-drawer__hours-table-wrap{
  border-radius: var(--r-sm);
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.78);
}

.site-drawer__hours-table{
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.site-drawer__hours-th,
.site-drawer__hours-time,
.site-drawer__hours-td{
  border-bottom: 1px solid rgba(0,0,0,.10);
  border-right: 1px solid rgba(0,0,0,.10);
  text-align: center;
  padding: 10px 6px;
  font-weight: var(--fw-bold);
  font-size: var(--fs-kicker);
}

.site-drawer__hours-th:last-child,
.site-drawer__hours-td:last-child{
  border-right: none;
}

.site-drawer__hours-th--time,
.site-drawer__hours-time{
  text-align: left;
  padding-left: 12px;
}

.site-drawer__hours-td{
  height: 44px;
}

.site-drawer__dot{
  display:inline-block;
  width: 10px;
  height: 10px;
  border-radius: var(--r-pill);
  background: rgba(255,143,186,.95);
  box-shadow: 0 0 0 6px rgba(255,143,186,.16);
}

.site-drawer__hours-note{
  margin: 10px 0 0 0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  color: rgba(0,0,0,.66);
}

/* 追加：住所 */
.site-drawer__address{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 14px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 12px 30px rgba(0,0,0,.06);
}

.site-drawer__address-icon{
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin-top: 2px;
}
.site-drawer__address-icon svg{
  width: 100%;
  height: 100%;
  fill: rgba(255,143,186,.95);
}

.site-drawer__address-text{
  margin: 0;
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-btn);
  line-height: 1.6;
}

/* *******************フッター********************** */
/* ========== Footer (rev) ========== */
.site-footer{
  position: relative;
  padding-top: 52px;
  overflow: clip;
}

.site-footer__bg{
  position:absolute;
  inset: 0;
  background:
    radial-gradient(900px 420px at 14% 8%, rgba(255,143,186,.18), transparent 55%),
    radial-gradient(700px 360px at 86% 18%, rgba(240,145,179,.12), transparent 55%),
    linear-gradient(180deg, #fff 0%, #fff6f9 100%);
  pointer-events:none;
  z-index: -1;
}

.site-footer__inner{
  width: min(1280px, calc(100% - 40px));
  margin-inline: auto;
}

.site-footer__grid{
  display:grid;
  gap: 16px;
}

/* PC：3カラムで“情報が詰まって整理された”印象に */
@media (min-width: 980px){
  .site-footer__grid{
    grid-template-columns: 1.05fr 1.4fr 1.25fr;
    align-items: start;
    gap: 18px;
  }
}

/* = Panels */
.site-footer__panel{
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  padding: 16px 14px;
}

.site-footer__panel--accent{
  background:
    radial-gradient(18px 18px at 14px 14px, rgba(240,145,179,.20), transparent 60%),
    radial-gradient(18px 18px at 38px 32px, rgba(240,145,179,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,246,249,.92) 100%);
}

/* = Brand */
.site-footer__brand{
  display:grid;
  gap: 10px;
  align-content: start;
}

.site-footer__brand-link{
  display:inline-flex;
  text-decoration:none;
}

.site-footer__logo{
  width: 180px;
  height:auto;
  display:block;
}

.site-footer__tagline{
  margin: 0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-btn);
  color: rgba(0,0,0,.56);
}

.site-footer__lead{
  margin: 0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  line-height: 1.8;
  color: rgba(0,0,0,.66);
}

/* SNS */
.site-footer__sns{
  display:flex;
  gap: 10px;
  margin-top: 2px;
}

.site-footer__sns-link{
  width: 40px;
  height: 40px;
  border-radius: 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
}

.site-footer__sns-link svg{
  width: 18px;
  height: 18px;
  fill: rgba(0,0,0,.78);
}

/* = Headings */
.site-footer__heading{
  margin: 0 0 10px 0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
}

.site-footer__subheading{
  margin: 14px 0 10px 0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-btn);
  color: rgba(0,0,0,.66);
}

/* = Sitemap */
.site-footer__sitemap{
  display:grid;
  gap: 12px;
  align-content: start;
}

.site-footer__menu{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns: 1fr 1fr; /* 2列 */
  gap: 8px;
}

.site-footer__link{
  display:block;
  text-decoration:none;
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-btn);
  padding: 10px 10px;
  /* border-radius: 14px;
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(0,0,0,.06); */white-space: nowrap;
}

/* services */
.site-footer__service-grid{
  display:grid;
  gap: 12px;
}

@media (min-width: 560px){
  .site-footer__service-grid{
    grid-template-columns: 1fr 1fr;
  }
}

.site-footer__service-title{
  margin: 0 0 8px 0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  color: rgba(0,0,0,.66);
  letter-spacing: 0.1em;
}

.site-footer__service-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap: 6px;
}

.site-footer__slink{
  display:inline-flex;
  text-decoration:none;
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-btn);
  padding: 8px 10px;
  /* border-radius: 14px;
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(0,0,0,.06); */
}

.site-footer__note{
  margin: 10px 0 0 0;
  font-size: var(--fs-kicker);
  color: rgba(0,0,0,.56);
}

/* = Contact */
.site-footer__contact{
  align-content: start;
}

.site-footer__contact-row{
  display:grid;
  gap: 12px;
}

@media (min-width: 560px){
  .site-footer__contact-row{
    align-items: start;
  }
}

.site-footer__label{
  margin: 0 0 6px 0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  color: rgba(0,0,0,.66);
  letter-spacing: var(--ls-btn);
}

.site-footer__tel{
  display:block;
  text-decoration:none;
  font-weight: var(--fw-bold);
  font-size: var(--fs-subhead);
  letter-spacing: 0.1em;
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: var(--accent-500);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
  text-decoration-skip-ink: none;
}

.site-footer__time{
  margin: 10px 0 0 0;
  display:inline-block;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  color: rgba(0,0,0,.66);
  padding: 6px 10px;
  border-radius: var(--r-pill);
  background: rgba(240,145,179,.14);
  border: 1px solid rgba(240,145,179,.18);
}

.site-footer__address{
  margin: 0;
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-btn);
  line-height: 1.7;
}

.site-footer__mini-links{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.site-footer__mini-link{
  font-size: var(--fs-kicker);
  font-weight: var(--fw-bold);
  text-decoration:none;
  padding: 8px 10px;
  border-radius: var(--r-pill);
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

/* = Hours table */
.site-footer__hours-wrap{
  border-radius: var(--r-sm);
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.78);
}

.site-footer__hours-table{
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.site-footer__hours-th,
.site-footer__hours-time,
.site-footer__hours-td{
  border-bottom: 1px solid rgba(0,0,0,.10);
  border-right: 1px solid rgba(0,0,0,.10);
  text-align: center;
  padding: 9px 6px;
  font-weight: var(--fw-bold);
  font-size: var(--fs-kicker);
}

.site-footer__hours-th:last-child,
.site-footer__hours-td:last-child{ border-right: none; }

.site-footer__hours-th--time,
.site-footer__hours-time{
  text-align: left;
  padding-left: 12px;
}

.site-footer__hours-td{ height: 42px; }

.site-footer__dot{
  display:inline-block;
  width: 10px;
  height: 10px;
  border-radius: var(--r-pill);
  background: rgba(255,143,186,.95);
  box-shadow: 0 0 0 6px rgba(255,143,186,.16);
}

.site-footer__hours-note{
  margin: 10px 0 0 0;
  font-size: var(--fs-kicker);
  color: rgba(0,0,0,.56);
}

/* = Bottom */
.site-footer__bottom{
  margin-top: 18px;
  border-top: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.60);
}

.site-footer__bottom-inner{
  width: min(1200px, calc(100% - 40px));
  margin-inline: auto;
  padding: 14px 0;
  display:flex;
  justify-content: center;
  align-items:center;
}

.site-footer__copy{
  font-size: var(--fs-kicker);
  color: rgba(0,0,0,.56);
  letter-spacing: var(--ls-btn);
}

/* a11y helper */
.sr-only{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* -------------------------------------------
   Buttons (refactor)
   - 2 types: .btn (outline) / .btn--primary (pink)
   - Animations (transform/transition) are intentionally removed for now.
------------------------------------------- */

/* Base layout (works for .btn and .btn--primary, and legacy section button classes) */
:where(.btn, .btn--primary, .site-header__cta, .site-drawer__btn, .service__area__btn, .news__all-link, .recrute__button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--btn-gap, 10px);

  padding: var(--btn-py, 14px) var(--btn-px, 16px);
  border-radius: var(--btn-radius, 16px);

  font-size: var(--btn-size, 15px);
  font-weight: var(--btn-weight, 900);
  letter-spacing: var(--btn-letter, .05em);
  line-height: 1;

  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;

  color: var(--btn-color, rgba(0, 0, 0, 0.72));
  background: var(--btn-bg, transparent);
  border: var(--btn-border, 1px solid transparent);
  box-shadow: var(--btn-shadow, none);
}

/* Arrow utility */
.is-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--btn-gap, 10px);
}

.btn__icon {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.btn__icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

/* -------- Outline button (existing .btn) -------- */
.btn {
  --btn-radius: 999px;
  --btn-py: 16px;
  --btn-px: 18px;
  --btn-bg: #fff;
  --btn-border: 2px solid rgba(240, 145, 179, 0.26);
  --btn-shadow: 0 18px 45px rgba(0, 0, 0, 0.06);
  --btn-color: rgba(0, 0, 0, 0.66);
  --btn-size: 15px;
  --btn-weight: 900;
}

.btn img{
    width: 22px;
}

.btn--surface {
  --btn-bg: rgba(255, 255, 255, 0.90);
  --btn-border: 1px solid rgba(0, 0, 0, 0.08);
  --btn-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
  --btn-color: rgba(0, 0, 0, 0.70);
  --btn-weight: 800;
}

/* -------- Primary (pink) button -------- */
.btn--primary,
:where(.service__area__btn--primary, .news__all-link, .recrute__button) {
  --btn-bg: linear-gradient(180deg, #ffb6d0 0%, #ff8fba 100%);
  --btn-border: 1px solid rgba(240, 145, 179, 0.20);
  --btn-shadow: 0 14px 30px rgba(255, 143, 186, 0.22);
  --btn-color: #1b0f16;
}

/* -------- Size helpers (optional; used in PHP after refactor) -------- */
.btn--sm { --btn-py: 12px; --btn-px: 14px; --btn-size: 13px; }
.btn--md { --btn-py: 12px; --btn-px: 16px; --btn-size: 14px; }
.btn--lg { --btn-py: 14px; --btn-px: 16px; --btn-size: 14px; }

/* -------- Legacy sizing to keep appearance unchanged -------- */
.site-header__cta { --btn-py: 12px; --btn-px: 14px; --btn-radius: 14px; --btn-size: 15px; --btn-weight: 900; }
.site-drawer__btn { --btn-py: 14px; --btn-px: 14px; --btn-radius: 16px; --btn-size: 15px; --btn-weight: 800; }

.service__area__btn { --btn-py: 14px; --btn-px: 16px; --btn-radius: 20px; --btn-size: 15px; --btn-weight: 800; --btn-icon-size: 20px; }
.news__all-link { --btn-py: 12px; --btn-px: 16px; --btn-radius: 16px; --btn-size: 15px; --btn-weight: 700; }
.recrute__button { --btn-py: 14px; --btn-px: 18px; --btn-radius: 20px; --btn-size: 15px; --btn-weight: 900; }

/* Ghost variants (kept for backward compatibility) */
.site-header__cta--ghost,
.site-drawer__btn--ghost,
.service__area__btn--ghost {
  /* same as .btn--surface */
  --btn-bg: rgba(255, 255, 255, 0.90);
  --btn-border: 1px solid rgba(0, 0, 0, 0.08);
  --btn-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
  --btn-color: rgba(0, 0, 0, 0.70);
  --btn-weight: 800;
}

@media (max-width: 1280px){
  .site-header__cta{ 
    display: none;
  }
}