/* INTERIOLOGY Z197: responsive integrity, type composition and transition handoff */
:root{--z197-gutter:clamp(18px,4vw,44px);--z197-rule:rgba(255,255,255,.14);--z197-ease:cubic-bezier(.22,1,.36,1);}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}

/* Typography: use the browser's line composer first, then the JS widow pass only where needed. */
:where(h1,h2,h3,h4,h5,.statement,.tag,.q,.flabel,.fn,.range .num,.range .flag){
  text-wrap:balance;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}
:where(p,.read,.lead,.sub,.fblurb,.dd,.ad,.faq .a,.qa .a,.jrnl-standfirst,.jrnl-body p,.pstep p,.blurb,.areas,.range p,.soon-card p,.intro,.mintro,.statement p,.story p,.cta-inner p,.element .copy p,.form-side .intro,.cline a,.cline span){
  text-wrap:pretty;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
}
.io-tail{display:contents!important;white-space:normal!important;max-width:none!important;}
.io-widow-lock{white-space:nowrap;}

/* Kitchen ranges: remove duplicate status language and give every layer a reserved zone. */
body.page-kitchen .range-grid{
  background:transparent!important;
  gap:clamp(10px,1.1vw,16px)!important;
}
body.page-kitchen .range{
  border:1px solid var(--z197-rule)!important;
  box-shadow:none!important;
}
body.page-kitchen .range[data-soon='1']{
  aspect-ratio:auto!important;
  min-height:310px!important;
  overflow:hidden!important;
}
body.page-kitchen .range[data-soon='1'] .flag{
  top:22px!important;
  left:22px!important;
  right:auto!important;
  width:auto!important;
  max-width:calc(100% - 44px)!important;
  padding:10px 13px!important;
  line-height:1!important;
  white-space:nowrap!important;
  z-index:4!important;
  background:#050505!important;
  color:#f4f2ec!important;
  border:1px solid rgba(255,255,255,.34)!important;
}
body.page-kitchen .range[data-soon='1'] .body{
  position:relative!important;
  inset:auto!important;
  min-height:310px!important;
  justify-content:flex-start!important;
  padding:84px 28px 30px!important;
  background:#050505!important;
  border:0!important;
}
body.page-kitchen .range[data-soon='1'] .num{display:none!important;}
body.page-kitchen .range[data-soon='1'] h3{
  margin:0 0 22px!important;
  line-height:1.25!important;
  min-height:0!important;
}
body.page-kitchen .range[data-soon='1'] .hpre{
  display:block!important;
  margin:0 0 18px!important;
  font-size:9px!important;
  line-height:1!important;
  color:rgba(244,242,236,.52)!important;
}
body.page-kitchen .range[data-soon='1'] p{
  max-width:30ch!important;
  margin-top:auto!important;
  font-size:13px!important;
  line-height:1.72!important;
}

/* Controlled spacing between structural elements and cards. */
:where(.ranges,.offer,.areas,.divisions,.stats,.process,.faq,.materials,.mats,.cmats,.about,.story,.statement,.element,.contact){
  isolation:isolate;
}
:where(.dcell,.stat,.area-card,.el-card,.pstep,.spec .cell,.mcell,.range){
  border-color:var(--z197-rule)!important;
}

@media(max-width:860px){
  :root{--z197-gutter:20px;}
  :where(.read,p.read,.lead,.sub,.fblurb,.dd,.ad,.faq .a,.qa .a,.jrnl-standfirst,.jrnl-body p,.pstep p,.blurb,.areas,.range p,.soon-card p,.intro,.mintro,.statement p,.story p,.cta-inner p,.element .copy p,.form-side .intro){
    font-size:14px!important;
    line-height:1.72!important;
    letter-spacing:.01em!important;
  }
  :where(h1,h2,h3,h4,.statement h2,.about h2,.story h2,.element h2,.ranges h2,.process h2,.faq h2){
    line-height:1.28!important;
  }
  body.page-kitchen .ranges{padding:66px 20px 78px!important;}
  body.page-kitchen .ranges>.head{padding:0!important;margin:0 0 34px!important;}
  body.page-kitchen .range-grid,
  body.page-kitchen .range-grid.io-range-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }
  body.page-kitchen .range-grid>.range:first-child{
    grid-column:1/3!important;
  }
  body.page-kitchen .range-grid>.range:nth-child(n+2){
    grid-column:auto!important;
    min-height:330px!important;
  }
  body.page-kitchen .range[data-soon='1'] .body{min-height:330px!important;padding:82px 24px 28px!important;}
  body.page-kitchen .range[data-soon='1'] p{font-size:14px!important;max-width:none!important;}
}

