/*
 * KUCI GALLERY — Manrope + Inter typography reference, 2026-10-29
 *
 * IMPORTANT: This is a selector/role contract, NOT a verified drop-in patch.
 * Merge it into the existing public-site stylesheet after auditing the cascade.
 * Add kuci-public to the PUBLIC <html> and kuci-site to the PUBLIC <body>,
 * or map these scopes to existing public-site selectors. Exclude the admin UI.
 * Map data-kuci-type roles to existing components; do not rebuild the HTML.
 *
 * Font binaries are NOT included. Build the WOFF2 files from the user's local
 * uploaded TTFs and retain their original license files. Adjust asset URLs to
 * the application's real base path / asset helper before using this file.
 * The italic declaration also needs its real asset; it is not preloaded.
 *
 * Sizes in the brief assume the browser's default 16px root. Do not force a
 * 16px root; respect user preferences. If the project uses a 62.5% root, migrate
 * affected rem tokens before enabling html.kuci-public { font-size: 100%; }.
 */







html.kuci-public {
  
}

body.kuci-site {
  
  

  /* Fluid targets: 390px -> 1440px viewport, with a default 16px root. */
  
  
  
  
  
  
  
  

  
  
  
  
  

  
  
  

  
  
  
  
  
  
  font-kerning: normal;
  /* Real weight axes + real Inter italic; do not fake unavailable styles. */
  
}

/* No universal-selector font reset: preserve existing icon-font classes. */
body.kuci-site :is(button, input, select, textarea) {
  
}

body.kuci-site :is(h1, h2, h3, h4, h5, h6) {
  
  
  
  overflow-wrap: break-word;
}

body.kuci-site h1 {
  
  
  
  
}

body.kuci-site h2 {
  
  
  
  
}

body.kuci-site h3 {
  
  
  
}

body.kuci-site h4 {
  
  
  
}

body.kuci-site h5 {
  
  
  
}

body.kuci-site h6 {
  
  
  
}

/* Explicit visual roles override heading defaults without changing semantics. */
body.kuci-site [data-kuci-type="hero-title"] {
  
  
  
  
  
  text-wrap: balance;
}

body.kuci-site [data-kuci-type="page-title"] {
  
  
  
  
  
  text-wrap: balance;
}

body.kuci-site [data-kuci-type="section-title"] {
  
  
  
  
  
  text-wrap: balance;
}

body.kuci-site [data-kuci-type="content-title"] {
  
  
  
  
  
}

body.kuci-site [data-kuci-type="product-title"],
body.kuci-site [data-kuci-type="step-title"] {
  
  
  
  
  
  word-break: normal;
  overflow-wrap: break-word;
  white-space: normal;
}

body.kuci-site [data-kuci-type="card-title"] {
  
  
  
  
  
  word-break: normal;
  overflow-wrap: break-word;
  white-space: normal;
}

body.kuci-site [data-kuci-type="lead"] {
  
  
  
  
  
}

body.kuci-site [data-kuci-type="body"] {
  
  
  
  
  
}

body.kuci-site [data-kuci-type="eyebrow"] {
  
  
  
  
  
  
}

body.kuci-site [data-kuci-type="meta"] {
  
  
  
  
  
}

body.kuci-site [data-kuci-type="nav"] {
  
  
  
  
  
}

body.kuci-site [data-kuci-type="mobile-menu"] {
  
  
  
  
  
}

body.kuci-site [data-kuci-type="button"] {
  
  
  
  
  
  min-block-size: 3rem;
  padding-block: 0.75rem;
  white-space: normal;
  height: auto;
}

body.kuci-site [data-kuci-type="form-label"] {
  
  
  
  
  
}

/* Apply only to text-like inputs, selects and textareas, NOT checkboxes/radios. */
body.kuci-site [data-kuci-type="field"] {
  
  
  
  
  
  min-block-size: 3rem;
  padding-block: 0.75rem;
  min-inline-size: 0;
  max-inline-size: 100%;
  box-sizing: border-box;
}

body.kuci-site [data-kuci-type="field"]::placeholder {
  
  
  
  opacity: 1;
  /* Use the existing accessible text-muted color; do not invent a brand color. */
}

body.kuci-site textarea[data-kuci-type="field"] {
  min-block-size: 9rem;
  resize: vertical;
}

body.kuci-site [data-kuci-type="help"],
body.kuci-site [data-kuci-type="error"],
body.kuci-site [data-kuci-type="consent"] {
  
  
  
  
  
  overflow-wrap: break-word;
}

body.kuci-site [data-kuci-type="faq-question"] {
  
  
  
  
  
  min-block-size: 3rem;
  padding-block: 0.875rem;
  height: auto;
  white-space: normal;
}

