/* Shared product-story typography; each product owns its composition. */
.signature-product { --sp-ink:#222a2e; --sp-muted:#606970; color:var(--sp-ink); }
.signature-product .sp-wrap { width:calc(100% - var(--gutter)*2); max-width:1180px; margin-inline:auto; }
.signature-product .sp-section { padding-block:90px; }
.signature-product .sp-eyebrow { font-size:13px; line-height:1.5; color:var(--sp-muted); margin:0; }
.signature-product .sp-heading { font-size:clamp(32px,3.35vw,46px); line-height:1.13; letter-spacing:-.04em; }
.signature-product .sp-copy { font-size:17px; line-height:1.7; color:var(--sp-muted); }
.signature-product .sp-link { display:inline-flex; align-items:center; gap:14px; max-width:100%; min-height:44px; font-size:15px; line-height:1.45; text-align:left; }
.signature-product .sp-link span { font-size:20px; }
.signature-product .sp-link:hover { text-decoration:underline; text-underline-offset:5px; }
.signature-product .sp-local-nav.sp-wrap,.signature-product .sp-local-nav>.sp-wrap { display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:66px; padding-block:10px; border-bottom:1px solid #dce0e2; }
.signature-product .sp-local-nav>a,.signature-product .sp-local-nav>.sp-wrap>a,.signature-product .sp-local-nav>.sp-wrap>span { font-size:17px; letter-spacing:-.02em; }
.signature-product .sp-local-nav :is(div,nav):not(.sp-wrap) { display:flex; align-items:center; gap:26px; }
.signature-product .sp-local-nav :is(div,nav):not(.sp-wrap) a { display:inline-flex; gap:8px; min-height:44px; align-items:center; font-size:13px; line-height:1.4; }
.signature-product .sp-local-nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.signature-product .sp-enquiry { padding-block:75px 82px; background:var(--surface-stone); text-align:center; }
.signature-product .sp-enquiry .sp-heading { margin:17px auto 23px; max-width:650px; }
.signature-product .sp-enquiry .sp-copy { max-width:520px; margin-inline:auto; }
.signature-product :is(section[id],aside[id]) { scroll-margin-top:24px; }
.signature-product :is(h1,h2,h3) { overflow-wrap:break-word; }
@media(max-width:700px){
 .signature-product .sp-section { padding-block:57px; }
 .signature-product .sp-heading { font-size:33px; }
 .signature-product .sp-copy { font-size:16px; }
 .signature-product .sp-local-nav.sp-wrap,.signature-product .sp-local-nav>.sp-wrap { align-items:flex-start; gap:8px 20px; flex-wrap:wrap; padding-block:13px; }
 .signature-product .sp-local-nav>a,.signature-product .sp-local-nav>.sp-wrap>a { min-height:36px; display:flex; align-items:center; }
 .signature-product .sp-local-nav :is(div,nav):not(.sp-wrap) { gap:23px; flex-wrap:wrap; }
 .signature-product .sp-enquiry { padding-block:55px 58px; }
}
@media(max-width:360px){ .signature-product .sp-heading { font-size:29px; } }

@media(max-width:700px) {
 .signature-product .sp-local-nav.sp-wrap,
 .signature-product .sp-local-nav>.sp-wrap { min-height:52px; padding-block:4px; align-items:center; flex-wrap:nowrap; gap:12px; }
 .signature-product .sp-local-nav>a,
 .signature-product .sp-local-nav>.sp-wrap>span { font-size:15px; }
 .signature-product .sp-local-nav :is(div,nav):not(.sp-wrap) { flex-wrap:nowrap; gap:0; }
 .signature-product .sp-local-nav :is(div,nav):not(.sp-wrap) a[href^="#"] { display:none; }
 .signature-product .sp-local-nav :is(div,nav):not(.sp-wrap) a { font-size:12px; white-space:nowrap; }
 .signature-product .sp-section { padding-block:44px; }
 .signature-product .sp-heading { font-size:30px; }
}

.signature-product .sp-fit-details { min-width:0; }
.signature-product .sp-fit-details > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:48px; cursor:pointer; list-style:none; font-size:16px; border-block:1px solid #d9dfe1; }
.signature-product .sp-fit-details > summary::-webkit-details-marker { display:none; }
.signature-product .sp-fit-details > summary > span { font-size:22px; font-weight:300; transition:transform .2s; }
.signature-product .sp-fit-details[open] > summary > span { transform:rotate(45deg); }
.signature-product .sp-fit-details[open] > ol { margin-top:24px; }
@media(max-width:700px) {
 .signature-product .sp-fit-details > summary { font-size:15px; }
}

/* Mobile readability: keep the shared heading scale unchanged. */
@media(max-width:760px){
 .signature-product .sp-copy{font-size:18px;line-height:1.6}
 .signature-product .sp-link{min-height:48px;font-size:16px}
 .signature-product .sp-fit-details>summary{min-height:52px;font-size:16px}
}
