/*
Theme Name: Bratton Richards Institutional v3.0
Theme URI: https://www.brattonrichards.com/
Author: Bratton Richards
Description: Bespoke institutional WordPress theme for Bratton Richards.
Version: 3.0.0
Text Domain: bratton-richards
*/

/* Final v3.0 overrides — intentionally kept as one clean layer above assets/css/site.css. */
:root{
  --oxblood:#150407;
  --br-header-pad:clamp(26px,3vw,54px);
}

html,body{overflow-x:hidden}

/* Institutional header */
.site-header{background:rgba(2,3,3,.975)!important;border-bottom:1px solid rgba(255,255,255,.10)!important;backdrop-filter:blur(18px)}
.header-inner{height:92px!important;padding-left:var(--br-header-pad)!important;padding-right:var(--br-header-pad)!important;gap:22px!important}
.brand-mark{display:flex;align-items:center;flex:0 0 auto;margin:0!important;padding:0!important}
.brand-mark img{display:block;width:clamp(292px,21vw,382px)!important;max-height:54px!important;height:auto!important;object-fit:contain!important;object-position:left center!important;margin:0!important;padding:0!important}
.desktop-primary-nav{display:flex!important;justify-content:flex-end;gap:clamp(8px,.9vw,16px)!important;color:rgba(255,255,255,.80)!important;font-size:clamp(10.5px,.7vw,12px)!important;letter-spacing:.085em!important}
.nav-trigger{padding-left:3px!important;padding-right:3px!important}
.nav-dropdown-right{left:auto!important;right:-20px!important}

/* A slightly stronger desktop hierarchy without disturbing the successful mobile scale. */
@media(min-width:1367px){
  .kicker{font-size:11.5px!important;letter-spacing:.175em!important}
  .lede{font-size:clamp(31px,3.35vw,51px)!important;font-weight:400!important}
}

