/* ==========================================================================
   Terapod Living — Atelier design style
   A refinement layer loaded after main.css while Site Settings → Design system →
   Design style is "Atelier". Switch to "Classic" to return to the original look;
   nothing in main.css or the classic templates is changed by this file.

   Direction: an architect's catalogue. Warm paper, the logo's forest green and moss,
   an editorial serif for names and headings, a precise grotesk for everything read
   at small sizes, hairline rules, modest radii and restrained motion.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--tp-bg: #F4F1EA;
	--tp-white: #FBFAF6;
	--tp-surface: #FBFAF6;
	--tp-stone: #E3DDD1;
	--tp-text: #17211C;
	--tp-dark: #0A2A20;
	--tp-accent: #A9BFA0;                 /* light moss, for use on dark grounds */

	--tp-moss: #4E6947;                   /* logo moss, deepened to 5.5:1 on paper */
	--tp-muted: #5A635E;
	--tp-accent-text: var(--tp-moss);
	--tp-line: rgba(23, 33, 28, .11);
	--tp-line-strong: rgba(23, 33, 28, .2);
	--tp-sage-soft: #E6EAE1;
	--tp-stone-soft: #ECE8DF;
	--tp-ink-on-dark: rgba(244, 241, 234, .94);
	--tp-muted-on-dark: rgba(244, 241, 234, .66);
	--tp-line-on-dark: rgba(244, 241, 234, .14);
	--tp-dark-gradient: radial-gradient(120% 140% at 100% 0%, #15503C 0%, #0C3326 42%, #081F18 100%);

	--tp-font-heading: "Newsreader", "Iowan Old Style", Georgia, "Times New Roman", serif;
	--tp-font-body: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--tp-base: 16px;
	--tp-heading-weight: 400;
	--tp-heading-tracking: -0.018em;
	--tp-heading-lh: 1.08;
	--tp-fs-display: clamp(2.9rem, 1.9rem + 4vw, 5.25rem);
	--tp-fs-h1: clamp(2.35rem, 1.7rem + 2.7vw, 4rem);
	--tp-fs-h2: clamp(1.9rem, 1.45rem + 1.9vw, 3rem);
	--tp-fs-h3: clamp(1.28rem, 1.15rem + .5vw, 1.55rem);
	--tp-fs-lead: clamp(1.04rem, .99rem + .22vw, 1.16rem);
	--tp-fs-small: .875rem;
	--tp-fs-eyebrow: .75rem;
	--tp-label-tracking: .12em;

	--tp-container: 1280px;
	--tp-space-compact: clamp(2.5rem, 1.9rem + 2vw, 3.75rem);
	--tp-space-normal: clamp(3.75rem, 2.8rem + 3vw, 6rem);
	--tp-space-spacious: clamp(4.75rem, 3.2rem + 4.6vw, 7.5rem);
	--tp-gap: clamp(1.1rem, .8rem + 1vw, 1.75rem);
	--tp-radius: 4px;
	--tp-header-h: 76px;

	--tp-btn-radius: 3px;
	--tp-btn-height: 3rem;
	--tp-shadow-soft: 0 1px 2px rgba(10, 42, 32, .04), 0 12px 32px -18px rgba(10, 42, 32, .22);
}

/* 2. Base & type ------------------------------------------------------------ */
body { font-size: var(--tp-base); line-height: 1.65; letter-spacing: 0; color: var(--tp-text); font-feature-settings: "kern", "liga", "ss01"; }
h1, h2, h3, h4, h5, h6 { font-weight: 400; font-optical-sizing: auto; }
h1 em, h2 em, h3 em { font-style: italic; color: var(--tp-moss); }
.is-dark h1 em, .is-dark h2 em, .tp-cta--dark h2 em, .tp-cta--image h2 em, .tp-bg--image h2 em, .tp-pageheader--cover h1 em, .tp-hero h1 em, .tp-cards--tile h3 em, .tp-footer em { color: var(--tp-accent); }
::selection { background: var(--tp-primary); color: var(--tp-white); }
:focus-visible { outline: 2px solid var(--tp-primary); outline-offset: 3px; }
a:hover { color: var(--tp-primary); }

.tp-eyebrow { font-size: var(--tp-fs-eyebrow); font-weight: 600; letter-spacing: var(--tp-label-tracking); color: var(--tp-moss); margin: 0 0 1rem; gap: .65rem; }
.tp-eyebrow::before { width: .45rem; height: .45rem; background: currentColor; border-radius: 1px; transform: rotate(45deg); opacity: .85; }
.is-dark .tp-eyebrow { color: var(--tp-accent); }
.tp-head { max-width: 52rem; margin-bottom: clamp(2rem, 1.5rem + 1.8vw, 3.25rem); }
.tp-head .tp-heading + .tp-intro { margin-top: 1rem; }
.tp-intro { font-size: var(--tp-fs-lead); line-height: 1.65; max-width: 38rem; color: var(--tp-muted); }
.tp-prose { max-width: 40rem; }
.tp-disclaimer { font-size: .8125rem; }

/* Sections: dark grounds get depth from a quiet green gradient. */
.tp-bg--dark { background: var(--tp-dark-gradient); }
.tp-bg--white { background: var(--tp-surface); }

/* 3. Buttons, links, chips -------------------------------------------------- */
.tp-btn { min-height: var(--tp-btn-height); padding: 0 1.35rem; border-radius: var(--tp-btn-radius); font-size: .9rem; font-weight: 600; letter-spacing: .01em; text-transform: none; gap: .55rem; }
.tp-btn--primary, .tp-btn--light { background-image: none; }
.tp-btn--primary:hover { --_bg: var(--tp-primary-hover); }
.tp-actions { gap: .75rem 1.25rem; }
.tp-link-arrow { font-size: .9rem; font-weight: 600; letter-spacing: .005em; text-transform: none; gap: .55rem; min-height: 2.5rem; }
.tp-link-arrow::after { width: 1rem; }
.tp-chip { min-height: 2.25rem; padding: 0 .95rem; border-radius: 999px; border: 1px solid var(--tp-line-strong); background: var(--tp-surface); font-size: .84rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--tp-text); white-space: nowrap; }
.tp-chip:hover { border-color: var(--tp-primary); color: var(--tp-primary); }
.tp-chip.is-active { background: var(--tp-primary); border-color: var(--tp-primary); color: var(--tp-white); }
.tp-chip:focus-visible { outline-offset: 2px; }
.tp-badge { border-radius: 2px; font-size: .68rem; letter-spacing: .08em; padding: .4rem .6rem; top: .85rem; left: .85rem; }

