/* JP Trent shared template. Brand differences are controlled by tokens. */
:root{--cream:#f7f3e9;--paper:#fcfaf5;--ink:#242620;--muted:#606258;--line:#deddd3;--sans:'Outfit',Arial,sans-serif;--heading-font:var(--sans);--heading-weight:500;--section-space:88px;--hero-space:64px;--tracking:-.045em;--card-radius:22px}
body{font-family:var(--sans);background:var(--cream);-webkit-font-smoothing:antialiased}
.wrap{width:min(1280px,calc(100% - 96px));margin-inline:auto}
h1,h2,h3{font-family:var(--heading-font);font-weight:var(--heading-weight);letter-spacing:var(--tracking)}
h1 em,h2 em{font-family:inherit;font-weight:inherit}
h2{font-size:clamp(36px,3.8vw,54px);line-height:1.12}
.header{background:rgba(247,243,233,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.header .nav,.header .nav-wrap{height:94px;min-height:94px;gap:28px}
.brand,.wordmark{display:inline-flex;flex-direction:column;align-items:flex-start;flex-shrink:0;width:auto;color:var(--brand)}
.brand-name,.wordmark b{font:600 27px/1.05 var(--sans);letter-spacing:-.055em;color:var(--brand);gap:0}
.brand-sub,.wordmark>span{font:500 10px/1.4 var(--sans);letter-spacing:.22em;margin:7px 0 0;color:var(--brand)}
.brand-rule{display:none}
.header nav,.nav nav{font:400 14px/1.5 var(--sans);gap:28px}
.button,.nav-contact{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 23px;gap:22px;border:1px solid var(--brand);border-radius:999px;background:var(--brand);color:var(--cream);font:500 15px/1.4 var(--sans);transition:background .2s,transform .2s}
.button:hover,.nav-contact:hover{background:var(--deep);color:var(--cream);transform:translateY(-2px)}
.button.light,.button-cream{background:var(--paper);border-color:var(--paper);color:var(--brand)}
.button.light:hover,.button-cream:hover{background:var(--tint);color:var(--brand)}
.button-outline{background:transparent;color:var(--brand)}
.hero{padding-block:var(--hero-space);background:var(--cream);color:var(--ink)}
.hero-grid,.hero-inner,.hero.wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center;min-height:0}
.hero-inner{padding-block:0}
.hero-copy{min-width:0}
.hero h1{font-size:clamp(48px,5.5vw,80px);line-height:1.04;letter-spacing:var(--tracking);color:var(--brand);margin:24px 0}
.hero .eyebrow{color:var(--brand);font:500 11px/1.6 var(--sans);letter-spacing:.14em;margin:0}
.hero .intro,.hero-description{font:400 18px/1.65 var(--sans);color:var(--muted);max-width:490px}
.hero .actions,.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:28px}
.hero-showcase,.hero-visual,.home-hero-photo{border-radius:var(--card-radius);overflow:hidden}
.hero-visual{transform:none}
.section{padding-block:var(--section-space)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:48px;margin-bottom:36px}
.section-heading>p{max-width:370px;font:400 16px/1.65 var(--sans);color:var(--muted)}
.eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.14em;font-weight:500}
.service-grid{gap:24px}
.service-card,.service-grid>article{display:flex;flex-direction:column;min-width:0;padding:28px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--paper)}
.service-grid h3{font-size:26px;line-height:1.2;color:var(--brand)}
.service-grid p{font:400 16px/1.65 var(--sans);color:var(--muted)}
.service-pick,.service-grid .text-link{margin-top:auto;color:var(--brand)}
.price-card,.quote-panel,.enquiry,.feature-copy,.area-board{border-radius:var(--card-radius)}
.feature-image,.about-monogram{border-radius:var(--card-radius);overflow:hidden}
.family-section{padding-block:72px;background:var(--paper);border-block:1px solid var(--line)}
.family-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:28px}
.family-heading h2{margin:10px 0 0;color:var(--brand)}
.family-heading>p{font-size:16px;color:var(--muted);max-width:350px;margin:0}
.family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.family-card{display:flex;flex-direction:column;position:relative;min-height:220px;padding:28px;border-radius:var(--card-radius);background:var(--tile);color:var(--tile-ink);transition:transform .2s}
.family-card:hover{transform:translateY(-3px)}
.family-wordmark{display:inline-flex;flex-direction:column;color:inherit;line-height:1}
.family-wordmark b{font:600 27px/1.1 var(--sans);letter-spacing:-.055em}
.family-wordmark small{font:500 10px/1.4 var(--sans);letter-spacing:.22em;margin-top:7px}
.family-card p{font:400 15px/1.6 var(--sans);margin:24px 0;max-width:245px}
.family-card>span:last-child{margin-top:auto;font-size:13px;font-weight:500}
.family-card .arrow{position:absolute;right:24px;top:23px;font-size:24px;font-style:normal}
.family-current{box-shadow:inset 0 0 0 2px currentColor}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid var(--brand);outline-offset:5px}
@media(max-width:1100px){.wrap{width:calc(100% - 56px)}.hero-grid,.hero-inner,.hero.wrap{gap:32px}.header nav,.nav nav{gap:20px}.section{padding-block:68px}}
@media(max-width:850px){.header .nav,.header .nav-wrap{height:78px;min-height:78px}.header .menu-toggle{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 14px;background:transparent;color:var(--brand);border:1px solid var(--line);border-radius:999px}.header nav,.nav nav{display:none;position:absolute;top:78px;left:0;right:0;padding:18px 24px;background:var(--cream);border-bottom:1px solid var(--line);gap:8px}.header nav.open,.header nav.is-open,.nav nav.open{display:flex;flex-direction:column;align-items:stretch}.hero-grid,.hero-inner,.hero.wrap{grid-template-columns:1fr;gap:32px}.hero h1{font-size:clamp(46px,8vw,70px)}.hero{padding-block:42px}.hero-visual,.home-hero-photo{max-width:640px;width:100%;margin-inline:auto}.hero-visual img{max-height:460px;width:100%;object-fit:cover}.hero-inner{padding-block:0}.service-grid{grid-template-columns:1fr 1fr}.family-grid{grid-template-columns:1fr}.family-card{min-height:185px}.family-heading,.section-heading{display:block}.family-heading>p,.section-heading>p{margin-top:20px;max-width:560px}}
@media(max-width:600px){.wrap{width:calc(100% - 40px)}.section{padding-block:52px}.hero{padding-block:34px}.hero h1{font-size:clamp(43px,10.8vw,62px)}.hero .intro,.hero-description{font-size:17px}.service-grid{grid-template-columns:1fr;gap:16px}.service-card,.service-grid>article{padding:24px}.section-heading{margin-bottom:28px}.family-section{padding-block:48px}.family-card{padding:24px}.brand-name,.wordmark b{font-size:25px}.header .nav,.header .nav-wrap{gap:15px}.hero .actions,.hero-actions{gap:16px}.button{max-width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* design */
:root{--brand:#6135a5;--deep:#45216f;--tint:#eee4fa;--purple:var(--brand);--violet:var(--brand);--section-space:88px;--hero-space:64px}.hero h1 span{color:var(--deep)}.hero-showcase{overflow:visible;border-radius:140px 140px 24px 24px}.services,.pricing-section,.contact{background:var(--tint)}.hero .button{background:var(--brand);color:var(--cream)}

.solutions-product{max-width:1100px;margin:24px auto 0;padding:20px 24px;font-size:1rem;line-height:1.65;border-top:1px solid currentColor}.solutions-product a{text-decoration:underline;text-underline-offset:4px}