/* Oxblood readability — apply consistently to every component that can sit on the field. */
.oxblood,.quote-band{background:var(--oxblood)!important;color:#fff!important;border-color:rgba(255,255,255,.14)!important}
.oxblood .kicker,.quote-band .kicker{color:rgba(255,255,255,.72)!important}
.oxblood .lede,.oxblood .display,.oxblood h1,.oxblood h2,.oxblood h3,.oxblood h4,
.quote-band h1,.quote-band h2,.quote-band h3{color:#fff!important}
.oxblood p,.oxblood li,.oxblood .body-copy-rich,.oxblood .body-xl,.oxblood .question-item p,.oxblood .split-item p,
.quote-band p{color:rgba(255,255,255,.90)!important}
.oxblood a,.quote-band a{color:#fff!important}
.oxblood .rule-grid,.oxblood .rule-cell,.oxblood .split-list,.oxblood .split-item{border-color:rgba(255,255,255,.18)!important}

/* Disclaimer identity: slightly smaller on desktop; retain the successful mobile treatment. */
@media(min-width:761px){
  .disclaimer-brand img{width:clamp(285px,24vw,440px)!important;max-height:72px!important}
}

/* Footer — preserve approved six-column composition, with readable type. */
.site-footer{background:#000!important;padding:110px 0 72px!important;border-top:0!important;color:#fff!important}
.footer-wrap{width:84.5%!important;max-width:none!important;margin:0 auto!important;padding:0!important}
.footer-brandline{padding:0!important;border:0!important;margin:0 0 68px!important}
.footer-brandline .footer-logo{width:350px!important;max-width:100%!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;object-fit:contain!important;object-position:left center!important}
.footer-sitemap{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;column-gap:clamp(42px,4vw,82px)!important;row-gap:0!important;padding:0!important;border:0!important;align-items:start!important}
.footer-col h4{font-family:var(--serif)!important;font-size:clamp(21px,1.45vw,27px)!important;line-height:1.15!important;letter-spacing:0!important;text-transform:none!important;color:rgba(255,255,255,.92)!important;font-weight:400!important;margin:0 0 32px!important}
.footer-col a,.footer-access-inline a{display:block!important;color:rgba(255,255,255,.75)!important;font-size:15px!important;line-height:1.55!important;margin:0 0 18px!important;letter-spacing:0!important;text-transform:none!important}
.footer-col a:hover{color:#fff!important}
.footer-access-inline{margin-top:42px!important}
.footer-access-inline span{display:inline-block;margin-right:3px;color:rgba(255,255,255,.72)}
.footer-legal{max-width:none!important;padding:0!important;border:0!important;margin:66px 0 0!important}
.footer-legal h4{font-family:var(--sans)!important;font-weight:400!important;font-size:15px!important;line-height:1.4!important;margin:0 0 22px!important;color:rgba(255,255,255,.82)!important}
.footer-legal h4 a{color:inherit!important;text-decoration:underline!important;text-underline-offset:2px}
.footer-legal p,.footer-bottom{font-size:14px!important;line-height:1.72!important;color:rgba(255,255,255,.66)!important;letter-spacing:0!important;text-transform:none!important}
.footer-legal p{max-width:none!important;margin:0 0 20px!important}
.footer-bottom{display:block!important;padding:0!important;margin:42px 0 0!important}

/* Contact routes: never run labels and long addresses into one another. */
.contact-route-list{margin-top:34px;border-top:1px solid rgba(255,255,255,.28)}
.contact-route{display:grid;grid-template-columns:minmax(150px,.42fr) minmax(0,1fr);gap:28px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.18);align-items:start}
.contact-route-label{font-family:var(--sans);font-size:10px;line-height:1.35;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.contact-route-value{font-size:17px;line-height:1.5;color:#fff;overflow-wrap:anywhere;word-break:normal}

/* White public enquiry forms — exactly the same on Contact and General Enquiries. */
.form{position:relative}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.br-enquiry-card{background:#fff!important;color:#111412!important;border:1px solid rgba(9,12,10,.14)!important;padding:clamp(30px,3.5vw,52px)!important;box-shadow:0 18px 60px rgba(0,0,0,.08)!important}
.br-enquiry-form{color:#111412!important}
.br-enquiry-form .form-row{margin:0 0 24px!important}
.br-enquiry-form label{display:block!important;margin:0 0 9px!important;color:#343936!important;font-family:var(--sans)!important;font-size:10px!important;line-height:1.3!important;letter-spacing:.14em!important;text-transform:uppercase!important}
.br-enquiry-form input,.br-enquiry-form textarea,.br-enquiry-form select{display:block!important;width:100%!important;margin:0!important;border:1px solid #c7cbc8!important;border-radius:0!important;background:#fff!important;color:#101311!important;padding:14px 15px!important;font-family:var(--sans)!important;font-size:16px!important;line-height:1.45!important;outline:none!important;box-shadow:none!important;caret-color:#101311!important}
.br-enquiry-form textarea{min-height:180px!important;resize:vertical!important}
.br-enquiry-form input:focus,.br-enquiry-form textarea:focus,.br-enquiry-form select:focus{border-color:#101311!important;box-shadow:0 0 0 1px #101311!important}
.br-enquiry-form .select-wrap{position:relative}
.br-enquiry-form .select-wrap:after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;border-right:1px solid #222;border-bottom:1px solid #222;transform:translateY(-68%) rotate(45deg);pointer-events:none}
.br-enquiry-form select{appearance:none!important;-webkit-appearance:none!important;padding-right:46px!important}
.br-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.br-form-actions{display:flex;align-items:flex-start;gap:22px;margin-top:8px}
.br-form-actions .br-submit{flex:0 0 auto;margin:0;border:1px solid #101311!important;background:#101311!important;color:#fff!important;padding:16px 23px!important}
.br-form-actions .br-submit:hover,.br-form-actions .br-submit:focus{background:#3a070e!important;border-color:#3a070e!important;color:#fff!important}
.br-form-actions p{margin:1px 0 0;max-width:390px;color:#656b67!important;font-size:12px!important;line-height:1.55!important}
.form-status{margin:0 0 28px;padding:15px 18px;border:1px solid;font-size:14px;line-height:1.55}
.form-status.success{border-color:rgba(23,80,57,.28);background:rgba(23,80,57,.08);color:#17372d}
.form-status.error{border-color:rgba(96,19,27,.30);background:rgba(96,19,27,.07);color:#5b1119}

/* Access gateways — restrained titles, one line at normal device widths. */
.access-hero{padding:clamp(76px,8vw,118px) 0 clamp(64px,7vw,96px)!important}
.access-hero h1{font-size:clamp(42px,4.7vw,70px)!important;line-height:1!important;white-space:nowrap!important}
.access-hero .intro{font-size:clamp(17px,1.45vw,22px)!important;margin-top:26px!important}
.access-status strong{font-size:30px!important}
.access-card input{outline:none}.access-card input:focus{border-bottom-color:rgba(255,255,255,.88)}
.access-button{cursor:pointer!important;color:#fff!important;border-color:rgba(255,255,255,.58)!important;background:rgba(255,255,255,.04)!important}
.access-button:hover,.access-button:focus{background:#fff!important;color:#0a0c0e!important;border-color:#fff!important}
.access-button.is-validating{pointer-events:none;opacity:.72}

/* Legal system */
.legal-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:10px 0 46px;border-top:1px solid rgba(3,4,5,.16);border-left:1px solid rgba(3,4,5,.16)}
.legal-index a{display:flex;align-items:flex-start;gap:13px;min-height:74px;padding:17px 18px;border-right:1px solid rgba(3,4,5,.16);border-bottom:1px solid rgba(3,4,5,.16);color:#171a18!important;text-decoration:none!important;font-family:var(--sans);font-size:13px;line-height:1.4}
.legal-index a:hover{background:rgba(7,21,15,.035)}.legal-index a span{font-size:9px;letter-spacing:.13em;color:#68706b;margin-top:3px}
.legal-callout{margin:0 0 48px;padding:26px 30px 27px;border-left:3px solid #173b2e;background:#e8ece7}
.legal-callout strong{display:block;font-family:var(--serif);font-size:25px;font-weight:400;margin-bottom:8px;color:#0c100e}
.legal-callout p{margin:0!important;max-width:900px!important}
.legal-subgrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:26px 0 34px;background:rgba(3,4,5,.14);border:1px solid rgba(3,4,5,.14)}
.legal-subgrid>div{background:var(--paper);padding:25px 27px 26px}.legal-subgrid h3{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1.15;margin:0 0 12px;color:#101310}.legal-subgrid p{font-size:15px!important;line-height:1.72!important;margin:0!important}
.legal-document h3{font-family:var(--serif);font-size:clamp(22px,2.1vw,30px);font-weight:400;line-height:1.15;margin:36px 0 14px;color:#111411}
.regulatory-note-section{background:#f0f0ec!important;border-top:1px solid rgba(3,4,5,.08)!important;border-bottom:1px solid rgba(3,4,5,.08)!important}

/* Mobile/tablet navigation: one implementation, shared by every page. */
.mobile-nav-shell{display:none}
.mobile-nav-state{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

@media(max-width:1366px){
  /* Disable backdrop-filter on the ancestor: Safari can otherwise treat it as the containing block for the fixed overlay. */
  .site-header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#020303!important}
  .header-inner{height:84px!important;padding-left:clamp(24px,4vw,48px)!important;padding-right:clamp(24px,4vw,48px)!important}
  .brand-mark img{width:min(310px,58vw)!important;max-height:46px!important}
  .desktop-primary-nav{display:none!important}
  .mobile-nav-shell{display:flex!important;align-items:center!important;margin-left:auto!important}
  .mobile-nav-toggle{display:flex!important;align-items:center!important;gap:13px!important;color:#fff!important;padding:14px 0 14px 18px!important;cursor:pointer!important;-webkit-tap-highlight-color:transparent!important;user-select:none!important}
  .mobile-nav-label{font-family:var(--sans)!important;font-size:10px!important;line-height:1!important;letter-spacing:.15em!important;text-transform:uppercase!important}
  .mobile-nav-icon{display:block!important;position:relative!important;width:30px!important;height:18px!important}
  .mobile-nav-icon i{position:absolute!important;right:0!important;width:30px!important;height:1px!important;background:#fff!important}
  .mobile-nav-icon i:first-child{top:4px!important}.mobile-nav-icon i:last-child{bottom:4px!important}
  .mobile-nav-panel{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column!important;background:#020303!important;color:#fff!important;z-index:2147483000!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(-6px)!important;transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s!important;overflow:hidden!important}
  .mobile-nav-state:checked ~ .mobile-nav-panel{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;transition-delay:0s!important}
  .mobile-nav-panel-head{display:flex!important;align-items:center!important;justify-content:space-between!important;flex:0 0 84px!important;min-height:84px!important;padding:0 clamp(24px,4vw,48px)!important;border-bottom:1px solid rgba(255,255,255,.12)!important;background:#020303!important}
  .mobile-nav-panel-brand{display:flex!important;align-items:center!important;min-width:0!important}
  .mobile-nav-panel-brand img{display:block!important;width:min(310px,58vw)!important;max-height:46px!important;height:auto!important;object-fit:contain!important;object-position:left center!important}
  .mobile-nav-panel-close{display:flex!important;align-items:center!important;gap:13px!important;padding:14px 0 14px 18px!important;color:#fff!important;font-family:var(--sans)!important;font-size:10px!important;line-height:1!important;letter-spacing:.15em!important;text-transform:uppercase!important;cursor:pointer!important;-webkit-tap-highlight-color:transparent!important;white-space:nowrap!important}
  .mobile-nav-panel-close i{display:block!important;position:relative!important;width:28px!important;height:28px!important;flex:0 0 28px!important}
  .mobile-nav-panel-close i:before,.mobile-nav-panel-close i:after{content:""!important;position:absolute!important;left:13px!important;top:3px!important;width:1px!important;height:22px!important;background:#fff!important}
  .mobile-nav-panel-close i:before{transform:rotate(45deg)!important}.mobile-nav-panel-close i:after{transform:rotate(-45deg)!important}
  .mobile-nav-panel-body{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;padding:18px clamp(24px,4vw,48px) calc(56px + env(safe-area-inset-bottom))!important;background:#020303!important}
  .mobile-nav-group{margin:0!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.13)!important;background:transparent!important}
  .mobile-nav-group>summary{list-style:none!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;padding:24px 4px!important;color:#fff!important;font-family:var(--serif)!important;font-size:clamp(28px,4.2vw,44px)!important;font-weight:400!important;line-height:1.04!important;letter-spacing:-.02em!important;cursor:pointer!important;-webkit-tap-highlight-color:transparent!important}
  .mobile-nav-group>summary::-webkit-details-marker{display:none!important}
  .mobile-nav-group>summary:after{content:"";display:block;flex:0 0 11px;width:11px;height:11px;border-right:1px solid rgba(255,255,255,.72);border-bottom:1px solid rgba(255,255,255,.72);transform:rotate(45deg) translateY(-3px);transition:transform .18s ease}
  .mobile-nav-group[open]>summary:after{transform:rotate(225deg) translate(-2px,-2px)}
  .mobile-nav-links{padding:0 4px 22px!important}
  .mobile-nav-links a{display:block!important;padding:9px 0!important;color:rgba(255,255,255,.70)!important;font-family:var(--sans)!important;font-size:14px!important;line-height:1.4!important;letter-spacing:.015em!important;text-transform:none!important}
  .mobile-nav-links a:hover,.mobile-nav-links a:focus{color:#fff!important}
  html.br-mobile-nav-open,body.br-mobile-nav-open{overflow:hidden!important;overscroll-behavior:none!important}
  .contact-grid{grid-template-columns:1fr!important;gap:64px!important}
  .contact-route{display:block!important;padding:17px 0 18px!important}
  .contact-route-label{display:block!important;margin:0 0 7px!important}
  .contact-route-value{display:block!important;width:100%!important;font-size:17px!important;overflow-wrap:anywhere!important}
  .footer-wrap{width:88%!important}
  .footer-sitemap{grid-template-columns:repeat(3,1fr)!important;gap:48px 60px!important}
  .legal-index{grid-template-columns:1fr 1fr!important}
  .legal-subgrid{grid-template-columns:1fr!important}
}

@media(max-width:760px){
  body{font-size:16.5px}
  .header-inner{height:74px!important;padding-left:22px!important;padding-right:22px!important}
  .brand-mark img{width:min(230px,61vw)!important;max-height:38px!important}
  .mobile-nav-toggle{gap:10px!important;padding-left:12px!important}
  .mobile-nav-label{font-size:9px!important}
  .mobile-nav-icon{width:27px!important}.mobile-nav-icon i{width:27px!important}
  .mobile-nav-panel-head{flex-basis:74px!important;min-height:74px!important;padding:0 22px!important}
  .mobile-nav-panel-brand img{width:min(230px,61vw)!important;max-height:38px!important}
  .mobile-nav-panel-close{font-size:9px!important;gap:10px!important;padding-left:12px!important}
  .mobile-nav-panel-close i{width:24px!important;height:24px!important;flex-basis:24px!important}
  .mobile-nav-panel-close i:before,.mobile-nav-panel-close i:after{left:11px!important;top:2px!important;height:20px!important}
  .mobile-nav-panel-body{padding:12px 22px calc(50px + env(safe-area-inset-bottom))!important}
  .mobile-nav-group>summary{font-size:clamp(27px,7.5vw,34px)!important;padding:20px 2px!important}
  .mobile-nav-links{padding-left:2px!important;padding-right:2px!important}
  .mobile-nav-links a{font-size:14px!important;padding:8px 0!important}
  .br-enquiry-card{padding:26px 20px!important}
  .br-form-grid{grid-template-columns:1fr!important;gap:0!important}
  .br-form-actions{display:block!important}.br-form-actions .br-submit{width:100%!important;justify-content:center!important}.br-form-actions p{max-width:none!important;margin-top:16px!important}
  .access-hero{padding:68px 0 58px!important}.access-hero h1{font-size:clamp(38px,10.5vw,51px)!important;white-space:nowrap!important}.access-hero .intro{font-size:17px!important}
  .site-footer{padding:72px 0 48px!important}.footer-wrap{width:auto!important;margin:0!important;padding-inline:var(--pad)!important}.footer-brandline{margin-bottom:52px!important}.footer-brandline .footer-logo{width:min(350px,82vw)!important}.footer-sitemap{grid-template-columns:1fr 1fr!important;gap:40px 30px!important}.footer-col h4{font-size:23px!important;margin-bottom:24px!important}.footer-col a,.footer-access-inline a{font-size:15px!important;margin-bottom:14px!important}.footer-access-inline{margin-top:30px!important}.footer-legal{margin-top:56px!important}.footer-legal p,.footer-bottom{font-size:13px!important;line-height:1.72!important}
  .legal-index{grid-template-columns:1fr!important}.legal-index a{min-height:auto!important}.legal-callout{padding:22px!important}
}

@media(max-width:520px){
  .footer-sitemap{grid-template-columns:1fr!important}
  .mobile-nav-label{display:inline!important}
}