/* 4. Header ----------------------------------------------------------------- */
.tp-header__inner { gap: 1.75rem; }
.tp-menu { gap: clamp(1rem, .4rem + 1.3vw, 2rem); }
.tp-menu a { font-size: .9rem; font-weight: 500; letter-spacing: 0; text-transform: none; padding: .6rem 0; }
.tp-menu > li > a::after { bottom: .25rem; }
.tp-menu .menu-item-has-children > a::before { width: .38rem; height: .38rem; }
.tp-menu .sub-menu { padding: .5rem; min-width: 14.5rem; border-radius: 6px; background: var(--tp-surface); box-shadow: 0 24px 48px -24px rgba(10, 42, 32, .35); }
.tp-menu .sub-menu a { padding: .6rem .75rem; border-radius: 4px; letter-spacing: 0; font-size: .9rem; }
.tp-header__actions .tp-btn { min-height: 2.6rem; padding: 0 1.1rem; font-size: .86rem; }
.tp-header.is-scrolled .tp-header__bar { background: color-mix(in srgb, var(--tp-bg) 92%, transparent); -webkit-backdrop-filter: saturate(1.2) blur(10px); backdrop-filter: saturate(1.2) blur(10px); }
.tp-burger { font-size: .85rem; letter-spacing: .02em; text-transform: none; }
.tp-mobile-menu > li > a { font-size: clamp(1.6rem, 1.3rem + 1.6vw, 2.1rem); min-height: 3.5rem; }
.tp-breadcrumbs ol { font-size: .8125rem; margin-bottom: 1.5rem; }

