:root{
  --site-header-h:92px;
  --bg:#fff8f2;
  --bg-soft:#fffdfb;
  --white:#ffffff;
  --text:#3d2e24;
  --text-strong:#2f1d15;
  --muted:#6b5548;
  --muted-soft:#8d7564;
  --line:#e8d4c4;
  --line-strong:#d4b8a4;
  --blue:#fb923c;
  --blue-deep:#c2410c;
  --blue-soft:#fff7ed;
  --green:#ea9c3d;
  --green-soft:#fff4e6;
  --yellow:#fbbf24;
  --warm-surface:#fff8f1;
  --warm-surface-strong:#fff1e3;
  --warm-border:#ecd7c8;
  --shadow:0 32px 80px rgba(180,95,45,.13);
  --shadow-soft:0 18px 44px rgba(180,95,45,.10);
  --radius-xl:44px;
  --radius-lg:32px;
  --radius-md:24px;
  --radius-sm:18px;
  --container:min(1180px, calc(100% - 32px));
  --content:min(1000px, calc(100% - 32px));
}

/* Footer brand title contrast (all pages) */
.site-footer .footer-main .site-brand__text strong{
  color:#2a1f18;
  font-weight:800;
  text-shadow:0 1px 1px rgba(255,255,255,.65);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at 8% 12%, rgba(255,200,160,.38), transparent 20%),
    radial-gradient(circle at 92% 84%, rgba(255,180,120,.22), transparent 18%),
    linear-gradient(180deg,#ffffff 0%, var(--bg) 100%);
  font-family:"Noto Sans JP",sans-serif;
  line-height:1.9;
  overflow-x:hidden;
}
body.menu-open{overflow:hidden}
body.menu-open .menu-toggle{
  display:none !important;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  background:linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(251,146,60,.10) 60%, rgba(180,95,45,.22) 100%);
  transform:translateX(100%);
  transition:transform .58s cubic-bezier(.7,0,.18,1);
  z-index:100;
  pointer-events:none;
}
body.is-leaving::before{transform:translateX(0)}
body.is-leaving main,