body.kuci-site [data-kuci-type="faq-answer"] {
  
  
  
  
  
}

body.kuci-site [data-kuci-type="step-number"] {
  
  
  
  
  
  
}

body.kuci-site [data-kuci-type="footer-statement"] {
  
  
  
  
  
}

body.kuci-site [data-kuci-type="footer-heading"] {
  
  
  
  
  
  
}

body.kuci-site [data-kuci-type="footer-link"],
body.kuci-site [data-kuci-type="footer-copy"] {
  
  
  
  
  
  white-space: normal;
}

body.kuci-site [data-kuci-type="footer-contact"] {
  
  
  
  
  
  overflow-wrap: anywhere;
}

body.kuci-site [data-kuci-type="legal"] {
  
  
  
  
  
}

/* Add this class to the article BODY only, not the whole blog-page container. */
body.kuci-site .kuci-article-prose {
  
  
  
  max-inline-size: 68ch;
}

body.kuci-site .kuci-article-prose :is(p, li, dd) {
  
  
}

body.kuci-site .kuci-article-prose :is(strong, b) {
  
}

body.kuci-site .kuci-article-prose :is(em, i) {
  
  font-style: italic;
}

body.kuci-site .kuci-article-prose p + p {
  margin-block-start: 1.1em;
}

/* Headline fluid sizing must still pass zoom and text-spacing tests. */
@media (max-width: 47.99rem) {
  body.kuci-site [data-kuci-type="button"] {
    
  }
}

/* Actual public component mapping. All legacy font declarations are removed
   from the scoped input styles by t08_typography_build.py before this is used. */