/* 5. Home hero is kept exactly as designed ---------------------------------- */
.tp-section--hero {
	--tp-font-heading: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--tp-heading-weight: 500;
	--tp-heading-tracking: -0.005em;
	--tp-heading-lh: 1.02;
	--tp-fs-display: clamp(3.1rem, 1.4rem + 6.6vw, 7.75rem);
	--tp-fs-h1: clamp(2.7rem, 1.55rem + 4.5vw, 5.75rem);
	--tp-fs-lead: clamp(1.06rem, .98rem + .35vw, 1.25rem);
	--tp-fs-eyebrow: .6875rem;
	--tp-label-tracking: .2em;
}
.tp-section--hero .tp-hero__heading, .tp-section--hero .tp-cine__heading { font-weight: 500; }
.tp-section--hero .tp-btn { min-height: max(2.75rem, 3rem); padding: 0 2rem; border-radius: 0; font-size: .77rem; letter-spacing: .16em; text-transform: uppercase; }
.tp-section--hero .tp-link-arrow { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; gap: .7rem; }
.tp-section--hero .tp-eyebrow::before { width: 2.5rem; height: 1px; transform: none; border-radius: 0; background: var(--tp-accent); }
.tp-section--hero h1 em, .tp-section--hero .tp-cine__heading em { color: #B49A70; }

/* 6. Media ------------------------------------------------------------------ */
.tp-media { border-radius: var(--tp-radius); background: var(--tp-stone); }
[data-drift] { --tp-img-base: 1.08; }
a.tp-media:hover, .tp-card:hover .tp-media, .tp-model-card:hover .tp-media { --tp-img-hover: 1.03; }

/* 7. Page header ------------------------------------------------------------ */
.tp-pageheader__grid { gap: 1.5rem clamp(2rem, 1rem + 4vw, 5rem); }
.tp-pageheader__title .tp-heading--page { max-width: 18ch; }
.tp-pageheader__media { aspect-ratio: 5 / 2; margin-top: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
@media (max-width: 860px) { .tp-pageheader__media { aspect-ratio: 3 / 2; } }

/* 8. Statement, split, cards ------------------------------------------------ */
.tp-statement__heading { font-size: var(--tp-fs-h1); line-height: 1.04; }
.tp-statement__text { font-size: 1rem; line-height: 1.7; }
.tp-statement__figure--second { margin-top: clamp(2.5rem, 1rem + 6vw, 7rem); }
.tp-statement__value { font-size: clamp(2.1rem, 1.6rem + 1.6vw, 3rem); }
.tp-statement__label { font-size: .75rem; letter-spacing: .1em; }
.tp-split { gap: 2rem clamp(2rem, 1rem + 4vw, 5rem); }
.tp-split__text .tp-heading { margin-bottom: 1.1rem; }

.tp-card__title { font-size: var(--tp-fs-h3); margin-bottom: .6rem; }
.tp-card__text { font-size: .95rem; line-height: 1.6; }
.tp-card__icon { margin-bottom: 1.1rem; }
.tp-card__icon .tp-icon { width: 1.6rem; height: 1.6rem; }
.tp-card__num { font-size: 1.6rem; margin-bottom: 1.25rem; color: var(--tp-moss); }
.tp-cards--image .tp-card__media { aspect-ratio: 3 / 2; margin-bottom: 1.1rem; }
.tp-cards--tile .tp-card { min-height: clamp(19rem, 15rem + 9vw, 26rem); border-radius: 6px; }
.tp-cards--tile .tp-card__title { font-size: clamp(1.45rem, 1.2rem + .8vw, 1.9rem); margin-bottom: .45rem; }
.tp-cards--tile .tp-card__text { font-size: .92rem; }
.tp-cards--tile .tp-card__body { padding: clamp(1.1rem, .9rem + .8vw, 1.6rem); }
.tp-cards--tile .tp-card__media::after { background: linear-gradient(180deg, rgba(8, 31, 24, 0) 30%, rgba(8, 31, 24, .82) 100%); }
.tp-cards--plain .tp-card, .tp-cards--numbered .tp-card { padding-top: 1.35rem; border-top-color: var(--tp-line-strong); }

/* 9. Model list: filters ----------------------------------------------------- */
.tp-filterbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 1rem 2rem; padding: 1.1rem 1.25rem; margin-bottom: 1.25rem; background: var(--tp-surface); border: 1px solid var(--tp-line); border-radius: 8px; }
.tp-filterbar__groups { gap: .7rem; }
.tp-filterbar__chips { gap: .4rem; align-items: center; }
.tp-filterbar__label { min-width: 5.75rem; margin-right: .35rem; font-size: .72rem; letter-spacing: .1em; color: var(--tp-muted); }
.tp-filterbar__end { gap: .75rem 1.25rem; align-self: center; }
.tp-filterbar:not(:has(.tp-filterbar__groups)) { grid-template-columns: 1fr; padding-block: .6rem; }
.tp-select { font-size: .84rem; gap: .5rem; }
.tp-select select { border-radius: 999px; padding: .45rem 2.1rem .45rem .9rem; font-size: .86rem; background-color: var(--tp-white); }
.tp-filterbar__end .tp-link-arrow { font-size: .86rem; }
.tp-models__status { margin: 0 0 1.25rem; font-size: .84rem; }
.tp-models__empty { border-radius: 8px; background: var(--tp-surface); }
@media (max-width: 900px) {
	.tp-filterbar { grid-template-columns: 1fr; padding: .9rem; }
	.tp-filterbar__chips--labelled { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: -.9rem; padding-inline: .9rem; -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent); mask-image: linear-gradient(90deg, #000 90%, transparent); }
	.tp-filterbar__chips--labelled::-webkit-scrollbar { display: none; }
	.tp-filterbar__label { flex: none; min-width: 4.75rem; }
	.tp-filterbar__end { justify-content: space-between; border-top: 1px solid var(--tp-line); padding-top: .75rem; }
}

/* 10. Model cards ------------------------------------------------------------ */
.tp-models { gap: clamp(1rem, .8rem + .8vw, 1.5rem); }
.tp-models--grid, .tp-models--editorial { grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr)); gap: clamp(1rem, .8rem + .8vw, 1.5rem); }
.tp-models--row { grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
.tp-mcard { position: relative; display: flex; flex-direction: column; background: var(--tp-surface); border: 1px solid var(--tp-line); border-radius: 8px; overflow: hidden; transition: border-color .35s var(--tp-ease), box-shadow .45s var(--tp-ease), transform .45s var(--tp-ease); }
.tp-mcard:hover { border-color: var(--tp-line-strong); box-shadow: var(--tp-shadow-soft); transform: translateY(-2px); }
.tp-mcard:focus-within { border-color: var(--tp-primary); }
.tp-mcard__media { aspect-ratio: 4 / 3; border-radius: 0; margin: 0; }
.tp-mcard__badge { position: absolute; top: .75rem; left: .75rem; z-index: 2; padding: .3rem .55rem; border-radius: 3px; background: color-mix(in srgb, var(--tp-white) 92%, transparent); color: var(--tp-primary); font-size: .7rem; font-weight: 600; letter-spacing: .02em; }
.tp-mcard__body { display: flex; flex-direction: column; flex: 1; padding: 1rem 1.1rem 1.05rem; }
.tp-mcard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .5rem; margin: 0 0 .45rem; font-size: .74rem; line-height: 1.3; color: var(--tp-muted); }
.tp-mcard__series { font-weight: 600; color: var(--tp-moss); letter-spacing: .02em; }
.tp-mcard__series + .tp-mcard__type::before { content: ""; display: inline-block; width: 3px; height: 3px; margin: 0 .5rem .2em 0; border-radius: 50%; background: currentColor; opacity: .5; vertical-align: middle; }
.tp-mcard__title { font-size: 1.32rem; line-height: 1.15; letter-spacing: -0.015em; margin: 0; }
.tp-mcard__title a { text-decoration: none; }
.tp-mcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tp-mcard__tagline { margin: .45rem 0 0; font-size: .875rem; line-height: 1.5; color: var(--tp-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tp-mcard__specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: .9rem 0 0; border-top: 1px solid var(--tp-line); border-bottom: 1px solid var(--tp-line); }
.tp-mcard__specs div { padding: .6rem 0 .6rem .7rem; min-width: 0; }
.tp-mcard__specs div:first-child { padding-left: 0; }
.tp-mcard__specs div + div { border-left: 1px solid var(--tp-line); }
.tp-mcard__specs dt { font-size: .66rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tp-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tp-mcard__specs dd { margin: .15rem 0 0; font-size: .86rem; font-weight: 500; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tp-mcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: .85rem; }
.tp-mcard__price { margin: 0; display: flex; align-items: baseline; gap: .4rem; line-height: 1.1; }
.tp-mcard__price span { font-size: .74rem; color: var(--tp-muted); }
.tp-mcard__price strong { font-family: var(--tp-font-heading); font-weight: 500; font-size: 1.28rem; letter-spacing: -0.01em; color: var(--tp-primary); font-variant-numeric: lining-nums; }
.tp-mcard__price.is-request strong { font-family: var(--tp-font-body); font-size: .86rem; font-weight: 500; color: var(--tp-text); letter-spacing: 0; }
.tp-mcard__go { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; flex: none; border-radius: 50%; border: 1px solid var(--tp-line-strong); color: var(--tp-primary); transition: background-color .35s var(--tp-ease), color .35s var(--tp-ease), border-color .35s var(--tp-ease); }
.tp-mcard:hover .tp-mcard__go { background: var(--tp-primary); border-color: var(--tp-primary); color: var(--tp-white); }
.tp-mcard[hidden] { display: none; }

/* 11. Model page ------------------------------------------------------------- */
.tp-section--model-hero { padding: clamp(1.25rem, .8rem + 1.5vw, 2.25rem) 0 0 !important; }
.tp-mhero__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(19rem, 1fr); gap: clamp(1.5rem, 1rem + 2.5vw, 3.5rem); align-items: start; }
.tp-mhero__visual { display: grid; gap: .6rem; min-width: 0; }
.tp-mhero__media { aspect-ratio: 4 / 3; border-radius: 8px; }
.tp-mhero__thumbs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.tp-mhero__thumbs .tp-media { aspect-ratio: 16 / 10; border-radius: 6px; }
.tp-mhero__panel { position: sticky; top: calc(var(--tp-header-h) + 1.25rem); display: flex; flex-direction: column; padding: clamp(1.25rem, 1rem + 1vw, 2rem); background: var(--tp-surface); border: 1px solid var(--tp-line); border-radius: 8px; }
.admin-bar .tp-mhero__panel { top: calc(var(--tp-header-h) + 32px + 1.25rem); }
.tp-mhero__meta { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0 0 .9rem; }
.tp-mhero__meta span { display: inline-flex; align-items: center; min-height: 1.6rem; padding: 0 .55rem; border: 1px solid var(--tp-line); border-radius: 999px; font-size: .74rem; font-weight: 500; color: var(--tp-muted); }
.tp-mhero__meta span.is-series { background: var(--tp-sage-soft); border-color: transparent; color: var(--tp-moss); font-weight: 600; }
.tp-mhero__title { font-size: clamp(2rem, 1.6rem + 1.5vw, 2.9rem); line-height: 1.05; letter-spacing: -0.02em; margin: 0; }
.tp-mhero__tagline { margin: .75rem 0 0; font-size: 1rem; line-height: 1.6; color: var(--tp-muted); }
.tp-mhero__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1.35rem 0 0; border-top: 1px solid var(--tp-line); }
.tp-mhero__facts div { padding: .8rem .75rem .8rem 0; border-bottom: 1px solid var(--tp-line); min-width: 0; }
.tp-mhero__facts div:nth-child(even) { padding-left: .9rem; border-left: 1px solid var(--tp-line); }
.tp-mhero__facts div:last-child:nth-child(odd) { grid-column: 1 / -1; }
.tp-mhero__facts dt { font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tp-muted); }
.tp-mhero__facts dd { margin: .2rem 0 0; font-size: .95rem; font-weight: 500; line-height: 1.4; font-variant-numeric: lining-nums; }
.tp-mhero__price { margin-top: 1.25rem; padding: 1rem 1.1rem; border-radius: 6px; background: var(--tp-sage-soft); }
.tp-mhero__price dl { margin: 0; display: grid; gap: .45rem; }
.tp-mhero__price dl div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.tp-mhero__price dt { font-size: .84rem; color: var(--tp-muted); }
.tp-mhero__price dd { margin: 0; font-family: var(--tp-font-heading); font-size: 1.55rem; font-weight: 500; color: var(--tp-primary); letter-spacing: -0.01em; font-variant-numeric: lining-nums; }
.tp-mhero__request { margin: 0; font-family: var(--tp-font-heading); font-size: 1.35rem; color: var(--tp-primary); }
.tp-mhero__note { margin: .45rem 0 0; font-size: .78rem; line-height: 1.5; color: var(--tp-muted); }
.tp-mhero__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: 1.1rem; }
.tp-mhero__actions .tp-btn { width: 100%; padding-inline: .75rem; }
.tp-mhero__overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 1rem clamp(2rem, 1rem + 4vw, 5rem); margin-top: clamp(2.5rem, 2rem + 2vw, 4rem); padding-top: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); border-top: 1px solid var(--tp-line); }
.tp-mhero__label { font-family: var(--tp-font-body); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--tp-moss); margin: .35rem 0 0; }
.tp-mhero__overview .tp-prose { max-width: 46rem; font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); line-height: 1.7; }
@media (max-width: 1080px) {
	.tp-mhero__grid { grid-template-columns: 1fr; }
	.tp-mhero__panel { position: static; }
}
@media (max-width: 700px) {
	.tp-mhero__overview { grid-template-columns: 1fr; }
	.tp-mhero__actions { grid-template-columns: 1fr; }
	.tp-mhero__thumbs { display: none; }
}

