/* Consolidated layout refinements. Source order is intentional. */

/* v5-refinement */
:root{--max:1240px}
body{font-feature-settings:"palt" 1}
.wrap{width:min(calc(100% - 64px),var(--max))}
.section{padding:126px 0}
.lead{font-size:1.08rem;line-height:2}
h2{max-width:780px}
.page-hero{position:relative;overflow:hidden}
.page-hero:after{
 content:"";position:absolute;width:640px;height:640px;border:1px solid rgba(200,169,106,.20);
 border-radius:50%;right:-330px;top:-390px;pointer-events:none
}
.page-hero .wrap{position:relative;z-index:1;padding:96px 0 88px}
.hero-inner{min-height:760px}
.hero-aside{position:relative}
.hero-aside:after{
 content:"";position:absolute;width:310px;height:310px;border:1px solid rgba(200,169,106,.16);
 border-radius:50%;left:-95px;top:-40px;z-index:-1
}
.symbol-stage{height:220px}
.symbol-stage img{width:195px}
.issue{padding:22px 0}
.outcome{padding:34px 0}
.business-row{padding:32px 0}
.industry-card{padding:38px;min-height:265px}
.industry-card:nth-child(2),.industry-card:nth-child(5){background:#fbfaf8}
.person{padding-top:34px}
.qr-card{padding:44px}
.logo-card{position:relative;overflow:hidden}
.logo-card:after{
 content:"";position:absolute;width:390px;height:390px;border:1px solid rgba(200,169,106,.32);
 border-radius:50%;right:-250px;bottom:-240px
}
.footer-grid{grid-template-columns:1.4fr .6fr}
@media(min-width:981px){
 .section-head>p{padding-top:15px}
 .case-panel{padding-left:42px}
 .faq-list{max-width:850px}
}
@media(max-width:720px){
 .wrap{width:min(calc(100% - 32px),var(--max))}
 .section{padding:84px 0}
 .page-hero .wrap{padding:70px 0 64px}
 .hero-inner{min-height:auto}
}

/* v6-final-polish */
:root{--max:1240px;--gold-soft:#e6d3a0}
body{font-feature-settings:"palt" 1;background:#fff}
.wrap{width:min(calc(100% - 64px),var(--max))}
.section{padding:126px 0}.section-head{margin-bottom:64px}
.eyebrow{font-size:.72rem;letter-spacing:.21em}
h1,h2,h3{text-wrap:balance}.lead{text-wrap:pretty;line-height:2}
.hero h1{max-width:820px}.hero p{max-width:660px}.hero-inner{min-height:760px}
.hero-aside{padding-top:18px;padding-bottom:18px}
.hero-aside:after{width:340px;height:340px}
.page-hero .wrap{padding:96px 0 88px}.page-hero h1{max-width:920px}
.price{letter-spacing:-.035em}.outcome{padding:36px 0}.business-row{padding:34px 0}
.industry-card{padding:40px;min-height:270px;transition:transform .2s ease}.industry-card:hover{transform:translateY(-2px)}
.btn{transition:transform .18s ease,opacity .18s ease}.btn:hover{transform:translateY(-1px);opacity:.92}
.text-link{padding-bottom:3px}.quote:after{content:"";display:block;width:72px;height:1px;background:var(--gold);margin-top:34px}
.faq-list details{padding:26px 0}.qr-card{box-shadow:0 18px 55px rgba(28,23,15,.06)}
@media(max-width:720px){.wrap{width:min(calc(100% - 32px),var(--max))}.section{padding:84px 0}.section-head{margin-bottom:44px}.hero .actions .btn{width:100%}.assurance{display:grid;gap:8px}}

/* v8-layout-review */
/* Calm Chronicle v8 — alignment & responsive stability review */
*,*::before,*::after{box-sizing:border-box}
img,svg{max-width:100%;height:auto}
main,section,.wrap,.container{min-width:0}

/* Rebuilt editorial section headings:
   eyebrow on its own row, then heading + copy aligned together. */
.section-head.v8-section-head{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  column-gap:72px;
  row-gap:22px;
  align-items:start;
}
.section-head.v8-section-head>.eyebrow{
  grid-column:1 / -1;
  margin:0;
}
.section-head.v8-section-head>h2{
  grid-column:1;
  margin:0;
  min-width:0;
}
.section-head.v8-section-head>.lead{
  grid-column:2;
  margin:0;
  padding-top:.35em;
  min-width:0;
}

/* Remove the old desktop-only vertical offset that caused the copy
   to sit between the eyebrow and heading. */
@media(min-width:981px){
  .section-head.v8-section-head>p{padding-top:.35em}
}

/* General overflow / intermediate-width safeguards */
.split>*,
.philosophy>*,
.service-intro>*,
.case-large>*,
.brand-story>*,
.faq-layout>*,
.contact-grid>*,
.footer-grid>*{
  min-width:0;
}
h1,h2,h3,.lead,p{overflow-wrap:break-word}

@media(max-width:1100px){
  .section-head.v8-section-head{column-gap:clamp(34px,5vw,62px)}
  .split,.philosophy,.service-intro,.brand-story,.faq-layout,.contact-grid,.case-large{
    gap:clamp(34px,5vw,58px);
  }
}

@media(max-width:980px){
  .section-head.v8-section-head{
    grid-template-columns:1fr;
    gap:18px;
  }
  .section-head.v8-section-head>.eyebrow,
  .section-head.v8-section-head>h2,
  .section-head.v8-section-head>.lead{
    grid-column:1;
  }
  .section-head.v8-section-head>.lead{padding-top:0}
}

@media(max-width:720px){
  .section-head.v8-section-head{gap:16px}
  .section-head.v8-section-head h2{max-width:100%}
}

/* v9-density-refinement */
/* v9 — desktop density and editorial rhythm
   Keep the premium whitespace, remove the "content feels thin" dead zones. */

@media (min-width:981px){
  .section{
    padding:82px 0;
  }

  .section-head.v8-section-head{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:58px;
    row-gap:14px;
    margin-bottom:38px;
  }

  .section-head.v8-section-head>.eyebrow{
    margin-bottom:0;
  }

  .section-head.v8-section-head>h2{
    font-size:clamp(2.25rem,3.55vw,3.9rem);
    line-height:1.2;
    max-width:10.5em;
    text-wrap:balance;
  }

  .section-head.v8-section-head>.lead{
    padding-top:.22em;
    line-height:1.85;
    max-width:680px;
  }

  /* Pull the actual content closer to the section introduction. */
  .outcome-band{margin-top:30px}
  .business-list{margin-top:28px}
  .people{margin-top:30px}
  .industry-index{margin-top:30px}
  .workflow{margin-top:30px}
  .text-benefit{margin-top:30px}
  .scope{margin-top:28px}
  .company-table{margin-top:28px}
  .contact-points{margin-top:26px}

  /* Slightly tighter row rhythm: still premium, less empty. */
  .business-row{padding:22px 0}
  .outcome{padding:23px 0}
  .dark-line{padding:18px 0}
}

@media (min-width:721px) and (max-width:980px){
  .section{padding:70px 0}
  .section-head.v8-section-head{margin-bottom:34px}
}

@media (max-width:720px){
  .section{padding:58px 0}
  .section-head.v8-section-head{
    gap:13px;
    margin-bottom:30px;
  }
  .section-head.v8-section-head>h2{
    line-height:1.25;
  }
  .outcome-band,.business-list,.people,.industry-index,.workflow,
  .text-benefit,.scope,.company-table,.contact-points{
    margin-top:24px;
  }
}

/* v12-type-scale */
/* v12 — larger, more readable typography */
html{font-size:18px}
body{font-size:1rem;line-height:1.8}

/* navigation and small utility text */
nav a,.nav a,.site-nav a,header a{font-size:15px}
.eyebrow,.kicker,.label,small{font-size:13px;line-height:1.55}

/* regular copy */
p,li,dd,td,.body-copy{font-size:1rem;line-height:1.85}
.lead{font-size:clamp(1.05rem,1.35vw,1.22rem);line-height:1.85}

/* card / row text */
.business-row p,.outcome p,.person p,.faq-item p,
.industry-card p,.workflow p,.contact-points p{
  font-size:1rem;
  line-height:1.82;
}
.business-row h3,.outcome h3,.person h3,.industry-card h3{
  font-size:clamp(1.18rem,1.55vw,1.42rem);
  line-height:1.45;
}

/* buttons and CTA */
.btn,.button,button,[class*="cta"] a{font-size:16px}

/* page/section display headings remain editorial but easier to read */
.section-head.v8-section-head>h2{
  font-size:clamp(2.6rem,4vw,4.25rem);
  line-height:1.18;
}
.page-hero h1,.hero h1{
  line-height:1.16;
}

/* prices and key values */
.price,[class*="price"]{font-size:max(1.08rem,18px)}

/* mobile: don't shrink body copy back down */
@media(max-width:720px){
  html{font-size:17px}
  body,p,li,dd,td{font-size:1rem}
  nav a,.nav a,.site-nav a,header a{font-size:14px}
  .lead{font-size:1.06rem}
  .section-head.v8-section-head>h2{
    font-size:clamp(2.15rem,10vw,3.15rem);
  }
}

/* v13-review-polish */
html{font-size:19px}
body{font-size:1rem}
.eyebrow,.kicker,.label,small{font-size:14px}
nav a,.nav a,.site-nav a,header a{font-size:16px}
p,li,dd,td,.body-copy,.business-row p,.outcome p,.person p,.faq-item p,.industry-card p{
  font-size:1.02rem;
  line-height:1.85;
}
.lead{font-size:clamp(1.12rem,1.45vw,1.28rem)}
@media(max-width:720px){
  html{font-size:18px}
  nav a,.nav a,.site-nav a,header a{font-size:15px}
}

/* v15-layout-tightening */
/* Global: reduce excessive whitespace while keeping editorial breathing room */
.section{padding-top:64px;padding-bottom:64px}
.section-head{margin-bottom:30px}
.page-hero{padding-top:72px;padding-bottom:72px}
.hero{padding-top:78px;padding-bottom:78px}
.wrap{max-width:1480px}

/* Headings: avoid orphaned 1-2 character Japanese line breaks */
.section-head h2,.page-hero h1,.hero h1,
.case-title,.case-copy h2,.case-copy h3,
.display-title{
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:keep-all;
}

/* Allow natural breaking at phrase boundaries, not arbitrary character boundaries */
.section-head h2 br,.page-hero h1 br,.hero h1 br{display:block}

/* About: tighter section rhythm */
body.about-page .section,
.about-page .section{
  padding-top:56px;
  padding-bottom:56px;
}
body.about-page .section-head,
.about-page .section-head{
  margin-bottom:24px;
}
.about-page .outcome,
.about-page .principle-row{
  padding-top:20px;
  padding-bottom:20px;
}

/* Generic row/card spacing */
.business-row,.outcome,.faq-item,.industry-card,.workflow-step{
  padding-top:20px;
  padding-bottom:20px;
}

/* Example case layout */
.case,.case-row,.example-case{
  grid-template-columns:minmax(520px,0.9fr) minmax(0,1.35fr);
  column-gap:48px;
  align-items:start;
}
.case-title,.case-heading,.example-case h2{
  max-width:11.5em;
  font-size:clamp(2.85rem,4.8vw,5.25rem);
  line-height:1.16;
  letter-spacing:-0.03em;
  word-break:keep-all;
  overflow-wrap:normal;
}
.case-copy,.case-detail,.example-case .detail{
  min-width:0;
}

/* Five-step process: give each cell enough width and stop mid-word breaks */
.workflow,.workflow-grid,.case-steps,.example-steps{
  grid-template-columns:repeat(5,minmax(150px,1fr));
  gap:0;
}
.workflow-step,.case-step,.example-step{
  min-width:0;
  padding:24px 22px;
}
.workflow-step p,.workflow-step span,
.case-step p,.case-step span,
.example-step p,.example-step span{
  word-break:keep-all;
  overflow-wrap:normal;
  line-height:1.65;
}

/* Dark editorial sections: reduce oversized empty bands */
.dark-section,.section.dark,.band-dark{
  padding-top:68px;
  padding-bottom:68px;
}

/* Prevent giant lower whitespace caused by min-height / viewport sections */
section{min-height:0}
.section,.dark-section,.section.dark,.band-dark{height:auto}

/* Desktop/tablet */
@media(max-width:1180px){
  .section{padding-top:56px;padding-bottom:56px}
  .case,.case-row,.example-case{
    grid-template-columns:minmax(360px,0.9fr) minmax(0,1.2fr);
    column-gap:34px;
  }
  .workflow,.workflow-grid,.case-steps,.example-steps{
    grid-template-columns:repeat(5,minmax(120px,1fr));
  }
  .workflow-step,.case-step,.example-step{padding:20px 16px}
}

/* Mobile: stack without huge spaces */
@media(max-width:820px){
  .section{padding-top:46px;padding-bottom:46px}
  .page-hero,.hero{padding-top:54px;padding-bottom:54px}
  .case,.case-row,.example-case{
    grid-template-columns:1fr;
    row-gap:28px;
  }
  .case-title,.case-heading,.example-case h2{
    max-width:none;
    font-size:clamp(2.3rem,10vw,3.6rem);
  }
  .workflow,.workflow-grid,.case-steps,.example-steps{
    grid-template-columns:1fr 1fr;
    gap:0;
  }
}
@media(max-width:560px){
  .workflow,.workflow-grid,.case-steps,.example-steps{
    grid-template-columns:1fr;
  }
}

/* v16-mobile-repair */
/* === v16 mobile repair: stop horizontal clipping and over-large typography === */
*{box-sizing:border-box}
html,body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
img,svg,video,canvas{max-width:100%;height:auto}
.wrap,.container,.inner,.content{
  width:min(100% - 32px, 1480px);
  max-width:1480px;
  margin-inline:auto;
}

/* No section should force viewport height or exceed viewport width */
section,.section,.hero,.page-hero,.dark-section,.band-dark{
  min-width:0;
  max-width:100%;
  min-height:0;
  height:auto;
}

/* Desktop/tablet sensible title wrapping */
.hero h1,.page-hero h1,.section-head h2,
.case-title,.case-heading,.example-case h2{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
  text-wrap:balance;
}

/* Text blocks must be allowed to shrink in grids/flex */
.hero-copy,.hero-content,.section-head>*,
.case>* ,.case-row>* ,.example-case>*,
.business-row>* ,.outcome>*{
  min-width:0;
}

/* Main mobile breakpoint */
@media(max-width:820px){
  html{font-size:16px}
  body{font-size:16px;line-height:1.75}
  .wrap,.container,.inner,.content{
    width:calc(100% - 28px);
  }

  /* Header */
  header,.site-header{min-height:auto}
  .brand-mark{width:46px;height:46px;flex:0 0 46px}
  .brand-name,.site-brand-name{font-size:1.25rem;white-space:nowrap}
  .site-header .wrap,header .wrap{
    width:calc(100% - 24px);
    padding-block:12px;
  }

  /* Hero */
  .hero,.page-hero{
    padding:48px 0 44px;
  }
  .hero-grid,.page-hero-grid,.hero-inner{
    display:grid;
    grid-template-columns:1fr;
    gap:28px;
  }
  .hero h1,.page-hero h1{
    font-size:clamp(2.55rem,11vw,4.2rem);
    line-height:1.12;
    letter-spacing:-0.035em;
    max-width:100%;
    word-break:auto-phrase;
    overflow-wrap:normal;
  }
  .hero p,.page-hero p,.lead{
    font-size:1.05rem;
    line-height:1.8;
    max-width:100%;
  }
  .eyebrow,.kicker,.label{
    font-size:.78rem;
    letter-spacing:.18em;
  }

  /* Buttons: never overflow viewport */
  .btn,.button,[class*="cta"] a,.hero a{
    max-width:100%;
    width:100%;
    white-space:normal;
    text-align:center;
  }

  /* Section rhythm */
  .section,.dark-section,.section.dark,.band-dark{
    padding:44px 0;
  }
  .section-head{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    margin-bottom:24px;
  }
  .section-head h2{
    font-size:clamp(2.1rem,9vw,3.15rem);
    line-height:1.18;
    max-width:100%;
    word-break:auto-phrase;
    overflow-wrap:normal;
  }
  .section-head .lead,.section-head p{
    font-size:1rem;
    line-height:1.75;
  }

  /* Comparison / outcome rows: stack instead of pseudo-table */
  .outcome,.business-row,.principle-row{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    padding:18px 0;
  }
  .outcome .arrow,.principle-row .arrow{
    transform:rotate(90deg);
    justify-self:start;
    margin:0;
  }

  /* Example cases */
  .case,.case-row,.example-case{
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
  }
  .case-title,.case-heading,.example-case h2{
    font-size:clamp(2.4rem,10vw,3.5rem);
    line-height:1.14;
    max-width:100%;
    word-break:auto-phrase;
    overflow-wrap:normal;
  }

  /* Workflow: one card per row on phones to prevent mid-word wrapping */
  .workflow,.workflow-grid,.case-steps,.example-steps{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    width:100%;
  }
  .workflow-step,.case-step,.example-step{
    display:grid;
    grid-template-columns:48px 1fr;
    column-gap:14px;
    align-items:start;
    padding:18px 0;
    border-left:0;
    border-right:0;
  }
  .workflow-step p,.workflow-step span,
  .case-step p,.case-step span,
  .example-step p,.example-step span{
    word-break:auto-phrase;
    overflow-wrap:normal;
    white-space:normal;
  }

  /* Avoid clipped prose shown in screenshot */
  p,li,dd,td,.body-copy{
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  /* Tables should scroll rather than break page */
  table{display:block;max-width:100%;overflow-x:auto}

  /* Footer / QR / cards */
  .qr,.qr img{max-width:220px}
}

@media(max-width:430px){
  .wrap,.container,.inner,.content{width:calc(100% - 22px)}
  .hero h1,.page-hero h1{font-size:clamp(2.25rem,10.2vw,3.25rem)}
  .section-head h2{font-size:clamp(1.95rem,8.8vw,2.7rem)}
  .case-title,.case-heading,.example-case h2{font-size:clamp(2.15rem,9.4vw,3rem)}
  .brand-name,.site-brand-name{font-size:1.1rem}
}

/* v16-1-static-hero-deco */
.page-hero{position:relative;overflow:hidden;isolation:isolate}
.page-hero>.wrap{position:relative;z-index:2}
.hero-deco{position:absolute;inset:0 0 0 auto;width:min(44vw,680px);pointer-events:none;z-index:1}
.hero-deco::before{
  content:"";position:absolute;width:560px;height:560px;right:-150px;top:-95px;
  border:1px solid rgba(200,169,106,.22);border-radius:50%;
  box-shadow:0 0 0 72px rgba(200,169,106,.045),0 0 0 144px rgba(200,169,106,.022)
}
.hero-deco::after{
  content:attr(data-num);position:absolute;right:64px;bottom:46px;
  font-family:Georgia,"Times New Roman",serif;font-size:7.5rem;line-height:1;
  letter-spacing:-.06em;color:rgba(255,255,255,.035)
}
.primary-page-hero .hero-deco::after{
  top:clamp(210px,23vw,258px);
  bottom:auto;
  color:rgba(255,255,255,.12)
}
.page-hero .wrap::after{
  content:"";position:absolute;right:66px;top:36px;width:150px;height:150px;
  border:2px solid rgba(200,169,106,.32);border-right-color:transparent;
  border-bottom-color:rgba(200,169,106,.08);border-radius:50%;transform:rotate(-24deg)
}
.page-hero .wrap::before{
  content:"";position:absolute;right:120px;top:88px;width:96px;height:96px;
  border:2px solid rgba(200,169,106,.25);border-left-color:transparent;
  border-radius:50%;transform:rotate(28deg)
}
@media(min-width:1100px){.page-hero>.wrap{padding-right:min(34vw,500px)}}
@media(max-width:1099px) and (min-width:821px){
  .hero-deco{width:38vw;opacity:.65}.hero-deco::before{right:-240px}
  .hero-deco::after{font-size:5rem;right:28px}
  .page-hero .wrap::after{right:20px;transform:scale(.78) rotate(-24deg)}
  .page-hero .wrap::before{right:54px;transform:scale(.78) rotate(28deg)}
}
@media(max-width:820px){
  .hero-deco{width:180px;height:180px;top:18px;right:-76px;opacity:.42}
  .hero-deco::before{width:180px;height:180px;right:0;top:0;
    box-shadow:0 0 0 28px rgba(200,169,106,.03),0 0 0 56px rgba(200,169,106,.015)}
  .hero-deco::after,.page-hero .wrap::before,.page-hero .wrap::after{display:none}
  .page-hero>.wrap{padding-right:0}
}

/* v16-2-layout-fix */
/* ===== Mobile hero: remove the floating standalone logo artwork ===== */
@media(max-width:820px){
  .hero-aside,
  .symbol-stage{
    display:none;
  }
  .hero-inner{
    grid-template-columns:1fr;
    gap:0;
  }
  .hero{
    padding-bottom:42px;
  }
}

/* ===== Japanese heading wrapping ===== */
.hero h1,
.page-hero h1,
.section-head h2,
.section h2,
.section h3{
  line-break:strict;
  overflow-wrap:normal;
  text-wrap:balance;
}
@supports (word-break:auto-phrase){
  .hero h1,
  .page-hero h1,
  .section-head h2,
  .section h2{
    word-break:auto-phrase;
  }
}

/* Give editorial headings a little more usable width and slightly calmer size */
@media(min-width:1100px){
  .section-head{
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
    column-gap:54px;
  }
  .section-head h2{
    max-width:12em;
    font-size:clamp(2.45rem,3.55vw,3.9rem);
    line-height:1.2;
  }
}

/* ===== AI use-case page ===== */
.examples-page .section>.wrap{
  min-width:0;
}
.examples-page .section h2{
  max-width:10.8em;
  font-size:clamp(2.65rem,4vw,4.45rem);
  line-height:1.17;
  letter-spacing:-.025em;
}
.examples-page .workflow{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  width:100%;
  min-width:0;
  overflow:visible;
}
.examples-page .workflow>div{
  min-width:0;
  padding:22px 18px;
  word-break:auto-phrase;
  overflow-wrap:normal;
  line-height:1.65;
}
.examples-page .workflow b{
  display:block;
  margin-bottom:14px;
}

/* Prevent the fifth workflow cell from being cut off */
.examples-page .workflow,
.examples-page .workflow *{
  box-sizing:border-box;
}

/* ===== About page ===== */
.about-page .section-head h2{
  max-width:11em;
}
.about-page .section-head .lead{
  max-width:31em;
}

/* ===== Mobile typography: slightly smaller and more deliberate ===== */
@media(max-width:820px){
  .hero h1{
    font-size:clamp(2.3rem,9.8vw,3.35rem);
    line-height:1.13;
  }
  .page-hero h1{
    font-size:clamp(2.15rem,9.2vw,3.1rem);
    line-height:1.16;
  }
  .section-head h2,
  .section h2{
    font-size:clamp(1.95rem,8.4vw,2.75rem);
    line-height:1.22;
    max-width:100%;
  }
  .section h3{
    line-height:1.4;
  }

  /* workflow is much easier to scan vertically on a phone */
  .examples-page .workflow{
    grid-template-columns:1fr;
  }
  .examples-page .workflow>div{
    display:grid;
    grid-template-columns:46px minmax(0,1fr);
    gap:12px;
    padding:16px 0;
    border-left:0;
    border-right:0;
  }
  .examples-page .workflow b{
    margin:0;
  }

  /* Keep the new hero decoration subtle on mobile */
  .hero-deco{
    opacity:.28;
  }
}

/* v16-4-logo-black-match */
/* The official logo canvas is essentially pure black (#000).
   Match the surrounding surfaces exactly so the rectangular image bounds disappear. */
header,
.site-header,
.hero,
.hero-aside,
.symbol-stage{
  background:#000000;
}

/* Keep logo source untouched; no blend/filter/transparency tricks. */
.brand-mark img,
.symbol-stage img,
.hero-aside .symbol-stage img{
  mix-blend-mode:normal;
  filter:none;
  opacity:1;
}

/* Avoid any border/shadow exposing the image rectangle. */
.symbol-stage{
  box-shadow:none;
}

/* v16-5-about-our-view-heading-fix */
/* OUR VIEW: keep the intended two-line heading on desktop.
   Only this heading is adjusted; other sections remain unchanged. */
@media (min-width:981px){
  .philosophy .quote{
    font-size:clamp(2.35rem,3.15vw,3rem);
    line-height:1.45;
    letter-spacing:-.035em;
  }
  .philosophy{
    grid-template-columns:1fr 1.08fr;
    gap:clamp(56px,5vw,76px);
  }
}

/* v17-about-logo-card-size-fix */
/* Keep the original logo artwork, but crop its oversized white canvas so the
   introduction remains the focus on desktop, tablet, and phone widths. */
.about-page .brand-story{align-items:center}
.about-page .logo-card{
  min-height:0;
  height:clamp(280px,28vw,360px);
  padding:clamp(18px,2.5vw,30px);
  overflow:hidden;
}
.about-page .logo-card img{
  width:min(100%,340px);
  height:100%;
  max-height:300px;
  object-fit:cover;
  object-position:center 50%;
}
@media(max-width:980px){
  .about-page .brand-story{gap:32px}
  .about-page .logo-card{height:280px}
  .about-page .logo-card img{width:min(100%,300px);max-height:230px}
}
@media(max-width:820px){
  .about-page .business-row{
    grid-template-columns:42px minmax(0,1fr);
    column-gap:14px;
    row-gap:8px;
  }
  .about-page .business-row>b{grid-column:1;grid-row:1}
  .about-page .business-row>h3{grid-column:2;grid-row:1}
  .about-page .business-row>p{grid-column:2;grid-row:2;margin:0}
}
@media(max-width:430px){
  .about-page .logo-card{height:220px;padding:14px}
  .about-page .logo-card img{width:min(100%,260px);max-height:180px}
}

/* v17-1-top-hero-spacing-fix */
/* TOP only: remove excess vertical whitespace without changing the visual design */
@media (min-width:821px){
  .hero{padding-top:0;padding-bottom:0;}
  .hero-inner{min-height:auto;padding-top:72px;padding-bottom:72px;}
}

/* v18-final-information-design */
/* Top: keep the editorial two-column entry, but let both columns end naturally. */
@media(min-width:981px){
  .home-page .service-entry{
    grid-template-areas:
      "kicker checks"
      "title checks"
      "description checks"
      "price checks"
      "detail checks"
      "payment branch"
      "note branch";
    align-items:start;
    padding-bottom:30px;
  }
  .home-page .service-entry>.checks,
  .home-page .service-entry>.service-branch-intro{align-self:start}
  .home-page .service-entry>.service-branch-intro{margin-top:12px}
}

/* Services: make the concept and the comparison read as two separate chapters. */
.services-page .service-intro{position:relative;padding-bottom:6px}
.services-page .service-intro::after{
  content:"";position:absolute;left:0;right:0;bottom:-34px;height:1px;
  background:linear-gradient(90deg,var(--gold) 0 12%,var(--line) 12% 100%);
}
.services-page .comparison-section{
  background:linear-gradient(180deg,#f7f3eb 0,#fbfaf8 42%,#fff 100%);
  border-top:1px solid rgba(162,124,44,.15);
}
.services-page .service-compare-grid{align-items:stretch}
.services-page .service-compare-card{display:flex;flex-direction:column;min-height:0}
.services-page .service-compare-card>p{min-height:5.4em}
.services-page .service-compare-card>ul{min-height:9.7em;margin-bottom:22px}
.services-page .service-compare-card>.compare-actions{margin-top:0}

/* Top: keep both comparison cards on one shared action rhythm. */
@media(min-width:981px){
  .home-page .service-choice-card{
    --choice-gap-list-detail:18px;
    --choice-gap-detail-button:12px;
    --choice-gap-button-note:8px;
    padding:clamp(30px,3.2vw,42px)
  }
  .home-page .service-choice-card>p:not(.payment-note){min-height:3.8em}
  .home-page .service-choice-card>.checks{margin-bottom:0}
  .home-page .service-choice-card>.service-detail-link{margin-top:var(--choice-gap-list-detail)}
  .home-page .service-choice-card>.payment-button{margin-top:var(--choice-gap-detail-button)}
  .home-page .service-choice-card>.payment-note{
    display:block;
    min-height:0;
    margin-top:var(--choice-gap-button-note)
  }
}

/* Keep the top diagnosis CTA and its Stripe explanation visually connected,
   while giving the explanation enough breathing room to read separately. */
.home-page .service-entry[data-service="diagnosis"]>.payment-note{margin-top:15px}

/* Browser-local free diagnosis demo. No response is sent outside the page. */
.diagnosis-demo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;margin-top:36px}
.diagnosis-demo fieldset{border:0;border-top:1px solid var(--line);padding:22px 0 0;margin:0;min-width:0}
.diagnosis-demo fieldset:last-of-type{grid-column:1/-1}
.diagnosis-demo legend{font-family:var(--serif);font-size:1.15rem;line-height:1.55;font-weight:600;padding:0;margin-bottom:14px}
.diagnosis-demo legend span{display:inline-block;color:var(--gold-dark);font-family:var(--sans);font-size:.74rem;margin-right:10px}
.demo-choices{display:grid;gap:9px}
.demo-choices label{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--line);padding:13px 14px;cursor:pointer;line-height:1.55}
.demo-choices label:has(input:checked){border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold)}
.demo-choices input{margin-top:.35em;accent-color:var(--gold-dark);flex:none}
.demo-submit{grid-column:1/-1;justify-self:start;border:0;cursor:pointer;margin-top:4px}
.demo-result{margin-top:28px;padding:clamp(24px,4vw,44px);background:#111;color:#fff;border-left:4px solid var(--gold)}
.demo-result h3{font-size:clamp(1.9rem,3.5vw,3rem);margin:0 0 14px}
.demo-result>p{max-width:52em;color:#e0ddd8}
.demo-result .demo-context{margin:12px 0 0;padding-left:18px;border-left:1px solid rgba(200,169,106,.58);color:#d7d2cb}
.demo-result .demo-boundary{margin-top:22px;padding-top:18px;border-top:1px solid #393633;color:#bdb7ae;font-size:.88rem}
.demo-price{display:flex;align-items:baseline;gap:7px;margin:24px 0 16px}.demo-price strong{font-family:var(--serif);font-size:2rem}.demo-price small{margin-left:5px;color:#d9cda8}

/* Deliverables already live in the comparison cards. Keep extra work separate. */
.additional-support-section{background:#fff;border-top:1px solid var(--line)}
.additional-support-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:30px 68px;align-items:center}
.additional-support-layout h2{margin-bottom:18px}
.additional-support-flow{display:grid;grid-template-columns:repeat(7,auto);align-items:center;justify-content:space-between;gap:12px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.additional-support-flow span{font-family:var(--sans);font-size:.86rem;font-weight:700;line-height:1.55;text-align:center}
.additional-support-flow i{color:var(--gold);font-style:normal}
.additional-support-note{grid-column:2;margin-top:-8px}

/* About: use the existing principles to balance the representative message. */
.about-page .message-layout{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(46px,6vw,88px);align-items:start}
.about-page .message-notes{border-top:1px solid var(--gold)}
.about-page .message-notes>div{display:grid;grid-template-columns:34px minmax(0,1fr);gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.about-page .message-notes b{color:var(--gold-dark);font-family:var(--serif);font-size:1rem;font-weight:400}
.about-page .message-notes span{font-family:var(--serif);font-size:1.16rem;line-height:1.55}
.about-page .representative-profile p{margin:18px 0 0;color:#66605a}
.about-page .representative-profile p:last-child{padding-top:18px;border-top:1px solid var(--line);color:#4f4943}
.about-page .about-standard .philosophy{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.about-page .standard-quote span{display:block}
.about-page .standard-quote span:last-child{white-space:nowrap}
.about-page .standard-copy{max-width:600px}
.about-page .standard-copy .lead{margin-top:0}
.about-page .standard-copy .lead+.lead{margin-top:13px}
.about-page .company-overview-section{position:relative;overflow:hidden}
.about-page .company-overview{position:relative;display:grid;grid-template-columns:minmax(250px,.58fr) minmax(0,1.42fr);gap:34px 72px;align-items:start}
.about-page .company-overview-heading p{max-width:22em;margin:20px 0 0;color:#6a645d;line-height:1.85}
.about-page .company-overview .company-table{max-width:none;margin-top:0;background:rgba(255,255,255,.34)}
.about-page .company-record-deco{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;color:rgba(162,124,44,.72);font-family:var(--sans);font-size:.68rem;letter-spacing:.22em}
.about-page .company-record-deco i{height:1px;background:linear-gradient(90deg,rgba(162,124,44,.6),rgba(162,124,44,.08))}
.about-page .company-overview-section::after{
  content:"";position:absolute;width:360px;height:360px;right:-190px;bottom:-240px;
  border:1px solid rgba(162,124,44,.18);border-radius:50%;pointer-events:none;
}

@media(max-width:980px){
  .additional-support-layout{grid-template-columns:1fr;gap:24px}
  .additional-support-note{grid-column:1;margin-top:0}
  .additional-support-flow{grid-template-columns:1fr;justify-items:start;padding:18px 0}
  .additional-support-flow i{transform:rotate(90deg);margin-left:8px}
  .about-page .message-layout,
  .about-page .company-overview{grid-template-columns:1fr;gap:28px}
  .about-page .about-standard .philosophy{grid-template-columns:1fr;gap:34px}
  .about-page .company-record-deco{opacity:.65}
  .services-page .service-compare-card>p,
  .services-page .service-compare-card>ul{min-height:0}
}
@media(max-width:720px){
  .services-page .service-intro::after{bottom:-22px}
  .about-page .message-notes>div{padding:15px 0}
  .about-page .standard-quote{font-size:clamp(1.9rem,9.4vw,2.7rem)}
  .about-page .company-record-deco{display:none}
  .about-page .company-overview-section::after{width:190px;height:190px;right:-125px;bottom:-120px}
  .diagnosis-demo{grid-template-columns:1fr;gap:18px}
  .diagnosis-demo fieldset:last-of-type,.demo-submit{grid-column:1}
}
