@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500&display=swap");

/* J.DESIGN responsive stability layer — loaded last on every public page. */
html{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:0;overflow-x:clip}
img,picture,video,iframe,svg{max-width:100%;height:auto}
input,select,textarea,button{max-width:100%;font:inherit}

/* One consistent editorial title voice across every public page. */
h1,h2,h3,
.hero-title,.ia-title,.ia-heading h2,.section-heading h2,
.page-intro h1,.subpage-hero h1,.hc28-hero-panel h1,
.hc28-intro h2,.hc28-section-head h2,.hc28-service-copy h2{
  font-family:"Noto Serif SC","Songti SC",STSong,Georgia,serif!important;
  font-style:normal!important
}
h1,.hero-title,.ia-title,.page-intro h1,.subpage-hero h1,.hc28-hero-panel h1{font-weight:400!important}
h2,h3,.ia-heading h2,.section-heading h2{font-weight:500!important}

.policy-copy{
  width:min(760px,calc(100% - 40px))!important;
  padding-top:clamp(56px,7vw,88px)!important;
  padding-bottom:clamp(56px,7vw,88px)!important
}
.policy-copy h1{
  max-width:100%!important;
  margin-bottom:26px!important;
  font-size:clamp(2.35rem,3.2vw,2.9rem)!important;
  line-height:1.12!important
}
.policy-copy .legal-review{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px 16px;
  align-items:start;
  margin:0 0 34px!important;
  padding:14px 16px!important;
  border-left:2px solid var(--brand-wine,#7f3038)!important;
  font-size:.86rem!important;
  line-height:1.75!important
}
.policy-copy .legal-review strong{
  color:var(--brand-wine,#7f3038);
  font-weight:500;
  white-space:nowrap
}
.policy-copy h2{
  margin-top:34px!important;
  font-size:1.5rem!important;
  line-height:1.25!important;
  letter-spacing:-.025em!important
}
.policy-copy>p:not(.eyebrow):not(.legal-review){
  max-width:70ch;
  margin-top:10px!important;
  margin-bottom:0!important;
  font-size:.94rem!important;
  line-height:1.82!important
}

@media(min-width:721px){
  body:not(.legacy-home) main h1{
    max-width:100%!important;
    font-size:clamp(3.1rem,3vw,3.5rem)!important;
    line-height:1.1!important;
    letter-spacing:-.04em!important
  }
  body main.subpage-main>.subpage-hero:not(.delivery-hero) h1{
    font-size:clamp(3.1rem,3vw,3.5rem)!important;
    line-height:1.1!important
  }
  body main h2{
    max-width:100%!important;
    font-size:clamp(2.1rem,2.3vw,2.75rem)!important;
    line-height:1.16!important;
    letter-spacing:-.035em!important
  }
  body main .service-entry-grid h2,
  body main .info-grid h2,
  body main .package-card h2{
    font-size:clamp(1.8rem,1.75vw,2.1rem)!important;
    line-height:1.28!important
  }
  body main .subpage-cta h2{
    font-size:clamp(2.1rem,2.3vw,2.75rem)!important;
    line-height:1.16!important
  }
  body main h3{
    max-width:100%!important;
    font-size:clamp(1.35rem,1.5vw,1.75rem)!important;
    line-height:1.28!important
  }
  body main .package-section h3{
    font-size:.78rem!important;
    line-height:1.4!important;
    letter-spacing:.08em!important
  }
  body main .ia-project-fields h2,
  body main .contact-form h2{
    font-size:1.45rem!important;
    line-height:1.2!important;
    letter-spacing:-.02em!important
  }
  .page-intro-copy{min-width:0!important}
  .page-intro h1{
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(3.1rem,3vw,3.5rem)!important;
    line-height:1.1!important;
    letter-spacing:-.04em!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
    line-break:strict!important
  }
  .hero-copy{
    align-self:stretch!important;
    justify-content:center!important;
    padding-top:56px!important;
    padding-bottom:56px!important
  }
  .hero-title{
    width:min(100%,650px)!important;
    max-width:650px!important;
    line-height:0!important
  }
  .hero-title>span:not(.hero-title-offset),
  .hero-title-offset>span{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(3.4rem,3.55vw,4.25rem)!important;
    line-height:1.06!important;
    letter-spacing:-.045em!important;
    white-space:normal!important;
    overflow-wrap:normal!important
  }
  .hero-title-offset{
    width:calc(100% - 2.25rem)!important;
    max-width:calc(100% - 2.25rem)!important;
    margin-left:2.25rem!important
  }
}

@media(min-width:721px) and (max-height:900px){
  body.legacy-home .hero{min-height:calc(100vh - 94px)!important}
  body.legacy-home .hero .hero-copy{padding-top:30px!important;padding-bottom:30px!important}
}

@media(max-width:720px){
  :root{--mg:20px}
  *,*::before,*::after{min-width:0}
  body{font-size:16px;line-height:1.65}
  .site-header{width:100%!important;min-height:72px;padding:16px var(--mg)!important}
  .brand,.brand-logo{width:110px!important;max-width:110px!important;height:auto!important}
  .mobile-menu-toggle{min-width:64px!important;min-height:44px!important;padding:0 14px!important;font-size:.78rem!important}
  .site-header .site-nav{right:var(--mg)!important;left:var(--mg)!important;width:auto!important;max-width:none!important;max-height:calc(100svh - 88px);overflow-y:auto;overscroll-behavior:contain}
  .site-header .site-nav a,.mobile-nav-tools a{min-height:44px;white-space:normal!important}

  .section,.ia-shell,.content-shell,.subpage-cta,.legacy-home .ia-hero,.hc28-intro,.hc28-products,.hc28-notes,.hc28-source{width:calc(100% - var(--mg)*2)!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important}
  .ia-section,.section:not(.hero),.section:not(.hero):not(.contact-section):not(.room-delivery-sheet){padding-top:52px!important;padding-bottom:52px!important}

  h1,.ia-title,.page-intro h1,.subpage-hero h1,.subpage-main>.subpage-hero:not(.delivery-hero) h1,.projects-page .projects-intro .ia-title,.contact-page .contact-intro .ia-title,.faq-page .faq-hero .ia-title,.hc28-hero-panel h1{max-width:100%!important;font-size:clamp(2.25rem,10.2vw,2.75rem)!important;line-height:1.1!important;letter-spacing:-.04em!important;overflow-wrap:anywhere;text-wrap:balance}
  body h1,body .ia-title,body .page-intro h1,body .subpage-hero h1,body .hc28-hero-panel h1{font-size:clamp(2.1rem,9.4vw,2.45rem)!important;line-height:1.1!important}
  body.ia-page.show-home-page .show-home-hero h1.ia-title,
  body.ia-page.projects-page .projects-intro h1.ia-title{
    font-size:clamp(2.1rem,9.4vw,2.45rem)!important;
    line-height:1.1!important
  }
  h2,.ia-heading h2,.section-heading h2,.section-heading-wide h2,.subpage-cta h2,.hc28-intro h2,.hc28-section-head h2,.hc28-service-copy h2{max-width:100%!important;font-size:clamp(1.75rem,8vw,2.15rem)!important;line-height:1.18!important;letter-spacing:-.035em!important;overflow-wrap:anywhere;text-wrap:balance}
  h3,.ia-card h3{overflow-wrap:anywhere}
  .eyebrow,.ia-eyebrow,.hero-index,.hero-rail,.hero-process{max-width:100%;letter-spacing:.14em!important;overflow-wrap:anywhere;white-space:normal!important}

  .hero{display:flex!important;flex-direction:column!important;gap:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:0 var(--mg) 48px!important}
  .hero-copy{order:1;width:100%!important;padding:46px 0 34px!important;border:0!important;box-shadow:none!important}
  .hero-copy>.eyebrow,.hero-service-label{width:fit-content!important;max-width:100%!important;padding:8px 10px!important;font-size:.65rem!important;line-height:1.35!important}
  .hero-title{width:100%!important;max-width:100%!important;margin:20px 0 0!important;font-size:0!important;line-height:0!important;letter-spacing:-.045em!important;text-wrap:balance}
  .hero-title>span,.hero-title-offset{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;transform:none!important;text-indent:0!important}
  .hero-title-offset{margin-top:.12em!important}
  .hero-title>span:not(.hero-title-offset),.hero-title-offset>span{font-size:clamp(2.1rem,9.4vw,2.45rem)!important;line-height:1.06!important}
  .hero-title-offset>span{display:inline!important;width:auto!important;max-width:none!important;margin:0!important;padding:0!important;transform:none!important;text-indent:0!important}
  html[lang=en] .hero-title-offset>span:first-child::after{content:" "}
  .hero-text{max-width:100%!important;margin-top:22px!important;padding-left:14px!important;font-size:.9rem!important;line-height:1.7!important}
  .hero-process{gap:7px 9px!important;font-size:.7rem!important;line-height:1.55!important}
  .hero-actions,.ia-actions,.hc28-hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;width:100%}
  .button,.ia-button,.hero-actions a,.contact-submit{width:100%!important;min-height:48px;justify-content:center;white-space:normal!important;text-align:center}
  .hero-visual{order:2;display:block!important;width:100%!important;min-height:0!important;aspect-ratio:4/3;border-radius:0!important}
  .hero-carousel,.carousel-track,.carousel-slide,.carousel-slide img,.visual-preview,.visual-preview img{min-height:0!important;height:100%!important}
  .carousel-arrow{width:44px!important;height:44px!important}.carousel-prev{left:10px!important}.carousel-next{right:10px!important}

  .ia-heading,.ia-feature,.ia-grid-4,.ia-grid-3,.ia-grid-2,.ia-form-grid,.page-intro,.featured-brand,.brand-official-gallery-head,.brand-official-grid,.hc28-hero,.hc28-intro,.hc28-editorial{grid-template-columns:1fr!important}
  .ia-card,.package-card,.product-preview-card,.project-card,.contact-form,.subpage-cta{padding:24px 20px!important}
  .ia-card-media{height:auto!important;aspect-ratio:4/3}
  .ia-card p,.ia-heading>p,.section-note,.page-intro-copy>p:not(.eyebrow){max-width:100%!important;font-size:.93rem!important;line-height:1.75!important}
  .subpage-main>.subpage-hero:not(.delivery-hero){width:100%!important;padding:44px var(--mg)!important}
  .subpage-main>.subpage-hero:not(.delivery-hero)>p:not(.eyebrow){padding-left:14px!important}
  .page-intro{gap:28px!important;padding:44px 0!important}

  .project-library-nav{overflow-x:auto}.project-library-nav .ia-shell{display:flex!important;width:max-content!important;min-width:100%!important}.project-library-nav a{width:auto!important;min-width:150px!important;min-height:48px}
  .ia-process-flow .ia-card,.ia-process-flow .ia-card:nth-child(n+5),.ia-process-flow .ia-card:last-child{grid-template-columns:42px minmax(0,1fr)!important}
  .hc28-hero-image{grid-column:1!important;grid-row:2!important;min-height:0!important;height:auto!important;aspect-ratio:4/3}
  .hc28-hero-panel{grid-column:1!important;grid-row:1!important;padding:44px var(--mg)!important}
  .hc28-shot-wide img,.hc28-shot-tall img,.hc28-shot-small img{min-height:0!important;height:auto!important;aspect-ratio:4/3}
  .hc28-shot{overflow:visible!important;background:#f4f1eb!important}
  .hc28-shot figcaption{position:static!important;display:flex!important;align-items:center!important;min-height:52px;margin:0!important;padding:13px 14px!important;background:#f4f1eb!important;backdrop-filter:none!important;border:1px solid rgba(36,35,33,.12)!important;border-top:0!important}
  .hc28-shot figcaption strong{max-width:100%!important;font-size:1rem!important;line-height:1.35!important;letter-spacing:-.01em!important}
  .hc28-shot figcaption span{display:none!important}

  table{min-width:600px}.table-wrap,.comparison-table,.schedule-table,.pricing-table,.quote-table{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%!important;min-height:48px;font-size:16px!important}textarea{min-height:132px}
  .ia-footer-grid{grid-template-columns:1fr!important;gap:34px!important}.ia-footer-bottom{align-items:flex-start!important;flex-direction:column!important;gap:10px!important}
}
@media(max-width:720px){
  .policy-copy{
    width:calc(100% - 32px)!important;
    padding-top:46px!important;
    padding-bottom:54px!important
  }
  .policy-copy h1{
    margin-bottom:20px!important;
    font-size:2rem!important;
    line-height:1.12!important
  }
  .policy-copy .legal-review{
    display:block!important;
    margin-bottom:28px!important;
    padding:12px 14px!important;
    font-size:.8rem!important;
    line-height:1.7!important
  }
  .policy-copy .legal-review strong{
    display:block;
    margin-bottom:4px
  }
  .policy-copy h2{
    margin-top:28px!important;
    font-size:1.2rem!important;
    line-height:1.25!important
  }
  .policy-copy>p:not(.eyebrow):not(.legal-review){
    margin-top:8px!important;
    font-size:.9rem!important;
    line-height:1.75!important
  }
  .policy-copy .button{
    width:auto!important;
    min-height:44px;
    margin-top:34px;
    padding:11px 20px!important
  }
}

@media(max-width:380px){:root{--mg:16px}.hero-title>span:not(.hero-title-offset),.hero-title-offset>span{font-size:2.05rem!important}h1,.ia-title,.page-intro h1,.subpage-main>.subpage-hero:not(.delivery-hero) h1{font-size:2.2rem!important}}
