/* EDITOR: shared internal-page styles. Approved home styling remains in styles-v2.css.
   Colour/type tokens live at the beginning of styles-v2.css. Mobile overrides are below. */
:focus-visible{outline:3px solid #368648;outline-offset:5px}a,button,input,select,textarea{touch-action:manipulation}button,input,select,textarea{font:inherit}.small{font-size:14px!important;line-height:1.6!important}.header nav{gap:24px}.header nav a{padding-block:12px}.header nav .nav-contact{padding:12px 20px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:9px 14px;padding-block:25px;font-size:13px;line-height:1.5}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}.breadcrumbs>span:last-child{opacity:.68}.inner-hero{background:var(--deep);color:#f7f9ef}.inner-hero .breadcrumbs{color:#c2d1bd;border-bottom:1px solid #ffffff20}.inner-hero-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:55px;align-items:center;padding-block:65px 75px}.inner-hero h1{font-size:clamp(40px,4.1vw,62px);line-height:1.12;max-width:720px}.inner-hero .eyebrow{color:var(--lime);line-height:1.6;font-size:12px;letter-spacing:.13em}.hero-lead{font-size:18px;line-height:1.7;color:#c4d2c6;margin-top:26px;max-width:610px}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:30px}.hero-phone{font-size:15px;text-decoration:underline;text-underline-offset:5px}.page-visual{margin:0;min-width:0}.page-visual img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:5px}.page-visual figcaption{font-size:12px;line-height:1.5;color:#b8c6bb;margin-top:12px}.editorial h2{max-width:740px;margin-bottom:50px}.editorial-row{display:grid;grid-template-columns:65px minmax(200px,.8fr) 1.4fr;gap:35px;padding:36px 0;border-top:1px solid var(--line)}.editorial-row h3{font-size:25px;line-height:1.3;max-width:380px}.editorial-row p{max-width:690px}.editorial-row a,.prose a,.faq a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.row-number{color:var(--green);font-size:14px;letter-spacing:.1em;padding-top:4px}.process-band{background:var(--deep);color:white}.process-band .eyebrow{color:var(--lime)}.process-grid{list-style:none;padding:0;margin:50px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:35px}.process-grid li{border-top:1px solid #ffffff40;padding-top:20px}.process-grid li span{color:var(--lime);font-family:Sora,sans-serif;font-size:32px}.process-grid p{color:#c8d4c8;margin-top:22px}.related h2{margin-bottom:35px}.link-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 32px}.link-grid a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:23px 0;border-bottom:1px solid var(--line);min-height:76px;font-weight:500;line-height:1.5}.link-grid a:hover{color:var(--green)}.faq{display:grid;grid-template-columns:1fr 1.3fr;gap:70px}.faq details{border-top:1px solid var(--line);padding:0}.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:30px;padding:23px 0;font-weight:600;font-size:18px;line-height:1.5}.faq summary::after{content:'+';font-weight:400;font-size:25px}.faq details[open] summary::after{content:'−'}.faq summary::-webkit-details-marker{display:none}.faq details p{padding:0 25px 25px 0}.inner-offer{margin-block:70px;padding:45px 50px;background:var(--lime);display:grid;grid-template-columns:1.5fr 1fr;gap:55px;align-items:center}.inner-offer h2{font-size:32px}.inner-offer p{color:#355137;margin-top:18px}.inner-offer .eyebrow{color:var(--deep)}.inner-offer>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.inner-offer .button.dark{background:var(--deep);color:white}.inner-offer em{color:var(--deep)}.page-heading{padding-bottom:55px}.page-heading h1{max-width:1000px}.page-heading p{max-width:730px;font-size:19px;margin-top:24px}.prose{max-width:800px;margin-inline:auto;padding-block:45px 80px}.prose h2{font-size:30px;margin:35px 0 20px}.prose h3{font-size:24px;margin:28px 0 16px}.prose p,.prose ul,.prose ol{margin-bottom:20px}.prose li{margin-bottom:8px}.contact-layout{display:grid;grid-template-columns:1.25fr .8fr;gap:90px;padding-bottom:90px}.enquiry-form{display:grid;gap:20px}.enquiry-form label{font-weight:500;display:block;margin-bottom:8px}.enquiry-form input,.enquiry-form select,.enquiry-form textarea,.directory-search input,.domain-search input{width:100%;border:1px solid #bdcdbd;border-radius:3px;padding:14px 16px;background:white;color:var(--ink);min-height:50px;max-width:100%}.enquiry-form textarea{min-height:145px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.enquiry-form .consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;font-weight:400}.enquiry-form .consent input{width:20px;min-height:20px;flex:0 0 20px;margin-top:3px}.enquiry-form .button{border:0;background:var(--deep);color:white;justify-content:space-between;cursor:pointer}.enquiry-form .button:disabled{opacity:.6;cursor:wait}.contact-details{background:var(--light);padding:40px;align-self:start}.contact-details h2{font-size:29px;margin-bottom:25px}.contact-details a{display:block;margin-block:20px;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:4px}.contact-details p{margin:20px 0}.form-status{padding:18px;background:var(--light);border-left:3px solid var(--green);color:var(--ink)}.form-status:empty{display:none}.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.directory-search{max-width:680px;margin:0 0 35px}.directory-search label{display:block;margin-bottom:10px;font-weight:600}.directory-search p{font-size:14px;margin-top:8px}.region-intro{max-width:760px;margin-bottom:35px}.region-intro p{margin-top:20px}.coverage-label{font-size:13px;color:var(--green);margin-top:18px}.local-brief{background:var(--light);padding:40px 45px;border-left:3px solid var(--green);margin-block:30px}.local-brief h3{font-size:24px;margin-bottom:18px}.local-brief p+p{margin-top:18px}.local-brief ul{padding-left:20px}.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-block:35px}.plan{border:1px solid var(--line);padding:30px 24px;background:white;display:flex;flex-direction:column;border-top:4px solid var(--deep)}.plan h3{font-size:24px}.plan .price{font-family:Sora,sans-serif;font-size:35px;color:var(--ink);margin-top:24px;letter-spacing:-.05em}.plan .price small{font:14px 'DM Sans',sans-serif;letter-spacing:0}.plan ul{padding:0;list-style:none;margin-block:24px;flex:1}.plan li{padding:10px 0;border-top:1px solid var(--line);font-size:15px}.plan .button{padding-inline:18px;gap:12px;justify-content:space-between;background:var(--deep);color:white}.domain-search{display:flex;gap:14px;max-width:750px;margin-top:25px}.domain-search button{border:0;background:var(--deep);color:white;cursor:pointer;white-space:nowrap}.notice{background:#edf4df;padding:22px 26px;border-left:3px solid var(--green);margin-block:25px;color:var(--ink)}[hidden]{display:none!important}.footer .small{margin-top:18px}.footer a:hover{text-decoration:underline;text-underline-offset:4px}.footer-bottom a{display:inline}.jump-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.jump-links a{border:1px solid var(--line);padding:10px 16px;font-size:14px;min-height:44px}.jump-links a:hover{background:var(--light)}
/* EDITOR: responsive layout. One-column mobile is intentional; the sticky bar is 48px. */
@media(max-width:1100px){.header nav{gap:15px}.inner-hero-grid{gap:35px}.plan-grid{grid-template-columns:repeat(2,1fr)}.contact-layout{gap:45px}.editorial-row{grid-template-columns:35px .9fr 1.2fr;gap:25px}.link-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.inner-hero-grid{grid-template-columns:1fr 1fr}.inner-hero h1{font-size:41px}.hero-lead{font-size:16px}.header nav{gap:6px}.process-grid{grid-template-columns:repeat(2,1fr)}.inner-offer{padding:35px;gap:30px}.faq{gap:35px;grid-template-columns:.9fr 1.1fr}.editorial-row h3{font-size:22px}.contact-layout{grid-template-columns:1fr}.contact-details{max-width:100%}}
@media(max-width:760px){.header nav{gap:4px}.header nav a{padding:12px 16px;min-height:48px}.inner-hero-grid{grid-template-columns:1fr;padding-block:38px 40px;gap:34px}.inner-hero h1{font-size:clamp(34px,9vw,46px);line-height:1.13}.inner-hero .eyebrow{font-size:11px}.inner-hero .hero-lead{margin-top:22px;font-size:17px}.page-visual{max-width:520px;margin-inline:auto}.page-visual img{aspect-ratio:1.12}.hero-actions{gap:22px}.hero-actions .button{width:100%;justify-content:space-between}.breadcrumbs{font-size:12px;padding-block:18px;gap:8px}.editorial-row{grid-template-columns:32px 1fr;gap:15px;padding-block:28px}.editorial-row>div{grid-column:2}.editorial-row h3{font-size:24px}.editorial h2{margin-bottom:30px}.process-grid{gap:28px 25px;margin-top:32px}.process-grid p{margin-top:12px}.process-grid li span{font-size:26px}.faq{grid-template-columns:1fr;gap:32px}.faq summary{font-size:17px}.inner-offer{grid-template-columns:1fr;padding:30px 25px;margin-block:45px;gap:30px}.inner-offer h2{font-size:29px}.inner-offer .button{width:100%;gap:15px;justify-content:space-between}.inner-offer>div:last-child{align-items:stretch}.link-grid{grid-template-columns:1fr;gap:0}.link-grid a{padding-block:20px;min-height:64px}.page-heading{padding-bottom:35px}.page-heading h1{font-size:40px}.page-heading p{font-size:17px}.contact-layout{gap:35px;padding-bottom:55px}.form-grid{grid-template-columns:1fr}.contact-details{padding:27px}.local-brief{padding:27px 23px}.plan-grid{grid-template-columns:1fr;gap:20px}.plan{padding:28px}.plan ul{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.plan .price{font-size:38px;margin-top:15px}.domain-search{flex-direction:column}.domain-search button{justify-content:space-between}.prose{padding-top:20px}.prose h2{font-size:28px}.footer-bottom{padding-bottom:70px}.page-heading+section.section{padding-top:20px}.topbar a{min-height:28px;display:inline-flex;align-items:center;gap:6px}.topbar .wrap{justify-content:center}.contact-actions .button{white-space:normal}.directory-search input{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* EDITOR: accessible hidden labels remain available to screen readers. */
.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}
.inner-hero .eyebrow{font-size:12px}

/* EDITOR: supplied full-width logo; preserve its aspect ratio on every screen. */
.brand{flex-shrink:0}.brand img,.footer-main img{width:190px;height:auto;object-fit:contain}
@media(max-width:760px){.brand img{width:166px;height:auto}.footer-main img{width:190px;height:auto}}

/* EDITOR: readable narrative layouts for individually authored area and industry content. */
.local-story{max-width:900px}.local-story h3{margin-top:2rem}.local-story p,.local-columns p{font-size:1.08rem;line-height:1.85}.local-story .text-link{display:inline-flex;margin-top:.5rem}.local-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}.local-columns h2{font-size:clamp(1.65rem,3vw,2.6rem)}.local-columns .text-link{color:#d0f38e;display:inline-block;margin-top:1rem}.area-links{line-height:2.3!important}.local-story .small{font-size:.94rem}.industry-story{max-width:960px}.industry-story h2{font-size:clamp(1.7rem,3vw,2.8rem);margin-top:2.5rem}.industry-story p{font-size:1.08rem;line-height:1.85;max-width:75ch}@media(max-width:700px){.local-columns{grid-template-columns:1fr;gap:2.5rem}.local-story p,.local-columns p,.industry-story p{font-size:1rem}.area-links a{display:inline-block;padding:5px 0}}

/* Keep narrative copy legible on the shared deep-green band. */
.local-columns p{color:#c4d6cc;margin-top:1.2rem}

/* EDITOR: shared brand-model heroes. The supplied campaign artwork stays intact;
   the portrait viewport hides its baked-in advertising copy. Keep this ratio
   and left alignment when replacing the source, or use a clean portrait. */
.model-home{padding-top:48px}
.model-home-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:64px}
.model-home-copy{padding-block:22px 45px;min-width:0}
.model-home h1{font-size:clamp(46px,5.4vw,78px);line-height:1.06;margin:25px 0 28px;letter-spacing:-.055em}
.model-home .hero-intro{max-width:520px}.model-home .hero-intro p{font-size:18px;line-height:1.7}
.model-composition{position:relative;min-width:0;width:100%;padding:0 22% 32px 0;isolation:isolate}
.brand-portrait{position:relative;overflow:hidden;aspect-ratio:0.60;background:#234532;border-radius:120px 6px 6px 6px;box-shadow:0 24px 65px #00180f40}
.brand-portrait img,.page-visual .brand-portrait img{display:block;width:100%;height:100%;max-width:none;aspect-ratio:auto;object-fit:cover;object-position:left center;border-radius:0}
.model-system{position:absolute;width:65%;right:0;bottom:42px;overflow:hidden;border:1px solid #dbedc942;background:#102f25;box-shadow:0 24px 48px #001b1466;transform:rotate(-3deg);border-radius:5px}
.model-system img,.page-visual .model-system img{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;border-radius:0}
.model-system-label{display:block;padding:13px 15px;color:#d5f6ac;font-size:9px;font-weight:600;letter-spacing:.1em;line-height:1.5}
.model-system-foot{display:block;padding:12px 15px;font-size:12px;color:#eff8e9;border-top:1px solid #ffffff20}
.model-journey{border-top:1px solid #ffffff30;margin-top:20px}.model-journey .stage-caption{padding-block:20px}.model-journey .journey{position:static;margin:0;padding-block:15px 32px}
.page-visual.model-composition figcaption{position:absolute;bottom:0;left:0;font-size:11px}.inner-hero-grid>.model-composition{max-width:520px;justify-self:end}
@media(min-width:1500px){.model-composition{max-width:540px;justify-self:end}}
@media(max-width:1000px){.model-home-grid{gap:32px}.model-home h1{font-size:52px}.model-home .hero-intro p{font-size:17px}.model-system{width:72%}.model-system-label{font-size:8px;padding:9px 12px}}
@media(max-width:760px){.model-home{padding-top:35px}.model-home-grid{grid-template-columns:1fr;gap:30px}.model-home-copy{padding:0}.model-home h1{font-size:clamp(42px,10.5vw,62px);margin-block:23px}.model-home .hero-intro{max-width:none}.model-home .hero-intro .button{width:100%;justify-content:space-between;white-space:normal}.model-home .hero-caption{font-size:12px}.model-composition{max-width:430px;margin-inline:auto;padding-right:24%;padding-bottom:32px}.brand-portrait{border-top-left-radius:85px}.model-system{width:66%;bottom:42px}.model-system-label{font-size:8px}.model-system-foot{font-size:11px;padding:10px 12px}.model-journey{margin-top:10px}.model-journey .stage-caption{font-size:9px;gap:20px}.model-journey .journey{padding-bottom:25px}.inner-hero-grid>.model-composition{max-width:430px;justify-self:center}}
@media(prefers-reduced-motion:reduce){.model-composition *{animation:none!important;transition:none!important}}
.model-home h1 em{color:var(--lime)}
.model-home .eyebrow{color:#c4d6ba;line-height:1.7;font-size:10px}
.model-journey .stage-caption{position:static}
/* EDITOR: regenerated campaign scenes replace the old portrait crop.
   Always retain the full scene, so neither her face nor the workflow is clipped. */
.generated-model-scene{margin:0;width:100%;min-width:0;align-self:center}
.generated-model-scene img,.page-visual.generated-model-scene img{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain;border-radius:6px;box-shadow:0 22px 60px #001b1433}
.model-home-grid{grid-template-columns:.85fr 1.15fr;gap:40px}
.inner-hero-grid{grid-template-columns:1fr 1.15fr;gap:40px}
@media(max-width:1000px){.model-home-grid,.inner-hero-grid{gap:28px}}
@media(max-width:760px){.model-home-grid,.inner-hero-grid{grid-template-columns:1fr}.generated-model-scene,.page-visual.generated-model-scene{max-width:none}.model-home-grid{gap:30px}.model-home h1{font-size:clamp(42px,10.5vw,62px)}}
