/* One font and one type scale for both languages and every viewport.
   14: secondary text; 16: controls; 18: reading; 20/24: card titles.
   Full Latin + Vietnamese files use explicit weights, without synthesis. */
@font-face{font-family:Manrope;src:url('/design/manrope-regular-full.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('/design/manrope-medium-full.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('/design/manrope-semibold-full.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

:root{
  --sans:Manrope,Arial,sans-serif;
  --text-small:.875rem;
  --text-base:1rem;
  --text-reading:1.125rem;
  --text-card:1.25rem;
  --text-title:1.5rem;
  --text-section:clamp(2rem,3.3vw,3.25rem);
  --text-page:clamp(2.5rem,5vw,4.5rem);
  --text-hero:clamp(3.5rem,6vw,6rem);
  --muted:#505a50;
}
html{font-size:100%;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-size:var(--text-base);font-weight:400;line-height:1.65;font-synthesis:none;letter-spacing:0}
button,input,select,textarea{font:inherit}
small{font-size:var(--text-small)}
h1,h2,h3,h4,h5,h6{font-family:var(--sans);font-weight:500;line-height:1.25;letter-spacing:-.035em;overflow-wrap:break-word}
h1{font-size:var(--text-page)}h2{font-size:var(--text-section)}h3{font-size:var(--text-title)}
em{font-family:inherit;font-style:normal;font-weight:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit}
strong,b{font-weight:600}
p{line-height:1.75}

/* Navigation, actions and form controls are never reduced below 16px. */
.site-header nav>a,.header-cta,.language-switch a,.button,.text-link,.filter-tabs button,
.search-field input,.catalog-summary select,.comparison-panel>select,
.enquiry-form label,.enquiry-form input,.enquiry-form textarea,.enquiry-form select{
  font-size:var(--text-base);line-height:1.5;font-weight:500;letter-spacing:0;
}
.button,.text-link{gap:24px}
.button{min-height:56px;padding:16px 22px}
.header-cta{min-height:48px;padding:11px 17px;white-space:nowrap}
.language-switch a{width:42px;min-height:42px;font-weight:600}
.filter-tabs button{min-height:48px;padding:11px 15px}
.enquiry-form label{font-weight:600}
.enquiry-form input,.enquiry-form textarea,.enquiry-form select{font-weight:400;min-height:50px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.enquiry-form .form-row{gap:26px}

/* Small text has a 14px floor, sufficient weight, and moderate tracking. */
.eyebrow,.image-note,.hero-caption small,.material-strip>span:first-child,
.stone-tag,.image-action,.stone-meta p,.approach-photo span,.approach-points,
.space-card span,.palette-round,.footer-bottom,.catalog-summary,
.gallery-card figcaption>span,.principles article>span,.article-layout>aside,
.form-intro,.field-error,.form-notice,.palette-toolbar>span,.comparison-panel>label,
.comparison-meta p,.palette-bottom p,#palette-status,.dialog-product-info dl,
.dialog-gallery-info p,.archive-note,.hero-bottom p,.material-note{
  font-size:var(--text-small);line-height:1.6;letter-spacing:0;font-weight:500;
}
.eyebrow,.image-note,.hero-caption small,.material-strip>span:first-child,
.stone-tag,.approach-photo span,.space-card span,.form-intro,
.palette-toolbar>span,.comparison-panel>label{
  font-weight:600;letter-spacing:.06em;
}
.hero-caption small{display:block;margin-bottom:8px}
.image-note{max-width:calc(100% - 40px);padding:8px 12px;background:var(--paper)}
.stone-tag{padding:6px 10px}
.approach-photo span{background:#203122d9;padding:10px 14px;left:20px;right:20px;width:fit-content;max-width:calc(100% - 40px)}
.approach-points{gap:16px 25px;flex-wrap:wrap}
.approach-points span::before{margin-right:8px}
.palette-round{width:126px;height:126px;letter-spacing:.02em;line-height:1.6}
.hero-bottom p{color:var(--muted)}
.footer-links{font-size:var(--text-base);font-weight:500;line-height:1.6}
.footer-bottom{flex-wrap:wrap;gap:16px 24px;color:var(--muted)}
.gallery-card figcaption{flex-wrap:wrap;align-items:flex-start}
.gallery-card figcaption>span{white-space:nowrap}
.material-strip>a{font-size:var(--text-base);font-weight:500}
.material-strip>span:first-child{max-width:230px}
.material-strip{flex-wrap:wrap;gap:20px}

/* Reading copy has the same comfortable scale across page templates. */
.hero-description,.section-heading-aside p,.approach-copy p:not(.eyebrow),
.palette-banner p:not(.eyebrow),.journal-card>p:not(.eyebrow),
.page-heading>p:last-child,.story-intro p:not(.eyebrow),.principles p,
.contact-aside p,.care-list details p,.dialog-product-info>p:not(.eyebrow),
.prose,.form-status{
  font-size:var(--text-reading);line-height:1.75;font-weight:400;letter-spacing:0;
}
.hero-description{max-width:46ch}
.hero-caption{font-size:var(--text-reading);line-height:1.5}
.section-heading-aside{max-width:460px}
.page-heading>p:last-child{max-width:640px}
.story-intro p:not(.eyebrow),.contact-aside p,.approach-copy p:not(.eyebrow){max-width:48ch}
.prose p{color:var(--muted)}
.prose table{font-size:var(--text-base);line-height:1.65}
.prose h2{font-size:2rem}.prose h3{font-size:var(--text-title)}
.prose [style*="font"]{font-family:var(--sans)!important;font-size:inherit!important}

/* Display hierarchy remains distinct without introducing a second font. */
.hero h1{font-size:var(--text-hero);line-height:1.14;letter-spacing:-.05em}
.hero h1 em{font-size:1em;line-height:inherit;letter-spacing:inherit}
.page-heading h1{font-size:var(--text-page);line-height:1.2}
.section-heading h2,.approach-copy h2,.palette-banner h2,.story-intro h2,
.closing h2,.contact-aside h2{font-size:var(--text-section);line-height:1.25}
.stone-meta h3{font-size:var(--text-card);line-height:1.4;letter-spacing:-.02em}
.stone-meta h3 button{font:inherit}
.space-card h3,.journal-card h3,.journal-list h3,.gallery-card h2,
.principles h3,.comparison-meta h2,.dialog-gallery-info h2{font-size:var(--text-title);line-height:1.4;letter-spacing:-.025em}
.dialog-product-info h2{font-size:2rem;line-height:1.3}
.care-list summary{font-size:var(--text-card);line-height:1.5}
.empty-state h2{font-size:2rem}
.wordmark>span{font-size:1.5rem;font-weight:600;line-height:1;letter-spacing:.08em}
.wordmark-sub{font-size:var(--text-small);font-weight:500;letter-spacing:.07em;line-height:1.3;margin-top:8px}
.wordmark{width:260px;gap:12px}
.tiny-symbol{display:grid;place-items:center;width:30px;height:30px;flex:none}
.tiny-symbol svg{width:28px;height:28px;stroke:currentColor;stroke-width:1.2}
.scroll-arrow{font-size:var(--text-card)}
.dialog-close{font-size:2rem;line-height:1}
.dialog-gallery-info button{font-size:var(--text-title);line-height:1}

/* Layout responds to readable text; text does not shrink to fit the layout. */
.site-header{gap:24px}.site-header nav{gap:26px}
.catalog-tools{flex-wrap:wrap}.search-field{flex:1;max-width:280px;min-width:180px}
.catalog-summary{flex-wrap:wrap;gap:16px 24px}
.catalog-summary>label{display:flex;align-items:center;gap:6px}
.catalog-summary select{margin-left:0}
.stone-compare{min-width:44px;min-height:44px;flex:none}
.stone-meta{align-items:flex-start}
.stone-meta>div{min-width:0}
.stone-meta h3{overflow-wrap:anywhere}
.palette-banner{gap:40px;align-items:center}
.palette-art{min-width:0}
.palette-toolbar{gap:20px;align-items:center}
.comparison-panel>label{min-height:46px;display:flex;align-items:flex-end}
.palette-bottom{flex-wrap:wrap;gap:16px}
.palette-bottom p{max-width:440px;flex:1 1 290px}
.comparison-image{overflow:hidden}
.closing .button{flex:none}
.contact-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.dialog-product{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.dialog-product-info{min-width:0}
.dialog-product-info dl{gap:12px 20px}

@media(min-width:1101px) and (max-width:1250px){
  .site-header{gap:16px}.site-header nav{gap:18px}.wordmark{width:245px}.header-cta{gap:12px;padding-inline:12px}
}
@media(max-width:1100px){
  .site-header{height:96px;gap:20px}.wordmark{width:auto;margin-right:auto}
  .header-cta{display:none}.language-switch{margin-left:auto}
  .language-switch a{width:42px;min-height:42px}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;padding:10px;margin-right:-10px;flex:none}
  .menu-toggle span{height:1px;background:var(--ink);width:23px;transition:transform .2s}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .site-header nav{display:flex;position:absolute;top:95px;left:calc(-1 * var(--gutter));right:calc(-1 * var(--gutter));padding:22px var(--gutter) 30px;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 18px 20px #292e2809;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-12px);transition:opacity .25s ease-out,transform .4s var(--ease-out),visibility .3s}
  .site-header nav.is-open{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}
  .site-header nav>a{font-size:var(--text-reading);padding:16px 0;border-bottom:1px solid var(--line)}
  .site-header nav>a::after{display:none}.site-header .mobile-contact{display:flex;justify-content:space-between}
  .catalog-tools{align-items:stretch}.search-field{max-width:100%;width:100%;flex:auto}
  .hero-copy{padding-right:24px}.hero{min-height:0}
  .hero-description{font-size:var(--text-base)}
  .section-heading-aside{max-width:370px}
  .palette-banner{padding:40px;gap:20px}
  .palette-round{width:110px;height:110px}
  .contact-grid{gap:40px}.enquiry-form .form-row{grid-template-columns:1fr;gap:0}
}
@media(max-width:760px){
  :root{--text-section:2rem;--text-page:2.5rem;--text-hero:clamp(2.75rem,11.5vw,4rem)}
  .site-header{height:88px;gap:12px}.site-header nav{top:87px}
  .wordmark>span{font-size:1rem;letter-spacing:.06em}.wordmark{gap:9px}.wordmark-sub{display:none}
  .brand-mark{width:27px;height:33px}.language-switch{padding:2px}.language-switch a{width:40px;min-height:40px}
  .hero-copy{padding:34px 0 0}.hero .eyebrow{margin-bottom:22px}
  .hero-description{font-size:var(--text-base);line-height:1.75;max-width:none}
  .hero .button{padding:16px 20px;min-height:56px}
  .hero-visual{aspect-ratio:.92}.hero-caption{font-size:var(--text-base);padding:16px;gap:14px}
  .hero-caption small{margin-bottom:6px}.image-note{top:16px;left:16px;max-width:calc(100% - 32px)}
  .material-strip{padding:24px var(--gutter);gap:16px 20px}.material-strip>span:first-child{max-width:none;flex-basis:100%}
  .material-strip>a:last-child{display:block}.material-strip .strip-dot{display:none}
  .section-heading-aside{max-width:none}.section-heading-aside p{font-size:var(--text-base)}
  .approach-copy{padding:32px 24px}.approach-photo{aspect-ratio:1.05}.approach-photo span{left:16px;bottom:16px;max-width:calc(100% - 32px)}
  .approach-copy p:not(.eyebrow),.palette-banner p:not(.eyebrow),.journal-card>p:not(.eyebrow),
  .page-heading>p:last-child,.story-intro p:not(.eyebrow),.principles p,.contact-aside p,
  .care-list details p,.dialog-product-info>p:not(.eyebrow),.prose,.form-status{font-size:var(--text-base)}
  .space-card h3,.journal-card h3,.journal-list h3,.gallery-card h2,.principles h3{font-size:var(--text-card)}
  .space-card span{gap:16px}.space-card span svg{flex:none}
  .palette-banner{padding:32px 24px;gap:30px}.palette-art{margin-top:8px;min-height:290px}.palette-round{width:110px;height:110px;left:29%}
  .footer-top{grid-template-columns:1fr;gap:28px}.footer-top>p{font-size:var(--text-base);text-align:left}.footer-wordmark .wordmark-sub{display:block}
  .footer-links{grid-column:auto;gap:18px 24px}.footer-bottom{gap:16px}
  .stone-grid{gap:28px 16px}.stone-meta{padding-top:16px}
  .catalog-grid .stone-meta{display:block;position:relative;padding-right:32px}
  .catalog-grid .stone-meta h3{font-size:var(--text-reading);line-height:1.4}
  .catalog-grid .stone-compare{position:absolute;right:-8px;top:12px;min-width:40px;min-height:44px}
  .catalog-grid .stone-tag{top:8px;left:8px;padding:5px 8px;letter-spacing:0}
  .catalog-grid .stone-meta p{margin-top:10px}
  .catalog-summary{gap:16px}.catalog-summary a{font-size:var(--text-base);flex-basis:100%}
  .contact-grid{grid-template-columns:1fr;gap:40px}.enquiry-form .form-row{grid-template-columns:1fr;gap:0}
  .palette-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.palette-toolbar>span{max-width:none}
  .comparison-grid{gap:16px}.comparison-panel>label{min-height:48px;letter-spacing:.025em}
  .comparison-panel>select{padding:12px 8px}.comparison-meta h2{font-size:var(--text-card)}
  .palette-bottom{align-items:stretch}.palette-bottom p{flex-basis:100%;max-width:none}
  .article-layout>aside{flex-wrap:wrap;gap:16px}.prose h2{font-size:var(--text-title)}
  .dialog-product{grid-template-columns:1fr}.dialog-product-info{padding:28px 24px}
  .dialog-product-info h2{font-size:1.75rem}.dialog-product-info .button{gap:14px;padding-inline:16px}
  .dialog-product-info dl{gap:12px}.dialog-gallery-info h2{font-size:var(--text-card)}
}
@media(max-width:360px){
  .site-header{gap:8px}.wordmark>span{font-size:.875rem;letter-spacing:.04em}.wordmark{gap:6px}.brand-mark{width:22px}
  .language-switch a{width:36px}.catalog-grid{grid-template-columns:1fr}
  .comparison-grid{grid-template-columns:1fr}.comparison-panel>label{min-height:0}.comparison-image{aspect-ratio:1.2}
}

/* Showroom and room visualizer share the established readable type scale. */
.showroom-intro h1{font-size:clamp(2.75rem,4.3vw,4.25rem);line-height:1.16;letter-spacing:-.045em}
.showroom-intro>p:not(.eyebrow),.studio-pitch>p:not(.eyebrow){font-size:var(--text-reading);line-height:1.75}
.showroom-proof,.showroom-image-label,.studio-preview-tag,.studio-swatches span,.selected-stone>div>span,.selected-stone p,.picker-heading>span,#visualizer-count,.room-stage-label,.visualizer-note p,#visualizer-status{font-size:var(--text-small);line-height:1.6}
.showroom-proof strong{font-size:var(--text-title);font-weight:500}
.showroom-image-label,.studio-preview-tag{font-weight:600;letter-spacing:.04em}
.showroom-try strong{font-size:var(--text-reading);font-weight:600}.showroom-try span span{font-size:var(--text-base)}
.compact-heading h2{font-size:var(--text-title);line-height:1.4}
.material-category>span,.stone-actions>a,.studio-pitch li,.utility-button,.visualizer-search,.material-select,.visualizer-adjustments>label,.surface-toolbar>span,.visualizer-swatch>span:not(.swatch-check){font-size:var(--text-base);line-height:1.5;font-weight:500}
.application-card span{font-size:var(--text-title);line-height:1.4;font-weight:500}
.showroom-guide h2{font-size:1.75rem;line-height:1.35}.showroom-guide h3{font-size:var(--text-card);line-height:1.4}.showroom-guide p:not(.eyebrow),.showroom-reading{font-size:var(--text-base);line-height:1.7}
.visualizer-heading h1{font-size:clamp(2rem,3.5vw,3rem);line-height:1.3}.visualizer-heading>p{font-size:var(--text-base);line-height:1.7}
.picker-heading h2{font-size:var(--text-title);line-height:1.4}.selected-stone h3{font-size:var(--text-card);line-height:1.4}.note-marker{font-size:var(--text-small);line-height:1}
.render-feedback{font-size:var(--text-base);line-height:1.6}.visualizer-swatch .swatch-check{font-size:var(--text-base);line-height:1}
@media(max-width:1100px) and (min-width:761px){.showroom-intro h1{font-size:3rem}.showroom-intro>p:not(.eyebrow){font-size:var(--text-base)}}
@media(max-width:760px){.showroom-intro h1{font-size:clamp(2.5rem,10.5vw,3.5rem)}.showroom-intro>p:not(.eyebrow),.studio-pitch>p:not(.eyebrow){font-size:var(--text-base)}.showroom-try strong{font-size:var(--text-base)}.application-card span{font-size:var(--text-card)}.visualizer-heading h1{font-size:2rem}.picker-heading h2{font-size:var(--text-card)}}

.scene-picker-heading>span:first-child,.scene-option>span:not(.scene-check),#active-room-name{font-size:var(--text-base);line-height:1.45;font-weight:500}
.scene-picker-heading>span:last-child,.scene-check{font-size:var(--text-small);line-height:1.5}
