@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@500;600;650;700&display=swap');

:root {
  --graphite:#142b33; --graphite-deep:#10232a; --ink:#f5f8f7; --muted:#bacbd0;
  --paper:#f5f7f5; --white:#fff; --stone:#eaf0ee; --line:#344c53;
  --wine:#7bc9c8; --teal:#277b7e; --teal-hover:#206669; --wine-dark:#206669;
  --sans:'DM Sans',Arial,sans-serif; --max:1400px; --gutter:32px; --radius:9px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:94px; }
body { margin:0; background:var(--graphite); color:var(--ink); font:400 1rem/1.55 var(--sans); -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
h1,h2,h3,h4,p,figure { margin:0; }
h1,h2,h3,h4 { font-family:var(--sans); font-weight:650; line-height:1.22; letter-spacing:-.025em; overflow-wrap:break-word; }
h1 { font-size:2rem; } h2 { font-size:1.625rem; } h3 { font-size:1.25rem; } h4 { font-size:1.0625rem; }
h1 em,h2 em,h3 em { font-style:normal; font-weight:inherit; }
h1 br,h2 br,h3 br { display:none; }
p+p { margin-top:12px; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button,summary { cursor:pointer; }
img { display:block; width:100%; height:100%; object-fit:cover; }
a,button,input,textarea,select,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--wine); outline-offset:4px; }
.wrap { width:100%; max-width:var(--max); padding-inline:var(--gutter); margin-inline:auto; }
.section { padding-block:32px; }
.eyebrow { font:600 .75rem/1.5 'Manrope',var(--sans); letter-spacing:.095em; text-transform:uppercase; }
.wine,.accent { color:var(--wine); }
.muted { color:var(--muted); }
.small { font-size:.875rem; line-height:1.55; }
.lede { font-size:1rem; line-height:1.6; color:var(--muted); }
.arrow { display:inline-flex; width:18px; height:18px; flex:none; align-items:center; justify-content:center; vertical-align:middle; }
.arrow svg { width:18px; height:18px; display:block; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:44px; padding:10px 17px; background:var(--teal); color:#fff; border:1px solid #3d9192; border-radius:5px; font-size:.875rem; font-weight:600; line-height:1.5; transition:background .16s,box-shadow .16s; }
.button:hover { background:var(--teal-hover); box-shadow:0 4px 14px #091c2525; }
.button.light { background:var(--paper); border-color:var(--paper); color:#18343c; }
.button.light:hover { background:#deebe7; }
.button.outline { background:transparent; border-color:var(--teal); color:var(--teal); }
.button.outline:hover { background:var(--stone); }
.text-link { display:inline-flex; align-items:center; gap:12px; color:var(--wine); font-size:.875rem; font-weight:600; line-height:1.5; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.text-link:hover { text-decoration-thickness:2px; }
.caption { margin-top:8px; font-size:.75rem; line-height:1.5; color:var(--muted); }
.skip { position:fixed; left:16px; top:-100px; z-index:200; background:var(--paper); color:#142b33; padding:10px; border-radius:4px; }
.skip:focus { top:10px; }
[hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Light surfaces carry their own readable foreground and accent colors. */
.surface,.practical-card,.service-detail,.step,.value,.rate,.professional-types article,.enquiry-form,.prose,.not-found,.experience-strip>div,.note-panel,.terms-grid>div,.flexible-time,.included-grid article,.contact-help {
  --ink:#172e37; --muted:#526773; --line:#d4dfde; --wine:#236e73;
  background:var(--paper); color:var(--ink); border-radius:var(--radius);
}
.visit-value,.services-home,.owner-service,.start-steps {
  --ink:#172e37; --muted:#526773; --line:#d4dfde; --wine:#236e73;
  background:var(--paper); color:var(--ink);
}
/* Navigation remains the same on every page. */
.site-header { position:sticky; top:0; z-index:50; background:rgba(20,43,51,.98); border-bottom:1px solid #ffffff0d; }
.header-inner { display:flex; align-items:center; gap:26px; min-height:76px; max-width:var(--max); padding-inline:var(--gutter); margin:auto; }
.brand { display:flex; flex-direction:column; align-items:flex-start; flex:none; }
.brand-name { font:550 2rem/1 'Manrope',var(--sans); letter-spacing:.19em; margin-right:-.19em; }
.brand-sub { font:600 .625rem/1.35 'Manrope',var(--sans); letter-spacing:.08em; margin-top:5px; white-space:nowrap; }
.desktop-nav { display:flex; align-items:center; gap:24px; margin-left:auto; }
.desktop-nav a { font-size:.875rem; line-height:1.5; padding:10px 0; white-space:nowrap; }
.desktop-nav a:hover,.desktop-nav a[aria-current=page] { color:var(--wine); }
.desktop-nav a[aria-current=page] { text-decoration:underline; text-underline-offset:7px; }
.header-cta { font-size:.875rem; padding:9px 15px; gap:12px; }
.menu-toggle { display:none; width:44px; height:44px; border:1px solid var(--line); color:var(--ink); background:#ffffff05; border-radius:5px; padding:8px; }
.menu-toggle span { display:block; width:20px; height:1px; background:currentColor; margin:6px auto; }
.mobile-menu { position:fixed; inset:72px 0 0; background:var(--graphite); padding:20px var(--gutter); overflow-y:auto; }
.mobile-menu nav { display:flex; flex-direction:column; }
.mobile-menu nav a { padding:13px 0; border-bottom:1px solid var(--line); font-size:1.0625rem; }
.mobile-menu nav a[aria-current=page] { color:var(--wine); }
.mobile-menu>.eyebrow { margin-top:24px; color:var(--muted); }
.site-footer { padding-block:28px 18px; background:var(--graphite-deep); }
.footer-top { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:30px; }
.footer-brand { display:inline-flex; }
.footer-tagline { font-size:1rem; margin-top:13px; }
.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:8px; font-size:.875rem; }
.footer-links .eyebrow { color:var(--wine); margin-bottom:4px; }
.footer-links a:hover { color:var(--wine); }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:14px; margin-top:24px; font-size:.75rem; color:var(--muted); }
.footer-bottom a { text-decoration:underline; text-underline-offset:3px; }
/* The approved homepage: concise introduction + a real visit selector. */
.service-hero { display:grid; grid-template-columns:1.34fr 1fr; gap:44px; align-items:center; padding-block:30px 32px; }
.service-hero-copy { min-width:0; }
.service-hero h1 { font-size:clamp(2rem,3.2vw,2.875rem); line-height:1.15; letter-spacing:-.035em; margin:12px 0 15px; }
.service-hero h1 br { display:block; }
.service-hero-scope { font-size:1rem; line-height:1.55; color:#e0e9e9; max-width:610px; }
.hero-detail { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1fr); gap:22px; align-items:center; margin-top:24px; }
.hero-photo { position:relative; height:174px; overflow:hidden; border-radius:7px; background:#28434b; }
.hero-photo img { object-position:46% 60%; }
.hero-photo figcaption { position:absolute; bottom:0; inset-inline:0; padding:23px 10px 8px; background:linear-gradient(transparent,#10232ad9); color:#fff; font-size:.6875rem; }
.specialist-intro { min-width:0; }
.specialist-intro p { font-size:1rem; line-height:1.5; color:var(--muted); }
.specialist-intro p+p { margin-top:9px; font-size:.875rem; }
.specialist-intro strong { color:var(--ink); font-weight:600; }
.visit-picker { padding:25px; background:#1b353d; border:1px solid #3c5961; border-radius:var(--radius); box-shadow:0 10px 30px #081a2120; }
.visit-picker h2 { font-size:1.5rem; margin-bottom:17px; }
.visit-options { border:0; padding:0; margin:0 0 15px; display:grid; gap:12px; min-width:0; }
.visit-option { display:grid; grid-template-columns:20px auto 1fr; align-items:center; gap:15px; padding:15px; border:1px solid #56717a; border-radius:6px; cursor:pointer; transition:background .15s,border-color .15s; }
.visit-option:has(input:checked) { background:#28484d; border-color:#8acfc9; box-shadow:inset 0 0 0 1px #8acfc9; }
.visit-option:hover { background:#25424b; }
.visit-option:has(input:focus-visible) { outline:3px solid var(--wine); outline-offset:3px; }
.visit-option input { accent-color:#91d5ce; color-scheme:dark; width:20px; height:20px; margin:0; }
.opening-price { font-size:2rem; font-weight:650; line-height:1.15; letter-spacing:-.03em; }
.visit-option-copy { display:flex; flex-direction:column; gap:3px; min-width:0; }
.visit-option-copy strong { font-size:.9375rem; font-weight:600; line-height:1.4; }
.visit-option-copy>span { font-size:.875rem; line-height:1.4; color:var(--muted); }
.visit-choice-link { display:flex; width:100%; }
.visit-picker>.button { background:#a3dcd5; color:#102b32; border-color:#a3dcd5; }
.visit-picker>.button:hover { background:#bde8e3; }
.visit-reassurance { margin-top:14px; font-size:.8125rem; text-align:center; color:#dfefeb; }
.visit-reassurance span { color:var(--wine); margin-right:3px; }
.opening-terms { margin-top:8px; font-size:.8125rem; text-align:center; color:var(--muted); }
.visit-picker>.text-link { font-size:.8125rem; margin-top:10px; display:flex; justify-content:center; }
.practical-services { padding-block:15px 28px; }
.service-grid-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:17px; }
.service-grid-heading h2 { font-size:1.5rem; }
.service-context { position:relative; max-width:500px; }
.service-context>summary { font-size:.875rem; color:var(--wine); text-decoration:underline; text-underline-offset:4px; }
.service-context[open]>div { position:absolute; right:0; top:32px; z-index:4; width:440px; max-width:80vw; padding:20px; border-radius:8px; background:#edf4f0; color:#172e37; box-shadow:0 9px 35px #081a2140; }
.service-context h3 { font-size:1.0625rem; margin-bottom:9px; }
.service-context p { font-size:.9375rem; }
.practical-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; align-items:start; }
.practical-card { overflow:hidden; box-shadow:0 5px 15px #081b2126; }
.service-card-link { display:block; }
.card-photo { aspect-ratio:1.6; overflow:hidden; background:#24434a; }
.card-photo img { transition:transform .3s; }
.service-card-link:hover img { transform:scale(1.025); }
.card-copy { padding:15px 16px 12px; }
.card-copy h3 { font-size:1rem; line-height:1.4; letter-spacing:-.018em; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.card-copy h3 .arrow { color:var(--wine); }
.card-copy p { color:var(--muted); font-size:.875rem; line-height:1.5; margin-top:7px; min-height:42px; }
.service-quick-details { border-top:1px solid var(--line); }
.service-quick-details summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:12px 16px; color:var(--wine); background:#e9efec; font-size:.875rem; font-weight:600; list-style:none; transition:background .16s; }
.service-quick-details summary::-webkit-details-marker { display:none; }
.service-quick-details summary:hover,.service-quick-details[open] summary { background:#dcebe5; }
.service-quick-details summary:focus-visible { outline-offset:-4px; }
.service-disclosure-icon { position:relative; flex:none; width:22px; height:22px; border:1px solid currentColor; border-radius:50%; }
.service-disclosure-icon::before,.service-disclosure-icon::after { content:''; position:absolute; background:currentColor; border-radius:1px; }
.service-disclosure-icon::before { width:10px; height:2px; left:5px; top:9px; }
.service-disclosure-icon::after { width:2px; height:10px; left:9px; top:5px; transition:transform .16s; }
.service-quick-details[open] .service-disclosure-icon::after { transform:scaleY(0); }
.service-tasks-panel { padding:3px 16px 15px; background:var(--paper); }
.service-quick-details ul { list-style:none; padding:0; margin:0; font-size:.875rem; line-height:1.55; color:var(--ink); }
.service-quick-details li { position:relative; padding:11px 0 11px 15px; overflow-wrap:anywhere; }
.service-quick-details li::before { content:''; position:absolute; left:0; top:20px; width:5px; height:5px; border-radius:50%; background:var(--wine); }
.service-quick-details li+li { border-top:1px solid var(--line); }
.service-quick-details li:last-child { padding-bottom:0; }
.start-steps-inner { display:grid; grid-template-columns:.8fr 1.8fr; gap:32px; align-items:start; }
.start-steps .value-heading { margin:0; }
.start-steps .value-heading h2 { font-size:1.375rem; }
.start-steps .value-heading>p { font-size:.9375rem; margin-top:10px; }
.start-steps .eyebrow { margin-bottom:8px; }
.simple-steps { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.simple-steps li { display:flex; align-items:start; gap:11px; min-width:0; }
.simple-steps li>span { display:flex; align-items:center; justify-content:center; flex:none; width:32px; height:32px; border-radius:50%; background:var(--teal); color:#fff; font-size:.75rem; font-weight:600; }
.simple-steps h3 { font-size:1rem; line-height:1.4; margin-bottom:7px; }
.simple-steps p { font-size:.875rem; color:var(--muted); }
.visit-value { background:#e6eeeb; }
.value-heading { max-width:1000px; margin-bottom:20px; }
.value-heading h2 { margin-top:8px; }
.value-heading>p { margin-top:10px; color:var(--muted); font-size:1rem; }
.included-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
.included-grid article { padding:21px; background:#fff; min-width:0; }
.included-grid h3 { font-size:1.1875rem; margin:11px 0 10px; }
.included-grid p { color:var(--muted); font-size:1rem; }
.booked-time { display:flex; align-items:center; justify-content:space-between; gap:26px; padding-top:21px; }
.booked-time>div { max-width:1000px; }
.booked-time h3 { font-size:1.0625rem; margin-bottom:6px; }
.booked-time p { font-size:.9375rem; color:var(--muted); }
.booked-time .text-link { flex:none; }
.owner-service { background:var(--graphite); --ink:#f5f8f7; --muted:#bacbd0; --wine:#7bc9c8; }
.owner-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:32px; align-items:start; }
.owner-grid>figure img { height:360px; border-radius:var(--radius); }
.owner-grid h2 { margin:8px 0 13px; }
.owner-grid p:not(.eyebrow) { font-size:1rem; color:var(--muted); }
.owner-grid p.owner-intro { color:var(--ink); }
.owner-benefits { display:grid; gap:10px; margin:17px 0; }
.owner-benefits p { margin:0; padding:12px 15px; background:#ffffff06; border-radius:5px; font-size:.9375rem!important; }
.owner-benefits strong { color:var(--ink); font-weight:600; }
/* Internal page introductions stay compact; content is grouped into surfaces. */
.page-heading { padding-block:24px; }
.breadcrumb { display:flex; gap:10px; color:var(--muted); font-size:.75rem; margin-bottom:13px; }
.breadcrumb a { text-decoration:underline; text-underline-offset:3px; }
.heading-grid { max-width:990px; }
.heading-grid h1 { margin-top:8px; }
.heading-grid .lede { margin-top:11px; }
.service-jumps { display:flex; flex-wrap:wrap; gap:10px; }
.service-jumps a { display:flex; align-items:center; padding:9px 14px; border:1px solid #4b686d; background:#1d3b43; border-radius:5px; font-size:.875rem; }
.service-jumps a:hover { background:#2c5259; }
.service-caption { margin-top:13px; }
.service-details { display:grid; gap:20px; padding-top:20px; }
.service-detail { display:grid; grid-template-columns:.85fr 1.35fr; overflow:hidden; scroll-margin-top:94px; }
.service-detail-photo { min-height:280px; }
.service-detail-content { padding:24px; }
.service-detail-heading { display:flex; align-items:baseline; gap:12px; }
.service-detail .number { font-size:.75rem; color:var(--wine); font-weight:650; }
.service-detail h2 { font-size:1.375rem; }
.service-detail .trigger { font-size:.9375rem; color:var(--wine); margin:9px 0 13px; }
.detail-body>p { font-size:1rem; color:var(--muted); }
.detail-body>p.small { font-size:.875rem; }
.check-list { list-style:none; padding:0; margin:14px 0; }
.check-list li { position:relative; padding:5px 0 5px 22px; font-size:.9375rem; }
.check-list li:before { content:'✓'; position:absolute; left:0; color:var(--wine); font-size:.8125rem; font-weight:600; }
.note-panel { display:grid; grid-template-columns:.65fr 1.35fr; gap:26px; padding:23px; margin-top:20px; background:#e2eeea; }
.note-panel h3 { font-size:1.25rem; }
.note-panel p { font-size:1rem; color:var(--muted); }
.service-details>.note-panel { margin-top:0; }
.installation-list li { padding-block:11px; }
.installation-list li+li { border-top:1px solid var(--line); }
.installation-list strong { display:block; color:var(--ink); font-size:.9375rem; line-height:1.45; }
.installation-list span { display:block; margin-top:4px; color:var(--muted); font-size:.875rem; line-height:1.55; }
.move-in-panel { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:32px; align-items:center; margin-top:20px; padding:24px; border:1px solid #40636b; border-radius:var(--radius); background:#1d3941; color:#f5f8f7; scroll-margin-top:94px; }
.move-in-panel h2 { margin:8px 0 12px; font-size:1.375rem; }
.move-in-panel p:not(.eyebrow) { color:#c6d7da; font-size:.9375rem; line-height:1.6; }
.move-in-plan { min-width:0; border-left:1px solid #40636b; padding-left:28px; }
.move-in-plan strong { display:block; color:#f5f8f7; margin-bottom:5px; }
.move-in-plan .button { margin-top:16px; }
.service-details>.move-in-panel { margin-top:0; }
.installation-feature { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); margin-top:20px; overflow:hidden; border:1px solid #40636b; border-radius:var(--radius); background:#1d3941; color:#f5f8f7; scroll-margin-top:94px; }
.installation-feature-photo { position:relative; min-width:0; min-height:340px; }
.installation-feature-photo img { object-position:50% 50%; }
.installation-feature-photo figcaption { position:absolute; left:14px; bottom:12px; padding:4px 8px; border-radius:3px; background:#10232ad9; color:#e5efed; font-size:.6875rem; }
.installation-feature-copy { min-width:0; align-self:center; padding:32px; }
.installation-feature-copy h2 { margin:10px 0 15px; font-size:clamp(1.5rem,2.2vw,1.875rem); line-height:1.2; }
.installation-feature-copy p:not(.eyebrow) { color:#c6d7da; font-size:.9375rem; line-height:1.65; }
.installation-feature-copy .move-in-plan { border-left:0; border-top:1px solid #40636b; padding:20px 0 0; margin-top:21px; }
@media(min-width:761px) and (max-width:960px) {
  .installation-feature { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .installation-feature-copy { padding:23px; }
}
@media(max-width:760px) {
  .move-in-panel { grid-template-columns:1fr; gap:18px; padding:20px; }
  .move-in-plan { border-left:0; border-top:1px solid #40636b; padding:18px 0 0; }
  .move-in-plan .button { width:100%; }
  .installation-feature { grid-template-columns:1fr; }
  .installation-feature-photo { min-height:0; aspect-ratio:3/2; }
  .installation-feature-copy { padding:23px 20px; }
}
.step-layout { display:grid; grid-template-columns:.6fr 1.4fr; gap:24px; padding-top:8px; align-items:start; }
.step-aside h2 { font-size:1.375rem; margin:9px 0 12px; }
.step-aside>p:not(.eyebrow) { font-size:1rem; }
.detail-photo { height:235px; margin-top:18px; border-radius:var(--radius); overflow:hidden; }
.steps { display:grid; grid-template-columns:1fr 1fr; gap:17px; }
.step { padding:21px; min-width:0; }
.step h3 { font-size:1.1875rem; margin:11px 0; }
.step>.eyebrow { color:var(--wine); }
.step>p:not(.eyebrow) { font-size:1rem; color:var(--muted); }
.step>p.small { font-size:.875rem; margin-top:11px; }
.values-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px; margin-top:20px; }
.value { background:#fff; padding:20px; }
.value .number { font-size:.75rem; color:var(--wine); font-weight:600; }
.value h3 { font-size:1.125rem; margin:9px 0; }
.value p { font-size:1rem; color:var(--muted); }
.about-hero { display:grid; grid-template-columns:1.12fr 1fr; gap:32px; align-items:center; padding-block:26px; }
.about-hero h1 { margin:10px 0 14px; }
.about-hero .photo { height:325px; border-radius:var(--radius); overflow:hidden; }
.signature { font-size:1.25rem; font-weight:600; margin-top:17px; color:var(--wine); }
.signature small { display:block; font-size:.75rem; font-weight:400; color:var(--muted); margin-top:3px; }
.experience-strip { display:grid; grid-template-columns:.65fr 1.15fr 1.2fr; gap:17px; }
.experience-strip>div { padding:21px; }
.experience-number { font-size:1.75rem; font-weight:600; line-height:1.2; }
.experience-number small { display:block; font-size:.875rem; line-height:1.5; font-weight:400; color:var(--muted); margin-top:8px; }
.experience-strip h3 { font-size:1.0625rem; line-height:1.4; margin-bottom:9px; }
.experience-strip p { font-size:1rem; color:var(--muted); }
.intro { display:grid; grid-template-columns:.65fr 1.35fr; gap:32px; align-items:start; }
.intro h2 { font-size:1.5rem; margin-top:9px; }
.intro-body .text-link { margin-top:16px; }
.quote-section { max-width:1050px; padding:27px var(--gutter); margin:auto; }
.quote-section h2 { font-size:1.5rem; margin-top:10px; }
/* Prices: three independent, content-sized cards. */
.rate-page { padding-bottom:30px; }
.rates-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
.rate { display:flex; flex-direction:column; align-items:flex-start; padding:23px; min-width:0; }
.rate>.eyebrow { color:var(--muted); margin:0; }
.rate .price { font-size:2.125rem; font-weight:650; line-height:1.2; margin:12px 0 5px; letter-spacing:-.03em; }
.rate .price.custom { font-size:1.625rem; }
.rate h3 { font-size:1rem; font-weight:600; letter-spacing:0; margin:0 0 12px; }
.rate-description { font-size:1rem; line-height:1.5; color:var(--muted); margin:0 0 18px; }
.rate .text-link { margin-top:auto; }
.rate.featured { --ink:#fff; --muted:#e5f2ef; --wine:#fff; background:#246d71; box-shadow:inset 0 3px 0 #69baba; }
.flexible-time { display:grid; grid-template-columns:.6fr 1.4fr; gap:24px; padding:22px; margin-top:19px; background:#dcebe6; }
.flexible-time h3 { font-size:1.25rem; }
.flexible-time p { font-size:1rem; color:var(--muted); }
.terms-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; margin-top:17px; }
.terms-grid>div { padding:22px; background:#edf3f0; }
.terms-grid h3 { font-size:1.1875rem; margin-bottom:11px; }
.terms-grid p { font-size:1rem; color:var(--muted); }
.rate-extra { margin-top:17px; font-size:.9375rem; color:var(--muted); }
.rate-extra strong { color:var(--ink); }
.rate-extra .text-link { margin-left:8px; }
.visit-terms { padding-top:8px; }
.visit-rights { margin-top:22px; padding-left:18px; border-left:3px solid var(--wine); }
.visit-rights h3 { font-size:1.0625rem; margin-bottom:8px; }
.visit-rights p { max-width:1050px; font-size:.9375rem; color:var(--muted); }
.visit-change-contact { margin-top:18px; }
.faq-section { display:grid; grid-template-columns:.55fr 1.45fr; gap:32px; align-items:start; }
.faq-section h2 { font-size:1.5rem; margin-top:9px; }
.faq-list { display:grid; gap:9px; }
.faq-list details { background:#fff; border:1px solid #dce5e1; border-radius:6px; }
.faq-list summary { list-style:none; padding:15px 40px 15px 17px; position:relative; font-size:1rem; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary:after { content:'+'; position:absolute; right:16px; top:11px; font-size:1.375rem; color:var(--wine); }
.faq-list details[open] summary:after { content:'−'; }
.faq-list details>p { font-size:1rem; color:var(--muted); padding:0 17px 17px; }
.professional-hero { display:grid; grid-template-columns:1.15fr 1fr; gap:28px; max-width:var(--max); margin:0 auto; padding:25px var(--gutter) 0; }
.professional-copy { padding:8px 0 20px; }
.professional-copy h1 { margin:10px 0 15px; }
.professional-copy>p:not(.eyebrow) { font-size:1rem; color:var(--muted); }
.professional-copy>.eyebrow { color:var(--wine); }
.professional-copy .button { margin-top:19px; }
.professional-hero>.photo { position:relative; min-height:280px; border-radius:var(--radius); overflow:hidden; }
.professional-hero>.photo img { position:absolute; inset:0; }
.professional-types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
.professional-types article { padding:22px; }
.professional-types h3 { font-size:1.25rem; margin:11px 0; }
.professional-types p:not(.eyebrow) { color:var(--muted); font-size:1rem; }
.professional-types .eyebrow { color:var(--wine); }
.working-together { display:grid; grid-template-columns:.7fr 1.3fr; gap:32px; align-items:start; }
.working-together h2 { font-size:1.5rem; margin-top:9px; }
.working-together>div:last-child { background:#fff; padding:22px; border-radius:var(--radius); }
.working-together .check-list { margin-top:0; }
.working-together .text-link { margin-top:15px; }
.closing { padding-block:27px; background:#1c4b53; --wine:#a3ded7; }
.closing-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.closing h2 { font-size:1.5rem; max-width:850px; }
.closing .eyebrow { color:var(--wine); margin-bottom:8px; }
.closing p:not(.eyebrow) { font-size:1rem; color:#d0e4e4; margin-top:9px; max-width:870px; }
.closing .button { flex:none; }
/* A calm, light form on the same Graphite background. */
.contact-shell { display:grid; grid-template-columns:.8fr 1.2fr; gap:32px; padding-block:26px 34px; align-items:start; }
#enquiry-form { scroll-margin-top:18px; }
.service-landing-hero { padding-block:24px 12px; }
.service-landing-hero h1 { max-width:900px; margin:10px 0 14px; }
.service-landing-hero .lede { max-width:850px; }
.service-landing-actions,.service-landing-links { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; }
.service-landing-actions { margin-block:20px 13px; }
.service-landing-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:24px; align-items:start; }
.service-landing-panel { padding:25px; }
.service-landing-panel h2 { margin-top:10px; }
.service-landing-panel>p:not(.eyebrow) { color:var(--muted); }
.service-landing-panel>.button { margin-top:20px; }
.service-landing-plan { padding-top:6px; }
.service-landing-plan>div { max-width:1050px; }
.service-landing-plan h2 { margin:9px 0 13px; }
.service-landing-plan p:not(.eyebrow) { color:var(--muted); }
.service-landing-plan .service-landing-links,.service-guides .service-landing-links { margin-top:18px; }
.service-guides { padding-bottom:6px; }
.contact-intro h1 { margin:9px 0 14px; }
.contact-help { padding:21px; margin-top:23px; background:#e7f0ec; }
.contact-help h3 { font-size:1.1875rem; margin-bottom:12px; }
.contact-help ol { padding-left:21px; font-size:1rem; color:var(--muted); margin:0; }
.contact-help li { padding-block:4px; }
.location { font-size:.875rem; color:var(--wine); margin-top:17px; }
.enquiry-form { padding:25px; box-shadow:0 8px 26px #081a211a; min-width:0; }
.form-step-title { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:20px; }
.form-step-title h2 { font-size:1.25rem; }
.form-step-title span { font-size:.75rem; color:var(--muted); white-space:nowrap; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:flex; flex-direction:column; gap:7px; margin-bottom:17px; min-width:0; }
.field label { font-size:.875rem; font-weight:600; }
.field label small { font-size:.75rem; font-weight:400; color:var(--muted); margin-left:3px; }
.field input,.field select,.field textarea { width:100%; min-height:44px; border:1px solid #bfcecd; border-radius:5px; background:#fff; color:var(--ink); font-size:1rem; padding:10px 12px; }
.field input::placeholder,.field textarea::placeholder { font-size:.875rem; color:#677a80; }
.field textarea { min-height:110px; resize:vertical; }
.field select { padding-right:25px; }
.field-help { font-size:.75rem; color:var(--muted); }
.enquiry-terms { margin:20px 0; padding:17px; border:1px solid var(--line); border-radius:5px; background:#edf3f0; }
.enquiry-terms h3 { font-size:1rem; }
.enquiry-terms ul { padding-left:19px; margin:10px 0 14px; color:var(--muted); font-size:.875rem; }
.enquiry-terms li+li { margin-top:8px; }
.file-drop { position:relative; display:flex; flex-direction:column; align-items:center; padding:20px 12px; background:#e8f0ec; border:1px dashed #9bb9b5; border-radius:5px; text-align:center; }
.file-drop:focus-within { outline:3px solid var(--wine); outline-offset:3px; }
.file-drop .upload-icon { width:24px; height:24px; margin-bottom:7px; color:var(--wine); }
.file-drop strong { font-size:.875rem; font-weight:600; color:var(--wine); }
.file-drop span { font-size:.75rem; color:var(--muted); margin-top:4px; }
.file-drop input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.file-previews { display:flex; gap:10px; flex-wrap:wrap; margin-top:9px; }
.file-preview { position:relative; width:82px; }
.file-preview img { width:82px; height:74px; border-radius:4px; }
.file-preview button { position:absolute; top:3px; right:3px; background:var(--paper); border:0; width:26px; height:26px; line-height:1; color:var(--ink); }
.file-preview span { display:block; font-size:.75rem; max-width:82px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.file-error { font-size:.8125rem; color:#922f3c; margin-top:5px; }
.form-bottom .button { width:100%; }
.preview-note { font-size:.75rem; line-height:1.6; color:var(--muted); margin-top:12px; }
.preview-note strong { font-weight:600; color:var(--wine); }
.privacy-line { font-size:.75rem; color:var(--muted); margin-top:9px; }
.privacy-line a { text-decoration:underline; text-underline-offset:3px; }
.review-intro { font-size:1.5rem; margin-bottom:12px; }
.review-list { margin:18px 0; }
.review-list dt { font-size:.75rem; color:var(--muted); margin-top:13px; }
.review-list dd { font-size:1rem; margin:4px 0 0; overflow-wrap:anywhere; white-space:pre-wrap; }
.review-notice { background:#e1eee9; padding:17px; border-radius:5px; font-size:.875rem; color:var(--muted); }
.review-notice strong { display:block; color:var(--wine); margin-bottom:6px; }
.review-actions { margin-top:18px; }
.review-actions button { width:100%; }
.prose { max-width:920px; margin:26px auto 32px; padding:30px; width:calc(100% - var(--gutter)*2); }
.prose h1 { margin:9px 0 18px; }
.prose h2 { font-size:1.375rem; margin:23px 0 10px; }
.prose p:not(.eyebrow),.prose ul { font-size:1rem; color:var(--muted); }
.not-found { max-width:920px; margin:26px auto 32px; padding:30px; width:calc(100% - var(--gutter)*2); }
.not-found h1 { margin:10px 0 15px; }
.not-found .button { margin-top:20px; }
/* Tablet and phone retain the same visual system, with natural content height. */
@media(max-width:1150px) {
  .desktop-nav { gap:17px; } .header-inner { gap:21px; }
  .service-hero { gap:27px; grid-template-columns:1.2fr 1fr; }
  .service-hero h1 { font-size:2.125rem; }
  .visit-picker { padding:20px; } .visit-option { gap:10px; padding:13px 11px; }
  .visit-option-copy strong { font-size:.875rem; } .visit-option-copy>span { font-size:.8125rem; }
  .card-copy { padding:13px 12px 11px; } .card-copy h3 { font-size:.9375rem; }
  .service-quick-details { padding-inline:12px; } .practical-grid { gap:12px; }
  .start-steps-inner { grid-template-columns:.75fr 1.75fr; gap:24px; } .simple-steps { gap:14px; }
  .step-layout { grid-template-columns:.55fr 1.45fr; gap:20px; } .step { padding:19px; }
}
@media(max-width:960px) {
  :root { --gutter:24px; }
  .desktop-nav { display:none; } .header-cta { margin-left:auto; } .menu-toggle { display:block; }
  .header-inner { min-height:72px; gap:14px; } .mobile-menu { top:72px; }
  .service-hero { grid-template-columns:1.1fr 1fr; gap:23px; }
  .service-hero h1 { font-size:1.875rem; } .service-hero .eyebrow { letter-spacing:.045em; }
  .hero-detail { gap:15px; margin-top:20px; } .hero-photo { height:160px; }
  .specialist-intro p { font-size:.9375rem; }
  .visit-picker h2 { font-size:1.3125rem; } .visit-option { grid-template-columns:18px 1fr; gap:7px 11px; padding:12px; }
  .visit-option input { width:18px; height:18px; } .opening-price { font-size:1.75rem; }
  .visit-option-copy { grid-column:2; } .visit-picker>.button { font-size:.8125rem; padding-inline:11px; gap:10px; }
  .practical-grid { grid-template-columns:1fr 1fr; gap:17px; }
  .card-photo { aspect-ratio:1.8; } .card-copy h3 { font-size:1.0625rem; } .card-copy p { min-height:0; }
  .start-steps-inner { grid-template-columns:1fr; gap:22px; } .start-steps .value-heading { max-width:800px; }
  .start-steps .value-heading h2 { font-size:1.5rem; }
  .included-grid { gap:13px; } .included-grid article { padding:18px; }
  .included-grid h3 { font-size:1.125rem; } .booked-time { display:block; } .booked-time .text-link { margin-top:12px; }
  .step-layout { grid-template-columns:1fr; } .step-aside { display:grid; grid-template-columns:1fr .85fr; column-gap:24px; }
  .step-aside>figure { grid-column:2; grid-row:1/4; height:180px; margin:0; }
  .step-aside>h2,.step-aside>p { grid-column:1; }
  .step-aside>p:not(.eyebrow) { margin-bottom:0; }
  .values-grid { grid-template-columns:1fr 1fr; }
  .service-detail { grid-template-columns:.8fr 1.2fr; } .service-detail-content { padding:21px; }
  .owner-grid { grid-template-columns:.8fr 1.2fr; gap:24px; } .owner-grid>figure img { height:300px; }
  .rate { padding:19px; } .rate .price.custom { font-size:1.375rem; } .rate .text-link { gap:8px; font-size:.8125rem; }
  .contact-shell { grid-template-columns:.75fr 1.25fr; gap:24px; } .contact-help { padding:18px; } .enquiry-form { padding:21px; }
  .professional-types article { padding:19px; } .professional-types h3 { font-size:1.1875rem; }
}
@media(max-width:760px) {
  :root { --gutter:20px; }
  .section { padding-block:26px; } h1 { font-size:1.75rem; } h2 { font-size:1.5rem; } h3 { font-size:1.1875rem; }
  .header-inner { min-height:66px; gap:12px; } .mobile-menu { top:66px; }
  .brand-name { font-size:1.75rem; } .brand-sub { font-size:.5625rem; letter-spacing:.07em; }
  .header-cta { font-size:.8125rem; padding-inline:12px; gap:10px; }
  .service-hero { grid-template-columns:1fr; gap:21px; padding-block:20px 24px; }
  .service-hero h1 { font-size:1.875rem; margin:10px 0 13px; }
  .hero-detail { grid-template-columns:minmax(0,.78fr) minmax(0,1fr); gap:17px; margin-top:18px; }
  .hero-photo { height:145px; } .specialist-intro p { font-size:.9375rem; }
  .specialist-intro p+p { font-size:.875rem; }
  .visit-picker { padding:19px; } .visit-picker h2 { font-size:1.375rem; margin-bottom:15px; }
  .visit-option { grid-template-columns:18px auto 1fr; gap:12px; padding:13px; }
  .visit-option-copy { grid-column:auto; } .visit-option-copy strong { font-size:.875rem; }
  .visit-option-copy>span { font-size:.8125rem; }
  .visit-picker>.button { font-size:.875rem; min-height:46px; }
  .service-grid-heading { gap:12px; flex-wrap:wrap; margin-bottom:15px; }
  .service-grid-heading h2 { font-size:1.375rem; }
  .service-context[open]>div { position:static; width:100%; max-width:none; margin-top:13px; box-shadow:none; padding:16px; }
  .practical-services { padding-top:0; }
  .start-steps-inner { gap:19px; } .simple-steps { grid-template-columns:1fr; gap:18px; }
  .simple-steps h3 { font-size:1rem; } .simple-steps p { font-size:.9375rem; }
  .value-heading { margin-bottom:18px; } .included-grid { grid-template-columns:1fr; gap:14px; }
  .included-grid article { padding:20px; } .included-grid h3 { font-size:1.1875rem; }
  .owner-grid { grid-template-columns:1fr; gap:22px; } .owner-grid>figure img { height:250px; }
  .owner-grid h2 { font-size:1.5rem; }
  .page-heading { padding-block:20px; } .breadcrumb { margin-bottom:11px; }
  .heading-grid h1 { margin-top:8px; } .heading-grid .lede { margin-top:10px; }
  .service-jumps { gap:8px; } .service-jumps a { font-size:.8125rem; padding:8px 10px; }
  .service-details { gap:18px; padding-top:18px; }
  .service-detail { grid-template-columns:1fr; } .service-detail-photo { min-height:0; height:220px; }
  .service-detail-content { padding:20px; } .service-detail h2 { font-size:1.25rem; }
  .service-detail-heading { gap:9px; }
  .note-panel { grid-template-columns:1fr; gap:13px; padding:20px; }
  .note-panel h3 { font-size:1.1875rem; }
  .step-layout { padding-top:0; gap:19px; } .step-aside { display:block; }
  .step-aside>figure { height:180px; margin-top:16px; }
  .steps { grid-template-columns:1fr; gap:15px; } .step { padding:20px; }
  .values-grid { gap:13px; } .value { padding:18px; } .value h3 { font-size:1.0625rem; }
  .about-hero { grid-template-columns:1fr; gap:20px; padding-block:20px; }
  .about-hero .photo { height:240px; }
  .experience-strip { grid-template-columns:1fr; gap:14px; } .experience-strip>div { padding:20px; }
  .intro { grid-template-columns:1fr; gap:17px; } .intro h2 { font-size:1.375rem; }
  .quote-section { padding-block:24px; } .quote-section h2 { font-size:1.375rem; }
  .rates-grid { grid-template-columns:1fr; gap:15px; } .rate { padding:21px; }
  .rate .price { font-size:2rem; } .rate .price.custom { font-size:1.5rem; }
  .rate .text-link { font-size:.875rem; gap:12px; }
  .flexible-time { grid-template-columns:1fr; gap:13px; padding:20px; }
  .terms-grid { grid-template-columns:1fr; gap:15px; }
  .terms-grid>div { padding:20px; } .terms-grid h3 { font-size:1.1875rem; }
  .faq-section { grid-template-columns:1fr; gap:18px; }
  .faq-section h2 { font-size:1.375rem; }
  .professional-hero { grid-template-columns:1fr; gap:19px; padding-top:20px; }
  .professional-copy { padding:0; } .professional-hero>.photo { height:225px; min-height:0; }
  .professional-types { grid-template-columns:1fr; gap:15px; }
  .professional-types article { padding:21px; }
  .working-together { grid-template-columns:1fr; gap:20px; } .working-together h2 { font-size:1.375rem; }
  .closing { padding-block:25px; } .closing-inner { display:block; }
  .closing h2 { font-size:1.375rem; } .closing .button { margin-top:18px; }
  .contact-shell { grid-template-columns:1fr; gap:23px; padding-block:20px 28px; }
  .service-landing-hero { padding-top:20px; }
  .service-landing-grid { grid-template-columns:1fr; gap:18px; }
  .service-landing-panel { padding:20px; }
  .service-landing-actions,.service-landing-links { gap:15px 20px; }
  .contact-help { margin-top:19px; padding:19px; }
  .enquiry-form { padding:20px; } .form-row { grid-template-columns:1fr; gap:0; }
  .prose,.not-found { margin-block:20px 26px; padding:22px; }
  .prose h2 { font-size:1.25rem; }
  .footer-top { grid-template-columns:1fr 1fr; gap:24px; } .footer-identity { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; gap:9px; margin-top:21px; }
}
@media(max-width:600px) {
  .practical-grid { grid-template-columns:1fr; gap:16px; }
  .card-photo { aspect-ratio:1.95; } .card-copy { padding:16px 17px 12px; }
  .card-copy h3 { font-size:1.125rem; } .card-copy p { font-size:1rem; }
  .service-quick-details summary { min-height:52px; padding:13px 17px; font-size:.9375rem; }
  .service-tasks-panel { padding:4px 17px 17px; }
  .service-quick-details ul { font-size:.9375rem; }
}
@media(max-width:380px) {
  :root { --gutter:16px; }
  .header-inner { gap:9px; } .header-cta { font-size:.75rem; padding-inline:10px; } .header-cta .arrow { display:none; }
  .brand-name { font-size:1.625rem; } .brand-sub { font-size:.5rem; letter-spacing:.065em; }
  .service-hero h1 { font-size:1.75rem; }
  .visit-picker { padding:16px; } .visit-option { gap:9px; padding:11px 9px; }
  .opening-price { font-size:1.625rem; } .visit-option-copy strong { font-size:.8125rem; }
  .visit-option-copy>span { font-size:.75rem; } .visit-picker>.button { font-size:.8125rem; gap:10px; }
  .values-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; } * { transition:none!important; animation:none!important; }
}

/* Launch preparation: credentials and live enquiry intake. */
.license-badge{display:flex;align-items:center;gap:16px;max-width:520px;margin-top:19px;padding:16px 19px;border:1px solid #a3dcd5;border-radius:8px;background:#dcefe9;color:#163b43;transition:background .16s,border-color .16s}
.license-badge:hover{background:#eaf7f1;border-color:#c5e9df}
.license-badge-icon{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:52px;color:#236e70}
.license-badge-icon svg{display:block;width:44px;height:52px}
.license-badge-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.license-badge-copy>strong{font-size:1.125rem;line-height:1.2;font-weight:700;letter-spacing:.065em}
.license-badge-type{font-size:.9375rem;line-height:1.4;font-weight:550;color:#244b52}
.license-badge-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px;margin-top:3px;font-size:.8125rem;line-height:1.45;color:#355b60}
.license-badge-action{display:inline-flex;align-items:center;gap:5px;color:#17585d;font-weight:650;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.license-badge-action .arrow,.license-badge-action .arrow svg{width:15px;height:15px}
.hero-credentials{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:12px;margin-top:19px}
.hero-credentials .license-badge{max-width:none;margin:0;gap:12px;padding:17px}
.coordination-summary{min-width:0;padding:17px;border:1px solid #659797;border-radius:8px;background:#21424a}
.coordination-summary-heading{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.coordination-summary-heading>svg{width:27px;height:30px;flex:none;color:#a3dcd5}
.coordination-summary h2{margin:0;font-size:1.0625rem;line-height:1.3;letter-spacing:0;color:#f2f7f7}
.coordination-summary h2 br{display:block}
.coordination-summary>p{font-size:.875rem;line-height:1.55;color:#d2e2e3}
.coordination-summary>.text-link{margin-top:11px;font-size:.8125rem;gap:7px}
.coordination-summary .arrow,.coordination-summary .arrow svg{width:16px;height:16px}
#building-coordination{scroll-margin-top:94px}
@media(max-width:1100px){.hero-credentials{grid-template-columns:minmax(0,1fr)}.coordination-summary h2 br{display:none}}
@media(max-width:480px){.license-badge{gap:12px;padding:15px;max-width:100%}.license-badge-icon,.license-badge-icon svg{width:37px;height:45px}.license-badge-copy>strong{font-size:1.0625rem}.license-badge-type{font-size:.875rem}.license-badge-meta{column-gap:12px}}
.credential-strip{border-top:1px solid var(--line);padding:20px 0;display:flex;flex-wrap:wrap;gap:10px 24px;font-size:.8rem;color:var(--muted)}
.credential-strip a{color:var(--wine);text-decoration:underline}
.credential-strip span:last-child{flex-basis:100%}
.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.credential-grid article{min-width:0;padding:30px;border:1px solid #39585f;border-radius:12px;background:#18343b;display:flex;flex-direction:column}
.credential-grid .building-credential{background:#1d3d43;border-color:#598b8b}
.credential-card-label{display:flex;align-items:center;gap:12px;margin-bottom:23px}
.credential-card-label .eyebrow{font-size:.7rem;letter-spacing:.07em}
.credential-icon{display:flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;border:1px solid #6ea9aa66;border-radius:10px;background:#7bc9c80b;color:#a0d7d1}
.credential-icon svg{width:25px;height:25px}
.credential-grid h2{margin:0 0 14px;font-size:clamp(1.5rem,2.3vw,1.875rem);line-height:1.2;letter-spacing:-.025em}
.credential-grid h2 br{display:block}
.credential-intro{font-size:1rem;line-height:1.65;color:#d6e4e5;max-width:44ch}
.license-record{padding:23px 0;margin:25px 0;border-top:1px solid #ffffff1c;border-bottom:1px solid #ffffff1c}
.credential-number{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:550;letter-spacing:.025em;color:#a0d7d1;margin:10px 0}
.building-document-list{list-style:none;padding:0;margin:23px 0 25px;display:grid;gap:0}
.building-document-list li{padding:13px 0 13px 22px;position:relative;border-top:1px solid #ffffff1c}
.building-document-list li::before{content:'';position:absolute;left:1px;top:21px;width:7px;height:7px;border-radius:50%;background:#95cfc7}
.building-document-list strong{display:block;font-size:.9375rem;font-weight:600;margin-bottom:3px}
.building-document-list span{display:block;font-size:.875rem;line-height:1.55;color:#bacfd0}
.credential-card-footer{margin-top:auto}
.credential-card-footer p{margin-bottom:14px}
.credential-card-footer .license-search-help{margin:12px 0 0;font-size:.8125rem}
.license-link-help{margin-top:14px;font-size:.8125rem;color:var(--muted)}
.license-link-help summary{min-height:44px;display:flex;align-items:center;gap:8px;color:var(--wine);text-decoration:underline;text-underline-offset:4px;list-style:none}
.license-link-help summary::-webkit-details-marker{display:none}
.license-link-help summary::before{content:'+';font-size:1.1rem;text-decoration:none}
.license-link-help[open] summary::before{content:'−'}
.license-link-help p{line-height:1.6;margin:8px 0 12px}
.license-link-help label{display:block;margin-bottom:6px}
.license-link-help input{width:100%;min-width:0;min-height:44px;padding:10px;background:#102b32;border:1px solid #598b8b;border-radius:5px;color:var(--ink);font-size:16px}
.license-copy-link{min-height:44px;padding:8px 13px;margin-top:10px;border:1px solid #598b8b;border-radius:5px;background:transparent;color:var(--ink);font-size:.8125rem}
.license-copy-link:hover{background:#25434b}
.license-link-status:empty{display:none}
.credential-card-footer .button{background:#a3dcd5;color:#102b32;border-color:#a3dcd5;white-space:normal;text-align:left;gap:14px}
.credential-card-footer .button:hover{background:#bde8e3}
.direct-contact{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:24px 0}
.launch-note{padding:18px;border:1px solid var(--line);border-radius:6px;margin-top:24px;font-size:.875rem;color:var(--muted)}
.launch-note strong{color:var(--ink)}.launch-note p{margin-top:8px}
.consent{display:flex;align-items:flex-start;gap:12px;font-size:.85rem;margin:20px 0;color:var(--muted)}
.consent input{width:20px;height:20px;flex:0 0 20px;margin-top:3px}.consent a{text-decoration:underline;color:var(--wine)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#enquiry-success p{margin-top:18px}#enquiry-success a{text-decoration:underline}
.button:disabled{opacity:.65;cursor:wait}.review-actions .button.outline{color:var(--wine);border-color:var(--wine)}
.review-actions .button.outline:hover{background:#25434b}
@media(max-width:700px){.credential-grid{grid-template-columns:1fr}.credential-grid article{padding:23px}.credential-card-label{margin-bottom:20px}.direct-contact{gap:12px}.credential-strip{display:grid}.review-actions{flex-wrap:wrap}}

/* v25 — real project portfolio */
.portfolio-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:22px}.portfolio-section-heading h2{margin:8px 0}.portfolio-section-heading>p{max-width:550px}.portfolio-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.portfolio-card{border:1px solid var(--line);border-radius:9px;overflow:hidden}.portfolio-card-photo{aspect-ratio:4/3;overflow:hidden}.portfolio-card-copy{padding:20px}.portfolio-card-copy h3{display:flex;justify-content:space-between;gap:10px;margin:8px 0}.portfolio-card-copy>p:last-child{font-size:.85rem;color:var(--muted)}.portfolio-card a:hover h3{color:var(--wine)}.portfolio-index{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.portfolio-index a{border:1px solid var(--line);border-radius:30px;padding:9px 16px;font-size:.875rem}.portfolio-index a:hover{border-color:var(--wine)}.portfolio-project{padding-top:48px;scroll-margin-top:95px}.portfolio-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.portfolio-figure:first-child{grid-column:1/-1}.portfolio-image-link{display:block;position:relative;background:var(--graphite-deep);border-radius:8px;overflow:hidden}.portfolio-image-link img{height:auto;object-fit:contain}.portfolio-figure:first-child .portfolio-image-link img{max-height:760px}.portfolio-figure figcaption{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:12px;font-size:.85rem}.portfolio-figure figcaption span{color:var(--muted);font-size:.75rem}.portfolio-figure figcaption a{text-decoration:underline;text-underline-offset:3px}.photo-expand{position:absolute;bottom:14px;right:14px;background:#10232ae8;padding:7px 12px;border-radius:4px;font-size:.75rem;color:#fff}.portfolio-note{padding-block:28px}.about-profile{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:center}.about-profile figure img{height:auto;border-radius:9px}.about-profile h2{margin-bottom:20px}.profile-credentials{display:grid;gap:12px;border-block:1px solid var(--line);padding-block:20px;margin:24px 0;color:var(--wine)}.owner-grid>figure>img{height:auto;max-height:550px;object-fit:contain}
@media(max-width:760px){.portfolio-section-heading{display:block}.portfolio-section-heading>.text-link{margin-top:14px}.portfolio-section-heading>p{margin-top:12px}.portfolio-cards,.portfolio-gallery,.about-profile{grid-template-columns:1fr}.portfolio-figure:first-child{grid-column:auto}.portfolio-project{padding-top:32px}.about-profile{gap:24px}.portfolio-index{gap:8px}.portfolio-index a{font-size:.8rem}.portfolio-figure figcaption{gap:6px}.portfolio-card-photo{aspect-ratio:4/3}}

.portfolio-figure.portfolio-wide{grid-column:1/-1}.portfolio-wide .portfolio-image-link img{max-height:760px}
/* Visible only after the separate ZIMA analytics configuration is enabled. */
.measurement-consent{position:fixed;z-index:1000;left:1rem;right:1rem;bottom:1rem;max-width:44rem;margin:auto;padding:1.25rem;background:#fff;border:1px solid #172b32;border-radius:.35rem;box-shadow:0 8px 36px #0003;color:#172b32}
.measurement-consent[hidden]{display:none}
.measurement-consent p{margin:0 0 .8rem;font-size:.95rem;line-height:1.5}
.measurement-consent button{font:inherit;padding:.7rem .9rem;margin:0 .5rem .5rem 0;border:1px solid #172b32;background:#fff;color:#172b32;cursor:pointer}
.measurement-consent a{font-size:.9rem}
.measurement-settings{font:inherit;color:inherit;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