/* Specification sheet */
.tp-section--model-hero + .tp-section--model-specs { padding-top: clamp(2rem, 1.5rem + 1.5vw, 3rem); }
.tp-sheet { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 1rem clamp(2rem, 1rem + 4vw, 5rem); }
.tp-sheet__title { font-family: var(--tp-font-body); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--tp-moss); margin: .9rem 0 0; }
.tp-sheet__grid { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12.5rem), 1fr)); border-top: 1px solid var(--tp-line-strong); }
.tp-sheet__item { padding: .85rem 1rem .85rem 0; border-bottom: 1px solid var(--tp-line); }
.tp-sheet__item dt { font-size: .75rem; color: var(--tp-muted); }
.tp-sheet__item dd { margin: .2rem 0 0; font-size: 1rem; font-weight: 500; line-height: 1.4; font-variant-numeric: lining-nums; }
@media (max-width: 700px) { .tp-sheet { grid-template-columns: 1fr; } .tp-sheet__grid { grid-template-columns: 1fr 1fr; } }

/* Gallery & plans with tabs */
.tp-mgal__top { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: clamp(1.25rem, 1rem + 1vw, 2rem); }
.tp-mgal__top .tp-head { margin: 0; }
.tp-tabs { display: inline-flex; gap: .25rem; padding: .25rem; background: var(--tp-stone-soft); border-radius: 999px; }
.tp-tabs__tab { min-height: 2.35rem; padding: 0 1rem; border: 0; border-radius: 999px; background: transparent; font-size: .86rem; font-weight: 500; color: var(--tp-muted); cursor: pointer; transition: background-color .3s var(--tp-ease), color .3s var(--tp-ease); }
.tp-tabs__tab:hover { color: var(--tp-text); }
.tp-tabs__tab[aria-selected="true"] { background: var(--tp-surface); color: var(--tp-text); box-shadow: 0 1px 2px rgba(10, 42, 32, .1); }
.tp-mgal__panel[hidden] { display: none; }
.tp-mgal__subhead { font-family: var(--tp-font-body); font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--tp-moss); margin: 0 0 1rem; }
.tp-mgal__photos { display: grid; gap: .6rem; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(9rem, 6rem + 8vw, 15rem); }
.tp-mgal__photos .tp-media { height: 100%; border-radius: 6px; }
.tp-mgal__photos .tp-media:first-child { grid-column: span 2; grid-row: span 2; }
.tp-mgal__photos--1 { grid-template-columns: 1fr; grid-auto-rows: auto; }
.tp-mgal__photos--1 .tp-media:first-child { grid-column: auto; grid-row: auto; aspect-ratio: 16 / 8; }
.tp-mgal__photos--2 { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; }
.tp-mgal__photos--2 .tp-media, .tp-mgal__photos--2 .tp-media:first-child { grid-column: auto; grid-row: auto; aspect-ratio: 4 / 3; }
.tp-mgal__photos--3 .tp-media:not(:first-child) { grid-column: span 2; }
.tp-mgal__plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: .75rem; }
.tp-mgal__plan { margin: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--tp-line); border-radius: 6px; padding: 1rem; transition: border-color .3s var(--tp-ease), box-shadow .3s var(--tp-ease); }
.tp-mgal__plan:hover { border-color: var(--tp-line-strong); box-shadow: var(--tp-shadow-soft); }
.tp-mgal__plan a { display: grid; place-items: center; aspect-ratio: 4 / 3; }
.tp-mgal__plan img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.tp-mgal__plan figcaption { margin-top: .75rem; padding-top: .65rem; border-top: 1px solid var(--tp-line); font-size: .8rem; line-height: 1.45; color: var(--tp-muted); }
@media (max-width: 700px) {
	.tp-mgal__photos { grid-template-columns: 1fr 1fr; grid-auto-rows: 8.5rem; }
	.tp-mgal__photos .tp-media:first-child { grid-column: span 2; grid-row: span 2; }
	.tp-mgal__photos--3 .tp-media:not(:first-child) { grid-column: auto; }
	.tp-tabs { width: 100%; }
	.tp-tabs__tab { flex: 1; }
}

