/*
============================================================
AVON AGGREGATES - PUBLIC WEBSITE STYLES
Consolidated production stylesheet
============================================================
*/

/* Avon Aggregates materials build v6 — new filename prevents cached CSS collisions. */
/* Avon Aggregates replacement test site — build 2
   New filename intentionally prevents Safari/server cache collisions. */

:root{
  --red:#d81f26;
  --ink:#080909;
  --ink2:#121313;
  --white:#fff;
  --muted:#bfc1c2;
  --light:#f4f4f3;
  --line:rgba(255,255,255,.15);
  --max:1390px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#151515;background:#fff}
a{color:inherit}
img,svg{display:block;max-width:100%}
.container{width:min(var(--max),calc(100% - 48px));margin:auto}

.site-header{position:sticky;top:0;z-index:100;background:#050606;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.header-inner{min-height:126px;display:flex;align-items:center;gap:30px}
.brand{display:flex;align-items:center;gap:18px;text-decoration:none;min-width:390px}
.brand-logo{width:76px;height:76px;overflow:visible;filter:drop-shadow(0 10px 18px rgba(0,0,0,.3))}
.brand-logo .logo-0{opacity:0;transform:translateX(150px);animation:logoRight .95s .15s cubic-bezier(.2,.8,.2,1) forwards}
.brand-logo .logo-1{opacity:0;transform:translateX(-150px);animation:logoLeft .95s cubic-bezier(.2,.8,.2,1) forwards}
.brand-logo .header-sweep{animation:headerSweep 5.7s 1.1s ease-in-out infinite;mix-blend-mode:screen}
.brand-divider{height:80px;width:1px;background:rgba(255,255,255,.45)}
.brand-copy{line-height:1}
.brand-copy strong{display:block;font-size:35px;letter-spacing:.12em;font-weight:900}
.brand-copy .agg{display:block;color:var(--orange);font-size:20px;letter-spacing:.27em;margin-top:8px}
.brand-copy .tag{display:flex;align-items:center;gap:9px;font-size:8px;letter-spacing:.055em;margin-top:13px;white-space:nowrap}
.brand-copy .tag:before,.brand-copy .tag:after{content:"";width:20px;height:1px;background:var(--orange)}

.main-nav{margin-left:auto;display:flex;align-items:center;gap:1px}
.nav-item{position:relative}
.nav-link{display:flex;align-items:center;min-height:48px;padding:0 10px;text-decoration:none;color:#eee;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.nav-link:hover,.nav-link:focus-visible{color:var(--orange)}
.nav-link.cta{background:var(--orange);color:#fff;margin-left:8px;padding:0 15px}
.dropdown{position:absolute;top:100%;left:0;min-width:250px;background:#fff;color:#111;padding:9px;border-top:4px solid var(--orange);opacity:0;visibility:hidden;transform:translateY(7px);transition:.18s;box-shadow:0 25px 50px rgba(0,0,0,.28)}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{opacity:1;visibility:visible;transform:none}
.dropdown a{display:block;padding:10px 12px;text-decoration:none;border-bottom:1px solid #eee;font-size:13px}
.dropdown a:hover{background:#f4f4f4;color:var(--orange)}
.menu-toggle{display:none;margin-left:auto;background:transparent;border:1px solid #555;color:#fff;padding:10px 13px}

.hero{min-height:515px;color:#fff;background:
linear-gradient(90deg,rgba(5,5,5,.96) 0%,rgba(5,5,5,.78) 48%,rgba(5,5,5,.18) 100%),
url('hero-quarry.jpg') center/cover no-repeat;
display:flex;align-items:center}
.hero-content{padding:60px 0;max-width:780px}
.hero h1{font-size:clamp(54px,6.2vw,92px);line-height:.93;letter-spacing:-.035em;text-transform:uppercase;margin:0 0 26px}
.hero h1:after{content:"";display:block;width:45px;height:5px;background:var(--orange);margin-top:24px}
.hero p{font-size:20px;line-height:1.55;max-width:650px;color:#f0f0f0}
.actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}
.btn{min-height:52px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-transform:uppercase;font-size:13px;font-weight:900;letter-spacing:.02em;border:1px solid var(--orange);background:var(--orange);color:#fff;transition:.2s}
.btn:hover{transform:translateY(-2px);background:#ff5c20}
.btn.alt{background:rgba(0,0,0,.28);border-color:#fff}

.feature-strip{background:#0b0c0c;color:#fff}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.feature{min-height:88px;padding:18px 30px;display:flex;align-items:center;gap:17px;border-right:1px solid #444}
.feature:last-child{border-right:0}
.feature-icon{font-size:31px;color:var(--orange)}
.feature strong{display:block;font-size:13px;text-transform:uppercase}
.feature span{display:block;color:#ccc;font-size:12px;margin-top:3px}

.section{padding:72px 0}
.section.light{background:#f8f8f7}
.section.dark{background:#101111;color:#fff}
.section-head{text-align:center;max-width:820px;margin:0 auto 38px}
.kicker{color:var(--orange);font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.section h2{font-size:clamp(34px,4.7vw,60px);line-height:1;text-transform:uppercase;margin:9px 0 14px}
.section-head p{color:#666;font-size:17px;margin:0}
.dark .section-head p{color:#bbb}

.material-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.material-card{height:175px;position:relative;overflow:hidden;text-decoration:none;background:#333}
.material-card img{width:100%;height:100%;object-fit:cover;transition:.3s}
.material-card:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.88))}
.material-card span{position:absolute;z-index:2;left:0;right:0;bottom:14px;text-align:center;color:#fff;font-size:13px;font-weight:900;text-transform:uppercase}
.material-card:hover img{transform:scale(1.06)}

.content-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.info-card{background:#fff;border:1px solid #ddd;padding:30px;min-height:235px}
.dark .info-card{background:#171818;border-color:#333}
.info-card h3{text-transform:uppercase;font-size:22px;margin:0 0 14px}
.info-card p{color:#666}
.dark .info-card p{color:#bbb}
.info-card a{display:inline-block;margin-top:15px;color:var(--orange);text-decoration:none;font-weight:900;text-transform:uppercase;font-size:12px}

.cta-band{background:var(--orange);color:#fff;padding:48px 0}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}
.cta-band h2{margin:0;font-size:42px;text-transform:uppercase}
.cta-band .btn{background:#111;border-color:#111}

.site-footer{background:#080909;color:#fff;padding:65px 0 20px}
.footer-grid{display:grid;grid-template-columns:1.2fr repeat(3,.8fr);gap:45px}
.footer-col h4{color:var(--orange);text-transform:uppercase;font-size:12px;letter-spacing:.08em}
.footer-col a{display:block;color:#bbb;text-decoration:none;padding:5px 0;font-size:13px}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid #292929;margin-top:45px;padding-top:20px;display:flex;justify-content:space-between;color:#777;font-size:12px}

.page-hero{background:#111;color:#fff;padding:75px 0}
.page-hero h1{font-size:clamp(48px,6vw,82px);line-height:.95;text-transform:uppercase;margin:14px 0}
.breadcrumb{font-size:12px;color:#aaa}
.content-wrap{padding:72px 0}
.placeholder{border:1px solid #ddd;padding:40px;background:#fff}
.placeholder h2{text-transform:uppercase;font-size:34px;margin-top:0}
.placeholder p{font-size:17px;color:#666;max-width:900px}
.page-list{columns:3;column-gap:28px;padding:0;list-style:none}
.page-list li{break-inside:avoid;border-bottom:1px solid #ddd;padding:10px 0}
.page-list a{text-decoration:none;font-weight:700}

@keyframes logoLeft{to{opacity:1;transform:none}}
@keyframes logoRight{to{opacity:1;transform:none}}
@keyframes headerSweep{0%,50%{transform:translateX(-1900px) skewX(-18deg);opacity:0}56%{opacity:.85}72%,100%{transform:translateX(1900px) skewX(-18deg);opacity:0}}

@media(max-width:1180px){
  .brand{min-width:360px}.main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#080909;padding:14px 24px;flex-direction:column;align-items:stretch}
  .main-nav.open{display:flex}.menu-toggle{display:block}.nav-item{width:100%}.nav-link{width:100%}.dropdown{position:static;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none}.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{display:block}
  .material-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .container{width:min(var(--max),calc(100% - 30px))}
  .header-inner{min-height:92px}.brand{min-width:0;gap:10px}.brand-logo{width:52px;height:52px}.brand-divider{height:58px}.brand-copy strong{font-size:22px}.brand-copy .agg{font-size:12px}.brand-copy .tag{display:none}
  .hero h1{font-size:48px}.feature-grid,.content-grid,.footer-grid{grid-template-columns:1fr}.feature{border-right:0;border-bottom:1px solid #333}
  .material-grid{grid-template-columns:repeat(2,1fr)}
  .cta-inner,.footer-bottom{flex-direction:column;align-items:flex-start}
  .page-list{columns:1}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .brand-logo .logo-part{opacity:1!important;transform:none!important}.header-sweep{display:none}
}


/* Build 2 layout safeguards */
.feature-strip .container.feature-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.section.light .section-head,
.section.dark .section-head{
  display:block;
  text-align:center;
  max-width:820px;
  margin:0 auto 38px;
}
.section.light .section-head > *,
.section.dark .section-head > *{
  width:auto;
  max-width:none;
}
.material-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
}
@media(max-width:1180px){
  .material-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .feature-strip .container.feature-grid{grid-template-columns:1fr}
  .material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* Homepage video hero and footer socials */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero-background-video{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover}
.hero-video-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(5,5,5,.96),rgba(5,5,5,.76) 48%,rgba(5,5,5,.28))}
.hero-video-enabled{background:#080909}
.footer-socials{display:flex;gap:10px;margin-top:22px}
.footer-socials a{width:42px;height:42px;display:grid;place-items:center;border:1px solid #343638;background:#121314;color:#fff;transition:.2s ease}
.footer-socials a:hover{background:var(--orange);border-color:var(--orange);transform:translateY(-2px)}
.footer-socials svg{width:19px;height:19px;fill:currentColor}


/* Footer company details and contact page details */
.footer-company-details{
    display:grid;
    gap:7px;
    margin-top:18px;
    color:#aeb3b6;
    font-size:13px;
}
.footer-company-details address{
    margin:0;
    color:#aeb3b6;
    font-style:normal;
    line-height:1.55;
}
.footer-company-details a{
    color:#d0d3d5;
    text-decoration:none;
}
.footer-company-details a:hover{
    color:#fff;
}
.contact-details-panel{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin:24px 0 30px;
    padding:22px;
    background:#111;
    color:#fff;
}
.contact-details-panel strong{
    display:block;
    margin-bottom:7px;
    color:var(--orange);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.contact-details-panel address{
    margin:0;
    color:#d2d5d7;
    font-style:normal;
    line-height:1.5;
}
.contact-details-panel a{
    color:#fff;
    text-decoration:none;
}
.contact-details-panel a:hover{
    color:var(--orange);
}
@media(max-width:760px){
    .contact-details-panel{
        grid-template-columns:1fr;
    }
}


/* Account application */
.account-application-section{padding:76px 0;background:#f4f5f6}
.account-intro{max-width:780px;margin-bottom:30px}
.account-intro h2{margin:9px 0 12px;font-size:clamp(34px,4.7vw,58px);line-height:1;text-transform:uppercase}
.account-intro p{color:#697078;font-size:17px}
.form-message{padding:15px 18px;margin-bottom:22px;border-left:5px solid}
.form-message.success{background:#edf8ef;border-color:#2d8b43}
.form-message.error{background:#fff0f0;border-color:#c62828}
.account-application-form{display:grid;gap:22px}
.application-panel{background:#fff;border:1px solid #d9dde1;box-shadow:0 10px 30px rgba(21,24,27,.045)}
.application-panel-heading{display:flex;align-items:flex-start;gap:18px;padding:22px 26px;border-bottom:1px solid #e4e6e8;background:linear-gradient(180deg,#fff,#fafafa)}
.application-panel-heading>span{flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;background:#111;color:var(--orange);font-weight:900}
.application-panel-heading h3{margin:2px 0 5px;font-size:20px;text-transform:uppercase}
.application-panel-heading p{margin:0;color:#747b82;font-size:13px}
.application-grid{display:grid;gap:18px;padding:24px 26px}
.application-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
.application-grid .full{grid-column:1/-1}
.application-panel label{font-size:14px;font-weight:800;color:#23272b}
.application-panel label em{color:#d62e2e;font-style:normal}
.application-panel input,.application-panel select,.application-panel textarea{width:100%;margin-top:7px;padding:13px 14px;border:1px solid #bfc5ca;border-radius:0;background:#fff}
.application-panel input:focus,.application-panel select:focus,.application-panel textarea:focus{outline:3px solid rgba(239,75,11,.13);border-color:var(--orange)}
.check-row{display:flex;align-items:center;gap:10px;padding:20px 26px 0}
.check-row input,.service-options input{width:auto;margin:0}
.service-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:24px 26px}
.service-options label{display:flex;align-items:center;gap:9px}
.credit-option{display:flex;align-items:center;gap:16px;margin:0 26px 26px;padding:20px;border:1px solid #dfe2e5;background:#fafafa}
.credit-option strong,.credit-option small{display:block}.credit-option small{margin-top:4px;color:#6f767c;font-weight:400}
.credit-switch{position:relative;flex:0 0 54px;width:54px;height:30px}.credit-switch input{position:absolute;inset:0;z-index:2;width:100%;height:100%;margin:0;opacity:0}.credit-switch>span{position:absolute;inset:0;background:#ced3d7}.credit-switch>span::after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.25);transition:.2s}.credit-switch input:checked+span{background:var(--orange)}.credit-switch input:checked+span::after{transform:translateX(24px)}
.password-note{padding:0 26px 24px;margin:0;color:#737a80}
.application-submit{text-align:right}
.application-submit .btn{border:0;cursor:pointer}
.hp-field{position:absolute!important;left:-9999px!important}
@media(max-width:760px){
  .application-grid.two-col,.service-options{grid-template-columns:1fr}
  .application-grid .full{grid-column:auto}
  .application-panel-heading,.application-grid{padding-left:18px;padding-right:18px}
  .service-options{padding-left:18px;padding-right:18px}
  .credit-option{margin-left:18px;margin-right:18px}
}


/* Materials directory */
.materials-page-hero p{max-width:800px;color:#c5c9cc;font-size:18px}
.materials-directory{padding:65px 0 90px;background:#f4f5f6}
.materials-toolbar{display:grid;grid-template-columns:1fr 320px auto auto;gap:12px;align-items:end;padding:20px;margin-bottom:24px;background:#fff;border:1px solid #d8dbde}
.materials-toolbar label span{display:block;margin-bottom:7px;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.materials-toolbar input,.materials-toolbar select{width:100%;height:49px;padding:0 13px;border:1px solid #bfc5ca;border-radius:0;background:#fff}
.materials-toolbar .btn{height:49px;border:0}
.materials-clear{height:49px;display:inline-flex;align-items:center;padding:0 15px;border:1px solid #aaa;background:#fff;text-decoration:none;font-size:12px;font-weight:900;text-transform:uppercase}
.materials-category-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-bottom:48px;background:#d5d8da;border:1px solid #d5d8da}
.materials-category-strip a{min-height:92px;padding:20px;background:#fff;text-decoration:none;transition:.18s}
.materials-category-strip a:hover,.materials-category-strip a.active{background:#111;color:#fff}
.materials-category-strip strong,.materials-category-strip span{display:block}
.materials-category-strip strong{font-size:14px;text-transform:uppercase}
.materials-category-strip span{margin-top:5px;color:#7a8085;font-size:12px}
.materials-category-strip a:hover span,.materials-category-strip a.active span{color:#bfc3c6}
.materials-results-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}
.materials-results-heading h2{margin:6px 0 0;font-size:42px;text-transform:uppercase}
.materials-public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.public-material-card{display:flex;flex-direction:column;min-height:100%;background:#fff;border:1px solid #d9dcdf;transition:.2s}
.public-material-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(15,18,20,.1)}
.material-card-image{position:relative;height:225px;display:block;overflow:hidden;background:#161819}
.material-card-image img{width:100%;height:100%;object-fit:cover;transition:.3s}
.public-material-card:hover .material-card-image img{transform:scale(1.04)}
.material-card-placeholder{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 70% 25%,rgba(239,75,11,.28),transparent 12rem),linear-gradient(145deg,#33383b,#151718)}
.material-card-placeholder strong{color:rgba(255,255,255,.11);font-size:135px;line-height:1}
.featured-label{position:absolute;top:14px;left:14px;padding:7px 9px;background:var(--orange);color:#fff;font-size:10px;font-weight:900;text-transform:uppercase}
.public-material-card-body{display:flex;flex:1;flex-direction:column;padding:24px}
.material-category{color:var(--orange);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.public-material-card h3{margin:9px 0 12px;font-size:24px;line-height:1.05;text-transform:uppercase}
.public-material-card h3 a{text-decoration:none}
.public-material-card p{display:-webkit-box;overflow:hidden;color:#666d72;line-height:1.55;-webkit-line-clamp:4;-webkit-box-orient:vertical}
.material-card-link{margin-top:auto;padding-top:17px;color:var(--orange);text-decoration:none;font-size:12px;font-weight:900;text-transform:uppercase}
.materials-empty{padding:50px;background:#fff;border:1px solid #ddd;text-align:center}

/* Material detail */
.material-detail-section{padding:70px 0;background:#f4f5f6}
.material-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:30px;align-items:start}
.material-detail-main{display:grid;gap:20px}
.material-detail-image{margin:0;height:440px;overflow:hidden;background:#111}
.material-detail-image img{width:100%;height:100%;object-fit:cover}
.material-detail-panel{display:grid;grid-template-columns:58px 1fr;gap:20px;padding:28px;background:#fff;border:1px solid #d9dcdf}
.material-detail-number{width:48px;height:48px;display:grid;place-items:center;background:#111;color:var(--orange);font-size:12px;font-weight:900}
.material-detail-panel h2{margin:0 0 13px;font-size:26px;text-transform:uppercase}
.material-detail-panel p{margin:0;color:#626a70;font-size:17px;line-height:1.65}
.material-note-panel{border-left:5px solid var(--orange)}
.material-detail-sidebar{display:grid;gap:18px;position:sticky;top:150px}
.material-enquiry-box,.material-facts-box,.material-source-box{padding:25px;background:#fff;border:1px solid #d9dcdf}
.material-enquiry-box{background:#111;color:#fff;border-top:5px solid var(--orange)}
.material-enquiry-box h2{margin:8px 0 12px;font-size:28px;text-transform:uppercase}
.material-enquiry-box p{color:#bec3c6}
.material-facts-box h3,.material-source-box h3{margin:0 0 17px;font-size:14px;text-transform:uppercase}
.material-facts-box dl{margin:0}
.material-facts-box dl div{padding:12px 0;border-top:1px solid #e3e3e3}
.material-facts-box dt{font-size:10px;font-weight:900;text-transform:uppercase;color:#767d82}
.material-facts-box dd{margin:4px 0 0;font-weight:700}
.material-source-box p{color:#6a7176;font-size:13px}
.material-source-box a{color:var(--orange);font-size:12px;font-weight:900;text-transform:uppercase;text-decoration:none}
@media(max-width:1050px){.materials-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.material-detail-layout{grid-template-columns:1fr}.material-detail-sidebar{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.materials-toolbar{grid-template-columns:1fr}.materials-category-strip{grid-template-columns:1fr}.materials-public-grid{grid-template-columns:1fr}.material-detail-sidebar{grid-template-columns:1fr}.material-detail-image{height:300px}.material-detail-panel{grid-template-columns:1fr}}


/* Our People */
.people-page-hero p,.territory-page-hero p{max-width:780px;color:#c6c9cb;font-size:18px}
.people-directory{padding:70px 0 95px;background:#f3f4f5}
.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.person-card{background:#fff;border:1px solid #d8dcdf;overflow:hidden}
.person-card-trigger{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:left}
.person-photo{position:relative;display:block;height:390px;overflow:hidden;background:#151719}
.person-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.person-initials{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 70% 20%,rgba(239,75,11,.25),transparent 45%),linear-gradient(145deg,#3b3f42,#111);color:rgba(255,255,255,.22);font-size:100px;font-weight:900}
.person-hover-copy{position:absolute;inset:auto 0 0;display:grid;gap:4px;padding:35px 24px 24px;background:linear-gradient(transparent,rgba(0,0,0,.94));color:#fff;transform:translateY(42px);transition:.28s}
.person-hover-copy strong{font-size:25px;text-transform:uppercase}
.person-hover-copy small{color:var(--orange);font-size:12px;font-weight:900;text-transform:uppercase}
.person-hover-copy em{margin-top:8px;color:#fff;font-size:11px;font-style:normal;font-weight:900;text-transform:uppercase;opacity:0}
.person-card-trigger:hover .person-photo img,.person-card-trigger[aria-expanded="true"] .person-photo img{transform:scale(1.045)}
.person-card-trigger:hover .person-hover-copy,.person-card-trigger[aria-expanded="true"] .person-hover-copy{transform:translateY(0)}
.person-card-trigger:hover .person-hover-copy em,.person-card-trigger[aria-expanded="true"] .person-hover-copy em{opacity:1}
.person-card-summary{padding:22px 24px 24px}
.person-role{color:var(--orange);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.person-card-summary h2{margin:7px 0 6px;font-size:27px;text-transform:uppercase}
.person-card-summary p{margin:0;color:#737a7f}
.person-territory-link{display:inline-block;margin-top:15px;color:#111;font-size:11px;font-weight:900;text-decoration:none;text-transform:uppercase}
.person-profile-panel{grid-column:1/-1;border-top:5px solid var(--orange);background:#111;color:#fff}
.person-profile-inner{display:grid;grid-template-columns:1fr 320px;gap:35px;padding:34px}
.person-profile-inner h3{margin:7px 0 18px;font-size:35px;text-transform:uppercase}
.person-bio{color:#c7cbce;line-height:1.7}
.person-contact-panel{display:grid;align-content:start;border:1px solid #34373a}
.person-contact-panel a{display:block;padding:16px 18px;border-bottom:1px solid #34373a;color:#fff;text-decoration:none;word-break:break-word}
.person-contact-panel a:last-child{border-bottom:0}
.person-contact-panel a:hover{background:var(--orange)}
.person-contact-panel span{display:block;margin-bottom:4px;color:#92999d;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.person-contact-panel a:hover span{color:#fff}
.people-empty{padding:55px;background:#fff;border:1px solid #ddd;text-align:center}

/* Territory directory */
.territory-directory-section{padding:70px 0 95px;background:#eef0f1}
.territory-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:30px;align-items:start}
.territory-index{position:sticky;top:145px;padding:25px;background:#111;color:#fff;border-top:6px solid var(--orange)}
.territory-index h2{margin:7px 0 10px;font-size:28px;text-transform:uppercase}
.territory-index>p{color:#aeb4b8;line-height:1.55}
.territory-index nav{display:grid;margin-top:22px;border:1px solid #333}
.territory-index nav a{display:grid;grid-template-columns:14px 1fr;column-gap:11px;padding:14px;border-bottom:1px solid #333;color:#fff;text-decoration:none}
.territory-index nav a:last-child{border-bottom:0}
.territory-index nav a:hover{background:#202326}
.territory-index nav a>span{grid-row:1/3;width:14px;height:14px;margin-top:2px}
.territory-index nav strong{font-size:13px;text-transform:uppercase}
.territory-index nav small{color:#979ea2}
.territory-contact-list{display:grid;gap:22px}
.territory-contact-card{display:grid;grid-template-columns:210px minmax(0,1fr) 245px;background:#fff;border-top:7px solid var(--territory-colour);box-shadow:0 12px 32px rgba(15,18,20,.06);scroll-margin-top:150px}
.territory-person-image{min-height:285px;background:#161819}
.territory-person-image img{width:100%;height:100%;object-fit:cover}
.territory-person-image>span{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#333,#111);color:rgba(255,255,255,.2);font-size:65px;font-weight:900}
.territory-contact-main{padding:28px}
.territory-label{display:inline-block;padding:7px 9px;background:var(--territory-colour);color:#111;font-size:10px;font-weight:900;text-transform:uppercase}
.territory-contact-main h2{margin:12px 0 5px;font-size:30px;text-transform:uppercase}
.territory-job-title{margin:0 0 23px;color:var(--orange);font-weight:800}
.territory-areas strong{display:block;margin-bottom:6px;font-size:10px;text-transform:uppercase}
.territory-areas p,.territory-description{color:#646b70;line-height:1.6}
.territory-contact-details{display:grid;align-content:start;background:#f7f7f7;border-left:1px solid #ddd}
.territory-contact-details a{display:block;padding:18px;border-bottom:1px solid #ddd;color:#111;text-decoration:none;word-break:break-word}
.territory-contact-details a:hover{background:#111;color:#fff}
.territory-contact-details span{display:block;margin-bottom:4px;color:#777;font-size:9px;font-weight:900;text-transform:uppercase}
.territory-contact-details a:hover span{color:var(--orange)}
.territory-empty{padding:55px;background:#fff;text-align:center}

@media(max-width:1050px){
  .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .territory-layout{grid-template-columns:1fr}
  .territory-index{position:static}
  .territory-index nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .territory-index nav a:nth-last-child(2){border-bottom:0}
}
@media(max-width:800px){
  .person-profile-inner{grid-template-columns:1fr}
  .territory-contact-card{grid-template-columns:150px 1fr}
  .territory-contact-details{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));border-left:0;border-top:1px solid #ddd}
  .territory-contact-details a{border-bottom:0;border-right:1px solid #ddd}
}
@media(max-width:650px){
  .people-grid{grid-template-columns:1fr}
  .person-photo{height:360px}
  .territory-index nav{grid-template-columns:1fr}
  .territory-index nav a{border-bottom:1px solid #333!important}
  .territory-index nav a:last-child{border-bottom:0!important}
  .territory-contact-card{grid-template-columns:1fr}
  .territory-person-image{height:320px}
  .territory-contact-details{grid-template-columns:1fr}
  .territory-contact-details a{border-right:0;border-bottom:1px solid #ddd}
}


/* Mobile form zoom and horizontal overflow protection */
html,
body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

*,
*::before,
*::after{
    box-sizing:border-box;
}

img,
video,
iframe,
svg{
    max-width:100%;
}

input,
select,
textarea,
button{
    max-width:100%;
}

@media(max-width:900px){
    /*
     * iPhone and iPad Safari zoom into controls below 16px.
     * Keeping controls at 16px prevents that behaviour.
     */
    input,
    select,
    textarea{
        min-width:0;
        width:100%;
        font-size:16px !important;
        line-height:1.35;
    }

    button,
    .btn,
    .admin-btn{
        font-size:16px;
    }

    .container,
    .site-header .container,
    main,
    section,
    form,
    .application-panel,
    .materials-toolbar,
    .contact-details-panel,
    .person-profile-inner,
    .territory-contact-card{
        min-width:0;
        max-width:100%;
    }

    .materials-toolbar,
    .account-application-form,
    .application-grid,
    .people-grid,
    .material-detail-layout,
    .territory-layout{
        width:100%;
    }

    .materials-category-strip,
    .materials-public-grid,
    .people-grid{
        min-width:0;
    }

    .person-contact-panel a,
    .territory-contact-details a,
    .footer-company-details a{
        overflow-wrap:anywhere;
        word-break:break-word;
    }
}

@media(max-width:650px){
    .container{
        width:100%;
        padding-left:18px;
        padding-right:18px;
    }

    .materials-toolbar,
    .application-panel,
    .person-card,
    .material-detail-panel,
    .territory-contact-card,
    .contact-details-panel{
        max-width:100%;
    }
}


/* Resource-conscious homepage video */
.hero-background-video{
    opacity:0;
    transition:opacity .45s ease;
    contain:strict;
    pointer-events:none;
}

.hero-background-video.is-ready{
    opacity:1;
}

@media(max-width:900px), (prefers-reduced-motion:reduce){
    .hero-background-video{
        display:none!important;
    }

    .hero-video-enabled{
        background-image:
            linear-gradient(rgba(0,0,0,.62),rgba(0,0,0,.62)),
            url("aggregates.jpg");
        background-position:center;
        background-size:cover;
    }
}


/* Seamless homepage poster-to-video transition */
.hero-video-enabled{
    position:relative;
    background-image:
        linear-gradient(rgba(0,0,0,.54),rgba(0,0,0,.54)),
        var(--hero-poster);
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}

.hero-background-video{
    background-image:var(--hero-poster);
    background-position:center;
    background-size:cover;
    opacity:0;
}

.hero-background-video.is-ready{
    opacity:1;
}

@media(max-width:900px), (prefers-reduced-motion:reduce){
    .hero-video-enabled{
        background-image:
            linear-gradient(rgba(0,0,0,.58),rgba(0,0,0,.58)),
            var(--hero-poster);
    }
}


/* ============================================================
   OUR PEOPLE PROFILE ACCORDION FIX
============================================================ */
.people-grid{
    align-items:start;
}

.person-card{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.person-profile-panel{
    grid-column:auto;
    position:relative;
    width:100%;
    border-top:5px solid var(--orange);
    background:#111;
    color:#fff;
}

.person-profile-copy{
    padding:26px 24px;
}

.person-bio{
    color:#c7cbce;
    line-height:1.7;
}

.person-contact-panel{
    display:grid;
    border-top:1px solid #34373a;
    border-left:0;
    border-right:0;
    border-bottom:0;
}

.person-profile-close{
    width:100%;
    padding:14px 18px;
    border:0;
    border-top:1px solid #34373a;
    background:#1d1f21;
    color:#fff;
    cursor:pointer;
    font-size:11px;
    font-weight:900;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.person-profile-close:hover{
    background:var(--orange);
}

.person-card.is-open{
    box-shadow:0 18px 45px rgba(15,18,20,.13);
}

.person-card.is-open .person-card-summary{
    border-bottom:1px solid #e1e3e4;
}

/* ============================================================
   TERRITORY MAP
============================================================ */
.territory-map-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:28px;
    margin-bottom:34px;
    align-items:start;
}

.territory-map-panel{
    padding:28px;
    background:#111;
    color:#fff;
    border-top:6px solid var(--orange);
}

.territory-map-heading h2{
    margin:7px 0 9px;
    font-size:34px;
    text-transform:uppercase;
}

.territory-map-heading p{
    margin:0;
    color:#abb1b5;
}

.uk-map-stage{
    position:relative;
    width:min(100%,620px);
    aspect-ratio:420/720;
    margin:25px auto 0;
    overflow:visible;
}

.uk-map-silhouette{
    display:block;
    width:100%;
    height:100%;
    filter:drop-shadow(0 18px 30px rgba(0,0,0,.35));
}

.uk-map-silhouette path{
    fill:#2c3033;
    stroke:#555c61;
    stroke-width:3;
}

.uk-map-silhouette .uk-map-island{
    fill:#24282b;
}

.territory-map-pin{
    position:absolute;
    left:var(--pin-x);
    top:var(--pin-y);
    z-index:2;
    display:flex;
    align-items:center;
    gap:9px;
    transform:translate(-11px,-11px);
    color:#fff;
    text-decoration:none;
}

.territory-pin-dot{
    position:relative;
    width:22px;
    height:22px;
    flex:0 0 22px;
    border:4px solid #fff;
    border-radius:50%;
    background:var(--pin-colour);
    box-shadow:0 0 0 5px rgba(255,255,255,.14),0 5px 14px rgba(0,0,0,.35);
}

.territory-pin-dot::after{
    content:"";
    position:absolute;
    inset:-9px;
    border:2px solid var(--pin-colour);
    border-radius:50%;
    opacity:.45;
    animation:territoryPulse 2.2s infinite;
}

@keyframes territoryPulse{
    0%{transform:scale(.75);opacity:.55}
    75%,100%{transform:scale(1.7);opacity:0}
}

.territory-pin-label{
    display:grid;
    min-width:132px;
    padding:8px 10px;
    background:rgba(0,0,0,.84);
    border-left:4px solid var(--pin-colour);
    box-shadow:0 8px 20px rgba(0,0,0,.22);
}

.territory-pin-label strong{
    font-size:11px;
    text-transform:uppercase;
}

.territory-pin-label small{
    margin-top:2px;
    color:#b7bdc0;
    font-size:10px;
}

.territory-map-pin:hover .territory-pin-label,
.territory-map-pin:focus .territory-pin-label{
    background:var(--orange);
    border-left-color:#fff;
}

.territory-map-directory{
    position:sticky;
    top:145px;
    padding:25px;
    background:#fff;
    border:1px solid #d8dcdf;
}

.territory-map-directory h2{
    margin:7px 0 18px;
    font-size:28px;
    text-transform:uppercase;
}

.territory-map-directory nav{
    display:grid;
    border:1px solid #dfe2e4;
}

.territory-map-directory nav a{
    display:grid;
    grid-template-columns:14px 1fr;
    column-gap:11px;
    padding:14px;
    border-bottom:1px solid #dfe2e4;
    color:#111;
    text-decoration:none;
}

.territory-map-directory nav a:last-child{
    border-bottom:0;
}

.territory-map-directory nav a:hover{
    background:#111;
    color:#fff;
}

.territory-map-directory nav a>span{
    grid-row:1/3;
    width:14px;
    height:14px;
    margin-top:2px;
}

.territory-map-directory nav strong{
    font-size:12px;
    text-transform:uppercase;
}

.territory-map-directory nav small{
    color:#7b8287;
}

.territory-map-directory nav a:hover small{
    color:#bfc4c7;
}

.territory-contact-card{
    scroll-margin-top:150px;
    transition:box-shadow .25s,transform .25s;
}

.territory-contact-card.territory-highlight{
    transform:translateY(-4px);
    box-shadow:0 0 0 4px var(--territory-colour),0 20px 50px rgba(15,18,20,.15);
}

@media(max-width:1050px){
    .territory-map-layout{
        grid-template-columns:1fr;
    }

    .territory-map-directory{
        position:static;
    }

    .territory-map-directory nav{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:720px){
    .territory-map-panel{
        padding:20px 14px;
    }

    .territory-pin-label{
        display:none;
    }

    .territory-map-pin:focus .territory-pin-label,
    .territory-map-pin:hover .territory-pin-label{
        display:grid;
        position:absolute;
        left:27px;
        top:-8px;
    }

    .territory-map-directory nav{
        grid-template-columns:1fr;
    }
}


/* ============================================================
   REAL UK POSTCODE TERRITORY MAP
============================================================ */
.real-territory-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start;margin-bottom:36px}
.real-map-panel{background:#111;color:#fff;border-top:6px solid var(--orange);overflow:hidden}
.real-map-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:25px 27px}
.real-map-heading h2{margin:6px 0 0;font-size:34px;text-transform:uppercase}
.postcode-finder{display:flex;align-items:end;gap:8px}
.postcode-finder label span{display:block;margin-bottom:6px;color:#aeb4b8;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.postcode-finder input{width:185px;height:46px;margin:0;padding:0 12px;border:1px solid #555;background:#fff}
.postcode-finder button{height:46px;padding:0 16px;border:0;background:var(--orange);color:#fff;font-weight:900;text-transform:uppercase;cursor:pointer}
.real-uk-map{width:100%;height:720px;background:#e9edef}
.map-status{min-height:42px;padding:12px 18px;background:#1d1f21;color:#bec4c7;font-size:12px}
.real-territory-sidebar{position:sticky;top:145px;padding:25px;background:#fff;border:1px solid #d8dcdf}
.real-territory-sidebar h2{margin:7px 0 10px;font-size:29px;text-transform:uppercase}
.real-territory-sidebar>p{color:#6e757a;line-height:1.55}
.real-territory-list{display:grid;border:1px solid #dfe2e4}
.real-territory-list button{display:grid;grid-template-columns:15px 1fr;gap:11px;width:100%;padding:14px;border:0;border-bottom:1px solid #dfe2e4;background:#fff;text-align:left;cursor:pointer}
.real-territory-list button:last-child{border-bottom:0}
.real-territory-list button:hover,.real-territory-list button.active{background:#111;color:#fff}
.territory-list-colour{width:15px;height:15px;margin-top:2px}
.real-territory-list strong,.real-territory-list small{display:block}
.real-territory-list strong{font-size:12px;text-transform:uppercase}
.real-territory-list small{margin-top:3px;color:#7b8287}
.real-territory-list button:hover small,.real-territory-list button.active small{color:#bec4c7}
.postcode-area-tooltip{padding:3px 6px!important;border:1px solid #111!important;border-radius:0!important;background:#fff!important;color:#111!important;font-size:11px!important;font-weight:900!important;box-shadow:none!important}
.postcode-area-tooltip::before{display:none!important}
.territory-results{display:grid;gap:28px}
.territory-result-group{scroll-margin-top:145px;background:#fff;border:1px solid #d9dcdf;transition:.25s}
.territory-result-group.territory-result-active{box-shadow:0 0 0 4px var(--orange),0 20px 45px rgba(15,18,20,.13);transform:translateY(-3px)}
.territory-result-heading{padding:25px 28px;border-left:7px solid var(--territory-colour);background:#111;color:#fff}
.territory-result-heading>span{color:var(--territory-colour);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.territory-result-heading h2{margin:6px 0 8px;font-size:31px;text-transform:uppercase}
.territory-result-heading p{max-width:780px;color:#c4c9cc}
.territory-result-heading small{color:#9da4a8}
.territory-people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#dfe2e4}
.territory-person-card{display:grid;grid-template-columns:120px 1fr;min-width:0;background:#fff}
.territory-person-card-image{min-height:175px;background:#17191a}
.territory-person-card-image img{width:100%;height:100%;object-fit:cover}
.territory-person-card-image>span{width:100%;height:100%;display:grid;place-items:center;color:rgba(255,255,255,.22);font-size:38px;font-weight:900}
.territory-person-card-copy{display:flex;flex-direction:column;align-items:flex-start;padding:20px;min-width:0}
.territory-person-card-copy>span{color:var(--orange);font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.territory-person-card-copy h3{margin:7px 0 13px;font-size:22px;text-transform:uppercase}
.territory-person-card-copy a{max-width:100%;color:#111;font-size:12px;text-decoration:none;overflow-wrap:anywhere}
.territory-profile-link{margin-top:auto;padding-top:14px;color:var(--orange)!important;font-weight:900;text-transform:uppercase}
.territory-no-contact{padding:25px 28px;color:#747b80}
@media(max-width:1100px){.real-territory-layout{grid-template-columns:1fr}.real-territory-sidebar{position:static}.real-territory-list{grid-template-columns:repeat(2,minmax(0,1fr))}.territory-people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.real-map-heading{align-items:stretch;flex-direction:column}.postcode-finder{align-items:stretch;flex-direction:column}.postcode-finder input{width:100%}.real-uk-map{height:590px}.real-territory-list,.territory-people-grid{grid-template-columns:1fr}.territory-person-card{grid-template-columns:105px 1fr}}


/* ============================================================
   TERRITORY SALESPERSON MAP MARKERS
============================================================ */
.avon-contact-marker-wrapper{
    background:transparent!important;
    border:0!important;
}

.avon-contact-marker{
    position:relative;
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border:4px solid #fff;
    border-radius:50% 50% 50% 0;
    background:var(--marker-colour);
    box-shadow:0 8px 18px rgba(0,0,0,.38);
    transform:rotate(-45deg);
}

.avon-contact-marker::after{
    content:"";
    position:absolute;
    inset:-8px;
    border:2px solid var(--marker-colour);
    border-radius:50%;
    opacity:.35;
    animation:avonContactPulse 2.2s infinite;
}

.avon-contact-marker-initials{
    color:#111;
    font-size:12px;
    font-weight:950;
    transform:rotate(45deg);
}

@keyframes avonContactPulse{
    0%{transform:scale(.72);opacity:.5}
    75%,100%{transform:scale(1.55);opacity:0}
}

.avon-contact-popup-shell .leaflet-popup-content-wrapper,
.avon-contact-popup-shell .leaflet-popup-tip{
    border-radius:0;
    background:#111;
    color:#fff;
}

.avon-contact-popup-shell .leaflet-popup-content{
    margin:0;
}

.avon-contact-popup-shell .leaflet-popup-close-button{
    color:#fff!important;
}

.avon-map-contact-popup{
    display:grid;
    min-width:230px;
    padding:19px;
}

.avon-map-contact-popup>span{
    color:var(--orange);
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.avon-map-contact-popup>strong{
    margin-top:5px;
    font-size:20px;
    text-transform:uppercase;
}

.avon-map-contact-popup>small{
    margin:3px 0 13px;
    color:#b9bfc2;
}

.avon-map-contact-popup>a{
    padding:6px 0;
    color:#fff;
    text-decoration:none;
    overflow-wrap:anywhere;
}

.avon-map-contact-popup>a:hover{
    color:var(--orange);
}

.avon-map-profile-link{
    margin-top:7px;
    border-top:1px solid #34373a;
    font-size:10px;
    font-weight:900;
    text-transform:uppercase;
}


/* ============================================================
   MAP CONTACT OVERLAY & TOWN COVERAGE
============================================================ */
.real-map-stage{position:relative}
.map-contact-overlay{position:absolute;left:20px;bottom:20px;z-index:700;width:min(390px,calc(100% - 40px));max-height:calc(100% - 40px);overflow:auto;background:rgba(17,17,17,.96);color:#fff;border-top:5px solid var(--orange);box-shadow:0 18px 45px rgba(0,0,0,.35);backdrop-filter:blur(8px)}
.map-contact-overlay[hidden]{display:none}
.map-contact-overlay-close{position:absolute;right:8px;top:6px;width:34px;height:34px;border:0;background:transparent;color:#fff;font-size:25px;cursor:pointer}
#map-contact-overlay-content{padding:22px}
.map-overlay-territory{display:block;padding-right:35px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.map-overlay-people{display:grid;gap:13px;margin-top:14px}
.map-overlay-person{display:grid;grid-template-columns:52px 1fr;gap:12px;padding:12px;background:#202326;border:1px solid #34383b}
.map-overlay-avatar{width:52px;height:52px;display:grid;place-items:center;background:var(--overlay-colour);color:#111;font-weight:950}
.map-overlay-person strong,.map-overlay-person small,.map-overlay-person a{display:block}
.map-overlay-person strong{font-size:16px;text-transform:uppercase}
.map-overlay-person small{margin:2px 0 7px;color:#aeb5b9}
.map-overlay-person a{color:#fff;font-size:11px;text-decoration:none;overflow-wrap:anywhere}
.map-overlay-person a:hover{color:var(--orange)}
.map-overlay-profile{margin-top:7px;color:var(--orange)!important;font-weight:900;text-transform:uppercase}
.map-overlay-empty{color:#c0c5c8}
.map-overlay-towns-button{width:100%;margin-top:14px;padding:12px;border:1px solid #4a4e51;background:#111;color:#fff;font-size:11px;font-weight:900;text-transform:uppercase;cursor:pointer}
.map-overlay-towns-button:hover{background:var(--orange);border-color:var(--orange)}
.territory-towns-details{padding:0 28px 20px;background:#fff}
.territory-towns-details summary{cursor:pointer;font-size:12px;font-weight:900;text-transform:uppercase}
.territory-town-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.territory-town-links a{padding:7px 9px;background:#f0f2f3;color:#111;font-size:11px;text-decoration:none}
.territory-town-links a:hover{background:#111;color:#fff}
.territory-towns-dialog{width:min(820px,calc(100% - 32px));max-height:82vh;padding:0;border:0;background:transparent}
.territory-towns-dialog::backdrop{background:rgba(0,0,0,.72)}
.territory-towns-dialog-inner{position:relative;padding:30px;background:#fff;border-top:6px solid var(--orange)}
.territory-towns-dialog-close{position:absolute;right:12px;top:10px;width:38px;height:38px;border:0;background:#111;color:#fff;font-size:25px;cursor:pointer}
.territory-towns-dialog h2{margin:7px 0 22px;font-size:31px;text-transform:uppercase}
.territory-towns-dialog-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.territory-towns-dialog-list a{padding:11px;background:#f0f2f3;color:#111;text-decoration:none;font-size:12px}
.territory-towns-dialog-list a:hover{background:#111;color:#fff}

/* ============================================================
   LOCAL AGGREGATE LOCATION PAGES
============================================================ */
.location-page-hero p{max-width:800px;color:#c4c9cc;font-size:18px}
.location-service-section{padding:70px 0 95px;background:#f2f4f5}
.location-service-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:30px;align-items:start}
.location-service-main{padding:30px;background:#fff;border:1px solid #d9dcdf}
.location-service-main h2{margin:7px 0 18px;font-size:38px;text-transform:uppercase}
.location-service-main>p{color:#626a70;font-size:17px;line-height:1.7}
.location-material-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:28px;background:#dfe2e4}
.location-material-links a{display:grid;gap:4px;padding:18px;background:#fff;color:#111;text-decoration:none}
.location-material-links a:hover{background:#111;color:#fff}
.location-material-links span{color:var(--orange);font-size:9px;font-weight:900;text-transform:uppercase}
.location-material-links strong{text-transform:uppercase}
.location-service-sidebar{display:grid;gap:18px;position:sticky;top:145px}
.location-enquiry-card,.location-contacts-card{padding:25px;background:#fff;border:1px solid #d9dcdf}
.location-enquiry-card{background:#111;color:#fff;border-top:5px solid var(--orange)}
.location-enquiry-card h2{margin:8px 0 12px;font-size:28px;text-transform:uppercase}
.location-enquiry-card p{color:#bdc3c6}
.location-contacts-card h3{margin:0 0 16px;text-transform:uppercase}
.location-contact-person{padding:14px 0;border-top:1px solid #e0e2e4}
.location-contact-person strong,.location-contact-person span,.location-contact-person a{display:block}
.location-contact-person span{margin:3px 0 8px;color:var(--orange);font-size:11px;font-weight:900;text-transform:uppercase}
.location-contact-person a{color:#111;font-size:12px;text-decoration:none;overflow-wrap:anywhere}
@media(max-width:900px){.location-service-layout{grid-template-columns:1fr}.location-service-sidebar{position:static}.territory-towns-dialog-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.map-contact-overlay{left:10px;bottom:10px;width:calc(100% - 20px)}.territory-towns-dialog-list,.location-material-links{grid-template-columns:1fr}}


/* ============================================================
   TERRITORY CONTACT CARDS & TOWNS EXPANDER REFINEMENT
============================================================ */

/*
 * Keep the contact section as a clean contained panel rather than
 * stretching a single salesperson across the full territory width.
 */
.territory-people-grid{
    display:flex;
    flex-wrap:wrap;
    align-items:stretch;
    gap:18px;
    padding:24px 28px 28px;
    background:#f3f5f6;
}

.territory-person-card{
    flex:0 1 430px;
    width:min(100%,430px);
    min-height:190px;
    display:grid;
    grid-template-columns:138px minmax(0,1fr);
    overflow:hidden;
    background:#fff;
    border:1px solid #d6dade;
    box-shadow:0 10px 28px rgba(15,18,20,.07);
    transition:transform .2s ease,box-shadow .2s ease;
}

.territory-person-card:hover{
    transform:translateY(-3px);
    box-shadow:0 17px 38px rgba(15,18,20,.12);
}

.territory-person-card-image{
    min-height:190px;
}

.territory-person-card-copy{
    padding:22px;
}

.territory-person-card-copy h3{
    margin-bottom:15px;
}

.territory-person-card-copy>a:not(.territory-profile-link){
    margin-bottom:4px;
}

.territory-profile-link{
    display:inline-flex;
    align-items:center;
    margin-top:auto;
    padding-top:17px;
}

/*
 * Give empty territories a deliberately designed message rather than
 * an open white strip.
 */
.territory-no-contact{
    margin:24px 28px 28px;
    padding:22px 24px;
    border:1px dashed #c8cdd1;
    background:#f7f8f9;
    color:#687075;
}

/*
 * Styled collapsible towns control.
 */
.territory-towns-details{
    padding:0;
    background:#fff;
    border-top:1px solid #e0e3e5;
    border-bottom:1px solid #e0e3e5;
}

.territory-towns-details summary{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:58px;
    padding:17px 64px 17px 28px;
    cursor:pointer;
    list-style:none;
    color:#151719;
    font-size:12px;
    font-weight:900;
    letter-spacing:.045em;
    text-transform:uppercase;
    transition:background .2s ease,color .2s ease;
}

.territory-towns-details summary::-webkit-details-marker{
    display:none;
}

.territory-towns-details summary::before{
    content:"Areas covered";
    display:inline-flex;
    align-items:center;
    padding:6px 9px;
    background:#111;
    color:#fff;
    font-size:9px;
    letter-spacing:.08em;
}

.territory-towns-details summary::after{
    content:"+";
    position:absolute;
    right:26px;
    top:50%;
    width:29px;
    height:29px;
    display:grid;
    place-items:center;
    border:1px solid #c9ced2;
    background:#fff;
    color:#111;
    font-size:20px;
    font-weight:500;
    transform:translateY(-50%);
    transition:transform .2s ease,background .2s ease,color .2s ease;
}

.territory-towns-details summary:hover{
    background:#f2f4f5;
}

.territory-towns-details[open] summary{
    background:#111;
    color:#fff;
}

.territory-towns-details[open] summary::before{
    background:var(--orange);
}

.territory-towns-details[open] summary::after{
    content:"−";
    border-color:var(--orange);
    background:var(--orange);
    color:#fff;
}

.territory-town-links{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
    margin:0;
    padding:22px 28px 26px;
    border-top:1px solid #303336;
    background:#17191a;
}

.territory-town-links a{
    display:flex;
    align-items:center;
    min-height:42px;
    padding:10px 12px;
    border:1px solid #34383b;
    background:#202326;
    color:#e4e7e9;
    line-height:1.35;
    transition:background .18s ease,border-color .18s ease,color .18s ease;
}

.territory-town-links a:hover{
    border-color:var(--orange);
    background:var(--orange);
    color:#fff;
}

@media(max-width:1050px){
    .territory-town-links{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:760px){
    .territory-people-grid{
        padding:18px;
    }

    .territory-person-card{
        flex-basis:100%;
        width:100%;
    }

    .territory-town-links{
        grid-template-columns:repeat(2,minmax(0,1fr));
        padding:18px;
    }

    .territory-towns-details summary{
        padding-left:18px;
        padding-right:58px;
    }
}

@media(max-width:520px){
    .territory-person-card{
        grid-template-columns:105px minmax(0,1fr);
    }

    .territory-person-card-image{
        min-height:180px;
    }

    .territory-person-card-copy{
        padding:17px;
    }

    .territory-town-links{
        grid-template-columns:1fr;
    }

    .territory-towns-details summary{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }
}


/* ============================================================
   SLIM PEOPLE & TERRITORY HERO SECTIONS
============================================================ */
.people-page-hero,
.territory-page-hero{
    padding-top:54px;
    padding-bottom:58px;
}

.people-page-hero .breadcrumb,
.territory-page-hero .breadcrumb{
    margin-bottom:14px;
}

.people-page-hero h1,
.territory-page-hero h1{
    margin-top:7px;
    margin-bottom:12px;
    font-size:clamp(48px,6.2vw,82px);
    line-height:.93;
}

.people-page-hero p,
.territory-page-hero p{
    max-width:760px;
    margin-bottom:0;
    font-size:16px;
}

/* ============================================================
   COMPACT OUR PEOPLE CARDS & DATABASE SEARCH
============================================================ */
.people-directory{
    padding-top:50px;
}

.people-search-panel{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:18px;
    align-items:end;
    margin-bottom:25px;
    padding:18px 20px;
    border:1px solid #d6dade;
    background:#fff;
}

.people-search-panel label>span{
    display:block;
    margin-bottom:7px;
    color:#17191a;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.people-search-panel input{
    width:100%;
    height:48px;
    margin:0;
    padding:0 14px;
    border:1px solid #bbc1c5;
    background:#fff;
    font-size:16px;
}

.people-search-panel input:focus{
    border-color:var(--orange);
    outline:3px solid rgba(239,75,11,.12);
}

.people-search-status{
    min-width:120px;
    padding:11px 15px;
    background:#111;
    color:#fff;
    text-align:center;
}

.people-search-status strong,
.people-search-status span{
    display:block;
}

.people-search-status strong{
    color:var(--orange);
    font-size:25px;
}

.people-search-status span{
    margin-top:2px;
    font-size:9px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.people-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}

.person-photo{
    height:285px;
}

.person-hover-copy{
    padding:30px 18px 18px;
}

.person-hover-copy strong{
    font-size:20px;
}

.person-card-summary{
    padding:17px 18px 19px;
}

.person-card-summary h2{
    margin-top:6px;
    font-size:22px;
}

.person-card-summary p{
    font-size:13px;
}

.person-territory-link{
    margin-top:12px;
    font-size:10px;
}

.person-profile-copy{
    padding:20px 18px;
}

.person-bio{
    font-size:14px;
}

.person-contact-panel a{
    padding:13px 16px;
    font-size:12px;
}

.people-no-results{
    padding:45px 25px;
    border:1px solid #d8dcdf;
    background:#fff;
    text-align:center;
}

.people-no-results h2{
    margin:0 0 9px;
    font-size:27px;
    text-transform:uppercase;
}

.people-no-results p{
    margin:0;
    color:#70777c;
}

@media(max-width:1180px){
    .people-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .people-page-hero,
    .territory-page-hero{
        padding-top:44px;
        padding-bottom:48px;
    }

    .people-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px){
    .people-page-hero,
    .territory-page-hero{
        padding-top:35px;
        padding-bottom:40px;
    }

    .people-page-hero h1,
    .territory-page-hero h1{
        font-size:46px;
    }

    .people-search-panel{
        grid-template-columns:1fr;
    }

    .people-search-status{
        width:100%;
    }

    .people-grid{
        grid-template-columns:1fr;
    }

    .person-photo{
        height:330px;
    }
}


/* ============================================================
   PREMIUM STICKY HEADER
============================================================ */
:root{
    --site-header-height:112px;
    --site-header-height-scrolled:78px;
}

html{
    scroll-padding-top:calc(var(--site-header-height-scrolled) + 22px);
}

body{
    padding-top:var(--site-header-height);
}

.site-header{
    position:fixed;
    inset:0 0 auto 0;
    z-index:1200;
    width:100%;
    min-height:var(--site-header-height);
    background:rgba(5,6,7,.96);
    border-bottom:1px solid rgba(255,255,255,.08);
    transition:
        min-height .25s ease,
        background .25s ease,
        box-shadow .25s ease,
        backdrop-filter .25s ease;
}

.site-header>.container{
    min-height:var(--site-header-height);
    transition:min-height .25s ease;
}

.site-header .brand,
.site-header .brand img,
.site-header .site-logo{
    transition:
        width .25s ease,
        height .25s ease,
        transform .25s ease,
        opacity .25s ease;
}

.site-header.is-scrolled{
    min-height:var(--site-header-height-scrolled);
    background:rgba(5,6,7,.91);
    box-shadow:0 12px 35px rgba(0,0,0,.24);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
}

.site-header.is-scrolled>.container{
    min-height:var(--site-header-height-scrolled);
}

.site-header.is-scrolled .brand,
.site-header.is-scrolled .site-logo{
    transform:scale(.84);
    transform-origin:left center;
}

.main-nav a{
    position:relative;
}

.main-nav a::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-10px;
    height:2px;
    background:var(--orange);
    transform:scaleX(0);
    transform-origin:center;
    transition:transform .2s ease;
}

.main-nav a:hover::after,
.main-nav a:focus-visible::after,
.main-nav a.is-active::after{
    transform:scaleX(1);
}

.main-nav .contact-link::after,
.main-nav a.btn::after{
    display:none;
}

.main-nav a.is-active{
    color:#fff;
}

.site-header .menu-toggle{
    flex:0 0 auto;
}

/*
 * Homepage can retain a more open overlay effect at the top,
 * becoming solid as soon as the page scrolls.
 */
body.home-page .site-header:not(.is-scrolled){
    background:linear-gradient(180deg,rgba(0,0,0,.92),rgba(0,0,0,.72));
    border-bottom-color:rgba(255,255,255,.12);
}

/* Keep anchors and filtered cards clear of the fixed header. */
.person-card,
.territory-result-group,
.territory-person-card,
.material-detail-panel{
    scroll-margin-top:calc(var(--site-header-height-scrolled) + 24px);
}

/* ============================================================
   REFINED INTERNAL PAGE HERO
============================================================ */
.page-hero{
    min-height:0;
    padding-top:52px;
    padding-bottom:54px;
}

.page-hero .breadcrumb{
    margin-bottom:13px;
}

.page-hero h1{
    margin-top:7px;
    margin-bottom:12px;
    font-size:clamp(46px,5.7vw,78px);
    line-height:.94;
}

.page-hero p{
    max-width:780px;
    margin-bottom:0;
    font-size:16px;
    line-height:1.55;
}

/* The homepage hero remains full and cinematic. */
.hero{
    min-height:calc(100vh - var(--site-header-height));
}

/* ============================================================
   MOBILE STICKY HEADER
============================================================ */
@media(max-width:900px){
    :root{
        --site-header-height:92px;
        --site-header-height-scrolled:72px;
    }

    body{
        padding-top:var(--site-header-height);
    }

    .site-header,
    .site-header>.container{
        min-height:var(--site-header-height);
    }

    .site-header.is-scrolled,
    .site-header.is-scrolled>.container{
        min-height:var(--site-header-height-scrolled);
    }

    .site-header .brand,
    .site-header .site-logo{
        max-width:min(72vw,310px);
    }

    .site-header.is-scrolled .brand,
    .site-header.is-scrolled .site-logo{
        transform:scale(.9);
    }

    .main-nav{
        position:fixed;
        top:var(--site-header-height-scrolled);
        right:0;
        left:0;
        max-height:calc(100vh - var(--site-header-height-scrolled));
        overflow-y:auto;
        background:rgba(6,7,8,.98);
        box-shadow:0 18px 35px rgba(0,0,0,.34);
        backdrop-filter:blur(14px);
        -webkit-backdrop-filter:blur(14px);
    }

    .main-nav a::after{
        bottom:4px;
    }

    .page-hero{
        padding-top:40px;
        padding-bottom:42px;
    }

    .page-hero h1{
        font-size:clamp(42px,11vw,62px);
    }

    .hero{
        min-height:calc(100svh - var(--site-header-height));
    }
}

@media(max-width:560px){
    :root{
        --site-header-height:84px;
        --site-header-height-scrolled:68px;
    }

    .site-header .container{
        padding-left:16px;
        padding-right:16px;
    }

    .site-header .brand,
    .site-header .site-logo{
        max-width:68vw;
    }

    .menu-toggle{
        min-width:74px;
        min-height:48px;
        padding:0 15px;
        font-size:16px;
    }

    .page-hero{
        padding-top:32px;
        padding-bottom:35px;
    }

    .page-hero h1{
        font-size:43px;
    }
}


/* ============================================================
   COMPACT DARK CONTACT PAGE
============================================================ */
.contact-page-hero{
    padding-bottom:42px;
}

.contact-redesign-section{
    padding:58px 0 90px;
    background:#eceff0;
}

.contact-redesign-shell{
    display:grid;
    grid-template-columns:minmax(320px,.82fr) minmax(520px,1.18fr);
    align-items:stretch;
    padding:0;
    overflow:hidden;
    background:#111;
    box-shadow:0 22px 65px rgba(15,18,20,.16);
}

.contact-brand-panel{
    position:relative;
    display:flex;
    flex-direction:column;
    min-width:0;
    padding:38px;
    overflow:hidden;
    isolation:isolate;
    background:
        radial-gradient(circle at 75% 25%,rgba(236,69,8,.19),transparent 17rem),
        linear-gradient(145deg,#0c0d0e,#191b1d);
    color:#fff;
}

.contact-grid-pattern{
    position:absolute;
    inset:0;
    z-index:-1;
    opacity:.2;
    background-image:
        linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
    background-size:42px 42px;
    mask-image:linear-gradient(to bottom,#000,transparent 94%);
}

.contact-logo-stage{
    position:relative;
    width:min(290px,72%);
    aspect-ratio:1;
    margin:0 auto 24px;
    display:grid;
    place-items:center;
    animation:contactLogoFloat 5.5s ease-in-out infinite;
}

.contact-logo-stage::before{
    content:"";
    position:absolute;
    inset:10%;
    border:1px solid rgba(255,255,255,.08);
    transform:rotate(45deg);
    animation:contactLogoFrame 1.1s both ease-out;
}

.contact-animated-logo{
    position:relative;
    z-index:2;
    width:100%;
    height:100%;
    filter:drop-shadow(0 20px 30px rgba(0,0,0,.35));
}

/* Keep the contact logo and its masked shine on the same exact box. */
.contact-company-logo-stage{
    width:82%;
    height:82%;
    aspect-ratio:1;
}

.contact-animated-logo path{
    transform-box:fill-box;
    transform-origin:center;
}

.contact-logo-left{
    animation:contactLogoLeft .9s .08s both cubic-bezier(.2,.8,.2,1);
}

.contact-logo-right{
    animation:contactLogoRight .9s .12s both cubic-bezier(.2,.8,.2,1);
}

.contact-logo-sheen{
    position:absolute;
    inset:17%;
    z-index:3;
    overflow:hidden;
    pointer-events:none;
    transform:rotate(45deg);
}

.contact-logo-sheen::after{
    content:"";
    position:absolute;
    top:-30%;
    bottom:-30%;
    left:-75%;
    width:27%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent);
    transform:skewX(-14deg);
    animation:contactLogoSheen 5s 1.15s ease-in-out infinite;
}

.contact-brand-copy{
    margin-top:auto;
}

.contact-brand-copy h2{
    margin:7px 0 13px;
    max-width:430px;
    font-size:clamp(29px,3vw,43px);
    line-height:1;
    text-transform:uppercase;
}

.contact-brand-copy p{
    max-width:470px;
    margin:0;
    color:#b8bec2;
    line-height:1.65;
}

.contact-quick-details{
    display:grid;
    gap:0;
    margin-top:26px;
    border:1px solid #35383b;
}

.contact-quick-details>a,
.contact-quick-details>div{
    display:block;
    padding:14px 16px;
    border-bottom:1px solid #35383b;
    color:#fff;
    text-decoration:none;
}

.contact-quick-details>*:last-child{
    border-bottom:0;
}

.contact-quick-details>a:hover{
    background:var(--orange);
}

.contact-quick-details span{
    display:block;
    margin-bottom:4px;
    color:#8f979b;
    font-size:9px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.contact-quick-details>a:hover span{
    color:#fff;
}

.contact-quick-details strong,
.contact-quick-details address{
    color:#fff;
    font-size:13px;
    font-style:normal;
    line-height:1.5;
    overflow-wrap:anywhere;
}

.contact-form-panel{
    min-width:0;
    padding:42px;
    background:#fff;
}

.contact-form-heading{
    margin-bottom:23px;
}

.contact-form-heading h2{
    margin:7px 0 7px;
    font-size:clamp(31px,3.5vw,48px);
    line-height:1;
    text-transform:uppercase;
}

.contact-form-heading p{
    margin:0;
    color:#747b80;
    font-size:12px;
}

.contact-alert{
    margin-bottom:18px;
    padding:13px 15px;
    border-left:5px solid;
    font-size:13px;
}

.contact-alert.success{
    border-color:#2d8b43;
    background:#edf8ef;
}

.contact-alert.error{
    border-color:#c62828;
    background:#fff0f0;
}

.compact-contact-form{
    margin:0;
}

.contact-honeypot{
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
}

.compact-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px 17px;
}

.compact-form-grid label{
    min-width:0;
    font-size:12px;
    font-weight:850;
    color:#24282b;
}

.compact-form-grid label.full{
    grid-column:1/-1;
}

.compact-form-grid label>span{
    display:block;
    margin-bottom:6px;
}

.compact-form-grid em{
    color:#d42a2a;
    font-style:normal;
}

.compact-form-grid input,
.compact-form-grid select,
.compact-form-grid textarea{
    display:block;
    width:100%;
    min-width:0;
    margin:0;
    padding:11px 12px;
    border:1px solid #c1c6ca;
    border-radius:0;
    background:#fafbfb;
    color:#111;
    font:inherit;
    font-size:15px;
    transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}

.compact-form-grid input,
.compact-form-grid select{
    height:44px;
}

.compact-form-grid textarea{
    min-height:125px;
    resize:vertical;
    line-height:1.5;
}

.compact-form-grid input:focus,
.compact-form-grid select:focus,
.compact-form-grid textarea:focus{
    border-color:var(--orange);
    outline:0;
    background:#fff;
    box-shadow:0 0 0 3px rgba(239,75,11,.12);
}

.contact-form-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid #e0e3e5;
}

.contact-form-footer p{
    margin:0;
    color:#747b80;
    font-size:11px;
}

.contact-form-footer .btn{
    flex:0 0 auto;
    min-height:48px;
    border:0;
    cursor:pointer;
}

@keyframes contactLogoLeft{
    from{opacity:0;transform:translate(-75px,35px) rotate(-7deg)}
    to{opacity:1;transform:none}
}

@keyframes contactLogoRight{
    from{opacity:0;transform:translate(75px,-35px) rotate(7deg)}
    to{opacity:1;transform:none}
}

@keyframes contactLogoFrame{
    from{opacity:0;transform:rotate(45deg) scale(.75)}
    to{opacity:1;transform:rotate(45deg) scale(1)}
}

@keyframes contactLogoFloat{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-9px)}
}

@keyframes contactLogoSheen{
    0%,58%{left:-75%;opacity:0}
    64%{opacity:1}
    79%{left:145%;opacity:1}
    84%,100%{left:145%;opacity:0}
}

@media(prefers-reduced-motion:reduce){
    .contact-logo-stage,
    .contact-logo-stage::before,
    .contact-animated-logo path,
    .contact-logo-sheen::after{
        animation:none!important;
    }
}

@media(max-width:1000px){
    .contact-redesign-shell{
        grid-template-columns:1fr;
    }

    .contact-brand-panel{
        display:grid;
        grid-template-columns:220px 1fr;
        gap:25px 32px;
        align-items:center;
    }

    .contact-logo-stage{
        grid-row:1/3;
        width:210px;
        margin:0;
    }

    .contact-brand-copy{
        margin-top:0;
    }

    .contact-quick-details{
        grid-column:1/-1;
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .contact-quick-details>a,
    .contact-quick-details>div{
        border-right:1px solid #35383b;
        border-bottom:0;
    }

    .contact-quick-details>*:last-child{
        border-right:0;
    }
}

@media(max-width:700px){
    .contact-redesign-section{
        padding-top:35px;
        padding-bottom:60px;
    }

    .contact-redesign-shell{
        width:calc(100% - 28px);
    }

    .contact-brand-panel{
        display:flex;
        padding:28px 22px;
    }

    .contact-logo-stage{
        width:190px;
        margin:0 auto 10px;
    }

    .contact-quick-details{
        width:100%;
        grid-template-columns:1fr;
    }

    .contact-quick-details>a,
    .contact-quick-details>div{
        border-right:0;
        border-bottom:1px solid #35383b;
    }

    .contact-form-panel{
        padding:28px 22px;
    }

    .compact-form-grid{
        grid-template-columns:1fr;
    }

    .compact-form-grid label.full{
        grid-column:auto;
    }

    .compact-form-grid input,
    .compact-form-grid select,
    .compact-form-grid textarea{
        font-size:16px;
    }

    .contact-form-footer{
        align-items:stretch;
        flex-direction:column;
    }

    .contact-form-footer .btn{
        width:100%;
    }
}


/* ============================================================
   PREMIUM DESKTOP NAVIGATION & MATERIALS DROPDOWN FIX
============================================================ */
@media(min-width:1181px){
    .header-inner{
        position:relative;
    }

    .main-nav{
        align-self:stretch;
        gap:2px;
        overflow:visible;
    }

    .main-nav>.nav-item{
        display:flex;
        align-items:center;
        height:100%;
    }

    .main-nav>.nav-item>.nav-link{
        min-height:48px;
        padding:0 11px;
        line-height:1;
    }

    .main-nav>.nav-contact-item{
        margin-left:7px;
    }

    .main-nav>.nav-contact-item>.nav-link.cta{
        min-height:48px;
        margin-left:0;
        padding:0 18px;
    }

    .nav-item-has-dropdown{
        position:relative;
    }

    .nav-dropdown-trigger{
        gap:7px;
    }

    .nav-caret{
        width:7px;
        height:7px;
        margin-top:-4px;
        border-right:1.5px solid currentColor;
        border-bottom:1.5px solid currentColor;
        transform:rotate(45deg);
        transition:transform .2s ease,margin-top .2s ease;
    }

    .nav-item-has-dropdown:hover .nav-caret,
    .nav-item-has-dropdown:focus-within .nav-caret{
        margin-top:4px;
        transform:rotate(225deg);
    }

    .nav-item-has-dropdown::after{
        content:"";
        position:absolute;
        top:calc(50% + 24px);
        left:0;
        width:100%;
        height:14px;
    }

    .main-nav .dropdown{
        position:absolute;
        top:calc(50% + 33px);
        left:50%;
        z-index:1400;
        display:block;
        width:310px;
        min-width:310px;
        padding:7px 0;
        overflow:visible;
        border:1px solid #d9dcde;
        border-top:4px solid var(--orange);
        background:#fff;
        color:#161819;
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transform:translate(-50%,10px);
        box-shadow:0 22px 55px rgba(0,0,0,.28);
        transition:
            opacity .18s ease,
            visibility .18s ease,
            transform .18s ease;
    }

    .main-nav .dropdown::before{
        content:"";
        position:absolute;
        top:-11px;
        left:50%;
        width:13px;
        height:13px;
        border-top:1px solid #d9dcde;
        border-left:1px solid #d9dcde;
        background:#fff;
        transform:translateX(-50%) rotate(45deg);
    }

    .nav-item-has-dropdown:hover>.dropdown,
    .nav-item-has-dropdown:focus-within>.dropdown{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
        transform:translate(-50%,0);
    }

    /*
     * Dropdown links must not inherit the orange animated underline used by
     * the top-level navigation. That inheritance caused the blank lined box.
     */
    .main-nav .dropdown a{
        position:relative;
        display:flex;
        align-items:center;
        min-height:43px;
        padding:9px 18px;
        border:0;
        border-bottom:1px solid #eceeef;
        background:#fff;
        color:#1d2022!important;
        font-size:12px;
        font-weight:800;
        line-height:1.35;
        text-decoration:none;
        text-transform:uppercase;
        letter-spacing:.015em;
        white-space:normal;
        opacity:1;
        visibility:visible;
        transition:
            color .16s ease,
            background .16s ease,
            padding-left .16s ease;
    }

    .main-nav .dropdown a:last-child{
        border-bottom:0;
    }

    .main-nav .dropdown a::before{
        content:"";
        flex:0 0 auto;
        width:0;
        height:2px;
        margin-right:0;
        background:var(--orange);
        transition:width .16s ease,margin-right .16s ease;
    }

    .main-nav .dropdown a::after{
        display:none!important;
        content:none!important;
    }

    .main-nav .dropdown a:hover,
    .main-nav .dropdown a:focus-visible{
        padding-left:20px;
        background:#f3f4f4;
        color:var(--orange)!important;
        outline:0;
    }

    .main-nav .dropdown a:hover::before,
    .main-nav .dropdown a:focus-visible::before{
        width:15px;
        margin-right:9px;
    }

    .site-header.is-scrolled .main-nav .dropdown{
        top:calc(50% + 29px);
    }

    .site-header.is-scrolled .nav-item-has-dropdown::after{
        top:calc(50% + 21px);
    }
}

/* Keep the contact button vertically aligned at all desktop header heights. */
.nav-link.cta::after{
    display:none!important;
}

/* ============================================================
   MOBILE MATERIALS DROPDOWN
============================================================ */
@media(max-width:1180px){
    .nav-dropdown-trigger{
        display:flex;
        justify-content:space-between;
        gap:15px;
    }

    .nav-caret{
        width:8px;
        height:8px;
        margin-right:5px;
        border-right:1.5px solid currentColor;
        border-bottom:1.5px solid currentColor;
        transform:rotate(45deg);
    }

    .main-nav .dropdown{
        width:100%;
        min-width:0;
        margin:0;
        padding:0 0 7px 13px;
        border:0;
        border-left:3px solid var(--orange);
        background:#111314;
    }

    .main-nav .dropdown a{
        display:block;
        padding:11px 13px;
        border:0;
        border-bottom:1px solid rgba(255,255,255,.08);
        background:transparent;
        color:#e3e5e6;
        font-size:12px;
        font-weight:750;
        text-decoration:none;
    }

    .main-nav .dropdown a::after{
        display:none!important;
        content:none!important;
    }

    .main-nav .dropdown a:hover,
    .main-nav .dropdown a:focus-visible{
        background:rgba(255,255,255,.05);
        color:var(--orange);
    }

    .nav-contact-item .cta{
        margin-left:0;
        margin-top:7px;
        justify-content:center;
    }
}


/* ============================================================
   REQUEST ACCOUNT — NEXT STEPS
   Uses the same styling system as the other application panels.
============================================================ */
.account-access-panel .account-access-message{
    padding:24px 26px;
    border-top:0;
    background:#fff;
}

.account-access-panel .account-access-message strong{
    display:block;
    margin:0 0 7px;
    color:#17191a;
    font-size:14px;
    font-weight:850;
}

.account-access-panel .account-access-message p{
    max-width:920px;
    margin:0;
    color:#687075;
    font-size:13px;
    line-height:1.65;
}

.account-access-panel .account-access-message::before{
    content:"";
    display:block;
    width:40px;
    height:3px;
    margin-bottom:15px;
    background:var(--orange);
}

@media(max-width:700px){
    .account-access-panel .account-access-message{
        padding:20px 18px;
    }
}


/* ============================================================
   DYNAMIC BRAND COLOUR & INTERNAL HERO IMAGERY
============================================================ */
.page-hero{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:
      linear-gradient(90deg,rgba(6,7,8,.96),rgba(6,7,8,.78) 55%,rgba(6,7,8,.42)),
      var(--page-hero-image);
    background-position:center;
    background-size:cover;
}

.page-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    opacity:.25;
    background-image:
      linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
    background-size:44px 44px;
}

.page-hero::after{
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:34%;
    height:5px;
    background:var(--orange);
}

.btn,
.nav-link.cta,
.contact-form-footer .btn,
.account-form-actions button,
.application-submit button{
    background-color:var(--orange);
}

/* ============================================================
   PEOPLE CATEGORY SECTIONS
============================================================ */
.people-category-section{
    margin:0 0 56px;
}

.people-category-heading{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:20px;
    padding-bottom:12px;
    border-bottom:3px solid #151718;
}

.people-category-heading h2{
    margin:0;
    font-size:clamp(28px,3vw,42px);
    line-height:1;
    text-transform:uppercase;
}

.people-category-heading span{
    color:var(--orange);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
}

/* ============================================================
   CREDIT ACCOUNT PUBLIC FORM
============================================================ */
.credit-account-page{
    padding:55px 0 88px;
    background:#eef0f1;
}

.credit-form{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.credit-panel{
    border:1px solid #d3d8da;
    background:#fff;
}

.credit-panel.full{
    grid-column:1/-1;
}

.credit-panel-heading{
    display:flex;
    align-items:center;
    gap:13px;
    padding:13px 17px;
    background:#0b0d0e;
    color:#fff;
}

.credit-panel-heading span{
    color:var(--orange);
    font-size:18px;
    font-weight:900;
}

.credit-panel-heading h2{
    margin:0;
    font-size:18px;
    text-transform:uppercase;
}

.credit-panel-body{
    padding:22px;
}

.credit-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
}

.credit-grid .full{
    grid-column:1/-1;
}

.credit-grid label{
    font-size:12px;
    font-weight:800;
}

.credit-grid input,
.credit-grid select,
.credit-grid textarea{
    display:block;
    width:100%;
    min-height:44px;
    margin-top:6px;
    padding:10px 12px;
    border:1px solid #bbc1c5;
    border-radius:0;
    background:#fff;
    font-size:16px;
}

.credit-info-box{
    padding:18px;
    border-left:4px solid var(--orange);
    background:#f2f3f3;
}

.credit-declaration{
    line-height:1.6;
}

.credit-submit{
    grid-column:1/-1;
    display:flex;
    justify-content:flex-end;
}

.credit-submit button{
    min-height:50px;
    padding:0 24px;
    border:0;
    background:var(--orange);
    color:#fff;
    cursor:pointer;
    font-weight:900;
    text-transform:uppercase;
}

@media(max-width:800px){
    .credit-form,
    .credit-grid{
        grid-template-columns:1fr;
    }
    .credit-panel.full,
    .credit-grid .full{
        grid-column:auto;
    }
}


/* ============================================================
   DYNAMIC PUBLIC BRAND COLOUR — RESTORE
============================================================ */
.header-logo .logo-0,
.brand-logo .logo-0,
.logo-part.logo-0{
    fill:var(--orange)!important;
}

.brand-copy .agg,
.kicker,
.application-panel-heading>span,
.credit-panel-heading span{
    color:var(--orange)!important;
}

.brand-copy .tag::before,
.brand-copy .tag::after,
.hero h1::after,
.page-hero::after{
    background:var(--orange)!important;
}

.nav-link.cta,
.btn,
.account-form-actions button,
.application-submit button,
.credit-submit button,
.contact-form-footer .btn{
    border-color:var(--orange)!important;
    background-color:var(--orange)!important;
}

.dropdown,
.application-panel input:focus,
.application-panel select:focus,
.application-panel textarea:focus{
    border-color:var(--orange)!important;
}


/* ============================================================
   CONTACT PAGE — DYNAMIC LOGO COLOUR & CLIPPED SHEEN
============================================================ */
.contact-animated-logo .contact-logo-right{
    fill:var(--orange)!important;
}

.contact-animated-logo .contact-logo-left{
    fill:#5a5d60!important;
}

/* Retire the former HTML sheen, which crossed the complete logo box. */
.contact-logo-sheen{
    display:none!important;
}

.contact-logo-svg-sweep{
    pointer-events:none;
    mix-blend-mode:screen;
}

.contact-logo-sweep-rect{
    opacity:.76;
}

@media(prefers-reduced-motion:reduce){
    .contact-logo-svg-sweep{
        display:none;
    }
}

/* Drawn signature field: follows the existing credit form styling. */
.signature-field{display:block;align-self:start}.signature-label{display:block;font-weight:700;margin-bottom:8px}.signature-pad-wrap{display:block;width:100%;height:180px!important;min-height:0!important;max-height:180px!important;overflow:hidden;background:#fff;border:1px solid #cfcfcf}.signature-pad{display:block;width:100%!important;height:178px!important;min-height:178px!important;max-height:178px!important;touch-action:none;cursor:crosshair}.signature-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:.9rem}.signature-clear{appearance:none;border:1px solid #333;background:#fff;color:#222;padding:8px 13px;font:inherit;font-weight:700;cursor:pointer}.signature-error{color:#9f1c1c;font-weight:700;margin:8px 0 0}.credit-admin-signature{display:block;max-width:460px;width:100%;height:auto;background:#fff;border:1px solid #ddd;padding:10px;margin-top:6px}

/* v1.1.2 exact supplied Avon SVG mark */
.brand-logo,.cookie-consent-logo,.contact-animated-logo{object-fit:contain}
@media(max-width:800px){.signature-pad-wrap{height:150px!important;max-height:150px!important}.signature-pad{height:148px!important;min-height:148px!important;max-height:148px!important}}


/* ============================================================
   v1.1.3 CREDIT ACCOUNT DECLARATION POLISH
   Scoped to the existing credit form; preserves the site design.
============================================================ */
.credit-declaration > p.full{
    margin:0 0 10px;
    color:#24282b;
}

.signature-label{
    margin-bottom:9px;
    font-size:12px;
    font-weight:800;
}

.signature-pad-wrap{
    border:1px solid #b8bec2;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.025);
}

.signature-actions{
    gap:9px;
    margin-top:10px;
}

.signature-clear,
.signature-status{
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 13px;
    border:0;
    border-radius:2px;
    font-size:12px;
    font-weight:800;
    line-height:1;
}

.signature-clear{
    background:#eef0f1;
    color:#202427;
    transition:background-color .18s ease,color .18s ease;
}

.signature-clear:hover,
.signature-clear:focus-visible{
    background:#dfe3e5;
}

.signature-status{
    background:#eceeef;
    color:#70767a;
    transition:background-color .18s ease,color .18s ease;
}

.signature-status.is-signed{
    background:var(--orange);
    color:#fff;
}

.signature-status.is-signed::before{
    content:"✓";
    margin-right:6px;
    font-size:13px;
    font-weight:900;
}

.signature-help{
    color:#70767a;
    font-size:11px;
    font-weight:600;
}

.credit-confirmation{
    position:relative;
    display:flex!important;
    align-items:flex-start;
    gap:10px;
    margin-top:4px;
    cursor:pointer;
    font-size:12px!important;
    font-weight:600!important;
    line-height:1.45;
}

/* Prevent the general credit form input rule from creating a giant checkbox. */
.credit-grid .credit-confirmation input[type="checkbox"]{
    position:absolute;
    width:1px!important;
    height:1px!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    opacity:0;
    pointer-events:none;
}

.credit-checkbox{
    position:relative;
    flex:0 0 18px;
    width:18px;
    height:18px;
    margin-top:1px;
    border:1px solid #aeb4b8;
    border-radius:2px;
    background:#fff;
    transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease;
}

.credit-confirmation input[type="checkbox"]:checked + .credit-checkbox{
    border-color:var(--orange);
    background:var(--orange);
}

.credit-confirmation input[type="checkbox"]:checked + .credit-checkbox::after{
    content:"";
    position:absolute;
    left:5px;
    top:2px;
    width:5px;
    height:9px;
    border:solid #fff;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
}

.credit-confirmation input[type="checkbox"]:focus-visible + .credit-checkbox{
    box-shadow:0 0 0 3px rgba(236,66,8,.18);
}

.credit-submit{
    width:calc(50% - 9px);
    margin-left:auto;
}

.credit-submit button{
    width:100%;
    min-height:54px;
    padding:0 26px;
    border-radius:2px;
    box-shadow:0 2px 5px rgba(0,0,0,.08);
    letter-spacing:.02em;
    transition:transform .15s ease,filter .15s ease,box-shadow .15s ease;
}

.credit-submit button:hover,
.credit-submit button:focus-visible{
    filter:brightness(.94);
    box-shadow:0 4px 10px rgba(0,0,0,.12);
}

.credit-submit button:active{
    transform:translateY(1px);
}

@media(max-width:800px){
    .credit-submit{
        width:100%;
        margin-left:0;
    }
    .signature-actions{
        align-items:stretch;
    }
    .signature-help{
        flex-basis:100%;
        padding-top:1px;
    }
}


/* ============================================================
   v1.1.4 GLOBAL COMPANY LOGO CONTROL
   SVG uploads animate automatically; PNG uploads stay static.
============================================================ */
.company-logo-stage{
    position:relative;
    display:inline-grid;
    place-items:center;
    flex:0 0 auto;
    line-height:0;
}
.company-logo-stage>.brand-logo,
.company-logo-stage>.contact-animated-logo,
.company-logo-stage>.cookie-consent-logo{
    position:relative;
    z-index:1;
}
.company-logo-stage.is-custom.is-svg>img{
    animation:companyLogoAutoIn .95s cubic-bezier(.2,.8,.2,1) both;
}
.company-logo-auto-shine{
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    opacity:0;
    background:linear-gradient(112deg,
        transparent 24%,
        rgba(255,255,255,.08) 34%,
        rgba(255,255,255,.86) 49%,
        rgba(255,255,255,.18) 64%,
        transparent 76%);
    background-size:320% 100%;
    background-position:225% 0;
    -webkit-mask-image:var(--company-logo-mask);
    mask-image:var(--company-logo-mask);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
    animation:companyLogoAutoShine 5.7s 1.1s ease-in-out infinite;
}
@keyframes companyLogoAutoIn{
    from{opacity:0;transform:translateX(-24px) scale(.985)}
    to{opacity:1;transform:translateX(0) scale(1)}
}
@keyframes companyLogoAutoShine{
    0%,16%{opacity:0;background-position:225% 0}
    18%{opacity:.9}
    47%{opacity:.9;background-position:-225% 0}
    49%,100%{opacity:0;background-position:-245% 0}
}
@media(prefers-reduced-motion:reduce){
    .company-logo-stage.is-svg>img{animation:none!important;opacity:1!important;transform:none!important}
    .company-logo-auto-shine{display:none!important}
}