@media(max-width:600px){
  body.page-kitchen .range-grid,
  body.page-kitchen .range-grid.io-range-grid{grid-template-columns:1fr!important;gap:14px!important;}
  body.page-kitchen .range-grid>.range:first-child,
  body.page-kitchen .range-grid>.range:nth-child(n+2){grid-column:1!important;}
  body.page-kitchen .range[data-soon='1'],
  body.page-kitchen .range-grid>.range:nth-child(n+2){min-height:0!important;}
  body.page-kitchen .range[data-soon='1'] .body{min-height:285px!important;padding:80px 24px 28px!important;}
  body.page-kitchen .range[data-soon='1'] .flag{top:20px!important;left:20px!important;max-width:calc(100% - 40px)!important;}
  body.page-kitchen .range[data-soon='1'] h3{margin-bottom:18px!important;}
  body.page-kitchen .range[data-soon='1'] p{margin-top:0!important;max-width:32ch!important;}
  /* More reliable breathing room around fixed controls on small iPhones. */
  footer{padding-bottom:calc(112px + env(safe-area-inset-bottom))!important;}
}

/* One transition specification. This intentionally overrides every inherited PT version. */
#pt{
  position:fixed!important;
  inset:0!important;
  z-index:30000!important;
  display:block!important;
  visibility:hidden!important;
  opacity:1!important;
  pointer-events:none!important;
  overflow:hidden!important;
  background:transparent!important;
  transition:none!important;
}
#pt .pt193-veil{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  display:block!important;
  background:#020202!important;
  opacity:0!important;
  transition:opacity .72s var(--z197-ease)!important;
}
#pt::before,#pt::after{
  content:""!important;
  position:absolute!important;
  z-index:1!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  height:50.15%!important;
  background:#020202!important;
  transform:scaleY(0)!important;
  will-change:transform!important;
  transition:transform .92s cubic-bezier(.72,0,.24,1)!important;
}
#pt::before{top:0!important;bottom:auto!important;transform-origin:top center!important;}
#pt::after{bottom:0!important;top:auto!important;transform-origin:bottom center!important;}
#pt .pt192-core{
  position:absolute!important;
  z-index:3!important;
  inset:50% 0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(24px,1fr) auto minmax(24px,1fr)!important;
  align-items:center!important;
  gap:clamp(14px,2vw,32px)!important;
  padding-inline:clamp(22px,8vw,150px)!important;
  opacity:0!important;
  visibility:hidden!important;
  transform:translateY(-50%) scale(.985)!important;
  transition:opacity .34s ease,transform .82s var(--z197-ease),visibility 0s linear 1.2s!important;
}
#pt .pt192-mark{width:clamp(158px,18vw,278px)!important;min-height:42px!important;display:grid!important;place-items:center!important;}
#pt .pt192-mask{
  display:block!important;
  width:100%!important;
  overflow:hidden!important;
  clip-path:inset(0 50% 0 50%)!important;
  opacity:0!important;
  transform:scale(.975)!important;
  transition:clip-path .8s var(--z197-ease),opacity .28s ease,transform .84s var(--z197-ease)!important;
}
#pt .pt192-mask img{display:block!important;width:100%!important;height:auto!important;filter:brightness(0) invert(1)!important;}
#pt .pt192-line{display:block!important;height:1px!important;background:linear-gradient(90deg,transparent,rgba(244,242,236,.42))!important;opacity:.62!important;transform:scaleX(0)!important;transform-origin:right center!important;transition:transform .72s var(--z197-ease),opacity .4s ease!important;}
#pt .pt192-line-r{transform-origin:left center!important;background:linear-gradient(90deg,rgba(244,242,236,.42),transparent)!important;}
html.pt-active #pt,html.pt-arrival #pt,html.pt-covered #pt,html.pt-closing #pt,html.pt-opening #pt{visibility:visible!important;}
html.pt-closing #pt::before,html.pt-closing #pt::after,
html.pt-covered #pt::before,html.pt-covered #pt::after,
html.pt-arrival #pt::before,html.pt-arrival #pt::after{transform:scaleY(1)!important;}
html.pt-closing #pt .pt192-core,html.pt-covered #pt .pt192-core,html.pt-arrival #pt .pt192-core{
  visibility:visible!important;opacity:1!important;transform:translateY(-50%) scale(1)!important;transition-delay:.82s,.82s,0s!important;
}
html.pt-closing #pt .pt192-mask,html.pt-covered #pt .pt192-mask,html.pt-arrival #pt .pt192-mask{
  clip-path:inset(0 0 0 0)!important;opacity:1!important;transform:scale(1)!important;transition-delay:.86s,.86s,.86s!important;
}
html.pt-closing #pt .pt192-line,html.pt-covered #pt .pt192-line,html.pt-arrival #pt .pt192-line{transform:scaleX(1)!important;transition-delay:.98s!important;}
html.pt-covered #pt .pt193-veil,html.pt-arrival #pt .pt193-veil{opacity:1!important;}
/* Incoming page is revealed through the same black field, no transparent gap between states. */
html.pt-opening #pt .pt192-core{visibility:visible!important;opacity:0!important;transform:translateY(calc(-50% - 4px)) scale(.992)!important;transition-delay:0s!important;transition-duration:.38s,.58s,0s!important;}
html.pt-opening #pt .pt192-mask{clip-path:inset(0 48% 0 48%)!important;opacity:0!important;transform:scale(.99)!important;transition-delay:0s!important;transition-duration:.5s,.3s,.56s!important;}
html.pt-opening #pt .pt192-line{transform:scaleX(0)!important;opacity:0!important;transition-delay:0s!important;transition-duration:.48s,.34s!important;}
html.pt-opening #pt::before,html.pt-opening #pt::after{transform:scaleY(0)!important;transition-delay:.42s!important;transition-duration:1.08s!important;}
html.pt-opening #pt .pt193-veil{opacity:0!important;transition-delay:.46s!important;transition-duration:1.02s!important;}
html.pt-arrival #pt,html.pt-arrival #pt::before,html.pt-arrival #pt::after,html.pt-arrival #pt .pt193-veil,html.pt-arrival #pt .pt192-core,html.pt-arrival #pt .pt192-mask,html.pt-arrival #pt .pt192-line{transition:none!important;}
@media(max-width:600px){#pt .pt192-core{grid-template-columns:minmax(16px,1fr) auto minmax(16px,1fr)!important;gap:11px!important;padding-inline:18px!important}#pt .pt192-mark{width:min(50vw,188px)!important;min-height:34px!important}}
@media(prefers-reduced-motion:reduce){#pt::before,#pt::after,#pt .pt193-veil,#pt .pt192-core,#pt .pt192-mask,#pt .pt192-line{transition-duration:.18s!important;transition-delay:0s!important}}
/* Z197.1: clear status-to-title separation in the range cards. */
body.page-kitchen .range[data-soon='1'] .body{padding-top:112px!important;}
body.page-kitchen .range[data-soon='1'] .hpre{margin-bottom:16px!important;}
@media(max-width:860px){body.page-kitchen .range[data-soon='1'] .body{padding-top:110px!important;}}
@media(max-width:600px){body.page-kitchen .range[data-soon='1'] .body{min-height:270px!important;padding-top:106px!important;}}
/* Final range specificity: overrides the authored nth-child shorthand without altering the lead card. */
body.page-kitchen .range-grid>.range[data-soon='1']:nth-child(n+2)>.body{padding:112px 28px 30px!important;}
@media(max-width:860px){body.page-kitchen .range-grid>.range[data-soon='1']:nth-child(n+2)>.body{padding:110px 24px 28px!important;}}
@media(max-width:600px){body.page-kitchen .range-grid>.range[data-soon='1']:nth-child(n+2)>.body{min-height:270px!important;padding:106px 24px 28px!important;}}

/* Z197.2: stable widow locks and phrase integrity after live font/layout resolution. */
.io-widow-lock{white-space:nowrap!important;display:inline!important;}
:where(main,section,article) :where(p,h1,h2,h3,h4,h5,.read,.lead,.sub,.fblurb,.dd,.ad,.faq .a,.qa .a,.jrnl-standfirst,.blurb,.intro,.mintro){
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
}
:where(main,section,article) p>strong:last-child,
:where(main,section,article) p>b:last-child{white-space:nowrap;}
@media(max-width:430px){
  :where(main,section,article) :where(h1,h2,h3,h4,.statement h2,.about h2,.story h2,.element h2,.ranges h2,.process h2,.faq h2){
    max-width:100%!important;
    letter-spacing:min(var(--ls, .08em),.11em)!important;
    text-wrap:balance!important;
  }
  :where(main,section,article) :where(p,.read,.lead,.sub,.fblurb,.dd,.ad,.faq .a,.qa .a,.jrnl-standfirst,.blurb,.intro,.mintro){
    max-width:100%!important;
    text-wrap:pretty!important;
  }
}

/* Z197.3: outgoing page is dimmed before the eye closes, preventing text fragments in the centre slit. */
html.pt-closing #pt .pt193-veil{opacity:.9!important;transition-delay:0s!important;transition-duration:.52s!important;}

/* Z198: clean secondary CTA. Remove redundant proof row and decorative artifacts. */
.io-conv-proof{display:none!important}
.io-conv-secondary{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:max-content!important;
  max-width:100%!important;
  margin-top:18px!important;
  padding:0 0 7px!important;
  gap:0!important;
  border:0!important;
  border-bottom:1px solid rgba(244,242,236,.26)!important;
  background:transparent!important;
  box-shadow:none!important;
  font-family:var(--font-brand,'Syncopate',sans-serif)!important;
  font-size:9px!important;
  line-height:1.45!important;
  letter-spacing:.26em!important;
  text-transform:uppercase!important;
  color:rgba(244,242,236,.72)!important;
  opacity:1!important;
  transform:none!important;
  transition:color .42s ease,border-color .42s ease,letter-spacing .52s cubic-bezier(.22,1,.36,1)!important;
  white-space:normal!important;
  text-wrap:balance!important;
}
.io-conv-secondary::before{display:none!important;content:none!important}
.io-conv-secondary::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:auto!important;
  bottom:-1px!important;
  width:0!important;
  height:1px!important;
  background:rgba(244,242,236,.92)!important;
  transform:none!important;
  transition:width .58s cubic-bezier(.22,1,.36,1)!important;
}
.io-conv-secondary:hover,
.io-conv-secondary:focus-visible{
  color:rgba(244,242,236,.98)!important;
  border-color:rgba(244,242,236,.12)!important;
  letter-spacing:.29em!important;
  transform:none!important;
}
.io-conv-secondary:hover::after,
.io-conv-secondary:focus-visible::after{width:100%!important}

@media(max-width:860px){
  .cta-sec .cta-inner .io-conv-secondary{
    display:flex!important;
    width:fit-content!important;
    max-width:min(100%,300px)!important;
    margin:20px auto 0!important;
    text-align:center!important;
    justify-content:center!important;
  }
}
@media(max-width:390px){
  .io-conv-secondary{
    font-size:8.6px!important;
    letter-spacing:.22em!important;
  }
}