/* Features & materials, options */
.tp-specs__groups { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 2rem var(--tp-gap); }
.tp-specs__title { font-size: .75rem; color: var(--tp-moss); margin-bottom: .6rem; }
.tp-specs__row { grid-template-columns: minmax(0, .75fr) minmax(0, 1.5fr); gap: .9rem; padding: .7rem 0; font-size: .9rem; line-height: 1.55; }
.tp-option { padding: 1rem 0; }
.tp-option__name { font-size: 1.05rem; }

/* 12. Steps, stats, comparison, packages ------------------------------------ */
.tp-step__title { font-size: 1.2rem; margin-bottom: .45rem; }
.tp-step__text { font-size: .92rem; line-height: 1.6; }
.tp-steps--timeline .tp-step { padding-top: 3rem; }
.tp-steps--timeline .tp-step__num { width: 2rem; height: 2rem; font-family: var(--tp-font-body); font-size: .74rem; }
.tp-steps--timeline .tp-step::before { top: 1rem; }
.tp-steps--timeline .tp-step__title { font-size: 1.12rem; }
.tp-steps--stacked .tp-step__num { font-size: clamp(2.2rem, 1.8rem + 1.5vw, 3.4rem); color: var(--tp-moss); }
.tp-steps--stacked .tp-step__title { font-size: var(--tp-fs-h2); margin-bottom: .9rem; }
.tp-steps--grid .tp-step { padding: .9rem 0; }
.tp-steps--grid .tp-step__title { font-size: .98rem; }
.tp-stat { padding-top: 1.1rem; }
.tp-stat__value { font-size: clamp(2.3rem, 1.8rem + 1.9vw, 3.5rem); font-weight: 400; }
.tp-stat__label { margin-top: .5rem; font-size: .95rem; }
.tp-stat__text { font-size: .86rem; }
.tp-versus__label { font-size: 1.2rem; }
.tp-versus__row { padding: 1.05rem 0; font-size: .95rem; }
.tp-package { border-radius: 8px; padding: clamp(1.5rem, 1.2rem + 1.4vw, 2.5rem); background: var(--tp-surface); border-color: var(--tp-line); }
.tp-package.is-highlight { background: var(--tp-dark-gradient); box-shadow: none; }
.tp-package__name { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.3rem); }
.tp-pricelist__addons { border-radius: 8px; border: 1px solid var(--tp-line); }
.tp-table th, .tp-table td { padding: .8rem 1rem .8rem 0; font-size: .9rem; }

/* 13. Trust strip ------------------------------------------------------------ */
.tp-trust__head .tp-heading { font-size: var(--tp-fs-h2); }
.tp-trust__label { font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); }
.tp-trust__mark { width: 2.6rem; height: 2.6rem; margin-bottom: .75rem; }
.tp-trust__item { padding-block: clamp(1.4rem, 1.1rem + 1vw, 2.1rem); }

/* 14. CTA -------------------------------------------------------------------- */
.tp-cta { padding-block: clamp(3.75rem, 2.8rem + 4vw, 7rem); }
.tp-cta__heading { font-size: clamp(2.2rem, 1.6rem + 2.5vw, 3.75rem); line-height: 1.04; }
.tp-cta__text { margin-top: 1.1rem; font-size: 1.05rem; }
.tp-cta--dark { background: var(--tp-dark-gradient); }
.tp-cta--image::after { background: linear-gradient(90deg, rgba(8, 31, 24, .86) 0%, rgba(8, 31, 24, .5) 62%, rgba(8, 31, 24, .25) 100%); }
.tp-cta--dark .tp-eyebrow, .tp-cta--image .tp-eyebrow { color: var(--tp-accent); opacity: 1; }

/* 15. FAQ, gallery, forms ----------------------------------------------------- */
.tp-faq__aside .tp-heading { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem); }
.tp-accordion__q { padding: 1.15rem 0; font-size: clamp(1.1rem, 1.02rem + .3vw, 1.28rem); font-weight: 400; }
.tp-accordion__icon { width: 1.75rem; height: 1.75rem; }
.tp-accordion__a .tp-prose { font-size: .95rem; padding-bottom: 1.2rem; }
.tp-gallery { gap: .6rem; }
.tp-gallery .tp-media { border-radius: 6px; }
.tp-gallery figcaption, .tp-plan figcaption { font-size: .8rem; letter-spacing: 0; text-transform: none; margin-top: .5rem; }
.tp-plan { border-radius: 6px; }
.tp-field input[type="text"], .tp-field input[type="email"], .tp-field input[type="tel"], .tp-field textarea, .tp-field select, .tp-newsletter-form input { border-radius: 4px; }

/* 16. Footer ----------------------------------------------------------------- */
.tp-footer { background: var(--tp-dark-gradient); padding-top: clamp(3.5rem, 2.8rem + 3vw, 5.5rem); font-size: .9rem; }
.tp-footer__statement { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.55rem); line-height: 1.35; }
.tp-footer__heading { font-size: .72rem; letter-spacing: .12em; color: var(--tp-accent); margin-bottom: 1.1rem; }
.tp-footer__menu { gap: .55rem; }
.tp-footer__badges li a, .tp-footer__badges li > span { border-radius: 999px; font-size: .74rem; letter-spacing: .02em; text-transform: none; }
.tp-social a { width: 2.25rem; height: 2.25rem; }

/* 17. Motion: quieter reveals ------------------------------------------------- */
.tp-motion [data-reveal] { transform: translate3d(0, 16px, 0); }
.tp-motion [data-reveal-media] { clip-path: inset(6% 0 0 0); }
.tp-motion [data-reveal-media]:not(.is-in) { --tp-img-scale: 1.1; }
.tp-model-card .tp-model-card__media::after { display: none; }

