*{box-sizing:border-box;margin:0;padding:0}
:root{--black:#26221d;--white:#fafaf8;--orange:#9E1F28;--orange-soft:#B54047;--gold:#B08A57;--gray:#888;--light:#f2f0eb;}
body{font-family:"Noto Sans JP",sans-serif;color:var(--black);background:var(--white);overflow-x:hidden}
a{color:inherit;text-decoration:none}
.nav{position:sticky;top:0;z-index:100;background:rgba(252,251,248,0.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,0.08);padding:0 3rem;height:78px;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:16px;min-width:260px}
.nav-logo-mark{display:none}
.nav-logo-img{height:44px;width:auto;display:block}
.nav-logo-text{font-family:"Noto Serif JP",serif;font-size:16px;font-weight:700;letter-spacing:0.08em}
.nav-logo-sub{font-size:9px;color:var(--gray);letter-spacing:0.15em;text-transform:uppercase;margin-top:2px}
.nav-links{display:flex;gap:2.2rem;list-style:none;align-items:center}
.nav-links a{font-size:12px;color:#3a3a3a;text-decoration:none;letter-spacing:0.04em;display:flex;flex-direction:column;gap:3px;line-height:1.2}.nav-links a span{font-size:9px;color:#8b8b8b;letter-spacing:0.14em;text-transform:uppercase}
.nav-right{display:flex;align-items:center;gap:1.25rem}
.nav-tel-label{font-size:9px;color:var(--gray);letter-spacing:0.14em;display:block;text-transform:uppercase}
.nav-tel-num{font-size:16px;font-weight:700;letter-spacing:0.04em}
.nav-cta{background:var(--black);color:var(--white);font-size:11px;font-weight:600;padding:12px 22px;border:none;cursor:pointer;letter-spacing:0.12em;box-shadow:0 10px 20px rgba(0,0,0,0.08)}
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:640px;overflow:hidden}
.hero-img-col{position:relative;overflow:hidden}
.hero-img-col img{width:100%;height:100%;object-fit:cover;object-position:center top}
.hero-img-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(10,10,10,0) 55%,rgba(250,250,248,1) 100%)}
.hero-text-col{background:var(--white);display:flex;flex-direction:column;justify-content:center;padding:4rem 3.5rem 4rem 2rem}
.hero-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:2rem}
.hero-eyebrow-line{width:32px;height:1px;background:var(--orange)}
.hero-eyebrow-text{font-size:10px;color:var(--orange);letter-spacing:0.2em;text-transform:uppercase;font-weight:600}
.hero-motto-label{font-size:10px;color:var(--gray);letter-spacing:0.15em;margin-bottom:0.75rem}
.hero-motto{font-family:"Noto Serif JP",serif;font-size:14px;color:#333;line-height:2.2;letter-spacing:0.08em;border-left:2px solid var(--orange);padding-left:1.25rem;margin-bottom:2.5rem}
.hero-h1{font-family:"Noto Serif JP",serif;font-size:40px;font-weight:900;color:var(--black);line-height:1.4;margin-bottom:1.5rem;letter-spacing:0.02em}
.hero-h1 span{color:var(--orange)}
.hero-name-row{display:flex;align-items:baseline;gap:0.75rem;margin-bottom:2rem}
.hero-company{font-size:11px;color:var(--gray);letter-spacing:0.1em}
.hero-person{font-family:"Noto Serif JP",serif;font-size:20px;font-weight:700;letter-spacing:0.1em}
.hero-btns{display:flex;gap:1rem}
.btn-black{background:var(--black);color:var(--white);font-size:12px;font-weight:600;padding:14px 28px;border:none;cursor:pointer;letter-spacing:0.12em;box-shadow:0 12px 24px rgba(0,0,0,0.10)}
.btn-outline{background:transparent;color:var(--black);font-size:12px;padding:13px 24px;border:1px solid rgba(0,0,0,0.18);cursor:pointer;letter-spacing:0.10em}
.trust-bar{background:var(--black);padding:1.4rem 3rem;display:flex;align-items:center;gap:3rem;flex-wrap:wrap}
.trust-label{font-size:9px;color:rgba(255,255,255,0.4);letter-spacing:0.15em;text-transform:uppercase;white-space:nowrap}
.trust-divider{width:1px;height:24px;background:rgba(255,255,255,0.15);flex-shrink:0}
.trust-logos{display:flex;gap:2.5rem;align-items:center;flex-wrap:wrap}
.trust-logo{font-size:12px;font-weight:700;color:rgba(255,255,255,0.52);letter-spacing:0.12em}
.services{padding:6rem 3rem;background:var(--white)}
.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:3.5rem}
.section-label{font-size:9px;color:var(--orange);letter-spacing:0.24em;text-transform:uppercase;margin-bottom:0.5rem;font-weight:700}
.section-title{font-family:"Noto Serif JP",serif;font-size:32px;font-weight:900;line-height:1.3;letter-spacing:0.04em;color:var(--black)}
.section-sub-right{font-size:13px;color:var(--gray);line-height:1.8;max-width:280px;text-align:right}
.services-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px;background:#e0e0e0}
.svc-card{background:var(--white);cursor:pointer;position:relative;overflow:hidden;border-bottom:3px solid transparent;transition:border-color 0.2s}
.svc-card:hover{border-bottom-color:var(--orange)}
.svc-card-img{width:100%;height:220px;object-fit:cover;display:block}
.svc-card-body{padding:2rem 2rem 2.5rem}
.svc-card-label{font-size:9px;color:var(--orange);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:0.75rem}
.svc-card-title{font-family:"Noto Serif JP",serif;font-size:20px;font-weight:700;color:var(--black);line-height:1.5;margin-bottom:1rem;letter-spacing:0.02em}
.svc-card-line{width:24px;height:2px;background:var(--orange);margin-bottom:1rem}
.svc-card-desc{font-size:12px;color:var(--gray);line-height:2;letter-spacing:0.03em}
.svc-card-link{display:inline-block;margin-top:1.5rem;font-size:10px;color:var(--orange);letter-spacing:0.15em}
.philosophy{padding:7rem 3rem;background:var(--black);position:relative;overflow:hidden}
.philosophy-bg-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:"Noto Serif JP",serif;font-size:200px;font-weight:900;color:rgba(255,255,255,0.02);white-space:nowrap;pointer-events:none;letter-spacing:0.1em}
.philosophy-inner{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;position:relative;z-index:1}
.philosophy-img{overflow:hidden;height:500px}
.philosophy-img img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(15%)}
.philosophy-img img.philosophy-img-position-right{
  transform:scale(1.25) translateX(10%);
  transform-origin:center center;
}
.philosophy-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:2.5rem}
.philosophy-eyebrow-line{width:32px;height:1px;background:var(--orange)}
.philosophy-eyebrow-text{font-size:10px;color:var(--orange);letter-spacing:0.2em;text-transform:uppercase}
.philosophy-quote{font-family:"Noto Serif JP",serif;font-size:32px;font-weight:700;color:var(--white);line-height:1.7;margin-bottom:2.5rem;letter-spacing:0.03em}
.philosophy-quote span{color:var(--orange)}
.philosophy-body{font-size:15px;color:rgba(255,255,255,0.65);line-height:2.6;margin-bottom:3rem;letter-spacing:0.05em}
.philosophy-sig{display:flex;align-items:center;gap:1rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,0.15)}
.philosophy-sig-line{width:28px;height:1px;background:var(--orange)}
.philosophy-sig-text{font-family:"Noto Serif JP",serif;font-size:16px;color:rgba(255,255,255,0.65);letter-spacing:0.12em}
.reasons{padding:8rem 4rem;background:linear-gradient(180deg,#f6f3ee 0%,#f2f0eb 100%);position:relative;overflow:hidden}
.reasons-bg-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:"Noto Serif JP",serif;font-size:210px;font-weight:900;color:rgba(0,0,0,0.028);white-space:nowrap;pointer-events:none;letter-spacing:0.28em;user-select:none}
.reasons-header{text-align:center;margin-bottom:4.25rem;position:relative;z-index:1}
.reasons-header .section-label{color:var(--orange)}
.reasons-header .section-title{color:var(--black);letter-spacing:0.04em}
.reasons-header-line{width:56px;height:1px;background:linear-gradient(90deg,rgba(232,135,58,0.12),var(--orange),rgba(232,135,58,0.12));margin:1.5rem auto 0}
.reasons-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;position:relative;z-index:1}
.reason-card{position:relative;background:linear-gradient(180deg,rgba(255,255,255,0.98) 0%,rgba(252,250,246,0.98) 100%);border:1px solid rgba(0,0,0,0.055);padding:3.6rem 3rem 2.8rem;overflow:hidden;min-height:420px;box-shadow:0 10px 30px rgba(0,0,0,0.035);transition:transform 0.3s ease,border-color 0.3s ease,box-shadow 0.3s ease}
.reason-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,rgba(232,135,58,0.05),rgba(232,135,58,0.65),rgba(232,135,58,0.05))}
.reason-card::after{content:"";position:absolute;inset:14px;border:1px solid rgba(0,0,0,0.03);pointer-events:none}
.reason-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(0,0,0,0.07);border-color:rgba(232,135,58,0.16)}
.reason-num{position:absolute;top:1.9rem;right:2.2rem;font-family:"Noto Serif JP",serif;font-size:72px;font-weight:900;line-height:1;color:rgba(0,0,0,0.045);letter-spacing:0.03em;margin-bottom:0}
.reason-title{position:relative;font-family:"Noto Serif JP",serif;font-size:23px;font-weight:700;color:var(--black);margin:3.25rem 0 1.4rem;line-height:1.7;letter-spacing:0.04em;max-width:78%}
.reason-desc{position:relative;font-size:12.5px;color:#5f5a52;line-height:2.3;letter-spacing:0.045em;max-width:88%}
.reason-accent{color:#3f362d;font-weight:700;border-bottom:1px solid rgba(232,135,58,0.35);padding-bottom:1px}
.reason-tag{display:inline-block;margin-top:2rem;font-size:9px;color:#8d7e6d;letter-spacing:0.28em;text-transform:uppercase;padding-top:0.95rem;border-top:1px solid rgba(0,0,0,0.08)}
.cases{padding:6rem 3rem;background:var(--white)}
.cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#ccc;margin-top:3.5rem}
.case-card{background:var(--white);overflow:hidden}
.case-img{height:200px;background:var(--light);display:flex;align-items:center;justify-content:center;position:relative}
.case-img-ph{font-size:40px;opacity:0.25}
.case-cat{position:absolute;top:12px;left:12px;background:var(--black);color:var(--white);font-size:9px;padding:4px 10px;letter-spacing:0.1em}
.case-body{padding:1.25rem}
.case-title{font-size:14px;font-weight:700;margin-bottom:4px}
.case-meta{font-size:11px;color:var(--gray)}
.cta-section{padding:7rem 3rem;background:var(--black);text-align:center;position:relative;overflow:hidden}
.cta-line{position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:60px;background:var(--orange)}
.cta-eyebrow{font-size:10px;color:var(--orange);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:1.5rem;margin-top:1rem}
.cta-title{font-family:"Noto Serif JP",serif;font-size:32px;font-weight:900;color:var(--white);line-height:1.5;margin-bottom:1rem}
.cta-title span{color:var(--orange)}
.cta-sub{font-size:13px;color:rgba(255,255,255,0.45);margin-bottom:3rem;line-height:1.8}
.cta-btns{display:flex;gap:1rem;justify-content:center;margin-bottom:2.5rem}
.cta-btn-main{background:var(--orange);color:var(--white);font-size:13px;font-weight:700;padding:16px 40px;border:none;cursor:pointer;letter-spacing:0.10em;box-shadow:0 14px 24px rgba(158,31,40,0.22)}
.cta-btn-tel{background:transparent;color:var(--white);font-size:13px;padding:15px 32px;border:1px solid rgba(255,255,255,0.25);cursor:pointer;letter-spacing:0.08em}
.cta-note{font-size:11px;color:rgba(255,255,255,0.25);letter-spacing:0.05em}
.footer{background:#e3dacb;padding:3rem;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem}
.footer-logo-img{width:220px;max-width:100%;height:auto;display:block;margin-bottom:1.15rem;filter:brightness(0) invert(1)}
.footer-logo-text{font-family:"Noto Serif JP",serif;font-size:18px;font-weight:700;color:var(--white);letter-spacing:0.1em;margin-bottom:1rem}
.footer-logo-text span{color:var(--orange)}
.footer-info{font-size:11px;color:rgba(255,255,255,0.25);line-height:2.5}
.footer-col-title{font-size:10px;color:rgba(255,255,255,0.35);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1px solid rgba(255,255,255,0.07)}
.footer-accordion-toggle{
  width:100%;
  border:0;
  background:transparent;
  font:inherit;
  text-align:left;
  cursor:default;
}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:0.75rem}
.footer-links a{font-size:12px;color:rgba(255,255,255,0.28);text-decoration:none}
.footer-copy{background:#d8cdbc;text-align:center;padding:1.25rem;font-size:10px;color:rgba(255,255,255,0.18);letter-spacing:0.1em}

@media (max-width: 900px){
  .reasons{padding:6rem 1.5rem}
  .reasons-bg-text{font-size:120px;letter-spacing:0.16em}
  .reasons-grid{grid-template-columns:1fr;gap:1rem}
  .reason-card{min-height:auto;padding:3rem 2rem 2.4rem}
  .reason-num{font-size:56px;right:1.6rem}
  .reason-title{max-width:100%;margin-top:2.8rem;font-size:21px}
  .reason-desc{max-width:100%}
}


/* ===== v10 full-site premium override ===== */
:root{
  --white:#f8f6f1;
  --light:#f2eee6;
  --mid:#d8cfc1;
  --gray:#746a5d;
  --orange:#b88a4a;
  --orange-deep:#8b6734;
  --black:#111111;
  --shadow-soft:0 24px 60px rgba(17,17,17,0.08);
  --shadow-card:0 18px 40px rgba(17,17,17,0.06);
}
html{scroll-behavior:smooth}
body{
  background:var(--white);
  color:#1a1a1a;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a,button{transition:all .28s ease}
.nav{
  position:sticky;top:0;z-index:50;
  min-height:86px;
  padding:1rem 3rem;
  background:rgba(248,246,241,0.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(139,103,52,0.08);
  box-shadow:0 8px 30px rgba(17,17,17,0.04);
}
.nav-logo-mark{
  background:linear-gradient(180deg,#3a342d 0%,#342f28 100%);
  box-shadow:0 10px 24px rgba(0,0,0,0.18);
}
.nav-logo-text{letter-spacing:.08em}
.nav-logo-sub,.nav-tel-label,.section-label,.reason-en,.svc-card-label,.cta-eyebrow,.footer-col-title{letter-spacing:.22em}
.nav-links a{
  position:relative;
  color:#3e372f;
  font-size:13px;
}
.nav-links a:after{
  content:"";position:absolute;left:0;bottom:-10px;width:0;height:1px;background:var(--orange);
  transition:width .28s ease;
}
.nav-links a:hover{color:var(--black)}
.nav-links a:hover:after{width:100%}
.nav-cta,.btn-black{
  background:linear-gradient(180deg,#3a342d 0%,#342f28 100%);
  border-radius:0;
  box-shadow:0 14px 30px rgba(0,0,0,0.14);
  letter-spacing:.12em;
}
.nav-cta:hover,.btn-black:hover{transform:translateY(-1px);box-shadow:0 18px 34px rgba(0,0,0,0.18)}
.btn-outline{
  border:1px solid rgba(139,103,52,0.28);
  background:rgba(255,255,255,0.38);
  backdrop-filter:blur(8px);
  color:#2c2620;
  letter-spacing:.12em;
}
.btn-outline:hover{background:#fff;border-color:var(--orange)}
.hero{min-height:760px;background:linear-gradient(180deg,#f7f4ee 0%,#f8f6f1 100%)}
.hero-img-col img{filter:saturate(.93) contrast(1.03) brightness(.97)}
.hero-img-overlay{background:linear-gradient(to right,rgba(17,17,17,0.02) 42%,rgba(248,246,241,0.96) 82%,rgba(248,246,241,1) 100%)}
.hero-text-col{padding:5rem 4.5rem 5rem 2.5rem}
.hero-motto{line-height:1.95;color:#2b2925}
.hero-h1{line-height:1.35;letter-spacing:.02em}
.hero-h1 span{color:var(--orange-deep)}
.hero-company,.hero-name-row,.hero-person{letter-spacing:.08em}
.trust-bar{
  background:linear-gradient(180deg,#141414 0%,#342f28 100%);
  border-top:1px solid rgba(255,255,255,0.05);
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.services,.cases{background:linear-gradient(180deg,#f8f6f1 0%,#fbfaf7 100%)}
.section-header{margin-bottom:4rem}
.section-title{font-size:36px;letter-spacing:.05em}
.section-desc{max-width:640px;color:#5f564c;line-height:2}
.svc-grid,.reasons-grid{gap:28px;background:transparent}
.svc-card,.reason-card,.case-card{
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(184,138,74,0.16);
  box-shadow:var(--shadow-card);
}
.svc-card{backdrop-filter:blur(8px)}
.svc-card:hover,.reason-card:hover,.case-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}
.svc-card-img{background:#ede7dd}
.svc-card-body{padding:2rem 1.8rem 1.8rem}
.svc-card-title{font-family:"Noto Serif JP",serif;font-size:22px;letter-spacing:.06em;line-height:1.55}
.svc-card-desc{color:#5e564c;line-height:1.95}
.svc-card-link{color:var(--orange-deep)}
.reasons{
  background:
    radial-gradient(circle at top right,rgba(184,138,74,0.08),transparent 30%),
    linear-gradient(180deg,#f3eee5 0%,#f8f6f1 100%);
}
.reasons-bg-text{color:rgba(184,138,74,0.08)}
.reason-card{
  min-height:520px;
  padding:3.5rem 2.5rem 2.8rem;
  background:linear-gradient(180deg,rgba(255,255,255,.8) 0%,rgba(251,249,245,.94) 100%);
}
.reason-icon{
  width:96px;height:96px;
  border:1px solid rgba(184,138,74,0.35);
  background:linear-gradient(180deg,#fff 0%,#f7f1e8 100%);
  box-shadow:inset 0 0 0 8px rgba(184,138,74,0.04);
}
.reason-title{font-family:"Noto Serif JP",serif;font-size:34px;line-height:1.6;letter-spacing:.06em}
.reason-desc{color:#61584d;line-height:2.05}
.reason-en{color:var(--orange-deep)}
.cases-grid{gap:28px;background:transparent}
.case-card{overflow:hidden}
.case-img{height:230px;background:#ede7dd}
.case-body{padding:1.5rem 1.4rem 1.6rem}
.case-title{font-family:"Noto Serif JP",serif;font-size:17px;line-height:1.65}
.case-meta{color:#6f6558}
.cta-section{background:linear-gradient(180deg,#5a5147 0%,#4a4339 100%)}
.cta-title{font-family:"Noto Serif JP",serif;letter-spacing:.08em}
.contact{
  background:linear-gradient(180deg,#faf8f4 0%,#f4efe7 100%);
}
.footer{background:linear-gradient(180deg,#26221d 0%,#e3dacb 100%)}
.footer-links a:hover{color:rgba(255,255,255,0.74)}
@media (max-width: 900px){
  .nav{padding:1rem 1.2rem;min-height:auto}
  .nav-links,.nav-right{display:none}
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-img-col{height:52vh;min-height:420px}
  .hero-img-overlay{background:linear-gradient(to top,rgba(248,246,241,1) 0%,rgba(248,246,241,.2) 38%,rgba(17,17,17,.06) 100%)}
  .hero-text-col{padding:2.25rem 1.3rem 3rem}
  .hero-motto{font-size:13px}
  .hero-h1{font-size:34px}
  .trust-bar,.services,.cases,.cta-section,.contact,.footer{padding-left:1.2rem;padding-right:1.2rem}
  .section-header{display:block;margin-bottom:2.4rem}
  .section-title{font-size:28px;line-height:1.5}
  .svc-grid,.cases-grid,.footer{grid-template-columns:1fr}
  .case-img{height:200px}
  .reason-card{padding:2.6rem 1.5rem 2.1rem}
  .reason-icon{width:84px;height:84px}
  .reason-title{font-size:27px}
}

/* ===== v12 restrained refinement: keep existing assets/copy, improve UI only ===== */
:root{
  --premium-paper:#f7f3ec;
  --premium-paper-deep:#eee6da;
  --premium-ink:#342f28;
  --premium-rust:#7f3027;
  --premium-gold:#9a7544;
  --premium-line:rgba(154,117,68,.22);
}
body{
  background:var(--premium-paper);
  color:var(--premium-ink);
  line-height:1.95;
  letter-spacing:.035em;
}
.nav{
  height:88px;
  padding:0 clamp(1.4rem,4vw,4.5rem);
  background:rgba(247,243,236,.94);
  border-bottom:1px solid rgba(154,117,68,.16);
  box-shadow:none;
}
.nav-logo{min-width:230px;gap:18px}
.nav-logo-img{height:42px}
.nav-links{gap:clamp(1.1rem,2.2vw,2.6rem)}
.nav-links a{
  color:#2e2923;
  font-size:12px;
  letter-spacing:.08em;
}
.nav-links a span{
  color:#8b7d6c;
  letter-spacing:.18em;
}
.nav-right{gap:1.45rem}
.nav-tel-num{font-size:17px;color:#1b1814}
.nav-cta,.btn-black,.cta-btn-main{
  background:#342f28;
  color:#fffaf2;
  border:1px solid #342f28;
  border-radius:0;
  box-shadow:none;
}
.nav-cta{padding:13px 24px}
.nav-cta:hover,.btn-black:hover,.cta-btn-main:hover{
  background:#1d1a16;
  transform:translateY(-1px);
}
.btn-outline,.cta-btn-tel{
  border:1px solid rgba(17,16,14,.26);
  background:rgba(255,253,249,.52);
  color:#17130f;
  box-shadow:none;
}
.btn-outline:hover,.cta-btn-tel:hover{
  border-color:var(--premium-gold);
  background:#fffdf9;
}
.hero{
  min-height:760px;
  background:
    linear-gradient(180deg,#f7f3ec 0%,#f4eee4 100%);
}
.hero-img-col{background:#111}
.hero-img-col img{
  filter:saturate(.86) contrast(1.04) brightness(.95);
  transform:scale(1.002);
}
.hero-img-col img.hero-img-position-left{
  width:108%;
  max-width:none;
  margin-left:-6%;
  object-position:center center;
}
.hero-img-overlay{
  background:
    linear-gradient(to right,rgba(17,16,14,.10) 0%,rgba(17,16,14,.02) 42%,rgba(247,243,236,.92) 82%,#f7f3ec 100%);
}
.hero-text-col{
  padding:clamp(3.2rem,7vw,6rem) clamp(2rem,5vw,5.4rem) clamp(3.5rem,7vw,6rem) clamp(1.8rem,4vw,3rem);
}
.hero-eyebrow{margin-bottom:2.4rem}
.hero-eyebrow-line{background:var(--premium-rust)}
.hero-eyebrow-text{
  color:var(--premium-rust);
  letter-spacing:.24em;
}
.hero-motto-label{
  color:#8a7d6d;
  letter-spacing:.18em;
}
.hero-motto{
  border-left:1px solid var(--premium-rust);
  padding-left:1.4rem;
  color:#2f2a24;
  line-height:2.35;
  margin-bottom:2.8rem;
}
.hero-h1{
  font-size:clamp(38px,4.4vw,58px);
  line-height:1.38;
  letter-spacing:.055em;
  margin-bottom:1.8rem;
}
.hero-h1 span{color:var(--premium-rust)}
.hero-name-row{margin-bottom:2.4rem}
.hero-company{color:#7e7467}
.hero-person{font-size:21px}
.hero-btns{gap:.8rem}
.hero-btns a,.hero-btns button{
  min-height:52px;
  padding:0 28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.trust-bar{
  padding:1.55rem clamp(1.4rem,4vw,4rem);
  background:#ece3d5;
  gap:2.3rem;
}
.trust-label{
  color:rgba(255,255,255,.42);
  letter-spacing:.2em;
}
.trust-divider{background:rgba(154,117,68,.38)}
.trust-logos{gap:clamp(1.4rem,3vw,2.8rem)}
.services,.cases{
  padding:clamp(5rem,8vw,7.5rem) clamp(1.4rem,4vw,4rem);
  background:#fffdf9;
}
.section-header{
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:clamp(2.8rem,5vw,4.4rem);
}
.section-label{
  color:var(--premium-rust);
  letter-spacing:.26em;
}
.section-title{
  font-size:clamp(30px,4vw,44px);
  line-height:1.45;
  font-weight:900;
  letter-spacing:.065em;
}
.section-sub-right,.section-desc{
  color:#6e6357;
  line-height:2.1;
}
.services-grid,.cases-grid,.reasons-grid{
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  gap:28px;
  background:transparent;
}
.svc-card,.case-card{
  border:1px solid var(--premium-line);
  background:#fffdf9;
  box-shadow:none;
  transition:transform .28s ease,border-color .28s ease,background .28s ease;
}
.svc-card:hover,.case-card:hover{
  transform:translateY(-3px);
  border-color:rgba(127,48,39,.34);
  background:#fffaf4;
}
.svc-card-img{
  height:236px;
  filter:saturate(.88) contrast(1.02);
}
.svc-card-body{padding:2.2rem 2rem 2.35rem}
.svc-card-label{color:var(--premium-gold)}
.svc-card-title{
  font-size:22px;
  line-height:1.65;
  letter-spacing:.06em;
}
.svc-card-line{
  width:34px;
  height:1px;
  background:var(--premium-rust);
}
.svc-card-desc{
  color:#645a4f;
  line-height:2.1;
}
.philosophy{
  padding:clamp(5.6rem,9vw,8rem) clamp(1.4rem,4vw,4rem);
  background:#f2eadc;
}
.philosophy-inner{
  max-width:1180px;
  margin:auto;
  gap:clamp(3rem,7vw,6rem);
}
.philosophy-bg-text{color:rgba(154,117,68,.035)}
.philosophy-img{
  height:clamp(420px,52vw,560px);
  border:1px solid rgba(154,117,68,.22);
}
.philosophy-img img{
  filter:grayscale(18%) saturate(.78) brightness(.82);
}
.philosophy-eyebrow-line{background:var(--premium-gold)}
.philosophy-eyebrow-text{color:#c19a62}
.philosophy-quote{
  font-size:clamp(29px,3.6vw,42px);
  line-height:1.78;
  letter-spacing:.06em;
}
.philosophy-quote span{color:#c19a62}
.philosophy-body{
  color:rgba(255,255,255,.66);
  line-height:2.65;
}
.reasons{
  padding:clamp(5.6rem,9vw,8rem) clamp(1.4rem,4vw,4rem);
  background:
    linear-gradient(180deg,#efe7da 0%,#f8f3ea 100%);
}
.reasons-bg-text{display:none}
.reasons-header{margin-bottom:4.4rem}
.reasons-header-line{
  width:68px;
  background:var(--premium-rust);
}
.reason-card{
  min-height:470px;
  padding:3.4rem 2.5rem 2.8rem;
  background:#fffdf9;
  border:1px solid rgba(154,117,68,.24);
  box-shadow:none;
}
.reason-card::before{
  background:linear-gradient(90deg,transparent,rgba(127,48,39,.45),transparent);
}
.reason-card::after{inset:16px;border-color:rgba(17,16,14,.055)}
.reason-card:hover{
  transform:translateY(-3px);
  box-shadow:none;
  border-color:rgba(127,48,39,.38);
}
.reason-num{
  top:2.1rem;
  right:2.25rem;
  color:rgba(127,48,39,.12);
  font-size:82px;
}
.reason-title{
  max-width:86%;
  margin-top:3.4rem;
  font-size:clamp(25px,2.6vw,34px);
  line-height:1.68;
}
.reason-desc{
  max-width:92%;
  color:#5e554a;
  line-height:2.25;
}
.reason-tag{
  color:var(--premium-gold);
  border-top-color:rgba(154,117,68,.24);
}
.cases-grid{margin-top:3.2rem}
.case-img{
  height:230px;
  background:#efe8dc !important;
  overflow:hidden;
}
.case-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(.82) contrast(1.03) brightness(.94);
  transform:scale(1.01);
}
.case-img-ph{
  font-size:34px;
  opacity:.28;
  filter:grayscale(1);
}
.case-cat{
  background:#342f28;
  color:#fffaf2;
  letter-spacing:.16em;
}
.case-body{padding:1.45rem 1.45rem 1.65rem}
.case-title{
  font-family:"Noto Serif JP",serif;
  font-size:17px;
  line-height:1.7;
}
.cta-section{
  padding:clamp(5.8rem,9vw,8rem) 1.4rem;
  background:#ece3d5;
}
.cta-line{
  height:72px;
  background:var(--premium-gold);
}
.cta-eyebrow{color:#c19a62}
.cta-title{
  font-size:clamp(29px,4vw,44px);
  line-height:1.62;
}
.cta-title span{color:#c19a62}
.cta-sub{
  color:rgba(255,255,255,.58);
  line-height:2;
}
.cta-btns a,.cta-btns button{
  min-height:54px;
  box-shadow:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.cta-btn-main{
  background:#fffaf2;
  color:#342f28;
  border-color:#fffaf2;
}
.cta-btn-tel{
  color:#fffaf2;
  background:transparent;
  border-color:rgba(255,255,255,.28);
}
.cta-note{color:rgba(255,255,255,.36)}
.footer{
  padding:3.8rem clamp(1.4rem,4vw,4rem);
  background:#e3dacb;
}
.footer-logo-img{width:210px}
.footer-info{color:rgba(255,255,255,.38);line-height:2.6}
.footer-col-title{
  color:rgba(255,255,255,.52);
  border-bottom-color:rgba(154,117,68,.24);
}
.footer-links a{color:rgba(255,255,255,.38)}
.footer-copy{background:#d8cdbc;color:rgba(255,255,255,.22)}

/* ===== Flow section: added trust-building process, using generated photo ===== */
.flow{
  padding:clamp(5.6rem,9vw,8rem) clamp(1.4rem,4vw,4rem);
  background:#fffdf9;
}
.flow-inner{
  max-width:1180px;
  margin:auto;
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:clamp(2.4rem,5vw,4.6rem);
  align-items:center;
}
.flow-photo{
  position:relative;
  border:1px solid var(--premium-line);
  background:#efe8dc;
  overflow:hidden;
}
.flow-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(17,16,14,.02),rgba(17,16,14,.18));
  pointer-events:none;
}
.flow-photo img{
  width:100%;
  height:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  filter:saturate(.82) contrast(1.03) brightness(.94);
}
.flow-content .section-label{color:var(--premium-rust)}
.flow-content .section-title{margin-bottom:1.2rem}
.flow-lead{
  max-width:540px;
  margin:0 0 2.2rem;
  color:#685d51;
  font-size:14px;
  line-height:2.2;
}
.flow-steps{
  display:grid;
  gap:0;
  border-top:1px solid var(--premium-line);
}
.flow-step{
  display:grid;
  grid-template-columns:86px 1fr;
  gap:1.35rem;
  padding:1.25rem 0;
  border-bottom:1px solid var(--premium-line);
}
.flow-no{
  font-family:"Noto Serif JP",serif;
  color:rgba(127,48,39,.42);
  font-size:24px;
  letter-spacing:.16em;
  line-height:1.5;
}
.flow-step-title{
  font-family:"Noto Serif JP",serif;
  font-size:18px;
  line-height:1.65;
  letter-spacing:.08em;
  color:#17130f;
}
.flow-step-text{
  margin:.25rem 0 0;
  color:#71675b;
  font-size:12.5px;
  line-height:2;
}

/* ===== Assurance section: warranty/support wording without overclaiming ===== */
.assurance{
  padding:clamp(4.8rem,7vw,6.8rem) clamp(1.4rem,4vw,4rem);
  background:#f3ece0;
  border-top:1px solid rgba(154,117,68,.18);
  border-bottom:1px solid rgba(154,117,68,.18);
}
.assurance-inner{
  max-width:1180px;
  margin:auto;
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:clamp(2.4rem,5vw,5rem);
  align-items:start;
}
.assurance-lead{
  margin:1.15rem 0 0;
  color:#665c50;
  font-size:13.5px;
  line-height:2.2;
  max-width:440px;
}
.assurance-list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--premium-line);
  border-left:1px solid var(--premium-line);
}
.assurance-item{
  min-height:174px;
  padding:1.65rem 1.55rem 1.7rem;
  border-right:1px solid var(--premium-line);
  border-bottom:1px solid var(--premium-line);
  background:rgba(255,253,249,.58);
}
.assurance-no{
  font-family:"Noto Serif JP",serif;
  color:rgba(127,48,39,.44);
  font-size:18px;
  letter-spacing:.18em;
  margin-bottom:.9rem;
}
.assurance-title{
  font-family:"Noto Serif JP",serif;
  color:#17130f;
  font-size:18px;
  line-height:1.7;
  letter-spacing:.06em;
  margin-bottom:.65rem;
}
.assurance-text{
  color:#70675d;
  font-size:12.5px;
  line-height:2;
}
.cta-assurance{
  display:flex;
  justify-content:center;
  gap:1.4rem;
  flex-wrap:wrap;
  margin:-1.2rem 0 2.4rem;
  color:rgba(255,255,255,.52);
  font-size:11px;
  letter-spacing:.08em;
}
.cta-assurance span{
  padding-top:.7rem;
  border-top:1px solid rgba(193,154,98,.34);
}
.mobile-fixed-cta{display:none}

@media (max-width: 1120px){
  .nav-logo{min-width:auto}
  .nav-links{gap:1rem}
  .nav-right{gap:.9rem}
  .nav-tel{display:none}
}
@media (max-width: 900px){
  .nav{
    height:auto;
    padding:1rem 1.15rem;
  }
  .nav-logo-img{height:36px}
  .hero-img-col{
    height:56vh;
    min-height:390px;
  }
  .hero-text-col{padding:2.4rem 1.25rem 3.4rem}
  .hero-motto{line-height:2.15;margin-bottom:2.1rem}
  .hero-h1{font-size:clamp(32px,10vw,42px)}
  .hero-btns{display:grid;grid-template-columns:1fr;gap:.75rem}
  .hero-btns a,.hero-btns button{width:100%}
  .trust-bar{align-items:flex-start;gap:1rem}
  .trust-divider{display:none}
  .trust-logos{gap:1.2rem}
  .services,.cases,.philosophy,.reasons,.cta-section,.footer{
    padding-left:1.15rem;
    padding-right:1.15rem;
  }
  .services-grid,.cases-grid,.reasons-grid,.philosophy-inner{
    gap:1rem;
  }
  .svc-card-img{height:210px}
  .svc-card-body{padding:1.7rem 1.45rem 1.9rem}
  .philosophy-img{height:420px}
  .reason-card{
    min-height:auto;
    padding:2.7rem 1.55rem 2.35rem;
  }
  .reason-num{font-size:62px;right:1.45rem}
  .reason-title{max-width:100%;margin-top:2.6rem}
  .reason-desc{max-width:100%}
  .case-img{height:198px}
  .assurance-inner{grid-template-columns:1fr;gap:2rem}
  .assurance-list{grid-template-columns:1fr}
  .cta-btns{display:grid;grid-template-columns:1fr}
  .cta-btns a,.cta-btns button{width:100%}
  .cta-assurance{
    display:grid;
    grid-template-columns:1fr;
    gap:.7rem;
    text-align:left;
  }
  .footer{gap:2.2rem}
  .flow-inner{grid-template-columns:1fr;gap:2rem}
  .flow-photo img{aspect-ratio:16/10}
  .flow-step{
    grid-template-columns:62px 1fr;
    gap:1rem;
  }
  .flow-no{font-size:20px}
  body{padding-bottom:76px}
  .mobile-fixed-cta{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:200;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1px;
    padding:8px;
    background:rgba(11,11,10,.92);
    backdrop-filter:blur(12px);
    border-top:1px solid rgba(193,154,98,.28);
  }
  .mobile-fixed-cta a{
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fffaf2;
    text-decoration:none;
    font-size:12px;
    font-weight:700;
    letter-spacing:.1em;
    background:#17130f;
    border:1px solid rgba(255,250,242,.12);
  }
  .mobile-fixed-cta a:first-child{
    background:#fffaf2;
    color:#342f28;
  }
}

/* ===== v13 light premium refinement: no pure black backgrounds ===== */
:root{
  --black:#26221d;
  --premium-ink:#26221d;
  --premium-paper:#f7f3ec;
  --premium-paper-deep:#ebe3d6;
  --premium-charcoal:#342f28;
  --premium-charcoal-soft:#4a4339;
}
body{background:#f7f3ec;color:var(--premium-ink)}
.nav{
  background:rgba(247,243,236,.96);
  border-bottom-color:rgba(154,117,68,.18);
}
.nav-cta,.btn-black{
  background:var(--premium-charcoal);
  color:#fffaf2;
  border-color:var(--premium-charcoal);
}
.nav-cta:hover,.btn-black:hover{
  background:var(--premium-charcoal-soft);
}
.btn-outline{
  background:rgba(255,253,249,.62);
  border-color:rgba(154,117,68,.32);
  color:#2e2923;
}
.hero-img-col{background:#e9dfd1}
.hero-img-overlay{
  background:linear-gradient(to right,rgba(52,47,40,.06) 0%,rgba(52,47,40,.02) 42%,rgba(247,243,236,.92) 82%,#f7f3ec 100%);
}
.trust-bar{
  background:#eee6da;
  border-top:1px solid rgba(154,117,68,.18);
  border-bottom:1px solid rgba(154,117,68,.18);
}
.trust-label{color:#8a7d6d}
.trust-divider{background:rgba(154,117,68,.3)}
.trust-logo{color:#4a4339}
.services,.cases,.flow{
  background:#fffdf9;
}
.philosophy{
  background:#f2eadc;
  border-top:1px solid rgba(154,117,68,.18);
  border-bottom:1px solid rgba(154,117,68,.18);
}
.philosophy-bg-text{color:rgba(154,117,68,.06)}
.philosophy .philosophy-bg-text{
  left:auto;
  right:clamp(1.2rem,7vw,8rem);
  top:18%;
  transform:none;
  font-size:clamp(104px,14vw,190px);
  letter-spacing:.12em;
  color:rgba(127,48,39,.07);
  z-index:0;
}
.philosophy-inner{position:relative;z-index:1}
.philosophy-img{
  background:#e9dfd1;
  border-color:rgba(154,117,68,.28);
}
.philosophy-img img{
  filter:saturate(.82) contrast(1.02) brightness(.96);
}
.philosophy-eyebrow-text{color:var(--premium-rust)}
.philosophy-quote{
  color:#2e2923;
}
.philosophy-quote span{color:var(--premium-rust)}
.philosophy-body{
  color:#5f5549;
}
.philosophy-sig{
  border-top-color:rgba(154,117,68,.28);
}
.philosophy-sig-line{background:var(--premium-rust)}
.philosophy-sig-text{color:#4f463d}
.case-cat{
  background:rgba(52,47,40,.94);
  color:#fffaf2;
}
.cta-section{
  background:#ece3d5;
  border-top:1px solid rgba(154,117,68,.2);
  border-bottom:1px solid rgba(154,117,68,.2);
}
.cta-line{background:var(--premium-rust)}
.cta-eyebrow{color:var(--premium-rust)}
.cta-title{color:#2e2923}
.cta-title span{color:var(--premium-rust)}
.cta-sub{color:#685d51}
.cta-assurance{color:#74695c}
.cta-assurance span{border-top-color:rgba(127,48,39,.24)}
.cta-btn-main{
  background:var(--premium-charcoal);
  color:#fffaf2;
  border-color:var(--premium-charcoal);
}
.cta-btn-main:hover{background:var(--premium-charcoal-soft)}
.cta-btn-tel{
  color:#2e2923;
  border-color:rgba(52,47,40,.28);
  background:rgba(255,253,249,.54);
}
.cta-note{color:#83776a}
.footer{
  background:#e3dacb;
  color:#2e2923;
  border-top:1px solid rgba(154,117,68,.22);
}
.footer-logo-img{
  filter:none;
}
.footer-info{color:#675d51}
.footer-col-title{
  color:#6f604f;
  border-bottom-color:rgba(154,117,68,.28);
}
.footer-links a{color:#675d51}
.footer-links a:hover{color:#2e2923}
.footer-copy{
  background:#d8cdbc;
  color:#6f604f;
}
@media (max-width: 900px){
  .hero-img-overlay{
    background:linear-gradient(to top,rgba(247,243,236,1) 0%,rgba(247,243,236,.34) 40%,rgba(52,47,40,.06) 100%);
  }
  .mobile-fixed-cta{
    background:rgba(238,230,218,.96);
    border-top-color:rgba(154,117,68,.28);
  }
  .mobile-fixed-cta a{
    background:var(--premium-charcoal);
    color:#fffaf2;
    border-color:rgba(52,47,40,.16);
  }
  .mobile-fixed-cta a:first-child{
    background:#fffaf2;
    color:#2e2923;
    border-color:rgba(154,117,68,.28);
  }
  .philosophy .philosophy-bg-text{
    right:1rem;
    top:2.4rem;
    font-size:82px;
    letter-spacing:.08em;
  }
}

/* ===== iPhone stability pass ===== */
@media (max-width: 760px){
  html,body{
    width:100%;
    overflow-x:hidden;
  }
  body{
    padding-bottom:76px;
  }
  img{
    max-width:100%;
  }
  .nav{
    min-height:64px;
    padding:.85rem 1rem;
  }
  .nav-logo{
    min-width:0;
    max-width:100%;
  }
  .nav-logo-img{
    height:34px;
    max-width:72vw;
    object-fit:contain;
  }
  .hero{
    display:block;
    min-height:auto;
  }
  .hero-img-col{
    height:46vh;
    min-height:310px;
  }
  .hero-img-col img{
    object-position:center top;
  }
  .hero-img-col img.hero-img-position-left{
    width:106%;
    margin-left:-5%;
    object-position:center center;
  }
  .hero-text-col{
    padding:2.15rem 1.12rem 3rem;
  }
  .hero-eyebrow{
    margin-bottom:1.6rem;
  }
  .hero-motto{
    font-size:12.5px;
    line-height:2.05;
    margin-bottom:1.8rem;
    padding-left:1rem;
  }
  .hero-h1{
    font-size:clamp(30px,9.5vw,38px);
    line-height:1.42;
    letter-spacing:.04em;
  }
  .hero-name-row{
    display:block;
    margin-bottom:1.8rem;
  }
  .hero-person{
    margin-top:.2rem;
    font-size:18px;
  }
  .hero-btns{
    display:grid;
    grid-template-columns:1fr;
    gap:.7rem;
  }
  .hero-btns a,.hero-btns button,
  .cta-btns a,.cta-btns button{
    width:100%;
    min-width:0;
    white-space:normal;
  }
  .trust-bar{
    display:block;
    padding:1.35rem 1.12rem;
  }
  .trust-label{
    margin-bottom:.75rem;
  }
  .trust-logos{
    display:grid;
    grid-template-columns:1fr;
    gap:.55rem;
  }
  .trust-logo{
    font-size:11px;
    line-height:1.7;
  }
  .services,.cases,.philosophy,.reasons,.flow,.assurance,.cta-section,.footer{
    padding-left:1.12rem;
    padding-right:1.12rem;
  }
  .section-header{
    display:block;
    margin-bottom:2.35rem;
  }
  .section-sub-right{
    max-width:none;
    text-align:left;
    margin-top:1rem;
  }
  .section-title{
    font-size:clamp(28px,8vw,34px);
    line-height:1.5;
    word-break:keep-all;
    overflow-wrap:anywhere;
  }
  .services-grid,.cases-grid,.reasons-grid,.philosophy-inner,.flow-inner,.assurance-inner{
    grid-template-columns:1fr !important;
    gap:1rem;
    max-width:100%;
  }
  .svc-card,.case-card,.reason-card,.assurance-item{
    min-width:0;
  }
  .svc-card-img{
    height:196px;
  }
  .svc-card-body{
    padding:1.55rem 1.3rem 1.8rem;
  }
  .svc-card-title{
    font-size:20px;
  }
  .philosophy{
    padding-top:4.7rem;
    padding-bottom:4.9rem;
  }
  .philosophy-img{
    height:clamp(300px,86vw,420px);
  }
  .philosophy-quote{
    font-size:clamp(26px,7.8vw,34px);
  }
  .philosophy-body{
    font-size:13.5px;
    line-height:2.35;
  }
  .philosophy .philosophy-bg-text{
    right:.7rem;
    top:1.6rem;
    font-size:clamp(66px,19vw,88px);
    opacity:.9;
  }
  .reason-card{
    padding:2.45rem 1.35rem 2.15rem;
  }
  .reason-num{
    font-size:54px;
    right:1.15rem;
  }
  .reason-title{
    font-size:clamp(23px,7vw,29px);
  }
  .flow-photo img{
    aspect-ratio:4/3;
  }
  .flow-step{
    grid-template-columns:52px 1fr;
    gap:.85rem;
  }
  .case-img{
    height:194px;
  }
  .assurance-item{
    min-height:auto;
    padding:1.45rem 1.3rem 1.55rem;
  }
  .cta-title{
    font-size:clamp(20px,5vw,32px);
    letter-spacing:.04em;
    white-space:nowrap;
  }
  .footer{
    grid-template-columns:1fr !important;
    gap:2rem;
    padding-bottom:3rem;
  }
  .footer-logo-img{
    width:180px;
  }
}

@media (max-width: 390px){
  .nav-logo-img{height:31px}
  .hero-img-col{min-height:285px}
  .hero-h1{font-size:29px}
  .section-title{font-size:27px}
  .svc-card-img,.case-img{height:178px}
  .mobile-fixed-cta{
    padding:7px;
  }
  .mobile-fixed-cta a{
    min-height:46px;
    font-size:11px;
  }
}

/* ===== motion: scroll reveal / header state / active nav / mobile cta / parallax ===== */
#top,#services,#flow,#cases,#about,#support,#contact{scroll-margin-top:110px}
@media (max-width: 900px){
  #top,#services,#flow,#cases,#about,#support,#contact{scroll-margin-top:24px}
}

.nav{transition:box-shadow .35s ease,background-color .35s ease}
.nav.is-scrolled{
  box-shadow:0 10px 30px rgba(17,16,14,.08);
  background:rgba(248,246,241,0.98);
}

.nav-links a{position:relative}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-6px;
  height:1px;
  background:var(--premium-rust);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s ease;
}
.nav-links a.is-active::after{transform:scaleX(1)}
.nav-links a.is-active strong{color:var(--premium-rust)}

.hero-img-col img{will-change:transform}

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s cubic-bezier(.16,.8,.24,1),transform .8s cubic-bezier(.16,.8,.24,1);
  transition-delay:var(--reveal-delay,0s);
}
.reveal.is-visible{opacity:1;transform:none}

.mobile-fixed-cta{transition:transform .35s ease}
.mobile-fixed-cta.is-hidden{transform:translateY(100%)}

a:focus-visible,button:focus-visible{
  outline:2px solid var(--premium-rust);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .hero-img-col img{transform:none !important}
  .nav,.mobile-fixed-cta,.nav-links a::after{transition:none !important}
}

/* Hero photo: display the supplied image horizontally mirrored without altering the source file. */
.hero-img-col img.hero-img-position-left{
  transform:scaleX(-1) !important;
}

/* Service cards are informational until dedicated service pages are available. */
.svc-card{
  cursor:default;
}
.svc-card:hover{
  border-bottom-color:transparent;
  border-color:var(--premium-line);
  background:#fffdf9;
  box-shadow:none;
  transform:none;
}

/* ===== Company profile ===== */
.company-page{
  background:var(--premium-paper);
}
.company-breadcrumb{
  width:min(1180px,calc(100% - 6rem));
  margin:0 auto;
  padding:1.4rem 0 0;
  display:flex;
  align-items:center;
  gap:.65rem;
  color:var(--gray);
  font-size:10px;
  letter-spacing:.08em;
}
.company-profile{
  width:min(1180px,calc(100% - 6rem));
  margin:0 auto;
  padding:7rem 0 9rem;
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr);
  gap:clamp(4rem,8vw,8rem);
  align-items:start;
}
.company-intro{
  position:sticky;
  top:150px;
}
.company-title{
  margin:.6rem 0 1.6rem;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(38px,4.2vw,58px);
  font-weight:900;
  line-height:1.35;
  letter-spacing:.06em;
  color:var(--premium-ink);
}
.company-lead{
  max-width:390px;
  color:#6f665b;
  font-size:14px;
  line-height:2.15;
  letter-spacing:.04em;
}
.company-intro-line{
  width:42px;
  height:1px;
  margin:2.3rem 0 1.7rem;
  background:var(--premium-rust);
}
.company-note{
  color:#8a7e70;
  font-family:"Noto Serif JP",serif;
  font-size:13px;
  line-height:2;
  letter-spacing:.06em;
}
.company-table{
  border-top:1px solid rgba(139,103,52,.42);
}
.company-row{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:1.5rem;
  padding:1.75rem 0;
  border-bottom:1px solid rgba(139,103,52,.18);
}
.company-row dt{
  color:#796f63;
  font-size:12px;
  font-weight:500;
  letter-spacing:.08em;
}
.company-row dd{
  color:#3a342d;
  font-size:14px;
  line-height:2;
  letter-spacing:.035em;
}
.company-row dd a{
  text-decoration:underline;
  text-decoration-color:rgba(139,103,52,.35);
  text-underline-offset:4px;
}
.company-cta{
  border-top:1px solid rgba(255,250,242,.08);
}
@media (max-width:900px){
  .company-breadcrumb,
  .company-profile{
    width:min(100% - 3rem,680px);
  }
  .company-profile{
    padding:4.5rem 0 6rem;
    grid-template-columns:1fr;
    gap:3.5rem;
  }
  .company-intro{
    position:static;
  }
  .company-lead{
    max-width:560px;
  }
}
@media (max-width:600px){
  .company-breadcrumb,
  .company-profile{
    width:calc(100% - 2.25rem);
  }
  .company-profile{
    padding:3.5rem 0 5rem;
    gap:2.7rem;
  }
  .company-title{
    font-size:36px;
  }
  .company-row{
    grid-template-columns:92px 1fr;
    gap:1rem;
    padding:1.4rem 0;
  }
  .company-row dt,
  .company-row dd{
    font-size:12px;
  }
}

/* ===== Responsive navigation and final tablet/mobile tuning ===== */
.nav-menu-toggle{display:none}
@media (max-width:900px){
  .nav{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    width:100%;
  }
  .nav-logo{grid-column:1;grid-row:1}
  .nav-menu-toggle{
    grid-column:2;
    grid-row:1;
    display:grid;
    place-content:center;
    gap:5px;
    width:46px;
    height:46px;
    padding:0;
    border:1px solid rgba(139,103,52,.24);
    background:rgba(255,253,249,.62);
    color:var(--premium-ink);
  }
  .nav-menu-toggle span{
    display:block;
    width:20px;
    height:1px;
    background:currentColor;
    transition:transform .25s ease,opacity .25s ease;
  }
  .nav.is-menu-open .nav-menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .nav.is-menu-open .nav-menu-toggle span:nth-child(2){opacity:0}
  .nav.is-menu-open .nav-menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .nav>nav{
    grid-column:1/-1;
    grid-row:2;
    display:none;
    width:100%;
    padding-top:.9rem;
  }
  .nav.is-menu-open>nav{display:block}
  .nav.is-menu-open .nav-links{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1px;
    padding:1px;
    background:rgba(139,103,52,.14);
  }
  .nav.is-menu-open .nav-links li{background:var(--premium-paper)}
  .nav.is-menu-open .nav-links a{
    min-height:64px;
    padding:.85rem 1rem;
    justify-content:center;
  }
  .nav.is-menu-open .nav-links a::after{display:none}
  .company-breadcrumb{padding-top:1rem}
  .case-detail-main{aspect-ratio:4/3}
}
@media (min-width:761px) and (max-width:900px){
  .services-grid,.cases-grid{grid-template-columns:repeat(2,1fr)!important}
  .services-grid>.svc-card:last-child,.cases-grid>.case-card:last-child{grid-column:1/-1}
  .case-progress-grid{grid-template-columns:repeat(3,1fr)}
  .case-progress-grid img{aspect-ratio:3/4}
  .archive-case-body h2{font-size:16px}
}
@media (max-width:760px){
  .nav.is-menu-open .nav-links{grid-template-columns:1fr}
  .nav.is-menu-open .nav-links a{min-height:54px}
  .philosophy-img img.philosophy-img-position-right{
    transform:scale(1.13) translateX(5.5%);
  }
  .case-archive-hero{padding-bottom:2.3rem}
  .case-filters{margin-bottom:2.4rem}
  .case-pagination{margin-top:2.7rem;margin-bottom:5rem}
  .archive-case-body h2{min-height:0}
  .case-detail h2{font-size:24px}
  .staff-comment{padding:2rem 1.2rem}
}
@media (max-width:390px){
  .nav-menu-toggle{width:42px;height:42px}
  .company-row{grid-template-columns:78px 1fr}
  .case-filters a{flex-basis:100%}
  .case-detail-header h1{font-size:29px}
  .related-case-grid a{grid-template-columns:92px 1fr;column-gap:.8rem}
  .related-case-grid img{width:92px}
}

/* ===== Contact page ===== */
.contact-page{
  background:#f8f4ed;
  color:#2e2923;
}
.contact-intro{
  width:min(1180px,calc(100% - 6rem));
  margin:0 auto;
  padding:5.4rem 0 4.5rem;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:7rem;
  border-bottom:1px solid rgba(139,103,52,.22);
}
.contact-intro h1{
  margin-top:1.1rem;
  font-family:"Noto Serif JP",serif;
  font-size:clamp(42px,5vw,64px);
  font-weight:900;
  line-height:1.35;
  letter-spacing:.06em;
}
.contact-intro>div:last-child{
  align-self:end;
  color:#6b6257;
  font-size:13px;
  line-height:2.1;
}
.contact-intro-lead{
  margin-bottom:1.2rem;
  font-family:"Noto Serif JP",serif;
  color:#342f29;
  font-size:22px;
  font-weight:700;
  line-height:1.75;
}
.contact-content{
  width:min(1180px,calc(100% - 6rem));
  margin:0 auto;
  padding:5rem 0 8rem;
  display:grid;
  grid-template-columns:320px 1fr;
  gap:5rem;
}
.contact-side{
  align-self:start;
  padding:2.2rem 2rem;
  background:#eee5d8;
  border-top:2px solid var(--premium-rust);
}
.contact-side-label{
  margin-bottom:.8rem;
  color:var(--premium-rust);
  font-size:9px;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.contact-side h2,.contact-form-heading h2{
  font-family:"Noto Serif JP",serif;
  font-size:22px;
  line-height:1.55;
}
.contact-phone{
  display:block;
  margin:1.6rem 0 .55rem;
  font-family:"Noto Serif JP",serif;
  font-size:28px;
  font-weight:700;
  letter-spacing:.04em;
}
.contact-side p{
  color:#776d61;
  font-size:11px;
  line-height:1.9;
}
.contact-side-note{
  margin-top:1.7rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(139,103,52,.2);
}
.contact-form-heading{
  margin-bottom:2rem;
}
.contact-form-heading>p{
  margin-top:.75rem;
  color:#7a7064;
  font-size:11px;
}
.contact-form{
  border-top:1px solid rgba(139,103,52,.3);
}
.form-row{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:2rem;
  margin:0;
  padding:1.65rem 0;
  border:0;
  border-bottom:1px solid rgba(139,103,52,.18);
}
.form-row>label,.form-row>legend{
  padding-top:.85rem;
  color:#4e473f;
  font-size:12px;
  font-weight:500;
}
.required-mark{
  display:inline-block;
  margin-left:.4rem;
  padding:.12rem .42rem;
  background:var(--premium-rust);
  color:#fffaf2;
  font-size:8px;
  font-weight:400;
  letter-spacing:.06em;
  vertical-align:middle;
}
.contact-form input[type="text"],
.contact-form input[type="tel"],
.contact-form input[type="email"],
.contact-form textarea{
  width:100%;
  padding:.95rem 1rem;
  border:1px solid rgba(116,88,53,.28);
  background:#fffdf9;
  color:#302b25;
  font:inherit;
  font-size:13px;
  outline:none;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.contact-form textarea{resize:vertical;min-height:180px;line-height:1.8}
.contact-form input:focus,.contact-form textarea:focus{
  border-color:var(--premium-rust);
  box-shadow:0 0 0 3px rgba(127,48,39,.1);
}
.form-choice-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));
  gap:.7rem;
}
.form-choice-grid label{
  display:flex;
  align-items:center;
  gap:.65rem;
  min-height:48px;
  padding:.7rem .9rem;
  border:1px solid rgba(116,88,53,.2);
  background:#fffdf9;
  color:#5e554b;
  font-size:12px;
  cursor:pointer;
}
.form-choice-grid label span{
  white-space:nowrap;
}
.contact-form input[type="checkbox"]{
  width:17px;
  height:17px;
  accent-color:var(--premium-rust);
}
.form-error{
  min-height:1.35em;
  margin-top:.35rem;
  color:#a22e28;
  font-size:10px;
}
.category-error{grid-column:1/-1;margin:0}
.form-consent{
  padding:2.2rem 1rem 1rem;
  text-align:center;
}
.form-consent label{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  color:#5d554c;
  font-size:12px;
  cursor:pointer;
}
.form-consent a{
  color:var(--premium-rust);
  text-decoration:underline;
  text-underline-offset:3px;
}
.consent-error{min-height:1.5em}
.form-note{
  color:#887e71;
  font-size:10px;
  line-height:1.8;
  text-align:center;
}
.contact-submit{
  width:min(360px,100%);
  min-height:58px;
  margin:2rem auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.4rem;
  border:1px solid var(--premium-charcoal);
  background:var(--premium-charcoal);
  color:#fffaf2;
  font-family:"Noto Sans JP",sans-serif;
  font-size:12px;
  letter-spacing:.09em;
  cursor:pointer;
  transition:background .25s ease,color .25s ease;
}
.contact-submit:hover{
  background:transparent;
  color:var(--premium-charcoal);
}
.form-success{
  margin-top:2rem;
  padding:1.5rem;
  border:1px solid rgba(127,48,39,.25);
  background:#eee5d8;
  text-align:center;
}
.form-success strong{font-family:"Noto Serif JP",serif;font-size:16px}
.form-success p{margin-top:.5rem;color:#6f655a;font-size:11px}

@media (max-width:900px){
  .contact-intro,.contact-content{width:min(100% - 3rem,680px)}
  .contact-intro{gap:3rem}
  .contact-content{grid-template-columns:1fr;gap:3rem}
  .contact-side{display:grid;grid-template-columns:1fr 1fr;column-gap:2rem}
  .contact-side-label,.contact-side h2{grid-column:1/-1}
  .contact-side-note{margin:1.6rem 0 0;padding:0 0 0 2rem;border-top:0;border-left:1px solid rgba(139,103,52,.2)}
}
@media (max-width:760px){
  .contact-intro,.contact-content{width:calc(100% - 2.25rem)}
  .contact-intro{padding:3.5rem 0 3rem;grid-template-columns:1fr;gap:2rem}
  .contact-intro h1{font-size:36px}
  .contact-intro-lead{font-size:19px}
  .contact-content{padding:3rem 0 5.5rem;gap:3rem}
  .contact-side{display:block;padding:1.6rem 1.3rem}
  .contact-phone{font-size:25px}
  .contact-side-note{margin-top:1.4rem;padding:1.3rem 0 0;border-left:0;border-top:1px solid rgba(139,103,52,.2)}
  .form-row{grid-template-columns:1fr;gap:.7rem;padding:1.35rem 0}
  .form-row>label,.form-row>legend{padding-top:0}
  .form-choice-grid{grid-template-columns:1fr;gap:.65rem}
  .form-choice-grid label{min-height:50px;padding:.8rem 1rem;font-size:12px}
  .form-consent{padding:1.8rem 0 .7rem}
}
@media (max-width:390px){
  .form-choice-grid{grid-template-columns:1fr}
}

/* ===== Case archive ===== */
.case-card{display:block}
.case-archive-page,.case-detail-page{background:var(--premium-paper)}
.case-archive-hero{
  width:min(1180px,calc(100% - 6rem));
  margin:0 auto;
  padding:5.8rem 0 3.2rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:end;
}
.case-archive-hero h1,.case-detail-header h1{
  font-family:"Noto Serif JP",serif;
  font-size:clamp(42px,5vw,66px);
  font-weight:900;
  line-height:1.35;
  letter-spacing:.055em;
}
.case-archive-hero p{
  max-width:500px;
  justify-self:end;
  color:#746a5d;
  font-size:13px;
  line-height:2.1;
}
.case-filters{
  width:min(1180px,calc(100% - 6rem));
  margin:0 auto 3.6rem;
  display:flex;
  flex-wrap:wrap;
  border-top:1px solid rgba(139,103,52,.2);
  border-bottom:1px solid rgba(139,103,52,.2);
}
.case-filters a{
  flex:1 1 210px;
  padding:1.1rem 1.25rem;
  border-right:1px solid rgba(139,103,52,.16);
  color:#6e6458;
  font-size:11px;
  letter-spacing:.05em;
  text-align:center;
}
.case-filters a:last-child{border-right:0}
.case-filters a:hover,.case-filters a.is-active{
  background:var(--premium-charcoal);
  color:#fffaf2;
}
.case-archive-list{
  width:min(1180px,calc(100% - 6rem));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2.2rem 1.5rem;
}
.archive-case-card[hidden]{display:none}
.archive-case-card{
  border:1px solid rgba(139,103,52,.17);
  background:rgba(255,253,249,.54);
  transition:transform .3s ease,box-shadow .3s ease;
}
.archive-case-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}
.archive-case-card>a{display:block;height:100%}
.archive-case-image{position:relative;aspect-ratio:4/3;overflow:hidden;background:#e9e1d6}
.archive-case-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.archive-case-card:hover .archive-case-image img{transform:scale(1.035)}
.archive-case-image span{
  position:absolute;left:12px;top:12px;
  padding:.38rem .75rem;
  background:rgba(52,47,40,.9);
  color:#fffaf2;
  font-size:9px;
  letter-spacing:.08em;
}
.archive-case-body{padding:1.45rem 1.4rem 1.6rem}
.archive-case-body h2{
  min-height:3.2em;
  margin-bottom:1.25rem;
  font-family:"Noto Serif JP",serif;
  font-size:18px;
  line-height:1.6;
  font-weight:700;
}
.archive-case-body dl{border-top:1px solid rgba(139,103,52,.14)}
.archive-case-body dl>div{display:grid;grid-template-columns:66px 1fr;padding:.52rem 0;border-bottom:1px solid rgba(139,103,52,.11);font-size:10.5px}
.archive-case-body dt{color:#948777}.archive-case-body dd{color:#514a42}
.archive-case-more{display:inline-block;margin-top:1.35rem;color:var(--premium-rust);font-size:10px;letter-spacing:.1em}
.case-pagination{width:min(1180px,calc(100% - 6rem));margin:4rem auto 7rem;display:flex;justify-content:center;gap:.6rem}
.case-pagination a,.case-pagination span{min-width:42px;height:42px;padding:0 .8rem;display:flex;align-items:center;justify-content:center;border:1px solid rgba(139,103,52,.25);font-size:11px}
.case-pagination span{background:var(--premium-charcoal);color:#fffaf2}

/* ===== Case detail ===== */
.case-detail{width:min(1060px,calc(100% - 6rem));margin:0 auto;padding:5.2rem 0 8rem}
.case-detail-header{text-align:center;max-width:850px;margin:0 auto 3rem}
.case-detail-category{display:inline-block;margin-bottom:1.25rem;padding:.45rem .9rem;background:var(--premium-charcoal);color:#fffaf2;font-size:10px;letter-spacing:.1em}
.case-detail-header h1{font-size:clamp(38px,4.7vw,60px)}
.case-detail-meta{margin:2.4rem auto 0;display:flex;justify-content:center;border-top:1px solid rgba(139,103,52,.2);border-bottom:1px solid rgba(139,103,52,.2)}
.case-detail-meta>div{min-width:190px;padding:1rem 1.5rem;border-right:1px solid rgba(139,103,52,.16);display:flex;justify-content:center;gap:.8rem;font-size:11px}
.case-detail-meta>div:last-child{border-right:0}.case-detail-meta dt{color:#9a8c7b}.case-detail-meta dd{color:#443e37}
.case-detail-main{margin:0 0 6rem;aspect-ratio:16/9;overflow:hidden;background:#e8dfd2}
.case-detail-main img{width:100%;height:100%;object-fit:cover}
.case-detail-story{display:grid;grid-template-columns:1fr 1fr;gap:5rem;margin-bottom:7rem}
.case-detail h2{margin:.35rem 0 1.2rem;font-family:"Noto Serif JP",serif;font-size:28px;line-height:1.55}
.case-detail-story p,.staff-comment p{color:#6d6459;font-size:13px;line-height:2.15}
.case-progress{margin-bottom:7rem}
.case-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.2rem}
.case-progress-grid figure{background:rgba(255,253,249,.58);border:1px solid rgba(139,103,52,.16)}
.case-progress-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.case-progress-grid figcaption{padding:1rem 1.15rem;font-family:"Noto Serif JP",serif;font-size:16px;font-weight:700}
.case-progress-grid figcaption span{display:block;margin-bottom:.25rem;color:var(--premium-rust);font-family:"Noto Sans JP",sans-serif;font-size:9px;text-transform:uppercase;letter-spacing:.18em}
.case-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-bottom:6rem;padding:3.5rem;border-top:1px solid rgba(139,103,52,.2);border-bottom:1px solid rgba(139,103,52,.2)}
.case-detail-columns ul{list-style:none}.case-detail-columns li{position:relative;padding:.65rem 0 .65rem 1.3rem;color:#625a50;font-size:12px;border-bottom:1px solid rgba(139,103,52,.11)}
.case-detail-columns li::before{content:"";position:absolute;left:0;top:1.2rem;width:5px;height:5px;background:var(--premium-rust)}
.case-detail-columns dl>div{display:grid;grid-template-columns:90px 1fr;padding:.75rem 0;border-bottom:1px solid rgba(139,103,52,.11);font-size:12px}.case-detail-columns dt{color:#948777}
.staff-comment{display:grid;grid-template-columns:.7fr 1.3fr;gap:4rem;padding:4rem;background:#eee6da;margin-bottom:7rem}
.related-cases>h2{margin-bottom:2rem}.related-case-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.related-case-grid a{display:grid;grid-template-columns:180px 1fr;grid-template-rows:auto auto;column-gap:1.3rem;align-items:center;border:1px solid rgba(139,103,52,.16);padding:1rem;background:rgba(255,253,249,.5)}
.related-case-grid img{grid-row:1/3;width:180px;aspect-ratio:4/3;object-fit:cover}.related-case-grid span{align-self:end;color:var(--premium-rust);font-size:9px;letter-spacing:.08em}.related-case-grid strong{align-self:start;font-family:"Noto Serif JP",serif;font-size:15px;line-height:1.6}.related-back{display:table;margin:2.5rem auto 0}
@media (max-width:900px){
  .case-archive-hero,.case-filters,.case-archive-list,.case-pagination,.case-detail{width:min(100% - 3rem,680px)}
  .case-archive-hero{grid-template-columns:1fr;gap:1.4rem;padding-top:4rem}.case-archive-hero p{justify-self:start}
  .case-archive-list{grid-template-columns:1fr 1fr}.case-detail-story,.case-detail-columns,.staff-comment{grid-template-columns:1fr;gap:2rem}.case-progress-grid{grid-template-columns:1fr}.case-detail-meta{flex-wrap:wrap}.case-detail-meta>div{min-width:33%;flex:1}.related-case-grid{grid-template-columns:1fr}
}
@media (max-width:600px){
  .case-archive-hero,.case-filters,.case-archive-list,.case-pagination,.case-detail{width:calc(100% - 2.25rem)}
  .case-archive-list{grid-template-columns:1fr}.case-filters a{flex-basis:50%;border-bottom:1px solid rgba(139,103,52,.16)}
  .case-detail{padding-top:3.5rem}.case-detail-header h1{font-size:32px}.case-detail-meta{display:grid;grid-template-columns:1fr}.case-detail-meta>div{border-right:0;border-bottom:1px solid rgba(139,103,52,.12)}.case-detail-meta>div:last-child{border-bottom:0}
  .case-detail-main{margin-bottom:4rem}.case-detail-story,.case-progress,.case-detail-columns,.staff-comment{margin-bottom:4.5rem}.case-detail-columns,.staff-comment{padding:2rem 1.25rem}.related-case-grid a{grid-template-columns:110px 1fr}.related-case-grid img{width:110px}
}

/* Case-page rules placed last so responsive values win over desktop defaults. */
@media (max-width:900px){
  .case-detail-main{aspect-ratio:4/3}
}
@media (min-width:761px) and (max-width:900px){
  .case-progress-grid{grid-template-columns:repeat(3,1fr)}
  .case-progress-grid img{aspect-ratio:3/4}
  .archive-case-body h2{font-size:16px}
}
@media (max-width:760px){
  .hero-name-row{
    text-align:right;
  }
  .philosophy-sig{
    justify-content:flex-end;
    text-align:right;
  }
  .footer-menu-group{
    border-top:1px solid rgba(139,103,52,.2);
  }
  .footer-menu-group:last-child{
    border-bottom:1px solid rgba(139,103,52,.2);
  }
  .footer-accordion-toggle{
    position:relative;
    margin:0;
    padding:1.15rem 2.5rem 1.15rem 0;
    border-bottom:0;
    color:#62594e;
    cursor:pointer;
  }
  .footer-accordion-toggle::before,
  .footer-accordion-toggle::after{
    content:"";
    position:absolute;
    top:50%;
    right:.35rem;
    width:14px;
    height:1px;
    background:var(--premium-rust);
    transition:transform .25s ease;
  }
  .footer-accordion-toggle::after{
    transform:rotate(90deg);
  }
  .footer-menu-group.is-open .footer-accordion-toggle::after{
    transform:rotate(0deg);
  }
  .footer-menu-group .footer-links{
    display:none;
    padding:0 0 .7rem;
  }
  .footer-menu-group.is-open .footer-links{
    display:block;
  }
  .footer-menu-group .footer-links li{
    margin:0;
  }
  .footer-menu-group .footer-links a{
    display:block;
    padding:.75rem 0;
  }
  .case-archive-hero{padding-bottom:2.3rem}
  .case-filters{margin-bottom:2.4rem}
  .case-pagination{margin-top:2.7rem;margin-bottom:5rem}
  .archive-case-body h2{min-height:0}
  .case-detail h2{font-size:24px}
  .staff-comment{padding:2rem 1.2rem}
}
@media (max-width:390px){
  .case-filters a{flex-basis:100%}
  .case-detail-header h1{font-size:29px}
  .related-case-grid a{grid-template-columns:92px 1fr;column-gap:.8rem}
  .related-case-grid img{width:92px}
}

/* ===== WordPress integration ===== */
.skip-link{position:fixed;left:12px;top:12px;z-index:10000;padding:.7rem 1rem;background:#342f28;color:#fff;transform:translateY(-180%)}
.skip-link:focus{transform:none}
.contact-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.form-global-error{margin:0 0 1.5rem;padding:1rem 1.2rem;border-left:3px solid var(--premium-rust);background:#fff8f4;color:var(--premium-rust)}
.entry-content{line-height:2}
.entry-content img{max-width:100%;height:auto}
.case-card-details{margin-top:.8rem}
.case-card-details>div{display:grid;grid-template-columns:3.5rem 1fr;gap:.5rem;padding:.35rem 0;font-size:10px;border-top:1px solid rgba(139,103,52,.11)}
.case-card-details dt{color:#948777}
.case-card-details dd{margin:0}
.archive-case-card .case-card-details>div{grid-template-columns:66px 1fr;padding:.52rem 0}
.archive-case-card .case-card-details{border-top:1px solid rgba(139,103,52,.14)}
.archive-case-card .case-card-details>div{border-top:0;border-bottom:1px solid rgba(139,103,52,.11);font-size:10.5px}
.case-detail-columns p{color:#625a50;font-size:12px;line-height:2.1;white-space:pre-line}
.case-pagination:empty{display:none}
body.admin-bar .nav{top:32px}
@media (max-width:782px){body.admin-bar .nav{top:46px}}

/* ===== Legal pages ===== */
.legal-page{background:var(--premium-paper);padding-bottom:8rem}
.legal-header,.legal-content{width:min(980px,calc(100% - 6rem));margin-inline:auto}
.legal-header{padding:5.6rem 0 4rem;border-bottom:1px solid rgba(139,103,52,.22)}
.legal-header h1{margin:.7rem 0 1.5rem;font-family:"Noto Serif JP",serif;font-size:clamp(40px,5vw,64px);line-height:1.35;letter-spacing:.05em}
.legal-header>p:last-child{max-width:680px;color:#746a5d;font-size:13px;line-height:2.1}
.legal-content{padding-top:1rem}
.legal-content>section{display:grid;grid-template-columns:300px 1fr;gap:3.5rem;padding:2.6rem 0;border-bottom:1px solid rgba(139,103,52,.16)}
.legal-content h2{margin:0;font-family:"Noto Serif JP",serif;font-size:19px;line-height:1.7}
.legal-content h2 span{display:block;margin-bottom:.45rem;color:var(--premium-rust);font-family:"Noto Sans JP",sans-serif;font-size:10px;letter-spacing:.16em}
.legal-content p,.legal-content li{color:#655d53;font-size:12.5px;line-height:2.15}
.legal-content ul{margin:0;padding-left:1.25rem}
.legal-contact dl{margin:0 0 1.5rem}
.legal-contact dl>div{display:grid;grid-template-columns:90px 1fr;padding:.55rem 0;border-bottom:1px solid rgba(139,103,52,.12);font-size:12px}
.legal-contact dt{color:#948777}.legal-contact dd{margin:0}
.commerce-content{padding-top:2rem}
.commerce-table{border-top:1px solid rgba(139,103,52,.24)}
.commerce-table>div{display:grid;grid-template-columns:260px 1fr;border-bottom:1px solid rgba(139,103,52,.18)}
.commerce-table dt,.commerce-table dd{padding:1.5rem 1.6rem;font-size:12.5px;line-height:2}
.commerce-table dt{background:rgba(238,230,218,.56);font-weight:700}
.commerce-table dd{margin:0}.commerce-table small{color:#887d70}.commerce-table ul{margin:0;padding-left:1.2rem}
.legal-review-note{margin-top:2rem;padding:1.2rem 1.4rem;border-left:2px solid var(--premium-rust);background:rgba(255,253,249,.55);color:#756a5e;font-size:11px;line-height:1.9}
@media (max-width:760px){
  .legal-page{padding-bottom:5.5rem}
  .legal-header,.legal-content{width:calc(100% - 2.25rem)}
  .legal-header{padding:3.8rem 0 2.8rem}.legal-header h1{font-size:34px}
  .legal-content>section{grid-template-columns:1fr;gap:1.1rem;padding:2rem 0}
  .commerce-table>div{grid-template-columns:1fr}
  .commerce-table dt{padding:1rem 1.1rem}.commerce-table dd{padding:1.2rem 1.1rem}
}

/* ===== v2.2.0: registration number and persistent contact actions ===== */
.nav-contact-details{
  display:grid;
  grid-template-columns:auto auto;
  align-items:end;
  column-gap:.55rem;
}
.nav-registration{
  grid-column:1/-1;
  display:block;
  margin-bottom:.12rem;
  color:#7a6d60;
  font-size:8px;
  line-height:1.25;
  letter-spacing:.035em;
  white-space:nowrap;
}
.company-row-registration dd strong{
  color:#7f3027;
  font-family:"Noto Serif JP",serif;
  font-size:15px;
  letter-spacing:.055em;
}
.floating-contact{
  position:fixed;
  z-index:180;
  top:50%;
  right:0;
  display:grid;
  width:76px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.24);
  border-right:0;
  box-shadow:0 12px 34px rgba(38,34,29,.18);
  transform:translateY(-50%);
}
.floating-contact a{
  min-height:72px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  color:#fff;
  font-size:10px;
  font-weight:700;
  line-height:1;
  letter-spacing:.08em;
  border-bottom:1px solid rgba(255,255,255,.22);
}
.floating-contact a:last-child{border-bottom:0}
.floating-contact a:hover,.floating-contact a:focus-visible{filter:brightness(1.08)}
.floating-contact svg{width:23px;height:23px;fill:currentColor}
.floating-contact-line{background:#06c755}
.floating-contact-mail{background:#7f3027}
.floating-contact-tel{background:#342f28}

@media (max-width:1240px){
  .nav-registration{display:none}
}
@media (max-width:900px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .floating-contact{
    top:auto;
    right:0;
    bottom:0;
    left:0;
    width:100%;
    grid-template-columns:repeat(3,1fr);
    padding-bottom:env(safe-area-inset-bottom);
    overflow:visible;
    border:0;
    border-top:1px solid rgba(139,103,52,.25);
    background:#eee6da;
    box-shadow:0 -8px 24px rgba(38,34,29,.12);
    transform:none !important;
  }
  .floating-contact a{
    min-width:0;
    min-height:68px;
    gap:4px;
    border-right:1px solid rgba(255,255,255,.24);
    border-bottom:0;
    font-size:11px;
  }
  .floating-contact a:last-child{border-right:0}
  .floating-contact svg{width:22px;height:22px}
}
@media (max-width:390px){
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .floating-contact a{min-height:62px;font-size:10px}
  .floating-contact svg{width:20px;height:20px}
  .company-row-registration dd strong{font-size:13px}
}

/* ===== v2.2.2: TOP heading spacing refinements ===== */
.services-title{
  white-space:nowrap;
  font-size:clamp(28px,3.6vw,44px);
}
@media (max-width:760px){
  .services-title{
    font-size:clamp(25px,7.4vw,32px);
    letter-spacing:.035em;
  }
  .cases{
    padding-top:3.25rem;
  }
}

/* ===== v2.2.10: tighten the mobile gap before Case Study ===== */
@media (max-width:760px){
  .flow{
    padding-bottom:1.25rem;
  }
  .cases{
    padding-top:1.75rem;
  }
}

/* ===== v2.2.11: right-align the mobile Case Study CTA ===== */
@media (max-width:760px){
  .cases .section-header > .btn-outline{
    display:flex;
    width:max-content;
    margin-top:.9rem;
    margin-left:auto;
    align-items:center;
    justify-content:center;
  }
}
@media (max-width:390px){
  .services-title{font-size:24px}
}

/* ===== v2.2.4: integrated mobile hero image and copy ===== */
@media (max-width:760px){
  .hero{
    position:relative;
    isolation:isolate;
    background:var(--premium-paper);
  }
  .hero-img-col{
    height:clamp(430px,68svh,600px);
    min-height:430px;
  }
  .hero-img-overlay{
    background:linear-gradient(
      to bottom,
      rgba(38,34,29,.05) 0%,
      rgba(38,34,29,0) 48%,
      rgba(247,243,236,.48) 72%,
      rgba(247,243,236,.94) 91%,
      var(--premium-paper) 100%
    );
  }
  .hero-text-col{
    position:relative;
    z-index:2;
    margin-top:-190px;
    padding:112px 1.12rem 3rem;
    background:linear-gradient(
      to bottom,
      rgba(247,243,236,0) 0,
      rgba(247,243,236,.82) 82px,
      var(--premium-paper) 150px,
      var(--premium-paper) 100%
    );
  }
  .hero-eyebrow{
    position:relative;
    z-index:1;
  }
}
@media (max-width:390px){
  .hero-img-col{
    height:clamp(400px,64svh,520px);
    min-height:400px;
  }
  .hero-text-col{
    margin-top:-170px;
    padding-top:98px;
  }
}

/* ===== v2.2.5: place the mobile copy visibly over the photograph ===== */
@media (max-width:760px){
  .hero-img-overlay{
    background:linear-gradient(
      to bottom,
      rgba(38,34,29,.04) 0%,
      rgba(38,34,29,0) 42%,
      rgba(247,243,236,.24) 58%,
      rgba(247,243,236,.72) 78%,
      var(--premium-paper) 100%
    );
  }
  .hero-text-col{
    margin-top:-360px;
    padding-top:90px;
    background:linear-gradient(
      to bottom,
      rgba(247,243,236,0) 0,
      rgba(247,243,236,.16) 80px,
      rgba(247,243,236,.68) 215px,
      rgba(247,243,236,.96) 315px,
      var(--premium-paper) 365px,
      var(--premium-paper) 100%
    );
  }
  .hero-eyebrow,
  .hero-motto-label,
  .hero-motto,
  .hero-h1,
  .hero-name-row,
  .hero-btns{
    position:relative;
    z-index:2;
  }
}
@media (max-width:390px){
  .hero-text-col{
    margin-top:-330px;
    padding-top:84px;
  }
}

/* ===== v2.2.6: true layered mobile hero ===== */
@media (max-width:760px){
  .hero{
    display:grid !important;
    grid-template-columns:1fr;
    grid-template-rows:auto;
    min-height:0;
    overflow:hidden;
  }
  .hero-img-col,
  .hero-text-col{
    grid-column:1;
    grid-row:1;
  }
  .hero-img-col{
    position:relative;
    z-index:0;
    align-self:start;
    width:100%;
    height:clamp(540px,72svh,650px);
    min-height:540px;
  }
  .hero-img-overlay{
    background:linear-gradient(
      to bottom,
      rgba(38,34,29,.04) 0%,
      rgba(38,34,29,.02) 22%,
      rgba(247,243,236,.28) 44%,
      rgba(247,243,236,.76) 68%,
      rgba(247,243,236,.97) 88%,
      var(--premium-paper) 100%
    );
  }
  .hero-text-col{
    position:relative;
    z-index:2;
    align-self:start;
    margin:0;
    min-width:0;
    padding:clamp(255px,39svh,330px) 1.12rem 3rem;
    background:transparent;
  }
}
@media (max-width:390px){
  .hero-img-col{
    height:520px;
    min-height:520px;
  }
  .hero-text-col{
    margin:0;
    padding-top:245px;
  }
}

/* ===== v2.2.7: mobile hero — copy first, photo flowing underneath ===== */
@media (max-width:760px){
  .hero{
    display:flex !important;
    flex-direction:column;
    min-height:0;
    overflow:hidden;
    background:var(--premium-paper);
  }
  .hero-text-col{
    order:1;
    position:relative;
    z-index:2;
    margin:0;
    padding:2.4rem 1.15rem 6.2rem;
    background:var(--premium-paper);
    text-align:right;
  }
  .hero-eyebrow{
    justify-content:flex-end;
  }
  .hero-motto-label{
    text-align:right;
  }
  .hero-motto{
    width:max-content;
    max-width:100%;
    margin-left:auto;
    border-left:0;
    border-right:1px solid var(--premium-rust);
    padding-left:0;
    padding-right:1rem;
    text-align:right;
  }
  .hero-h1{
    text-align:right;
  }
  .hero-name-row{
    justify-content:flex-end;
  }
  .hero-img-col{
    order:2;
    position:relative;
    z-index:3;
    align-self:auto;
    width:100%;
    height:clamp(420px,58svh,540px);
    min-height:420px;
    margin-top:-5.25rem;
  }
  .hero-img-overlay{
    background:linear-gradient(
      to bottom,
      var(--premium-paper) 0%,
      rgba(247,243,236,.94) 9%,
      rgba(247,243,236,.72) 20%,
      rgba(247,243,236,.34) 34%,
      rgba(247,243,236,.08) 48%,
      rgba(247,243,236,0) 62%
    );
  }
}
@media (max-width:390px){
  .hero-text-col{
    margin:0;
    padding-top:2.15rem;
    padding-bottom:5.6rem;
  }
  .hero-img-col{
    height:400px;
    min-height:400px;
    margin-top:-4.75rem;
  }
}

/* ===== v2.2.8: mobile hero — tree behind copy, CTAs below photo ===== */
@media (max-width:760px){
  .hero{
    display:flex !important;
    flex-direction:column;
    padding-top:2.3rem;
    overflow:hidden;
    background:var(--premium-paper);
  }
  .hero-text-col{
    display:contents;
  }
  .hero-eyebrow,
  .hero-motto-label,
  .hero-motto,
  .hero-h1,
  .hero-name-row{
    order:1;
    position:relative;
    z-index:3;
    align-self:flex-end;
    width:calc(100% - 2.3rem);
    margin-left:1.15rem;
    margin-right:1.15rem;
    text-align:right;
  }
  .hero-eyebrow{
    justify-content:flex-end;
    margin-bottom:1.6rem;
  }
  .hero-motto-label{
    margin-bottom:.75rem;
  }
  .hero-motto{
    width:max-content;
    max-width:calc(100% - 2.3rem);
    margin-left:auto;
    margin-bottom:1.9rem;
    border-left:0;
    border-right:1px solid var(--premium-rust);
    padding:0 1rem 0 0;
  }
  .hero-h1{
    margin-bottom:1.35rem;
  }
  .hero-name-row{
    display:flex;
    justify-content:flex-end;
    margin-bottom:0;
  }
  .hero-img-col{
    order:2;
    position:relative;
    z-index:1;
    width:100%;
    height:clamp(440px,61svh,570px);
    min-height:440px;
    margin-top:-10.5rem;
  }
  .hero-img-col img.hero-img-position-left{
    width:112%;
    margin-left:-12%;
    object-position:center top;
  }
  .hero-img-overlay{
    background:linear-gradient(
      to bottom,
      var(--premium-paper) 0%,
      rgba(247,243,236,.9) 10%,
      rgba(247,243,236,.55) 24%,
      rgba(247,243,236,.15) 40%,
      rgba(247,243,236,0) 56%
    );
  }
  .hero-btns{
    order:3;
    position:relative;
    z-index:3;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.7rem;
    width:100%;
    margin:0;
    padding:1rem 1.15rem 2.4rem;
    background:var(--premium-paper);
  }
  .hero-btns a,
  .hero-btns button{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:54px;
    padding:.8rem .45rem;
    font-size:11px;
    white-space:nowrap;
  }
}
@media (max-width:390px){
  .hero{
    padding-top:2rem;
  }
  .hero-img-col{
    height:410px;
    min-height:410px;
    margin-top:-9.25rem;
  }
  .hero-btns{
    padding-bottom:2rem;
  }
}

/* ===== v2.2.9: mobile representative name outline ===== */
@media (max-width:760px){
  .hero-name-row{
    -webkit-text-stroke:.35px rgba(255,255,255,.98);
    paint-order:stroke fill;
    text-shadow:
      -1px -1px 0 rgba(255,255,255,.92),
       1px -1px 0 rgba(255,255,255,.92),
      -1px  1px 0 rgba(255,255,255,.92),
       1px  1px 0 rgba(255,255,255,.92);
  }
}