body.kuci-site :is(main, p, li, dd, address) {  }
body.kuci-site :is(p, li, dd) {   }
body.kuci-site :is(strong,b) {  }
body.kuci-site address { font-style:normal; }
body.kuci-site :is(button,input,select,textarea) {  }
body.kuci-site button {}
body.kuci-site :is(input,select):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=file]) {
  min-height:3rem;height:auto;max-width:100%;min-width:0;
}
body.kuci-site textarea,body.kuci-site textarea[data-kuci-type=field] {min-height:9rem;height:auto;max-width:100%;min-width:0;}
body.kuci-site :is(input,textarea)::placeholder {color:#68615b;opacity:1;}
body.kuci-site :is(small,figcaption,[class*=breadcrumb],[class*=byline],[class*=caption]) {}
body.kuci-site :is([class*=consent],[class*=help],[class*=local-note],[class*=result],[class*=error],.co-files,.co-upload span,.cr-upload small) {
  
}
body.kuci-site :is(.co-fields label>span,.kc-field>span) {}
body.kuci-site :is(.co-upload strong,.cr-upload>span) {}
body.kuci-site :is(summary,summary span) {white-space:normal;}
body.kuci-site [data-kuci-type=filter],body.kuci-site :is([class*=filters],[role=tablist],[class*=pagination]) :is(button,a) {
  white-space:normal;
}
body.kuci-site :is(.ka-copy,.tb-article-body,.blog-article-body,.article-body) {max-inline-size:68ch;}
body.kuci-site :is(.ka-copy,.tb-article-body,.blog-article-body,.article-body) :is(p,li,dd) {}
body.kuci-site .ka-copy :is(em,i) {font-style:italic;}
body.kuci-site :is(.ka-table,.spec-table) :is(td,th) {}
body.kuci-site :is(.ha-product,.ha-story-card,.ha-guides a) h3 {min-width:0;white-space:normal;overflow:visible;text-overflow:clip;-webkit-line-clamp:unset;max-height:none;}
body.kuci-site .hd-benefit strong {}
body.kuci-site .hd-benefit span {color:#685e55;}
body.kuci-site .hd-note {color:#685e55;}
body.kuci-site .ha-showroom-mosaic>a>span {}
body.kuci-site .ha-story-card>div>p:last-child {}
body.kuci-site .ha-heading p,body.kuci-site .hd-subtitle,body.kuci-site .ha-hero-description {}
/* The heading fits two desktop lines without shrinking; mobile grows naturally. */
html body.kuci-site #main.ha-reference-layout[data-home-density=blended] #hero .ha-hero-copy {width:58%;padding-right:2.5rem;}
html body.kuci-site #main.ha-reference-layout[data-home-density=blended] #hero h1 {max-width:42rem;text-wrap:initial;}
html body.kuci-site #main.ha-reference-layout[data-home-density=blended] #hero .ha-hero-description {margin-top:1.25rem;}
html body.kuci-site #main.ha-reference-layout[data-home-density=blended] #hero .hd-note {}
body.kuci-site .ha-product>div {min-width:0;align-items:flex-start;min-height:5rem;}
body.kuci-site .ha-product>div>h3 {flex:1;}
body.kuci-site .ha-product h3 {}
body.kuci-site :is(.ha-story-card,.ha-guides a) h3 {}
body.kuci-site .ha-product>div>.ha-icon {flex:none;margin-top:.25rem;}
body.kuci-site .ha-order ol {grid-template-columns:repeat(4,minmax(0,1fr));}
body.kuci-site .ha-benefits article>span {}
body.kuci-site .ha-text-link {white-space:normal;}
/* Shared Header, including the service button and dynamically opened menu. */
html body.kuci-site .kc6-header :is(nav a,.pm-service-trigger,.kc6-menu) {}
html body.kuci-site .kc6-header .pm-links>a {white-space:normal;}
html body.kuci-site .kc6-header-inner {min-height:5rem;height:auto;}
html body.kuci-site .kc6-menu {min-height:3rem;}
/* Shared Footer: preserve brand palette and icons, and distinguish its levels. */
html body.kuci-site .cc-footer :is(p,address,a) {}
html body.kuci-site .cc-footer .cc-footer-tagline {}
html body.kuci-site .cc-footer :is(h2,h3,.cc-location-label) {}
html body.kuci-site .cc-footer a {min-height:2.25rem;height:auto;white-space:normal;}
html body.kuci-site .cc-footer a[href^="mailto:"],html body.kuci-site .cc-footer a[href^="tel:"] {overflow-wrap:anywhere;}
html body.kuci-site .cc-footer :is(.cc-footer-bottom,small) {}
html body.kuci-site .cc-footer .cc-footer-bottom :is(a,span) {}
html body.kuci-site .cc-footer :is(.cc-footer-grid>*,.cc-footer-brand,.cc-footer-contact) {min-width:0;}
html body.kuci-site.products-editorial .pd :is(.pd-heading>p,.pd-card-copy p,.pt-children summary,.pe-featured-card p) {color:#68615b;}
body.kuci-site .kt-count {color:#68615b;}
body.kuci-site .qa-badges span {color:#625b50;}
body.kuci-site[data-coherence-page="project-solutions.html"] .cv2-intro {color:#68615b;}
html body.kuci-site .ha-benefits article {grid-template-columns:2.25rem minmax(0,1fr);}
/* The PHP public renderer supplies this current form at request time. Its
   markup/validation remain owned by that renderer; these are typography roles. */
body.kuci-site .ku-enquiry {}
body.kuci-site .ku-enquiry label {}
body.kuci-site .ku-enquiry :is(.ku-hint,.ku-consent,.ku-result,.ku-selection,label small,[data-files] li) {}
body.kuci-site .ku-enquiry :is(input:not([type=file]):not([type=checkbox]),select,textarea) {}
html body.kuci-site .ku-enquiry textarea {min-height:9rem;min-block-size:9rem;height:auto;}
body.kuci-site .ku-enquiry .ku-file-button {min-height:3rem;align-items:center;}
body.kuci-site .ku-enquiry .ku-send {min-height:3rem;}
@media(max-width:75rem) {
  html body.kuci-site .kc6-header :is(nav a,.pm-service-trigger) {}
  html body.kuci-site #kc6-navigation {top:100%;}
  body.kuci-site .ha-order ol {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:50rem) {
  html body.kuci-site #main.ha-reference-layout[data-home-density=blended] #hero .ha-hero-copy {width:100%;padding-right:2rem;}
  html body.kuci-site #main.ha-reference-layout[data-home-density=blended] #hero h1 {max-width:100%;}
  body.kuci-site .ha-design-paths {grid-template-columns:1fr;}
}
@media(max-width:37.5rem) {
  body.kuci-site .ku-enquiry .ku-send {}
  html body.kuci-site .hd-benefits-inner {grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));}
  body.kuci-site .hd-benefit>div {min-width:0;}
  html body.kuci-site footer.cc-footer .cc-footer-grid {grid-template-columns:minmax(0,1fr);}
  html body.kuci-site footer.cc-footer .cc-footer-grid>* {grid-column:1/-1;}
  html body.kuci-site .ha-showroom-mosaic {grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));}
  html body.kuci-site .ha-showroom-mosaic>.ha-showroom-large {grid-column:1/-1;}
  body.kuci-site .ha-showroom-mosaic>a>span {overflow-wrap:break-word;}
  body.kuci-site .ha-order ol {grid-template-columns:1fr;}
  html body.kuci-site .ha-main :is(.co-fields,.co-form-actions) {grid-template-columns:1fr;}
  body.kuci-site .co-form-actions>button {width:100%;}
  html body.kuci-site #main.ha-reference-layout[data-home-density=blended] #hero .ha-hero-copy {padding-right:1.5rem;}
}