/* 18. Collection index (card style "collection") ---------------------------- */
.tp-coll__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--_cols, 3), minmax(0, 1fr)); gap: clamp(1rem, .8rem + .8vw, 1.5rem); }
.tp-coll__item { position: relative; display: flex; flex-direction: column; background: var(--tp-surface); border: 1px solid var(--tp-line); border-radius: 8px; overflow: hidden; transition: border-color .35s var(--tp-ease), box-shadow .45s var(--tp-ease), transform .45s var(--tp-ease); }
.tp-coll__item:hover { border-color: var(--tp-line-strong); box-shadow: var(--tp-shadow-soft); transform: translateY(-2px); }
.tp-coll__item:focus-within { border-color: var(--tp-primary); }
.tp-coll__media { aspect-ratio: 16 / 10; border-radius: 0; }
.tp-coll__item:hover .tp-coll__media { --tp-img-hover: 1.04; }
.tp-coll__index { position: absolute; top: .75rem; left: .75rem; z-index: 1; display: grid; place-items: center; min-width: 2rem; height: 1.6rem; padding: 0 .45rem; border-radius: 3px; background: color-mix(in srgb, var(--tp-white) 92%, transparent); color: var(--tp-primary); font-size: .72rem; font-weight: 600; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.tp-coll__body { display: flex; flex-direction: column; flex: 1; padding: 1.1rem 1.25rem 1.2rem; }
.tp-coll__meta { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: 0 0 .4rem; font-size: .76rem; line-height: 1.3; }
.tp-coll__kicker { font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tp-moss); }
.tp-coll__count { color: var(--tp-muted); font-variant-numeric: tabular-nums; }
.tp-coll__title { margin: 0; font-size: clamp(1.4rem, 1.25rem + .5vw, 1.7rem); line-height: 1.12; letter-spacing: -0.018em; }
.tp-coll__title a { text-decoration: none; }
.tp-coll__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.tp-coll__title a:hover { color: inherit; }
.tp-coll__text { margin: .55rem 0 0; font-size: .9rem; line-height: 1.6; color: var(--tp-muted); }
.tp-coll__link { display: inline-flex; align-items: center; gap: .45rem; margin-top: auto; padding-top: 1rem; font-size: .86rem; font-weight: 600; color: var(--tp-primary); }
.tp-coll__link svg { transition: transform .4s var(--tp-ease); }
.tp-coll__item:hover .tp-coll__link svg { transform: translateX(3px); }
@media (max-width: 1080px) { .tp-coll__list.tp-cols--4 { --_cols: 2; } }
@media (max-width: 860px) { .tp-coll__list { --_cols: 2 !important; } }
@media (max-width: 560px) {
	.tp-coll__list { --_cols: 1 !important; }
	.tp-coll__item { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); }
	.tp-coll__media { aspect-ratio: auto; height: 100%; min-height: 9rem; }
	.tp-coll__index { top: .5rem; left: .5rem; }
	.tp-coll__body { padding: .9rem 1rem; }
	.tp-coll__meta { flex-wrap: wrap; justify-content: flex-start; gap: .15rem .6rem; }
	.tp-coll__title { font-size: 1.25rem; }
	.tp-coll__text { font-size: .84rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
	.tp-coll__link { padding-top: .6rem; }
}

/* 19. Text beside image: visual wrapper, inset photo, highlight -------------- */
.tp-split__visual { grid-column: 7 / -1; position: relative; min-width: 0; }
.tp-split--img-left .tp-split__visual { grid-column: 1 / span 6; grid-row: 1; }
.tp-split__visual .tp-split__media { grid-column: auto; border-radius: 8px; }
.tp-split .tp-ratio--portrait { aspect-ratio: 4 / 5; }
.tp-split--composed .tp-split__visual { padding: 0 0 clamp(2rem, 1.5rem + 2vw, 3.5rem) clamp(2.5rem, 1.5rem + 4vw, 5rem); }
.tp-split--img-left.tp-split--composed .tp-split__visual { padding: 0 clamp(2.5rem, 1.5rem + 4vw, 5rem) clamp(2rem, 1.5rem + 2vw, 3.5rem) 0; }
.tp-split__inset { position: absolute; left: 0; bottom: 0; width: 42%; aspect-ratio: 4 / 3; border-radius: 6px; border: 6px solid var(--tp-bg); box-shadow: 0 18px 40px -20px rgba(10, 42, 32, .45); }
.tp-bg--stone .tp-split__inset { border-color: var(--tp-stone-soft); }
.tp-bg--white .tp-split__inset { border-color: var(--tp-surface); }
.tp-split--img-left .tp-split__inset { left: auto; right: 0; }
.tp-split__highlight { position: absolute; top: clamp(1rem, .5rem + 1.5vw, 1.75rem); right: clamp(1rem, .5rem + 1.5vw, 1.75rem); max-width: 13.5rem; margin: 0; padding: .9rem 1rem; border-radius: 6px; background: color-mix(in srgb, var(--tp-surface) 94%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 12px 30px -18px rgba(10, 42, 32, .4); }
.tp-split--img-left .tp-split__highlight { right: auto; left: clamp(1rem, .5rem + 1.5vw, 1.75rem); }
.tp-split__highlight strong { display: block; font-family: var(--tp-font-heading); font-size: 1.9rem; font-weight: 400; line-height: 1; letter-spacing: -0.02em; color: var(--tp-primary); font-variant-numeric: lining-nums; }
.tp-split__highlight span { display: block; margin-top: .35rem; font-size: .78rem; line-height: 1.4; color: var(--tp-muted); }
.tp-bullets { margin-top: 1.5rem; }
.tp-bullets li { gap: .9rem; padding: .75rem 0; font-size: .95rem; }
.tp-bullets li::before { color: var(--tp-moss); min-width: 1.35rem; padding-top: .2rem; }
.tp-bullets--cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; border-top: 0; }
.tp-bullets--cols li { border-top: 1px solid var(--tp-line); border-bottom: 0; }
.tp-bullets--cols li:nth-last-child(-n + 2) { border-bottom: 1px solid var(--tp-line); }
@media (max-width: 960px) {
	.tp-split__visual, .tp-split--img-left .tp-split__visual { grid-column: 1; grid-row: auto; order: -1; }
	.tp-split .tp-ratio--square, .tp-split .tp-ratio--portrait { aspect-ratio: 4 / 3; }
}
@media (max-width: 520px) {
	.tp-bullets--cols { grid-template-columns: 1fr; }
	.tp-bullets--cols li:nth-last-child(2) { border-bottom: 0; }
	.tp-split__highlight { max-width: 10.5rem; padding: .7rem .8rem; }
	.tp-split__highlight strong { font-size: 1.5rem; }
}