body.is-leaving footer,
body.is-leaving .floating-cta{opacity:0; transform:translateY(12px)}
body main,body footer,body .floating-cta,.site-top{transition:opacity .36s ease, transform .36s ease}
body.page-ready main,body.page-ready footer,.site-top{animation:rise .58s ease both}
@keyframes rise{from{opacity:.01; transform:translateY(16px)} to{opacity:1; transform:none}}
a{color:inherit; text-decoration:none}
img{display:block; width:100%; height:auto}
button,input,select,textarea{font:inherit}
.container{width:var(--container); margin:0 auto}
.content{width:var(--content); margin:0 auto}
.section{padding:108px 0; position:relative}
body.has-hero main > section.section:first-of-type{padding-top:0}
.section--tight{padding:90px 0}
.section--flush-bottom{padding-bottom:30px}
.bg-soft{background:linear-gradient(180deg,#fffdfa 0%, #fffbf5 100%)}
.bg-blue{background:linear-gradient(180deg,#fff4e8 0%, #fff8f2 100%)}
.bg-cream{background:linear-gradient(180deg,#fffefb 0%, #fffaf3 100%)}
.over-wave::before{
  content:"";
  position:absolute;
  inset:auto 0 100% 0;
  height:112px;
  background:url('assets/deco-wave.svg') center bottom/cover no-repeat;
  opacity:.5;
}
.section-title{display:grid; gap:16px; margin-bottom:48px}
.section-title--center{text-align:center; justify-items:center}
.section-title__en{
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:11px 20px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff 0%, #fff7ee 100%);
  box-shadow:var(--shadow-soft);
  border:1px solid #e7cdbb;
  font-family:"Montserrat","Noto Sans JP",sans-serif;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.18em;
  color:var(--blue-deep);
}
.section-title__en::before,
.section-title__en::after{
  content:"";
  width:7px; height:7px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--green));
}
.section-title h1,
.section-title h2{
  margin:0;
  line-height:1.18;
  font-size:clamp(2.15rem, 3.4vw, 3.35rem);
  font-weight:900;
  letter-spacing:.01em;
  color:var(--text-strong);
}
/* トップ末尾 CTA：読みやすい改行＋やや締まった見出し */
.section-title--entry-cta h2{
  font-family:"Noto Sans JP",sans-serif;
  font-weight:800;
  font-size:clamp(1.65rem, 2.35vw + 0.45rem, 2.05rem);
  line-height:1.45;
  letter-spacing:-0.02em;
  word-break:keep-all;
  overflow-wrap:anywhere;
  text-wrap:unset;
}
.section-title p.lead{
  margin:0;
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.95;
}
.label-chip{
  display:inline-flex; align-items:center; gap:10px;
  padding:11px 18px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow-soft);
  font-size:.82rem; color:var(--blue-deep); font-weight:700;
}
.header-topline{
  background:#fff5ed;
  border-bottom:1px solid #f0d8c8;
}
.header-topline__inner{
  min-height:44px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-size:.82rem; color:var(--muted);
}
.header-topline__inner p{margin:0}
.header-topline__inner a{font-weight:800; color:var(--blue-deep)}
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(232,212,196,.82);
  transition:box-shadow .22s ease, background .22s ease, border-color .22s ease;
}
body.is-scrolled .site-header{
  background:rgba(255,255,255,.97);
  box-shadow:0 12px 30px rgba(180,95,45,.08);
  border-color:rgba(232,208,188,.95);
}
.header-main{
  min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:28px;
}
.site-brand{display:inline-flex; align-items:center; gap:14px; min-width:0}
.site-brand__mark{
  width:76px; height:54px; display:flex; align-items:flex-end; justify-content:center; gap:4px;
}
.site-brand__mark span{display:block; width:14px; border-radius:999px}
.site-brand__mark span:nth-child(1){height:34px; background:#ea580c}
.site-brand__mark span:nth-child(2){height:28px; background:#fdba74}
.site-brand__mark span:nth-child(3){height:40px; background:#fb923c}
.site-brand__mark span:nth-child(4){height:30px; background:#fed7aa}
.site-brand__mark span:nth-child(5){height:22px; background:#f97316}
.site-brand__text{display:grid; gap:4px; line-height:1.2}
.site-brand__text strong{font-size:.96rem; font-weight:800}
.site-brand__text small{font-size:.72rem; color:var(--muted)}
.global-nav{
  display:flex; align-items:center; gap:10px; white-space:nowrap; overflow-x:auto; scrollbar-width:none;
}
.global-nav::-webkit-scrollbar{display:none}
.global-nav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 16px;
  border-radius:999px;
  color:#6b5548;
  font-size:.86rem;
  font-weight:700;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.global-nav a::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  border:1px solid transparent;
  transition:border-color .2s ease, background .2s ease;
}
.global-nav a:hover,
.global-nav a.is-current{color:var(--blue-deep); transform:translateY(-1px)}
.global-nav a:hover::before,
.global-nav a.is-current::before{border-color:#e8d0c4; background:linear-gradient(180deg,#fff 0%, #fff8f0 100%)}
.global-nav__entry{
  padding:0 24px !important;
  background:linear-gradient(135deg,var(--blue),var(--blue-deep));
  color:#fff !important;
  box-shadow:0 12px 28px rgba(180,95,45,.24);
}
.global-nav__entry::before{display:none}
.global-nav__entry:hover{transform:translateY(-2px) scale(1.01)}
.menu-toggle{
  display:none; border:1px solid var(--line); background:#fff; border-radius:999px;
  min-height:48px; padding:0 18px; color:var(--blue-deep); font-weight:800;
  box-shadow:var(--shadow-soft);
}
.hero{
  position:relative;
  overflow:hidden;
  min-height:min(100svh, 1020px);
  padding:calc(var(--site-header-h) + 36px) 0 56px;
  background:#2a1810;
}
.hero::before,
.hero::after{display:none}
.hero__bg{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero__slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transform:scale(1.08) translate3d(0,8px,0);
  transition:opacity 1.3s ease-in-out, transform 4.3s cubic-bezier(.22,1,.36,1);
  will-change:opacity, transform;
}
.hero__slide.is-active{
  opacity:1;
  z-index:1;
  transform:scale(1.16) translate3d(0,-6px,0);
}
.hero__slide{
  overflow:hidden;
}
.hero__slide::before{
  content:"";
  position:absolute;
  inset:-2%;
  background-image:inherit;
  background-size:cover;
  background-position:center;
  opacity:0;
  transform:translate3d(0,12px,0) scale(1.14);
  filter:blur(18px) saturate(1.12) contrast(1.03);
  pointer-events:none;
  z-index:1;
}
.hero__slide.is-active::before{
  opacity:.62;
  animation:heroSlideParallax 6.2s cubic-bezier(.22,1,.36,1) both;
}
/* トップ：背景は hero-main 固定（動きなし） */
.hero--single .hero__slide{
  opacity:1;
  z-index:0;
  transform:scale(1.12) translate3d(0,-4px,0);
  transition:none;
  will-change:auto;
}
.hero--single .hero__slide.is-active::before{
  animation:none;
  opacity:.52;
  transform:translate3d(0,8px,0) scale(1.12);
}
/* CodePen 風：カーソル追従のスポットライト（写真の上・スクリムの下） */
.hero--single .hero__glow{
  position:absolute;
  left:0;
  top:0;
  width:min(48vw, 200px);
  height:min(48vw, 200px);
  border-radius:50%;
  z-index:1;
  pointer-events:none;
  background:radial-gradient(
    circle,
    rgba(255,248,235,.78) 0%,
    rgba(255,230,200,.38) 32%,
    rgba(255,255,255,0) 64%
  );
  mix-blend-mode:screen;
  transform:translate(-50%, -50%);
  transition:transform .2s ease, opacity .25s ease;
  opacity:0;
}
.hero--single.hero--glow-ready .hero__glow{opacity:1}
@media (prefers-reduced-motion: reduce){
  .hero--single .hero__glow{display:none}
}
.hero__scrim{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(120deg, rgba(42,24,16,.78) 0%, rgba(42,24,16,.42) 48%, rgba(42,24,16,.55) 100%),
    linear-gradient(180deg, rgba(28,16,10,.35) 0%, rgba(28,16,10,.65) 100%);
}
.hero__inner{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:0;
  align-items:center;
}
.hero__copy{max-width:720px}
.hero__copy .hero__eyebrow{
  margin:0 0 10px;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.06em;
  line-height:1.45;
  color:rgba(255,255,255,.93);
  text-shadow:0 1px 3px rgba(0,0,0,.55),0 8px 24px rgba(0,0,0,.28);
}
.hero__copy h1{
  margin:0 0 18px;
  font-size:clamp(2.35rem, 5vw, 3.75rem);
  line-height:1.18;
  font-weight:900;
  letter-spacing:-0.02em;
  color:#fff;
  text-shadow:
    0 0 1px rgba(0,0,0,.9),
    0 2px 4px rgba(0,0,0,.45),
    0 12px 40px rgba(0,0,0,.35);
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.06));
}
.hero__copy .lead{
  margin:0;
  color:rgba(255,255,255,.94);
  font-size:1.03rem;
  text-shadow:0 1px 3px rgba(0,0,0,.5), 0 8px 28px rgba(0,0,0,.25);
}
@keyframes heroHeadIn{
  from{opacity:0; transform:translateX(-54px) translateY(26px) scale(.98); filter:blur(10px)}
  to{opacity:1; transform:none}
}
@keyframes heroLeadIn{
  from{opacity:0; transform:translateX(-34px) translateY(18px) scale(.99); filter:blur(9px)}
  to{opacity:1; transform:none}
}
@keyframes heroBtnIn{
  from{opacity:0; transform:translateX(18px) translateY(20px) scale(.985); filter:blur(8px)}
  to{opacity:1; transform:none}
}
@keyframes heroChipIn{
  from{opacity:0; transform:translateX(26px) translateY(14px) scale(.99); filter:blur(8px)}
  to{opacity:1; transform:none}
}
@keyframes heroCtaIn{
  from{opacity:0; transform:translateX(20px) translateY(22px) scale(.985); filter:blur(9px)}
  to{opacity:1; transform:none}
}

@keyframes heroSlideParallax{
  from{transform:translate3d(0,12px,0) scale(1.14); filter:blur(20px) saturate(1.12) contrast(1.03)}
  55%{transform:translate3d(-10px,-8px,0) scale(1.22); filter:blur(16px) saturate(1.18) contrast(1.05)}
  to{transform:translate3d(0,6px,0) scale(1.16); filter:blur(18px) saturate(1.14) contrast(1.03)}
}

body.has-hero:not(.page-ready) .hero__copy .hero__eyebrow{
  opacity:0;
  transform:translateX(-28px) translateY(12px) scale(.99);
  filter:blur(6px);
}
body.has-hero:not(.page-ready) .hero__copy h1{
  opacity:0;
  transform:translateX(-54px) translateY(26px) scale(.98);
  filter:blur(10px);
}
body.has-hero:not(.page-ready) .hero__copy .lead{
  opacity:0;
  transform:translateX(-34px) translateY(18px) scale(.99);
  filter:blur(9px);
}
body.has-hero:not(.page-ready) .hero__buttons .btn{
  opacity:0;
  transform:translateX(18px) translateY(20px) scale(.985);
  filter:blur(8px);
}
body.has-hero:not(.page-ready) .hero-note__item{
  opacity:0;
  transform:translateX(26px) translateY(14px) scale(.99);
  filter:blur(8px);
}

body.page-ready.has-hero .hero__copy .hero__eyebrow{
  animation:heroLeadIn .88s cubic-bezier(.16,1,.3,1) .12s both;
}
body.page-ready.has-hero .hero__copy h1{
  animation:heroHeadIn 1.02s cubic-bezier(.16,1,.3,1) .18s both;
}
body.page-ready.has-hero .hero__copy .lead{
  animation:heroLeadIn .92s cubic-bezier(.16,1,.3,1) .38s both;
}
body.page-ready.has-hero .hero__buttons .btn{
  animation:heroBtnIn .98s cubic-bezier(.16,1,.3,1) .58s both;
}
body.page-ready.has-hero .hero__buttons .btn:nth-child(2){
  animation-delay:.78s;
}
body.page-ready.has-hero .hero-note__item{
  animation:heroChipIn .9s cubic-bezier(.16,1,.3,1) .9s both;
}
body.page-ready.has-hero .hero-note__item:nth-child(2){
  animation-delay:1.08s;
}
body.page-ready.has-hero .hero-note__item:nth-child(3){
  animation-delay:1.22s;
}
body.page-ready.has-hero .floating-cta__entry{
  animation:none;
}

.hero__copy h1,
.hero__copy .lead,
.hero__buttons .btn,
.hero-note__item,
.floating-cta__entry{
  will-change:transform, opacity, filter;
}

@media (prefers-reduced-motion: reduce){
  .hero__slide{transition:none; transform:none !important}
  .hero__slide::before{animation:none !important; opacity:.38; transform:none !important; filter:none !important}
  .hero__slide.is-active::before{opacity:.38}
  .floating-cta{animation:none !important}
  body.page-ready.has-hero .hero__copy .hero__eyebrow,
  body.page-ready.has-hero .hero__copy h1,
  body.page-ready.has-hero .hero__copy .lead,
  body.page-ready.has-hero .hero__buttons .btn,
  body.page-ready.has-hero .hero-note__item,
  body.page-ready.has-hero .floating-cta__entry{
    animation:none !important;
  }
}
.hero__buttons{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px}
.hero-scroll{
  display:inline-flex; align-items:center; gap:12px; margin-top:18px; color:var(--blue-deep); font-weight:700;
}
.hero-scroll::before{
  content:""; width:42px; height:42px; border-radius:50%; background:#fff; box-shadow:var(--shadow-soft); border:1px solid var(--line);
}
.hero-scroll::after{content:"↓"; margin-left:-44px; color:var(--blue-deep)}
.btn{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:14px;
  min-height:60px; min-width:214px; padding:15px 30px; border-radius:999px; font-weight:800;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease;
  border:1px solid transparent;
}
.btn::before{
  content:"";
  position:absolute;
  inset:-1px auto -1px -40%;
  width:40%;
  transform:skewX(-25deg);
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.42), rgba(255,255,255,0));
  transition:transform .55s ease;
  z-index:-1;
}
.btn::after{
  content:"›";
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%;
  background:rgba(255,255,255,.22); color:currentColor; font-size:1.1rem; line-height:1;
}
.btn:hover{transform:translateY(-3px); box-shadow:0 18px 34px rgba(180,95,45,.16)}
.btn:hover::before{transform:translateX(340%) skewX(-25deg)}
.btn--primary{background:linear-gradient(135deg,var(--blue),var(--blue-deep)); color:#fff; box-shadow:0 16px 34px rgba(180,95,45,.24)}
.btn--secondary{background:#fff; color:var(--blue-deep); border-color:#e8d0c4; box-shadow:var(--shadow-soft)}
.btn--secondary::after{background:var(--blue-soft)}
.btn--light{background:#fff; color:var(--blue-deep); box-shadow:var(--shadow-soft)}
.btn--light::after{background:var(--blue-soft)}
.btn--ghost-dark{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.35); color:#fff}
.btn--ghost-dark::after{background:rgba(255,255,255,.16)}
.text-link{display:inline-flex; align-items:center; gap:10px; color:var(--blue-deep); font-weight:700}
.text-link::after{
  content:"→"; transition:transform .18s ease; display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:50%; background:#fff; border:1px solid var(--line);
}
.text-link:hover::after{transform:translateX(4px)}
.hero-note{margin-top:24px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.hero-note__item{
  padding:18px 20px; border-radius:24px; background:rgba(255,255,255,.88); border:1px solid var(--line); box-shadow:var(--shadow-soft);
  transform:translateY(0); transition:transform .2s ease, box-shadow .2s ease;
}
.hero-note__item:hover{transform:translateY(-4px); box-shadow:0 16px 28px rgba(180,95,45,.12)}
.hero-note__item strong{display:block; color:var(--blue-deep); font-size:1.18rem; font-weight:800; letter-spacing:.02em}
.hero-note__item span{display:block; color:var(--muted); font-size:.9rem}
.anchor-band{position:relative; z-index:2; margin-top:10px}
.anchor-band__inner{display:flex; gap:12px; overflow:auto; padding:8px 0 18px; scrollbar-width:none}
.anchor-band__inner::-webkit-scrollbar{display:none}
.anchor-band__inner a{
  position:relative;
  flex:0 0 auto; padding:16px 22px; border-radius:999px; background:#fff;
  border:1px solid var(--line); box-shadow:var(--shadow-soft); font-size:.84rem; letter-spacing:.04em; color:var(--blue-deep); font-weight:800;
  transition:transform .2s ease, box-shadow .2s ease;
}
.anchor-band__inner a::after{content:"›"; margin-left:10px}
.anchor-band__inner a:hover{transform:translateY(-2px); box-shadow:0 16px 28px rgba(180,95,45,.12)}
.feature-split{display:grid; grid-template-columns:minmax(0,.95fr) minmax(340px,.82fr); gap:34px; align-items:center}
.card{
  background:#fff; border:1px solid rgba(232,212,196,.95); border-radius:var(--radius-lg); box-shadow:var(--shadow-soft);
  transition:transform .22s ease, box-shadow .22s ease;
}
.card:hover,.charm-card:hover,.data-card:hover,.job-card:hover,.voice-card:hover,.tour-card:hover,.clinic-card:hover,.faq-item:hover,.step-card:hover,.mini-card:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 40px rgba(180,95,45,.12);
}
.message-card{padding:36px}
.message-card p{margin:0 0 18px}
.message-card p:last-child{margin-bottom:0}
.signature{margin-top:20px; color:var(--blue-deep); font-weight:800; letter-spacing:.04em}
.side-visual{padding:16px}
.side-visual__frame{overflow:hidden; border-radius:30px}
.side-visual__caption{padding:16px 8px 4px; color:var(--muted); font-size:.92rem}
.charm-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px}
.charm-card{
  padding:18px; display:grid; gap:18px; align-content:start;
  background:linear-gradient(180deg,#fff 0%, #fffdfa 100%);
  border:1px solid var(--line); border-radius:28px; box-shadow:var(--shadow-soft);
}
.charm-card__media,.voice-card__media,.job-card__media,.voice-panel__media,.panel-visual__frame,.page-hero__visual,.side-visual__frame{position:relative}
.charm-card__media::after,.voice-card__media::after,.job-card__media::after,.voice-panel__media::after,.panel-visual__frame::after,.page-hero__visual::after,.side-visual__frame::after{
  content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,0) 40%, rgba(251,146,60,.08) 100%); pointer-events:none;
}
.charm-card__media{overflow:hidden; border-radius:24px}
.charm-card__num{
  display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px;
  border-radius:50%; background:linear-gradient(180deg,#fff 0%, var(--blue-soft) 100%); color:var(--blue-deep); font-weight:800; box-shadow:var(--shadow-soft);
}
.charm-card h3{margin:0; font-size:1.16rem; line-height:1.5}
.charm-card p{margin:0; color:var(--muted)}

.charm-section{position:relative; overflow:hidden}
.charm-section::before,
.charm-section::after{
  content:""; position:absolute; pointer-events:none; z-index:0; border-radius:50%; filter:blur(2px);
}
.charm-section::before{width:360px; height:360px; top:-120px; left:-120px; background:radial-gradient(circle, rgba(251,180,120,.22) 0%, rgba(251,180,120,0) 72%)}
.charm-section::after{width:320px; height:320px; right:-120px; bottom:-140px; background:radial-gradient(circle, rgba(255,200,140,.18) 0%, rgba(255,200,140,0) 72%)}
.charm-section > .container{position:relative; z-index:1}
.charm-section__title{max-width:820px; margin-left:auto; margin-right:auto}
.charm-section__title .lead{max-width:720px; margin:18px auto 0}
.appeal-list{display:grid; gap:20px}
.appeal-item{
  display:grid; grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr); align-items:stretch; gap:0;
  border-radius:26px; overflow:hidden; background:#fff; border:1px solid #e9d5c8; box-shadow:0 12px 28px rgba(180,95,45,.07);
}
.appeal-item--reverse{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr)}
.appeal-item__media{position:relative; min-height:272px; overflow:hidden; background:linear-gradient(180deg,#fff0e6 0%, #fde8d8 100%)}
.appeal-item__media::before{content:""; position:absolute; inset:12px; border-radius:20px; border:1px solid rgba(255,255,255,.7); z-index:1}
.appeal-item__media::after{content:""; position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,255,255,.06), rgba(251,146,60,.1)); z-index:1; pointer-events:none}
.appeal-item__media img{width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.02)}
.appeal-item__body{position:relative; padding:34px 34px 30px; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(180deg,#fff 0%, #fffdfa 100%)}
.appeal-item__body::before{content:""; position:absolute; inset:16px; border-radius:20px; border:1px solid rgba(245,232,220,.92); pointer-events:none}
.appeal-item__index{
  margin:0 0 12px; font-family:"Montserrat", sans-serif; font-size:clamp(2.1rem,3.8vw,3.2rem); line-height:1; letter-spacing:.02em;
  color:rgba(251,146,60,.42); font-weight:800;
}
.appeal-item h3{position:relative; z-index:1; margin:0 0 12px; font-size:1.42rem; line-height:1.35; color:var(--text-strong); font-weight:800; letter-spacing:.01em}
.appeal-item p{position:relative; z-index:1; margin:0; color:#6b5a4e; line-height:1.9}
.appeal-item p + p{margin-top:12px}
.appeal-item--reverse .appeal-item__media{order:2}
.appeal-item--reverse .appeal-item__body{order:1}
.appeal-list--top .appeal-item__media{min-height:224px}
.appeal-list--top .appeal-item__body{padding:30px 30px 26px}
.appeal-list--top .appeal-item__index{font-size:clamp(1.95rem,2.8vw,2.7rem); margin-bottom:10px}
.appeal-list--top .appeal-item h3{font-size:1.24rem; margin-bottom:10px}
.appeal-list--top .appeal-item p{line-height:1.9}
.charm-section__actions{margin-top:32px}
/* 魅力ブロック：奇数は左・偶数は右からスライドイン（スクロールで表示） */
.charm-section .appeal-list .appeal-item{
  opacity:0;
  transition:opacity 1s ease-out, transform 1.1s cubic-bezier(.2,.85,.25,1);
}
.charm-section .appeal-list .appeal-item:nth-child(odd){transform:translateX(-2rem)}
.charm-section .appeal-list .appeal-item:nth-child(even){transform:translateX(2rem)}
.charm-section .appeal-list .appeal-item.is-visible{opacity:1; transform:translateX(0)}
.charm-section .appeal-list .appeal-item:nth-child(1){transition-delay:0s}
.charm-section .appeal-list .appeal-item:nth-child(2){transition-delay:.12s}
.charm-section .appeal-list .appeal-item:nth-child(3){transition-delay:.24s}
.charm-section .appeal-list .appeal-item:nth-child(4){transition-delay:.36s}
.charm-section .appeal-list .appeal-item:nth-child(5){transition-delay:.48s}
@media (prefers-reduced-motion: reduce){
  .charm-section .appeal-list .appeal-item{
    opacity:1;
    transform:none;
    transition:none;
  }
}
.card-actions{margin-top:26px; display:flex; gap:14px; flex-wrap:wrap}
.data-layout{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px}
.data-card{
  position:relative;
  padding:34px 18px 24px; text-align:center; background:#fff; border-radius:30px;
  border:1px solid var(--line); box-shadow:var(--shadow-soft); overflow:hidden;
}
.data-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:6px; background:linear-gradient(90deg,var(--blue),var(--green));
}
.data-card strong{display:block; font-family:"Montserrat",sans-serif; font-size:2.45rem; line-height:.95; color:var(--blue-deep); margin-bottom:12px; font-weight:800; letter-spacing:-.03em}
.data-card span{display:block; color:var(--muted); font-size:.92rem}
.info-panels{margin-top:30px; display:grid; grid-template-columns:1.2fr .8fr; gap:20px}
.bar-card,.faq-card,.timeline-card,.simple-card,.entry-card,.job-card,.voice-card,.tour-card,.clinic-card,.faq-item,.mini-card{background:#fff; border:1px solid #ead8ca; border-radius:28px; box-shadow:0 10px 24px rgba(180,95,45,.07)}
.bar-card{padding:28px}
.bar-row{display:grid; grid-template-columns:140px 1fr 76px; gap:18px; align-items:center; margin-bottom:16px}
.bar-row:last-child{margin-bottom:0}
.bar-row label{font-weight:700; color:var(--blue-deep)}
.bar-row .bar{height:16px; border-radius:999px; background:#fff0e8; overflow:hidden}
.bar-row .bar > span{display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--blue),var(--green)); animation:growBar 1.2s ease both}
@keyframes growBar{from{width:0 !important}}
.bar-row .value{text-align:right; font-weight:700; color:var(--muted)}
.simple-card{padding:28px}
.simple-card h3{margin:0 0 12px; font-size:1.22rem; line-height:1.45; font-weight:800; letter-spacing:.01em}
.simple-card p{margin:0; color:var(--muted)}
.jobs-layout,.tour-layout,.clinic-layout,.entry-layout{display:grid; grid-template-columns:1.05fr .95fr; gap:24px; align-items:stretch}
.entry-layout:not(:has(> .panel-visual)){grid-template-columns:1fr}
.panel-visual{padding:16px}
.panel-visual__frame{overflow:hidden; border-radius:30px; height:100%}
.panel-visual__frame img{height:100%; object-fit:cover}
.panel-copy{padding:34px}
.icon-list{display:grid; gap:12px; padding:0; margin:24px 0 0; list-style:none}
.icon-list li{padding:13px 16px 13px 16px; position:relative; border-radius:18px; background:#fffbf5; color:#6b5548}
.icon-list li::before{content:none}
.step-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:24px}
.step-card{padding:24px; background:#fff; border-radius:26px; border:1px solid var(--line); box-shadow:var(--shadow-soft)}
.step-card strong{display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:linear-gradient(180deg,#fff 0%, var(--blue-soft) 100%); color:var(--blue-deep); margin-bottom:14px; box-shadow:var(--shadow-soft)}
.step-card h3{margin:0 0 10px; font-size:1.14rem; line-height:1.45; font-weight:800; letter-spacing:.01em}
.step-card p{margin:0; color:var(--muted)}
.voice-tabs{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:22px}
.voice-tab{
  border:none; background:#fff; border:1px solid var(--line); border-radius:999px;
  min-height:50px; padding:0 20px; color:#6b5548; cursor:pointer; box-shadow:var(--shadow-soft);
  font-weight:700; transition:transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.voice-tab.is-active,.voice-tab:hover{background:linear-gradient(135deg,var(--blue-soft), #fff); color:var(--blue-deep); border-color:#f0c9a8; transform:translateY(-2px)}
.voice-stack{display:grid; gap:18px}
.voice-panel{display:none; grid-template-columns:280px 1fr; gap:22px; padding:18px; border-radius:30px; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow-soft)}
.voice-panel.is-active{display:grid; animation:fadePanel .35s ease}
@keyframes fadePanel{from{opacity:0; transform:translateY(10px)}to{opacity:1; transform:none}}
.voice-panel__media{overflow:hidden; border-radius:24px}
.voice-panel__role{margin:6px 0 14px; font-weight:800; color:var(--blue-deep)}
.voice-panel__role span{display:inline-flex; margin-left:10px; padding:5px 10px; border-radius:999px; background:var(--blue-soft); font-size:.74rem; letter-spacing:.06em}
.voice-panel__body p:last-of-type{margin-bottom:0}
.voice-qa__q{margin:0 0 10px; font-weight:700; color:#9a3412}
.voice-qa__a{margin:0; color:#6b5548; line-height:1.9}
.voice-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px}
.voice-card{padding:18px}
.voice-card__media{overflow:hidden; border-radius:22px; margin-bottom:16px}
.voice-card h3{margin:0 0 8px; font-size:1.12rem; line-height:1.45; font-weight:800; letter-spacing:.01em}
.voice-card p{margin:0; color:var(--muted)}
.voice-card .voice-qa__q{margin:0 0 8px}
.gallery-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px}
.job-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.job-grid--single{grid-template-columns:1fr; max-width:720px; margin-inline:auto; justify-items:stretch}
.job-card{padding:18px}
.job-card__media{overflow:hidden; border-radius:22px; margin-bottom:14px}
.job-card__tag{display:inline-flex; padding:8px 12px; border-radius:999px; background:linear-gradient(180deg,#fff 0%, var(--blue-soft) 100%); color:var(--blue-deep); font-size:.78rem; font-weight:800; border:1px solid #ead8ce}
.job-card h3{margin:12px 0 8px; font-size:1.16rem; line-height:1.45; font-weight:800; letter-spacing:.01em}
.job-card p{margin:0 0 16px; color:var(--muted)}
.job-detail{display:grid; gap:18px; margin-top:32px}
.job-detail__item{padding:24px; border-radius:28px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-soft)}
.job-detail__item h3{margin:0 0 12px; font-size:1.18rem; line-height:1.45; font-weight:800; letter-spacing:.01em}
.requirement-table{margin-top:16px; display:grid; gap:12px}
.requirement-row{display:grid; grid-template-columns:160px 1fr; gap:18px; padding:16px 18px; border-radius:20px; background:#fffbf5; border:1px solid #f5e8dc}
.requirement-row strong{color:var(--blue-deep)}
.faq-list{display:grid; gap:16px}
.faq-item{padding:22px 24px}
.faq-item h3{margin:0 0 8px; font-size:1.08rem; line-height:1.45; font-weight:800; letter-spacing:.01em}
.faq-item p{margin:0; color:var(--muted)}
.entry-card{padding:28px}
.form-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px}
.field{display:grid; gap:8px}
.field label{font-weight:700; color:var(--blue-deep)}
.field input,.field select,.field textarea{
  width:100%; border:1px solid var(--line-strong); border-radius:18px; padding:15px 16px; background:#fff;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:#f4a574; box-shadow:0 0 0 5px rgba(251,146,60,.12); transform:translateY(-1px)}
.field textarea{min-height:140px; resize:vertical}
.field textarea.textarea--fixed{
  height:140px;
  min-height:140px;
  max-height:140px;
  resize:none;
  overflow-y:auto;
}
.field--full{grid-column:1/-1}
.notice-box{padding:18px 20px; background:#fffbf5; border-radius:22px; border:1px solid #f5e8dc; color:var(--muted)}
.breadcrumb{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:26px; color:#8a7568; font-size:.88rem}
.breadcrumb a{color:var(--blue-deep)}
.page-hero{
  position:relative; overflow:hidden; padding:78px 0 68px;
  background:
    radial-gradient(circle at 85% 12%, rgba(139,196,234,.3), transparent 22%),
    radial-gradient(circle at 10% 90%, rgba(183,217,140,.22), transparent 24%),
    linear-gradient(180deg,#fff 0%,#fff8f0 100%);
}
.page-hero::before{
  content:""; position:absolute; right:-60px; top:-40px; width:220px; height:220px; border-radius:50%; background:rgba(251,146,60,.10);
}
.page-hero__inner{display:grid; grid-template-columns:minmax(0,.9fr) minmax(320px,.8fr); gap:30px; align-items:center}
.page-hero__visual{overflow:hidden; border-radius:34px; box-shadow:var(--shadow); background:#fff; padding:16px}
.page-hero__visual img{border-radius:26px}
.page-hero__copy p{margin:14px 0 0; color:var(--muted)}
.floating-cta{
  position:fixed; right:max(12px, env(safe-area-inset-right, 0px)); bottom:max(12px, env(safe-area-inset-bottom, 0px)); z-index:65; display:flex; gap:6px; align-items:center;
  background:rgba(255,255,255,.96); border:1px solid rgba(232,212,196,.98); padding:8px; border-radius:999px; box-shadow:var(--shadow);
  animation:ctaPulse 5.2s ease-in-out 1 both;
}
@keyframes ctaPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
.floating-cta a{
  display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 14px;
  flex-shrink:0;
  min-width:max-content;
  border-radius:999px; font-weight:800; font-size:.9rem; transition:transform .2s ease, box-shadow .2s ease;
}
.floating-cta a:hover{transform:translateY(-2px)}
.floating-cta__tel{background:#fffbf5; color:var(--blue-deep)}
.floating-cta__entry{background:linear-gradient(135deg,var(--blue),var(--blue-deep)); color:#fff; box-shadow:0 10px 20px rgba(180,95,45,.20)}
.floating-cta__entry{
  position:relative;
  overflow:hidden;
  transition:none;
}
.floating-cta__entry::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.35) 40%, rgba(255,255,255,0) 72%);
  transform:translateX(-140%) skewX(-18deg);
  transition:transform .65s cubic-bezier(.2,1,.3,1);
  pointer-events:none;
  z-index:0;
}
.floating-cta__entry > *{position:relative; z-index:1}
.floating-cta__entry:hover::before,
.floating-cta__entry:focus-visible::before{
  transform:translateX(-140%) skewX(-18deg);
}
.floating-cta__entry:hover,
.floating-cta__entry:focus-visible{
  transform:none;
  box-shadow:0 10px 20px rgba(180,95,45,.20);
}
.floating-cta__jobs{background:linear-gradient(180deg,#fff5eb 0%, #ffedd5 100%); color:var(--blue-deep)}
.footer-contact{margin-top:50px; background:linear-gradient(135deg,#9a3412, #fb923c); color:#fff; padding:44px 0}
.footer-contact__inner{display:flex; justify-content:space-between; align-items:center; gap:24px}
.footer-contact__label{
  margin:0 0 8px;
  opacity:1;
  color:#fff7ed;
  font-weight:700;
  letter-spacing:.02em;
  text-shadow:0 1px 2px rgba(0,0,0,.2);
}
.footer-contact__tel{font-family:"Montserrat",sans-serif; font-size:2rem; font-weight:700; letter-spacing:.03em}
.footer-contact__buttons{display:flex; gap:14px; flex-wrap:wrap}
.site-footer{background:#fff; border-top:1px solid #f0e0d4}
.footer-main{display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:center; padding:34px 0}
.footer-main .site-brand__text strong{
  color:#2f241d;
  font-weight:800;
  text-shadow:0 1px 0 rgba(255,255,255,.5);
}
.footer-info p{margin:0 0 8px; color:var(--muted)}
.footer-info p:last-child{margin-bottom:0}
.footer-copy{padding:16px; text-align:center; border-top:1px solid #f5ebe4; color:#8a7568; font-size:.86rem}
.muted{color:var(--muted)}
.center{text-align:center}
.mt-0{margin-top:0}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mb-0{margin-bottom:0}
.reveal{opacity:0; transform:translateY(32px) scale(.985); transition:opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1)}
.reveal.is-visible{opacity:1; transform:none}
.reveal:nth-child(2){transition-delay:.05s}
.reveal:nth-child(3){transition-delay:.1s}
.reveal:nth-child(4){transition-delay:.15s}
@media (max-width:980px){
  .appeal-item,
  .appeal-item--reverse{
    grid-template-columns:1fr;
  }
  .appeal-item__media,
  .appeal-item--reverse .appeal-item__media{order:1; min-height:250px}
  .appeal-item__body,
  .appeal-item--reverse .appeal-item__body{order:2; padding:34px 26px 30px}
  .appeal-item__body::before{inset:16px}
}
@media (max-width:1100px){
  .hero__inner,.feature-split,.jobs-layout,.tour-layout,.clinic-layout,.entry-layout,.page-hero__inner{grid-template-columns:1fr}
  .data-layout{grid-template-columns:repeat(3,minmax(0,1fr))}
  .job-grid,.charm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .job-grid--single{grid-template-columns:1fr; max-width:720px; margin-inline:auto}
  .voice-list{grid-template-columns:1fr}
  .info-panels{grid-template-columns:1fr}
}
@media (max-width:860px){
  .menu-toggle{display:inline-flex}
  .global-nav{padding:12px}
  .global-nav__panel{
    width:100%;
    min-height:calc(100dvh - 24px);
    padding:16px;
    border-radius:22px;
  }
  .hero-note{grid-template-columns:1fr}
  .charm-grid,.job-grid,.gallery-grid,.voice-list,.step-grid,.form-grid{grid-template-columns:1fr}
  .data-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
  .voice-panel{grid-template-columns:1fr}
  .requirement-row{grid-template-columns:1fr}
  .footer-contact__inner,.footer-main{grid-template-columns:1fr; display:grid}
  .floating-cta{
    left:0;
    right:0;
    bottom:max(8px, env(safe-area-inset-bottom, 0px));
    margin-inline:auto;
    width:fit-content;
    max-width:calc(100% - 16px);
    justify-content:center;
    gap:6px;
    padding:6px 8px;
  }
  .floating-cta a{flex:0 0 auto; padding:0 10px; font-size:.82rem; min-width:0}
}
@media (max-width:640px){
  .section{padding:84px 0}
  .header-main{min-height:78px}
  .site-brand__text strong{font-size:.88rem}
  .site-brand__text small{display:none}
  .site-brand__mark{width:66px; height:48px}
  .hero{padding:calc(var(--site-header-h) + 20px) 0 40px; min-height:min(92svh, 920px)}
  .hero__copy h1{font-size:clamp(2rem, 10vw, 2.85rem)}
  .data-layout{grid-template-columns:1fr}
  .floating-cta__tel{display:none}
  .btn{min-width:100%}
}


/* ===== readability improvements v5 ===== */
body{
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
p, li{color:var(--muted)}
.section-title h1,
.section-title h2,
.page-hero__copy h1,
.message-card h2,
.panel-copy h2,
.job-card h3,
.voice-card h3,
.faq-item h3,
.step-card h3{
  color:var(--text-strong);
  letter-spacing:.01em;
}
.label-chip,
.section-title__en,
.hero-note__item,
.anchor-band__inner a,
.voice-tab,
.global-nav a,
.floating-cta a,
.btn,
.text-link,
.hero-scroll{
  -webkit-tap-highlight-color:transparent;
}
.btn,
.global-nav a,
.anchor-band__inner a,
.voice-tab,
.floating-cta a,
.text-link{
  will-change:transform;
}
.btn{
  min-height:62px;
  letter-spacing:.02em;
  box-shadow:0 10px 24px rgba(180,95,45,.12);
}
.btn::before{
  inset:0 auto 0 -28%;
  width:28%;
  opacity:.55;
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.24), rgba(255,255,255,0));
}
.btn::after{
  width:30px;
  height:30px;
  font-size:1rem;
  border:1px solid rgba(255,255,255,.18);
}
.btn:hover,
.btn:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 16px 30px rgba(180,95,45,.16);
}
.btn--primary,
.btn--primary:hover,
.btn--primary:focus-visible{
  background:linear-gradient(135deg, #fb923c 0%, #c2410c 100%);
  color:#fff;
}
.btn--primary::after{
  background:rgba(255,255,255,.18);
  color:#fff;
}
.btn--secondary,
.btn--light{
  background:linear-gradient(180deg, #ffffff 0%, #fffbf5 100%);
  color:var(--blue-deep);
  border-color:#e8d0c4;
}
.btn--secondary:hover,
.btn--secondary:focus-visible,
.btn--light:hover,
.btn--light:focus-visible{
  background:linear-gradient(180deg, #ffffff 0%, #fff2e8 100%);
  color:#9a3412;
}
.btn--secondary::after,
.btn--light::after{
  background:#fff3e8;
  border-color:#e8d4c4;
}
.btn--ghost-dark,
.btn--ghost-dark:hover,
.btn--ghost-dark:focus-visible{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.42);
  color:#fff;
  box-shadow:none;
}
.global-nav a{
  color:#6b5548;
}
.global-nav a:hover,
.global-nav a:focus-visible,
.global-nav a.is-current{
  color:var(--blue-deep);
  background:linear-gradient(180deg, #ffffff 0%, #fff6ed 100%);
  box-shadow:0 10px 22px rgba(180,95,45,.08);
}
.global-nav a:hover::before,
.global-nav a:focus-visible::before,
.global-nav a.is-current::before{
  border-color:#e8d4c4;
  background:transparent;
}
.global-nav__entry,
.global-nav__entry:hover,
.global-nav__entry:focus-visible,
.global-nav__entry.is-current{
  background:linear-gradient(135deg, #fb923c 0%, #c2410c 100%) !important;
  color:#fff !important;
  box-shadow:0 14px 28px rgba(180,95,45,.22) !important;
}
.global-nav__entry::after{
  content:"›";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  margin-left:8px;
  border-radius:50%;
  background:rgba(255,255,255,.16);
}
.anchor-band__inner a{
  color:#8a4a20;
  background:linear-gradient(180deg,#fff 0%,#fffbf5 100%);
}
.anchor-band__inner a:hover,
.anchor-band__inner a:focus-visible{
  transform:translateY(-1px);
  background:linear-gradient(180deg,#fff 0%,#fff2e8 100%);
  box-shadow:0 14px 26px rgba(180,95,45,.10);
}
.text-link{
  color:#9a3412;
  font-weight:800;
}
.text-link::after{
  background:#fff;
  border-color:#e0d0c4;
  color:#9a3412;
}
.text-link:hover,
.text-link:focus-visible{
  color:#7c2d12;
}
.hero-scroll{
  color:#9a3412;
}
.hero-scroll::before{
  border-color:#e5d4c8;
}
.hero-note__item,
.charm-card,
.data-card,
.bar-card,
.simple-card,
.entry-card,
.job-card,
.voice-card,
.tour-card,
.clinic-card,
.faq-item,
.mini-card,
.step-card,
.voice-panel,
.message-card,
.side-visual,
.panel-copy,
.panel-visual,
.job-detail__item{
  background:#fff;
  border-color:#ead8cc;
}
.card:hover,
.charm-card:hover,
.data-card:hover,
.job-card:hover,
.voice-card:hover,
.tour-card:hover,
.clinic-card:hover,
.faq-item:hover,
.step-card:hover,
.mini-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(180,95,45,.08);
}
.voice-tab{
  color:#6b5548;
  background:linear-gradient(180deg,#fff 0%,#fffdfa 100%);
}
.voice-tab.is-active,
.voice-tab:hover,
.voice-tab:focus-visible{
  background:linear-gradient(180deg,#ffffff 0%,#fff5ec 100%);
  color:#9a3412;
  border-color:#e8c8a8;
  box-shadow:0 12px 24px rgba(180,95,45,.10);
}
.field input,
.field select,
.field textarea{
  color:var(--text);
  background:#fff;
}
.field input::placeholder,
.field textarea::placeholder{color:#9a8578}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:#f1b28b;
  box-shadow:0 0 0 4px rgba(251,146,60,.16);
  transform:none;
}
.floating-cta{
  background:rgba(255,255,255,.98);
  border-color:#e8d6c8;
  box-shadow:0 20px 40px rgba(180,95,45,.14);
}
.floating-cta a{
  min-height:50px;
  border:1px solid transparent;
}
.floating-cta__tel{
  background:linear-gradient(180deg,#fff 0%,#fffbf5 100%);
  border-color:#e8d8cc;
}
.floating-cta__entry,
.floating-cta__entry:hover,
.floating-cta__entry:focus-visible{
  background:linear-gradient(135deg, #fb923c 0%, #c2410c 100%);
  color:#fff;
}
.floating-cta__jobs,
.floating-cta__jobs:hover,
.floating-cta__jobs:focus-visible{
  background:linear-gradient(180deg,#fff5eb 0%,#ffecc4 100%);
  color:var(--blue-deep);
  border-color:#ffe0c4;
}
.floating-cta a:hover,
.floating-cta a:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(180,95,45,.10);
}
.signature,
.bar-row label,
.field label,
.requirement-row strong,
.voice-panel__role,
.job-card__tag{
  color:#9a3412;
}
.page-hero,
.hero,
.bg-soft,
.bg-blue,
.bg-cream{
  background-blend-mode:normal;
}
:focus-visible{
  outline:3px solid rgba(251,146,60,.32);
  outline-offset:3px;
}
.global-nav a:focus-visible,
.btn:focus-visible,
.floating-cta a:focus-visible,
.voice-tab:focus-visible,
.anchor-band__inner a:focus-visible,
.text-link:focus-visible,
.menu-toggle:focus-visible{
  outline:3px solid rgba(251,146,60,.32);
  outline-offset:3px;
}
@media (max-width:860px){
  .global-nav{
    background:rgba(255,255,255,.98);
  }
  .global-nav a{
    min-height:54px;
  }
}
@media (max-width:640px){
  .btn{min-width:100%; min-height:58px;}
  .floating-cta{gap:5px; padding:5px 7px;}
}


/* v6 compact header */
.site-header--compact{
  position:sticky;
  top:0;
  z-index:80;
  background:rgba(255,255,255,.82);
  border-bottom:0;
  box-shadow:none;
}
body.is-scrolled .site-header--compact{
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 34px rgba(180,95,45,.10);
}
.site-header--compact .header-shell{
  min-height:98px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.site-header--compact .site-brand{
  gap:14px;
}
.site-header--compact .site-brand__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:86px;
  height:42px;
  padding:0 16px;
  border-radius:999px;
  background:linear-gradient(180deg,#ffffff 0%, #fff4e8 100%);
  border:1px solid #e8d4c4;
  color:var(--blue-deep);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  box-shadow:0 10px 26px rgba(180,95,45,.08);
}
.site-header--compact .site-brand__mark{display:none}
.site-header--compact .site-brand__text strong{
  font-size:1rem;
  color:#5c3d2e;
}
.site-header--compact .site-brand__text small{
  font-size:.74rem;
  color:var(--muted-soft);
}
.header-actions{
  display:flex;
  align-items:center;
  gap:14px;
  flex-shrink:0;
}
.header-entry{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:14px;
  min-width:286px;
  min-height:90px;
  padding:0 32px 0 28px;
  border-radius:999px;
  background:linear-gradient(180deg,#fb923c 0%, #ea580c 100%);
  color:#fff;
  font-weight:800;
  letter-spacing:.08em;
  box-shadow:0 20px 36px rgba(180,95,45,.18);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.header-entry:hover,
.header-entry:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 24px 42px rgba(180,95,45,.22);
  filter:saturate(1.02);
}
.header-entry__text{
  font-size:1.3rem;
  white-space:nowrap;
}
.header-entry__icon{
  position:relative;
  width:28px;
  height:32px;
  border:2.5px solid #fff;
  border-radius:6px;
  flex-shrink:0;
}
.header-entry__icon::before{
  content:"";
  position:absolute;
  inset:6px 5px auto 5px;
  height:2px;
  background:#fff;
  box-shadow:0 7px 0 #fff, 0 14px 0 #fff;
}
.header-entry__icon::after{
  content:"";
  position:absolute;
  width:14px;
  height:3px;
  right:-4px;
  bottom:2px;
  background:#fff;
  border-radius:999px;
  transform:rotate(-40deg);
  box-shadow:0 0 0 1px rgba(255,255,255,.01);
}
.site-header--compact .menu-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:90px;
  height:90px;
  min-height:0;
  padding:0;
  border:none;
  border-radius:50%;
  background:linear-gradient(180deg,#fb923c 0%, #c2410c 100%);
  box-shadow:0 18px 34px rgba(180,95,45,.20);
  color:#fff;
  position:relative;
}
.site-header--compact .menu-toggle span{
  position:absolute;
  width:28px;
  height:3px;
  border-radius:999px;
  background:#fff;
  transition:transform .24s ease, opacity .24s ease;
}
.site-header--compact .menu-toggle span:nth-child(1){transform:translateY(-10px)}
.site-header--compact .menu-toggle span:nth-child(2){transform:none}
.site-header--compact .menu-toggle span:nth-child(3){transform:translateY(10px)}
body.menu-open .site-header--compact .menu-toggle span:nth-child(1){transform:rotate(45deg)}
body.menu-open .site-header--compact .menu-toggle span:nth-child(2){opacity:0}
body.menu-open .site-header--compact .menu-toggle span:nth-child(3){transform:rotate(-45deg)}
.site-header--compact .global-nav{
  position:fixed;
  inset:0;
  display:flex;
  justify-content:flex-end;
  padding:24px;
  background:rgba(60,35,22,.28);
  backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .24s ease, visibility .24s ease;
}
body.menu-open .site-header--compact .global-nav{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.site-header--compact .global-nav__panel{
  width:min(440px, 100%);
  height:min(100%, 760px);
  overflow:auto;
  border-radius:36px;
  background:linear-gradient(180deg,#ffffff 0%, #fff6ed 100%);
  border:1px solid #ead8ca;
  padding:26px;
  box-shadow:0 28px 80px rgba(120,55,28,.18);
  transform:translateY(24px) scale(.98);
  transition:transform .28s ease;
}
body.menu-open .site-header--compact .global-nav__panel{transform:none}
.site-header--compact .global-nav__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px;
}
.site-header--compact .global-nav__label{
  margin:0;
  font-size:.84rem;
  font-weight:800;
  letter-spacing:.16em;
  color:#976f57;
}
.site-header--compact .global-nav__close{
  width:44px;
  height:44px;
  border:none;
  border-radius:50%;
  background:#fff2e8;
  color:#8a4a20;
  font-size:1.6rem;
  line-height:1;
  cursor:pointer;
}
.site-header--compact .global-nav__links{
  display:grid;
  gap:10px;
}
.site-header--compact .global-nav a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:58px;
  padding:0 18px;
  border-radius:18px;
  background:#fff;
  border:1px solid var(--warm-border);
  color:#6b5548;
  font-size:.95rem;
  font-weight:700;
  box-shadow:none;
  transform:none;
}
.site-header--compact .global-nav a::before{display:none}
.site-header--compact .global-nav a::after{
  content:"›";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#fff0e6;
  color:#8a4a20;
  font-size:1rem;
}
.site-header--compact .global-nav a:hover,
.site-header--compact .global-nav a:focus-visible,
.site-header--compact .global-nav a.is-current{
  color:#8a4a20;
  background:linear-gradient(180deg,#ffffff 0%, #fff8f0 100%);
  border-color:#e8cbb4;
  box-shadow:0 12px 24px rgba(180,95,45,.08);
}
.site-header--compact .global-nav__subactions{
  display:grid;
  gap:12px;
  margin-top:20px;
}
.nav-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  border-radius:18px;
  font-weight:800;
  letter-spacing:.04em;
  transition:transform .2s ease, box-shadow .2s ease;
}
.nav-action:hover,
.nav-action:focus-visible{transform:translateY(-1px)}
.nav-action--tel{
  background:#fff;
  color:#8a4a20;
  border:1px solid #e8d4c8;
}
.nav-action--entry{
  background:linear-gradient(180deg,#fb923c 0%, #ea580c 100%);
  color:#fff;
  box-shadow:0 14px 32px rgba(180,95,45,.18);
}
@media (max-width: 900px){
  .site-header--compact .header-shell{min-height:82px}
  .site-header--compact .site-brand__badge{display:none}
  .site-header--compact .site-brand__text strong{font-size:.92rem}
  .site-header--compact .site-brand__text small{display:none}
  .header-entry{
    min-width:212px;
    min-height:70px;
    padding:0 22px;
    gap:12px;
  }
  .header-entry__text{font-size:1.06rem}
  .header-entry__icon{width:24px; height:28px}
  .site-header--compact .menu-toggle{width:70px; height:70px}
  .site-header--compact .menu-toggle span{width:24px}
}
@media (max-width: 680px){
  .site-header--compact .header-shell{gap:12px}
  .header-actions{gap:10px}
  .header-entry{
    min-width:0;
    flex:1 1 auto;
    min-height:58px;
    padding:0 18px;
    box-shadow:0 14px 28px rgba(180,95,45,.18);
  }
  .header-entry__text{font-size:.98rem; letter-spacing:.04em}
  .header-entry__icon{width:20px; height:24px; border-width:2px}
  .header-entry__icon::before{inset:5px 4px auto 4px; box-shadow:0 5px 0 #fff, 0 10px 0 #fff}
  .header-entry__icon::after{width:11px; height:2px}
  .site-header--compact .menu-toggle{width:58px; height:58px; flex:0 0 58px}
  .site-header--compact .menu-toggle span{width:20px; height:2.5px}
  .site-header--compact .global-nav{padding:12px}
  .site-header--compact .global-nav__panel{
    width:100%;
    height:auto;
    min-height:calc(100dvh - 24px);
    border-radius:26px;
    padding:18px;
  }
}


/* ===== Header refinement v7 ===== */
.site-header--refined{
  position:sticky;
  top:0;
  z-index:90;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(232,212,200,.92);
  box-shadow:none;
}
.site-header--refined::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg, rgba(251,180,120,0) 0%, rgba(251,180,120,.42) 30%, rgba(251,180,120,.42) 70%, rgba(251,180,120,0) 100%);
  opacity:.55;
}
body.is-scrolled .site-header--refined{
  background:rgba(255,255,255,.985);
  box-shadow:0 10px 28px rgba(180,95,45,.08);
}
.site-header--refined .header-topline{
  border-bottom:1px solid rgba(235,220,208,.9);
  background:linear-gradient(180deg,#fffaf4 0%, #fff8f0 100%);
}
.site-header--refined .header-topline__inner{
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.site-header--refined .header-topline__inner p{
  margin:0;
  color:#8a7568;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
}
.site-header--refined .header-phone{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#8a4a20;
  font-size:.88rem;
  font-weight:800;
}
.site-header--refined .header-phone::before{
  content:"TEL";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:24px;
  padding:0 8px;
  border-radius:999px;
  background:#fff0e6;
  color:#9a5d32;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.08em;
}
.site-header--refined .header-shell{
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.site-header--refined .site-brand{
  gap:14px;
  flex:0 0 auto;
}
.site-header--refined .site-brand__badge{
  width:54px;
  height:54px;
  min-width:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  background:linear-gradient(180deg,#fb923c 0%, #ea580c 100%);
  color:#fff;
  font-size:.92rem;
  font-weight:800;
  letter-spacing:.08em;
  box-shadow:0 10px 22px rgba(180,95,45,.15);
}
.site-header--refined .site-brand__text{
  display:grid;
  gap:4px;
  line-height:1.2;
}
.site-header--refined .site-brand__text strong{
  font-size:1.02rem;
  color:#5c3d2e;
}
.site-header--refined .site-brand__text small{
  font-size:.74rem;
  color:var(--muted-soft);
}
.site-header--refined .header-desktop-nav{
  display:none;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  min-width:0;
  flex:1 1 auto;
}
.site-header--refined .header-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
.site-header--refined .header-nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 14px;
  border-radius:999px;
  color:#6b5548;
  font-size:.83rem;
  font-weight:700;
  border:1px solid transparent;
  background:transparent;
  transition:background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.site-header--refined .header-nav a:hover,
.site-header--refined .header-nav a:focus-visible,
.site-header--refined .header-nav a.is-current{
  color:#8a4a20;
  background:#fff6ed;
  border-color:#e8d4c4;
  transform:translateY(-1px);
}
.site-header--refined .header-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex:0 0 auto;
}
.site-header--refined .header-entry{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:58px;
  min-width:200px;
  padding:0 24px;
  border-radius:999px;
  background:linear-gradient(180deg,#fb923c 0%, #ea580c 100%);
  color:#fff;
  font-weight:800;
  letter-spacing:.06em;
  box-shadow:0 12px 26px rgba(180,95,45,.16);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease, background .18s ease;
}
.site-header--refined .header-entry:hover,
.site-header--refined .header-entry:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(180,95,45,.18);
  filter:none;
}
.site-header--refined .header-entry__text{
  font-size:1rem;
  white-space:nowrap;
}
.site-header--refined .header-entry__icon{
  position:relative;
  width:20px;
  height:24px;
  border:2px solid #fff;
  border-radius:5px;
  flex-shrink:0;
}
.site-header--refined .header-entry__icon::before{
  content:"";
  position:absolute;
  left:4px;
  right:4px;
  top:5px;
  height:2px;
  background:#fff;
  box-shadow:0 5px 0 #fff, 0 10px 0 #fff;
}
.site-header--refined .header-entry__icon::after{
  content:"";
  position:absolute;
  width:10px;
  height:2px;
  right:-3px;
  bottom:2px;
  background:#fff;
  border-radius:999px;
  transform:rotate(-42deg);
}
.site-header--refined .header-entry--desktop{
  min-width:142px;
  min-height:46px;
  padding:0 20px;
  gap:0;
  font-size:.9rem;
  letter-spacing:.08em;
}
.site-header--refined .header-entry--desktop::after{
  content:"→";
  margin-left:8px;
  font-size:.94rem;
}
.site-header--refined .menu-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  min-height:0;
  padding:0;
  border:none;
  border-radius:50%;
  background:linear-gradient(180deg,#fb923c 0%, #c2410c 100%);
  color:#fff;
  box-shadow:0 12px 26px rgba(180,95,45,.16);
  position:relative;
}
.site-header--refined .menu-toggle span{
  position:absolute;
  width:22px;
  height:2.5px;
  border-radius:999px;
  background:#fff;
  transition:transform .24s ease, opacity .24s ease;
}
.site-header--refined .menu-toggle span:nth-child(1){transform:translateY(-7px)}
.site-header--refined .menu-toggle span:nth-child(2){transform:none}
.site-header--refined .menu-toggle span:nth-child(3){transform:translateY(7px)}
body.menu-open .site-header--refined .menu-toggle span:nth-child(1){transform:rotate(45deg)}
body.menu-open .site-header--refined .menu-toggle span:nth-child(2){opacity:0}
body.menu-open .site-header--refined .menu-toggle span:nth-child(3){transform:rotate(-45deg)}
.site-header--refined .global-nav{
  position:fixed;
  inset:0;
  display:flex;
  justify-content:flex-end;
  padding:18px;
  background:rgba(60,35,22,.28);
  backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease, visibility .22s ease;
}
body.menu-open .site-header--refined .global-nav{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.site-header--refined .global-nav__panel{
  width:min(430px, 100%);
  height:min(100%, 760px);
  overflow:auto;
  border-radius:28px;
  background:linear-gradient(180deg,#ffffff 0%, #fffbf5 100%);
  border:1px solid #ead8ca;
  padding:20px;
  box-shadow:0 24px 70px rgba(120,55,28,.16);
  transform:translateY(18px);
  transition:transform .24s ease;
}
body.menu-open .site-header--refined .global-nav__panel{transform:none}
.site-header--refined .global-nav__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.site-header--refined .global-nav__label{
  margin:0;
  color:#976b4f;
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.14em;
}
.site-header--refined .global-nav__sub{
  margin:6px 0 0;
  color:#8a7568;
  font-size:.85rem;
}
.site-header--refined .global-nav__close{
  width:42px;
  height:42px;
  border:none;
  border-radius:50%;
  background:#fff2e8;
  color:#8a4a20;
  font-size:1.55rem;
  line-height:1;
}
.site-header--refined .global-nav__links{
  display:grid;
  gap:8px;
}
.site-header--refined .global-nav a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:54px;
  padding:0 16px;
  border-radius:16px;
  background:#fff;
  border:1px solid var(--warm-border);
  color:#6b5548;
  font-size:.94rem;
  font-weight:700;
  transform:none;
  box-shadow:none;
}
.site-header--refined .global-nav a::before{display:none}
.site-header--refined .global-nav a::after{
  content:"›";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:#fff0e6;
  color:#8a4a20;
  font-size:1rem;
}
.site-header--refined .global-nav a:hover,
.site-header--refined .global-nav a:focus-visible,
.site-header--refined .global-nav a.is-current{
  color:#8a4a20;
  background:#fff6ed;
  border-color:#e8ccb6;
}
.site-header--refined .global-nav__subactions{
  display:grid;
  gap:10px;
  margin-top:18px;
}
.site-header--refined .nav-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  border-radius:16px;
  font-weight:800;
  letter-spacing:.03em;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.site-header--refined .nav-action:hover,
.site-header--refined .nav-action:focus-visible{transform:translateY(-1px)}
.site-header--refined .nav-action--tel{
  background:#fff;
  color:#8a4a20;
  border:1px solid #e8d4c8;
}
.site-header--refined .nav-action--ghost{
  background:#fff5eb;
  color:#8a4a20;
  border:1px solid #e8d4c8;
}
.site-header--refined .nav-action--entry{
  background:linear-gradient(180deg,#fb923c 0%, #ea580c 100%);
  color:#fff;
  box-shadow:0 12px 26px rgba(180,95,45,.16);
}
@media (min-width: 1180px){
  .site-header--refined .header-desktop-nav{display:flex}
  .site-header--refined .header-actions{display:none}
  .site-header--refined .global-nav{display:none}
}
@media (max-width: 1179px){
  .site-header--refined .header-topline__inner p{font-size:.72rem}
  .site-header--refined .site-brand__text small{display:none}
}
@media (max-width: 900px){
  .site-header--refined .header-topline{display:none}
  .site-header--refined .header-shell{min-height:78px; gap:14px}
  .site-header--refined .site-brand__badge{width:46px; height:46px; min-width:46px; border-radius:14px; font-size:.82rem}
  .site-header--refined .site-brand__text strong{font-size:.92rem}
  .site-header--refined .header-entry{min-width:170px; min-height:52px; padding:0 20px}
  .site-header--refined .header-entry__text{font-size:.94rem}
  .site-header--refined .menu-toggle{width:52px; height:52px}
}
@media (max-width: 680px){
  .site-header--refined .header-shell{gap:10px}
  .site-header--refined .site-brand{min-width:0; gap:10px}
  .site-header--refined .site-brand__badge{width:40px; height:40px; min-width:40px; border-radius:12px; font-size:.72rem}
  .site-header--refined .site-brand__text strong{font-size:.84rem}
  .site-header--refined .header-entry{min-width:0; flex:1 1 auto; padding:0 18px}
  .site-header--refined .header-entry__icon{width:18px; height:22px}
  .site-header--refined .menu-toggle{width:48px; height:48px; flex:0 0 48px}
  .site-header--refined .menu-toggle span{width:20px}
  .site-header--refined .global-nav{padding:12px}
  .site-header--refined .global-nav__panel{width:100%; min-height:calc(100dvh - 24px); border-radius:22px; padding:16px}
}


/* ===== v8 headerless refinement ===== */
body.is-leaving .site-top,
body.page-ready .site-top{transition:opacity .36s ease}
body.is-leaving .site-top{opacity:0}
body.page-ready .site-top{animation:none}
.site-top{animation:none !important; transform:none !important}

.site-top{
  position:absolute;
  inset:0 0 auto 0;
  z-index:70;
  padding:20px 0 0;
  pointer-events:none;
  background:transparent;
}
.site-top__inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  pointer-events:auto;
  padding-right:max(8px, calc(56px + env(safe-area-inset-right)));
}
.site-top__actions{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.top-phone,
.top-entry{
  display:none !important;
}
.top-phone,
.top-entry,
.site-top .menu-toggle{
  min-height:48px;
  border-radius:999px;
  box-shadow:0 14px 30px rgba(180,95,45,.12);
}
.top-phone{
  align-items:center;
  justify-content:center;
  padding:0 22px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(232,214,200,.95);
  color:var(--blue-deep);
  font-family:"Montserrat",sans-serif;
  font-weight:700;
  letter-spacing:.03em;
}
.top-phone::before{
  content:"";
  width:18px;
  height:18px;
  margin-right:10px;
  border-radius:50%;
  background:radial-gradient(circle at 45% 35%, #ffedd5 0, #fb923c 68%, #7c2d12 100%);
  box-shadow:0 0 0 5px rgba(255,255,255,.72);
}
.top-entry{
  align-items:center;
  justify-content:center;
  min-width:176px;
  padding:0 24px;
  background:linear-gradient(135deg,#fb923c,#9a3412);
  color:#fff;
  font-weight:800;
  letter-spacing:.04em;
}
.site-top .menu-toggle:hover{transform:translateY(-2px)}
.site-top .menu-toggle{
  position:fixed;
  top:max(16px, env(safe-area-inset-top));
  right:max(16px, env(safe-area-inset-right));
  z-index:110;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  padding:0;
  margin:0;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(232,214,200,.95);
  box-shadow:0 14px 34px rgba(180,95,45,.14);
}
.site-top .menu-toggle span{
  position:absolute;
  width:18px;
  height:2.5px;
  border-radius:999px;
  background:var(--blue-deep);
  transition:transform .22s ease, opacity .22s ease;
}
.site-top .menu-toggle span:nth-child(1){transform:translateY(-7px)}
.site-top .menu-toggle span:nth-child(2){transform:none}
.site-top .menu-toggle span:nth-child(3){transform:translateY(7px)}
body.menu-open .site-top .menu-toggle span:nth-child(1){transform:rotate(45deg)}
body.menu-open .site-top .menu-toggle span:nth-child(2){opacity:0}
body.menu-open .site-top .menu-toggle span:nth-child(3){transform:rotate(-45deg)}

.site-brand{
  align-items:center;
  gap:14px;
  max-width:430px;
}
.site-brand__badge{
  width:74px;
  min-width:74px;
  height:74px;
  border-radius:24px;
  background:#fff url('assets/site-logo.png') center/contain no-repeat;
  background-size:88% 88%;
  border:1px solid rgba(232,214,200,.95);
  box-shadow:0 18px 34px rgba(180,95,45,.14);
}
.site-brand__text{
  display:grid;
  gap:4px;
  line-height:1.18;
}
.site-brand__text small{
  display:inline-flex;
  align-items:center;
  width:fit-content;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(232,214,200,.9);
  box-shadow:0 10px 24px rgba(180,95,45,.08);
  font-size:.72rem;
  color:#8f6d58;
  letter-spacing:.14em;
  font-weight:800;
}
.site-brand__text strong{
  display:block;
  font-size:1rem;
  font-weight:800;
  line-height:1.35;
  color:var(--text-strong);
  text-shadow:none;
}
.site-top .site-brand__text strong{
  font-family:"Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif;
  font-size:1.26rem;
  font-weight:900;
  letter-spacing:.04em;
  line-height:1.24;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  -webkit-text-fill-color:transparent;
  background:linear-gradient(135deg, #1a0f09 0%, #52301f 48%, #a85612 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:0 3px 16px rgba(45,28,18,.14);
}

body.has-hero .site-brand__text strong{
  color:#fffaf4;
  text-rendering:optimizeLegibility;
  text-shadow:
    0 2px 14px rgba(24,14,10,.42),
    0 1px 4px rgba(34,22,16,.38);
}
body.has-hero .site-top .site-brand__text strong{
  background:none;
  color:#fffaf4;
  -webkit-text-fill-color:#fffaf4;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  text-shadow:
    0 2px 20px rgba(18,10,8,.5),
    0 1px 6px rgba(34,22,16,.45);
}
.site-brand__mark{
  width:74px;
  height:74px;
  min-width:74px;
  background:#fff url('assets/site-logo.png') center/contain no-repeat;
  background-size:88% 88%;
  border:1px solid rgba(232,214,200,.95);
  filter:drop-shadow(0 14px 28px rgba(180,95,45,.14));
}
.site-brand__mark span{display:none}

.hero{padding:calc(var(--site-header-h) + 32px) 0 52px; min-height:min(100svh, 1020px)}
.hero__inner{gap:44px; align-items:center}
.hero__copy h1{
  margin:0 0 18px;
  font-size:clamp(2.3rem, 4.6vw, 3.9rem);
  line-height:1.1;
  font-family:"Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif;
  font-weight:800;
  letter-spacing:.03em;
  color:#fffaf4;
  text-shadow:
    0 1px 0 rgba(255,255,255,.18),
    0 3px 8px rgba(27,15,10,.38),
    0 18px 46px rgba(0,0,0,.42);
}
.hero__copy .lead{color:rgba(255,255,255,.93)}
.hero__buttons{margin-top:26px}
.label-chip{box-shadow:0 12px 26px rgba(180,95,45,.08)}
.hero-note{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:28px;
}
.hero-note__item{
  padding:18px 18px 16px;
  border-radius:24px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(232,216,204,.94);
  box-shadow:0 14px 34px rgba(180,95,45,.08);
}
.hero-note__item strong{display:block; margin-bottom:6px; color:var(--blue-deep); font-size:1rem}
.hero-note__item span{display:block; color:#7d6758; font-size:.88rem; line-height:1.65}

.page-nav{
  position:relative;
  z-index:2;
  margin-top:12px;
  padding:0 0 18px;
}
body.has-hero .page-nav{
  margin-top:12px;
  padding-bottom:24px;
}
body.has-hero main > .page-nav + .section{
  margin-top:0;
  padding-top:20px;
}
body.has-hero main > .section.bg-soft + .section.section--tight{
  margin-top:-22px;
  padding-top:52px;
}
body.has-hero main > .section + .section.bg-soft{
  margin-top:-16px;
  padding-top:84px;
}
body.has-hero main > .section.bg-soft + .section.section--tour{
  margin-top:-24px;
  padding-top:64px;
}
body.has-hero main > .section + .section.bg-soft.section--voice-home{
  margin-top:-28px;
  padding-top:70px;
}
body.has-hero main > .section.bg-cream + .section.section--jobs-home{
  margin-top:-18px;
  padding-top:78px;
}
body.has-hero main > .section#charm + .section.bg-cream{
  margin-top:-20px;
  padding-top:82px;
}
body.has-hero main > .section + .section#charm{
  margin-top:-22px;
  padding-top:76px;
}
.page-nav__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:16px 24px;
  padding:22px 30px;
  border-radius:30px;
  border:2px solid rgba(221,172,136,.7);
  background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,246,237,.95) 100%);
  box-shadow:0 22px 52px rgba(180,95,45,.16);
  backdrop-filter:blur(10px);
}
.page-nav__inner a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  color:#634d3f;
  font-weight:800;
  font-size:.93rem;
  padding:2px 0;
  transition:color .2s ease, transform .2s ease;
}
.page-nav__inner a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;
  width:100%;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,#fb923c,#ea9c3d);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .22s ease;
}
.page-nav__inner a:hover,
.page-nav__inner a.is-current{
  color:#9a3412;
  transform:translateY(-2px);
}
.page-nav__inner a:hover::after,
.page-nav__inner a.is-current::after{transform:scaleX(1)}

.page-hero{padding:152px 0 54px}
.page-hero__inner{gap:38px}
.page-hero__visual{padding:14px; border-radius:30px}
.page-hero__visual img{border-radius:22px}

.floating-cta{
  right:max(12px, env(safe-area-inset-right, 0px));
  bottom:max(12px, env(safe-area-inset-bottom, 0px));
  gap:6px;
  padding:7px;
  border-radius:999px;
  box-shadow:0 16px 36px rgba(180,95,45,.15);
}
.floating-cta a{min-height:44px; padding:0 14px; font-size:.84rem}
.floating-cta__tel{background:#fff; border:1px solid #e1edf6}
.floating-cta__entry{box-shadow:none}

.global-nav{
  position:fixed;
  inset:0;
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  padding:24px 18px 18px;
  background:rgba(27,49,68,.18);
  z-index:120;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease, visibility .22s ease;
}
body.menu-open .global-nav{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.global-nav__panel{
  width:min(430px, 100%);
  min-height:calc(100dvh - 42px);
  padding:24px;
  border-radius:32px;
  background:linear-gradient(180deg,#ffffff 0%, #fffbf5 100%);
  box-shadow:0 28px 80px rgba(120,55,28,.18);
  transform:translateX(24px);
  transition:transform .28s cubic-bezier(.22,1,.36,1);
}
body.menu-open .global-nav__panel{transform:none}
.global-nav__head{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:18px}
.global-nav__label{margin:0; font-size:.8rem; letter-spacing:.16em; color:#9c755d; font-weight:800}
.global-nav__sub{margin:6px 0 0; color:#8d7565; font-size:.92rem}
.global-nav__close{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--warm-border); background:#fff; color:var(--blue-deep); font-size:1.8rem; line-height:1;
}
.global-nav__links{display:grid; gap:8px}
.global-nav__links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:54px;
  padding:0 18px;
  border-radius:20px;
  background:#fff;
  border:1px solid var(--warm-border);
  color:#6f5a4c;
  font-weight:700;
}
.global-nav__links a::after{content:"›"; color:#a07f68; font-size:1.2rem}
.global-nav__links a:hover,
.global-nav__links a.is-current{color:var(--blue-deep); border-color:#e7c8b0; background:var(--warm-surface)}
.global-nav__links a::before{display:none}
.global-nav__subactions{display:grid; gap:10px; margin-top:18px}
.nav-action{display:inline-flex; align-items:center; justify-content:center; min-height:52px; border-radius:18px; font-weight:800}
.nav-action--tel{background:#fff; border:1px solid var(--warm-border); color:var(--blue-deep)}
.nav-action--ghost{background:#fff5eb; color:#8a4a20}
.nav-action--entry{background:linear-gradient(135deg,#fb923c,#c2410c); color:#fff}

.section-title__en{font-size:.74rem; padding:9px 16px}
.section-title{margin-bottom:36px}
.charm-card,.data-card,.simple-card,.job-card,.voice-card,.step-card,.tour-card,.clinic-card,.faq-item,.entry-card,.message-card,.side-visual{
  box-shadow:0 12px 28px rgba(180,95,45,.07);
}
.btn{min-height:56px; min-width:192px; padding:14px 28px}
.btn::after{width:26px; height:26px}
.btn--primary{box-shadow:0 14px 28px rgba(180,95,45,.18)}
.btn:hover{box-shadow:0 16px 30px rgba(180,95,45,.14)}

@media (max-width:1100px){
  .site-top{padding-top:14px}
  .site-brand{max-width:calc(100% - 88px)}
  .site-brand__badge{width:64px; min-width:64px; height:64px; border-radius:20px}
  .site-brand__text strong{font-size:.92rem}
  .site-top .site-brand__text strong{font-size:1.16rem}
  .hero{padding:calc(var(--site-header-h) + 24px) 0 48px}
  .hero-note{grid-template-columns:1fr}
  .page-nav__inner{justify-content:flex-start; overflow:auto; flex-wrap:nowrap; padding:16px 22px}
  .page-nav__inner::-webkit-scrollbar{display:none}
}
@media (max-width:760px){
  .appeal-list{gap:18px}
  .appeal-item{border-radius:22px}
  .appeal-item__media{min-height:214px}
  .appeal-item__body{padding:24px 18px 20px}
  .appeal-item__body::before{inset:10px; border-radius:16px}
  .appeal-item__index{font-size:2rem; margin-bottom:8px}
  .appeal-item h3{font-size:1.08rem; margin-bottom:8px}
  .appeal-item p{font-size:.95rem; line-height:1.86}
  .appeal-list--top .appeal-item__media{min-height:198px}
  .charm-section__title .lead{margin-top:14px}
}
@media (max-width:760px){
  .site-top__inner{align-items:center}
  .site-brand{max-width:calc(100% - 122px); gap:10px}
  .site-brand__badge{width:54px; min-width:54px; height:54px; border-radius:18px}
  .site-brand__text small{display:none}
  .site-brand__text strong{font-size:.82rem; line-height:1.3}
  .site-top .site-brand__text strong{font-size:1.06rem; letter-spacing:.04em}
  .top-phone{display:none}
  .top-entry{display:none}
  .site-top .menu-toggle{width:52px; height:52px}
  .hero{padding:calc(var(--site-header-h) + 12px) 0 28px; min-height:min(88svh, 900px)}
  .hero__copy h1{font-size:clamp(2.05rem, 9vw, 2.85rem)}
  .page-hero{padding-top:124px}
  .page-hero__visual{order:-1}
  .page-nav{padding-bottom:8px}
  .page-nav__inner{gap:12px 18px; padding:14px 16px}
  .page-nav__inner a{font-size:.86rem}
  .floating-cta{
    left:0;
    right:0;
    bottom:max(8px, env(safe-area-inset-bottom, 0px));
    margin-inline:auto;
    width:fit-content;
    max-width:calc(100% - 16px);
    justify-content:center;
    gap:6px;
    padding:6px 8px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .floating-cta::-webkit-scrollbar{display:none}
  .floating-cta a{flex:0 0 auto; padding:0 10px; min-width:0}
}


.page-hero__visual img{width:100%; height:100%; object-fit:cover; min-height:320px;}
.panel-visual__frame img,.side-visual__frame img,.voice-panel__media img,.voice-card__media img,.job-card__media img{object-fit:cover;}
.gallery-grid .panel-visual__frame img{aspect-ratio:4/3; object-fit:cover;}
.notice-box a{font-weight:800; text-decoration:underline;}
.btn,
.top-entry,
.top-phone,
.floating-cta a,
.page-nav__inner a,
.voice-tab,
.global-nav__links a,
.nav-action{
  white-space:nowrap;
  word-break:keep-all;
}
.section-title h1,
.section-title h2,
.hero__copy h1,
.faq-item h3,
.step-card h3,
.job-card h3,
.voice-card h3,
.simple-card h3,
.entry-card h2{
  text-wrap:balance;
}

/* voice page: text-first layout */
.page-voice .page-hero__inner{
  grid-template-columns:1fr;
  gap:0;
}
.page-voice .page-hero{
  padding-bottom:0;
}
.page-voice main > .section.bg-soft:first-of-type{
  padding-top:6px;
}
.page-voice .page-hero__copy{
  max-width:880px;
}
.page-voice .voice-list{
  grid-template-columns:1fr;
  gap:24px;
}
.page-voice .voice-card{
  padding:22px 26px;
}
.page-voice .voice-card h3{
  display:block;
  margin:0 0 14px;
  padding:0;
  border:none;
  background:none;
  color:#3f322a;
  font-size:1.08rem;
  font-weight:700;
  letter-spacing:0;
  line-height:1.6;
  border-bottom:1px solid #eadfd6;
  padding-bottom:8px;
}
.page-voice .voice-card .voice-qa__q{
  margin:14px 0 8px;
  padding-top:14px;
  border-top:1px dashed #ead8ca;
}
.page-voice .voice-card .voice-qa__q:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:none;
}
.page-voice .voice-card .voice-qa__a{
  line-height:1.95;
}

/* ===== v9 mobile image tuning ===== */
.page-hero__visual,
.panel-visual__frame,
.side-visual__frame,
.voice-panel__media,
.voice-card__media,
.job-card__media,
.appeal-item__media{
  overflow:hidden;
}

@media (max-width:1024px){
  .hero__inner,
  .feature-split,
  .page-hero__inner,
  .jobs-layout,
  .tour-layout,
  .clinic-layout,
  .entry-layout{
    gap:24px;
  }
  .appeal-item,
  .appeal-item--reverse{
    grid-template-columns:1fr;
  }
  .appeal-item__media,
  .appeal-item--reverse .appeal-item__media{
    order:1;
    min-height:240px;
  }
  .appeal-item__body,
  .appeal-item--reverse .appeal-item__body{
    order:2;
    padding:22px 20px 20px;
  }
}

@media (max-width:900px){
  .hero{
    padding:calc(var(--site-header-h) + 18px) 0 40px;
  }
  .page-hero{
    padding-top:120px;
    padding-bottom:42px;
  }
  .page-hero__inner{
    gap:18px;
  }
  .page-hero__visual{
    order:-1;
    padding:10px;
    border-radius:24px;
    aspect-ratio:16/11;
  }
  .page-hero__visual img{
    min-height:0;
    border-radius:18px;
  }
  .panel-visual__frame,
  .side-visual__frame,
  .voice-panel__media,
  .voice-card__media,
  .job-card__media{
    aspect-ratio:4/3;
  }
  .panel-visual,
  .side-visual{
    padding:12px;
  }
  .panel-copy,
  .message-card,
  .entry-card{
    padding:24px;
  }
  .voice-panel{
    gap:16px;
    padding:14px;
  }
  .gallery-grid{
    gap:14px;
  }
  .page-voice .voice-card{
    padding:18px 16px;
  }
  .page-voice main > .section.bg-soft:first-of-type{
    padding-top:0;
  }
}

@media (max-width:760px){
  .hero-note__item{
    padding:16px;
  }
  .page-nav__inner{
    scroll-snap-type:x proximity;
  }
  .page-nav__inner a{
    scroll-snap-align:start;
    font-size:.82rem;
  }
  .appeal-item__media,
  .appeal-item--reverse .appeal-item__media{
    min-height:0;
    aspect-ratio:4/3;
  }
  .appeal-item__body,
  .appeal-item--reverse .appeal-item__body{
    padding:22px 18px 18px;
  }
  .voice-card,
  .job-card{
    padding:14px;
  }
  .floating-cta__tel{
    display:none;
  }
  .floating-cta a{
    font-size:.8rem;
    letter-spacing:0;
  }
  .global-nav__links a,
  .nav-action{
    font-size:.9rem;
  }
}

@media (max-width:560px){
  .site-top{
    padding-top:12px;
  }
  .site-brand{
    max-width:calc(100% - 80px);
  }
  .hero{
    padding:calc(var(--site-header-h) + 6px) 0 22px;
    min-height:min(85svh, 820px);
  }
  .hero__copy .lead,
  .page-hero__copy p{
    font-size:.95rem;
  }
  .section-title h1,
  .section-title h2,
  .hero__copy h1{
    line-height:1.24;
  }
  .section-title--entry-cta h2{
    line-height:1.42;
  }
  .page-hero__visual{
    padding:8px;
    border-radius:20px;
    aspect-ratio:4/3;
  }
  .page-hero__visual img{
    border-radius:16px;
  }
  .panel-visual,
  .side-visual{
    padding:10px;
  }
  .panel-copy,
  .message-card,
  .entry-card,
  .simple-card,
  .bar-card{
    padding:20px;
  }
  .voice-panel,
  .voice-card,
  .job-card,
  .tour-card,
  .clinic-card,
  .step-card{
    padding:14px;
  }
  .appeal-item__media,
  .appeal-item--reverse .appeal-item__media{
    aspect-ratio:5/4;
  }
  .bar-row{
    grid-template-columns:1fr;
    gap:8px;
  }
  .bar-row .value{
    text-align:left;
  }
  .card-actions{
    gap:10px;
  }
  .floating-cta{
    padding:5px 6px;
    gap:4px;
  }
  .floating-cta a{
    min-height:40px;
    font-size:.74rem;
    padding:0 8px;
  }
  .page-nav__inner a{
    font-size:.78rem;
  }
  .footer-contact__tel{
    font-size:clamp(1.35rem, 7vw, 1.7rem);
  }
  .footer-contact__buttons .btn,
  .card-actions .btn{
    font-size:.92rem;
    padding-inline:20px;
  }
  .faq-item h3,
  .step-card h3,
  .job-card h3,
  .voice-card h3,
  .simple-card h3,
  .entry-card h2{
    font-size:1rem;
    line-height:1.45;
  }
}