/* 20. Growth path (Figures → Rising scale) ----------------------------------- */
.tp-growth__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--tp-count, 4), minmax(0, 1fr)); gap: 0 clamp(1rem, .6rem + 1.5vw, 2rem); }
.tp-growth__step { position: relative; display: flex; flex-direction: column; min-width: 0; }
.tp-growth__chart { position: relative; display: flex; align-items: flex-end; height: clamp(7rem, 5rem + 6vw, 11rem); border-bottom: 1px solid var(--tp-line-strong); }
.tp-growth__bar { display: block; width: 100%; height: var(--tp-h, 50%); border-radius: 4px 4px 0 0; background: linear-gradient(180deg, color-mix(in srgb, var(--tp-secondary) 30%, var(--tp-bg)) 0%, var(--tp-sage-soft) 100%); box-shadow: inset 0 2px 0 var(--tp-primary); transform-origin: bottom; }
.is-peak .tp-growth__bar { background: linear-gradient(180deg, #1B5A43 0%, var(--tp-primary) 100%); box-shadow: none; }
.tp-growth__stage { position: relative; margin: 0; padding: 1rem 0 0; font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--tp-moss); }
.tp-growth__stage::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--tp-bg); border: 1.5px solid var(--tp-primary); }
.is-peak .tp-growth__stage::before { background: var(--tp-primary); }
.tp-bg--stone .tp-growth__stage::before { background: var(--tp-stone-soft); }
.tp-bg--white .tp-growth__stage::before { background: var(--tp-surface); }
.tp-bg--stone .is-peak .tp-growth__stage::before, .tp-bg--white .is-peak .tp-growth__stage::before { background: var(--tp-primary); }
.tp-growth__value { margin: .4rem 0 0; font-family: var(--tp-font-heading); font-size: clamp(2.2rem, 1.7rem + 1.8vw, 3.25rem); font-weight: 400; line-height: 1; letter-spacing: -0.02em; color: var(--tp-primary); font-variant-numeric: lining-nums; }
.tp-growth__label { margin: .7rem 0 0; font-size: 1rem; font-weight: 600; }
.tp-growth__text { margin: .3rem 0 0; font-size: .9rem; line-height: 1.55; color: var(--tp-muted); max-width: 17rem; }
.tp-growth > .tp-actions { margin-top: 2rem; }
.is-dark .tp-growth__chart { border-color: var(--tp-line-on-dark); }
.is-dark .tp-growth__bar { background: linear-gradient(180deg, rgba(169, 191, 160, .35) 0%, rgba(169, 191, 160, .08) 100%); box-shadow: inset 0 2px 0 var(--tp-accent); }
.is-dark .is-peak .tp-growth__bar { background: linear-gradient(180deg, var(--tp-accent) 0%, rgba(169, 191, 160, .55) 100%); }
.is-dark .tp-growth__stage { color: var(--tp-accent); }
.is-dark .tp-growth__stage::before { background: var(--tp-dark); border-color: var(--tp-accent); }
.is-dark .tp-growth__value { color: var(--tp-primary-ink); }
.is-dark .tp-growth__text { color: var(--tp-muted-on-dark); }
.tp-motion .tp-growth__bar { transform: scaleY(0); transition: transform 1.2s var(--tp-ease); transition-delay: calc(var(--tp-i, 0) * .12s + .15s); }
.tp-motion .tp-growth__step.is-in .tp-growth__bar { transform: scaleY(1); }
@media (max-width: 860px) {
	.tp-growth__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.5rem; }
	.tp-growth__chart { height: 6.5rem; }
}
@media (max-width: 520px) {
	.tp-growth__list { grid-template-columns: 1fr; row-gap: 0; }
	.tp-growth__step { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; column-gap: 1rem; padding: 1.1rem 0; border-top: 1px solid var(--tp-line); }
	.tp-growth__step:last-child { border-bottom: 1px solid var(--tp-line); }
	.tp-growth__stage { grid-column: 1 / -1; padding-top: 0; }
	.tp-growth__stage::before { display: none; }
	.tp-growth__value { grid-column: 1; grid-row: 2; font-size: 2rem; min-width: 3.5rem; }
	.tp-growth__label { grid-column: 2; grid-row: 2; margin: 0; }
	.tp-growth__text { grid-column: 1 / -1; max-width: none; }
	/* The rising bar becomes a slim progress track on phones. */
	.tp-growth__chart { grid-column: 1 / -1; grid-row: 5; height: 4px; margin-top: .85rem; border: 0; border-radius: 4px; background: var(--tp-sage-soft); overflow: hidden; }
	.tp-growth__bar { width: var(--tp-h, 50%); height: 100%; border-radius: 4px; box-shadow: none; background: color-mix(in srgb, var(--tp-secondary) 55%, var(--tp-bg)); }
	.is-peak .tp-growth__bar { background: var(--tp-primary); }
	.tp-motion .tp-growth__bar { transform: scaleX(0); transform-origin: left; }
	.tp-motion .tp-growth__step.is-in .tp-growth__bar { transform: scaleX(1); }
}

/* 21. Audience checklist (Text beside image → Checklist) --------------------- */
.tp-split .tp-audience, ul.tp-audience { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .5rem; }
.tp-audience li { display: flex; align-items: flex-start; gap: .8rem; padding: .8rem 1rem; background: var(--tp-surface); border: 1px solid var(--tp-line); border-radius: 6px; font-size: .95rem; line-height: 1.45; }
.tp-bg--white .tp-audience li { background: var(--tp-bg); }
.tp-audience__mark { display: grid; place-items: center; flex: none; width: 1.5rem; height: 1.5rem; margin-top: -.05rem; border-radius: 50%; background: var(--tp-sage-soft); color: var(--tp-primary); }
.tp-split__text .tp-actions { margin-top: 1.5rem; }

/* 22. Compare: model slots ------------------------------------------------------ */
.tp-cslots { margin: 0 0 clamp(2rem, 1.5rem + 1.5vw, 3rem); padding: 1.1rem 1.25rem 1.25rem; background: var(--tp-surface); border: 1px solid var(--tp-line); border-radius: 8px; }
.tp-cslots__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1.5rem; margin-bottom: .85rem; }
.tp-cslots .tp-compare__legend { margin: 0; font-size: .74rem; letter-spacing: .1em; }
.tp-cslots .tp-compare__msg { min-height: 0; margin: 0; font-size: .84rem; }
.tp-cslots__grid { display: grid; grid-template-columns: repeat(var(--tp-slots, 4), minmax(0, 1fr)); gap: .75rem; }
.tp-cslot { display: grid; gap: .4rem; margin: 0; cursor: pointer; }
.tp-cslot__label { font-size: .78rem; font-weight: 600; color: var(--tp-text); }
.tp-cslot__label em { font-style: normal; font-weight: 400; color: var(--tp-muted); margin-left: .25rem; }
.tp-cslot__control { position: relative; display: block; }
.tp-cslot select { appearance: none; -webkit-appearance: none; width: 100%; min-height: 2.9rem; padding: .6rem 2.4rem .6rem .9rem; border: 1px solid var(--tp-line-strong); border-radius: 6px; background: var(--tp-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23073D2C' stroke-width='1.3'/%3E%3C/svg%3E") right .95rem center / .65rem no-repeat; font-size: .92rem; font-weight: 500; color: var(--tp-text); text-overflow: ellipsis; cursor: pointer; transition: border-color .25s var(--tp-ease), box-shadow .25s var(--tp-ease); }
.tp-cslot select:hover { border-color: var(--tp-primary); }
.tp-cslot select:focus-visible { outline: 0; border-color: var(--tp-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tp-primary) 18%, transparent); }
.tp-cslot.is-empty select { border-style: dashed; background-color: transparent; color: var(--tp-muted); font-weight: 400; }
.tp-compare__table thead a { font-size: 1.35rem; }
.tp-compare__table tbody th, .tp-compare__table tbody td { font-size: .9rem; padding: .75rem 1rem .75rem 0; }
.tp-compare__table thead img { border-radius: 6px; }
@media (max-width: 860px) { .tp-cslots__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) { .tp-cslots__grid { grid-template-columns: 1fr; } .tp-cslots { padding: .9rem; } }

/* 23. Specification table image ------------------------------------------------ */
.tp-specs--media { grid-template-columns: minmax(0, .85fr) minmax(0, 1.9fr); gap: 2rem clamp(1.5rem, 1rem + 2.5vw, 3.5rem); }
.tp-specs__media { aspect-ratio: 3 / 4; border-radius: 8px; box-shadow: var(--tp-shadow-soft); --tp-img-base: 1; }
.tp-specs__media img { object-position: center; transform: none; }
@media (max-width: 860px) { .tp-specs__media { aspect-ratio: 16 / 10; } }

/* 24. Published figures on cards and model hero ---------------------------------- */
.tp-mcard__specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tp-mcard__specs div { border-bottom: 1px solid var(--tp-line); }
.tp-mcard__specs div + div { border-left: 1px solid var(--tp-line); }
.tp-mcard__specs div.is-wide { grid-column: 1 / -1; padding-left: 0; border-left: 0; border-bottom: 0; }
.tp-mcard__specs div:not(.is-wide):nth-child(odd) { padding-left: 0; border-left: 0; }
.tp-mcard__specs div:not(.is-wide):only-of-type, .tp-mcard__specs div:first-child:nth-last-child(2):not(.is-wide) { grid-column: 1 / -1; border-left: 0; }
.tp-mcard__specs div.is-wide dd { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.4; }
.tp-mcard__specs { border-bottom: 0; }
.tp-mhero__facts div.is-wide { grid-column: 1 / -1; padding-left: 0; border-left: 0; }
.tp-mhero__facts div:not(.is-wide) + div:not(.is-wide) { padding-left: .9rem; border-left: 1px solid var(--tp-line); }
.tp-mhero__facts div:nth-child(even) { padding-left: 0; border-left: 0; }
.tp-mhero__facts div:not(.is-wide):nth-child(even):not(:first-child) { padding-left: .9rem; border-left: 1px solid var(--tp-line); }
.tp-mhero__facts { grid-template-columns: 1fr; }
.tp-mhero__facts div, .tp-mhero__facts div:nth-child(even), .tp-mhero__facts div:not(.is-wide) + div:not(.is-wide), .tp-mhero__facts div:not(.is-wide):nth-child(even):not(:first-child) { padding-left: 0; border-left: 0; }
.tp-mhero__facts div { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1rem; align-items: baseline; }
.tp-mhero__facts dd { margin: 0; }
@media (max-width: 520px) { .tp-mhero__facts div { grid-template-columns: 1fr; gap: .15rem; } }

/* 25. Figures row: calmer size so long published values (e.g. 47.6m² + 27m²) stay on one line */
.tp-stats--row .tp-stat { padding-top: .9rem; gap: .2rem; }
.tp-stats--row .tp-stat__value { font-size: clamp(1.75rem, 1.35rem + 1.1vw, 2.4rem); white-space: nowrap; }
.tp-stats--row .tp-stat__label { margin-top: .35rem; font-size: .9rem; }
.tp-stats--row .tp-stat__text { font-size: .84rem; line-height: 1.5; }
@media (max-width: 480px) { .tp-stats--row .tp-stat__value { white-space: normal; font-size: 1.9rem; } }

/* 26. Footer layout: brand column plus five even link columns */
.tp-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr); gap: 3rem clamp(2rem, 1rem + 3vw, 4.5rem); align-items: start; }
.tp-footer__cols { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2rem 1.5rem; }
.tp-footer__statement { font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem); max-width: 22rem; margin-top: 1.5rem; }
.tp-footer__menu a, .tp-footer .tp-contact a { font-size: .9rem; overflow-wrap: anywhere; }
.tp-footer .tp-contact__label { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 1080px) { .tp-footer__top { grid-template-columns: 1fr; } }
@media (max-width: 860px) { .tp-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .tp-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tp-footer__cols { grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.5fr); }
.tp-footer .tp-contact a { overflow-wrap: normal; white-space: nowrap; }
@media (max-width: 860px) { .tp-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .tp-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tp-footer .tp-contact a { white-space: normal; overflow-wrap: anywhere; } }
