@import url("https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600;700&display=swap");

:root { --red:#d02c2f; --black:#1c1c1c; --white:#fff; --line:rgba(28,28,28,.18); --shell:min(1440px,calc(100vw - 96px)); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--black); }
body { margin:0; background:var(--white); color:var(--black); font-family:"Figtree",Arial,sans-serif; font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
p,h1,h2,h3,h4 { margin:0; }
.skipLink { position:fixed; z-index:100; top:12px; left:12px; padding:10px 14px; background:var(--white); color:var(--black); font-size:14px; transform:translateY(-160%); transition:transform 150ms ease; }
.skipLink:focus { transform:translateY(0); }
main:focus { outline:none; }
a:focus-visible,summary:focus-visible { outline:2px solid #ef6568; outline-offset:4px; }
.shell { width:var(--shell); margin-inline:auto; }
.section { padding-block:132px; }
.eyebrow,.sectionNumber,.wireLabel { font-size:12px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow.light { color:rgba(255,255,255,.66); }

.hero { position:relative; min-height:100svh; overflow:hidden; background:#090909; color:var(--white); }
.heroImage,.heroShade { position:absolute; inset:0; }
.heroImage { background:url("/assets/hidcot-vault.jpg") center 44%/cover no-repeat; filter:contrast(1.07) saturate(.9); transform:scale(1.015); animation:settle 1.8s cubic-bezier(.2,.7,.2,1) both; }
.heroShade { background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.55) 43%,rgba(0,0,0,.06) 75%),linear-gradient(180deg,rgba(0,0,0,.52) 0%,transparent 28%,rgba(0,0,0,.36) 100%); }
.siteHeader { position:relative; z-index:4; height:112px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid rgba(255,255,255,.25); }
.logoCrop { position:relative; display:block; width:160px; height:36px; overflow:hidden; }
.logoCrop img { position:absolute; width:203px; max-width:none; left:-22px; top:-22px; }
.desktopNav { display:flex; gap:38px; font-size:14px; }
.desktopNav a,.headerContact,.textLink,.footer a { transition:color 180ms ease; }
.desktopNav a:hover,.headerContact:hover,.footer a:hover { color:#ef6568; }
.headerContact { justify-self:end; display:flex; gap:14px; align-items:center; font-size:14px; }
.mobileMenu { display:none; }
.heroContent { position:relative; z-index:2; min-height:calc(100svh - 112px); padding-top:clamp(90px,14vh,170px); padding-bottom:108px; }
.heroContent h1 { margin-top:26px; max-width:850px; font-size:clamp(66px,8.6vw,138px); font-weight:500; letter-spacing:-.064em; line-height:.83; }
.heroContent h1 span { color:var(--red); }
.heroLower { margin-top:clamp(65px,9vh,120px); display:grid; grid-template-columns:minmax(300px,450px) auto; align-items:end; gap:80px; }
.heroLower>p { max-width:430px; color:rgba(255,255,255,.78); font-size:clamp(17px,1.35vw,21px); font-weight:300; line-height:1.5; }
.textLink { display:flex; align-items:center; gap:28px; padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,.6); font-size:13px; }
.textLink:hover { color:#ef6568; border-color:#ef6568; }
.heroIndex { position:absolute; z-index:3; right:28px; top:50%; display:flex; align-items:center; gap:30px; color:rgba(255,255,255,.55); font-size:9px; letter-spacing:.17em; text-transform:uppercase; transform:rotate(90deg) translateX(50%); transform-origin:right center; }

.brandRail { min-height:108px; display:grid; grid-template-columns:max(170px,calc((100vw - var(--shell))/2 + 130px)) minmax(0,1fr); align-items:stretch; overflow:hidden; background:var(--white); border-bottom:1px solid var(--line); }
.brandRail:has(+ .patternDivider) { border-bottom:0; }
.brandRailLabel { display:flex; align-items:center; padding-left:max(48px,calc((100vw - var(--shell))/2)); border-right:1px solid var(--line); }
.brandRailViewport { position:relative; min-width:0; overflow:hidden; }
.brandRailViewport::before,.brandRailViewport::after { content:""; position:absolute; z-index:2; top:0; bottom:0; width:72px; pointer-events:none; }
.brandRailViewport::before { left:0; background:linear-gradient(90deg,var(--white),transparent); }
.brandRailViewport::after { right:0; background:linear-gradient(270deg,var(--white),transparent); }
.brandRailTrack { width:max-content; display:flex; animation:brandScroll 30s linear infinite; }
.brandRailViewport:hover .brandRailTrack { animation-play-state:paused; }
.brandRailGroup { display:flex; align-items:center; gap:clamp(76px,7vw,132px); padding:12px clamp(76px,7vw,132px) 12px 76px; }
.brandLogo { position:relative; height:84px; display:flex; align-items:center; justify-content:center; flex:none; }
.brandLogo img { display:block; width:auto; height:auto; max-width:100%; max-height:58px; object-fit:contain; filter:none; opacity:1; }
.brandLogoAi { width:235px; }
.brandLogoRedbills { width:205px; }
.brandLogoBlack { width:170px; }
.brandLogoBlack img { border:1px solid var(--black); }
.brandLogoSentry { width:300px; }
.brandLogoSanction { width:360px; }
.assuranceLogo { width:clamp(100px,10vw,150px); }
.assuranceLogo img { max-height:68px; }
.brandRegistration { position:absolute; font-size:10px; font-weight:600; line-height:1; }
.brandLogoAi .brandRegistration { top:12px; left:calc(100% - 8px); color:#141419; font-size:11px; }
.brandLogoBlack .brandRegistration { top:10px; left:140px; color:#141419; }

.assurance { padding-block:112px; background:#f3f1ed; border-top:1px solid var(--line); }
.assuranceGrid { display:grid; grid-template-columns:minmax(320px,.82fr) 1.18fr; gap:clamp(70px,9vw,150px); align-items:end; }
.assuranceCopy h2 { max-width:570px; margin-top:28px; font-size:clamp(44px,5vw,76px); font-weight:500; letter-spacing:-.05em; line-height:.98; }
.assuranceCopy>p:last-child { max-width:470px; margin-top:30px; color:#5f5f5f; font-size:16px; line-height:1.65; }
.assuranceMarks { display:grid; grid-template-columns:repeat(3,minmax(90px,1fr)); align-items:center; gap:44px 54px; padding:48px; background:var(--white); border:1px solid var(--line); }
.assuranceMarks img { display:block; width:100%; height:76px; object-fit:contain; filter:none; opacity:1; }
.assuranceMarks .takeFiveMark { height:62px; }

.sectionRule { display:flex; justify-content:space-between; padding-top:16px; border-top:1px solid var(--red); }
.sectionNumber { color:#8d8d8d; }
.statement { padding-block:80px; position:relative; isolation:isolate; overflow:hidden; background:#101112; color:var(--white); }
.statementBackdrop { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.statement::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.65) 28%,rgba(0,0,0,.4) 43%,rgba(0,0,0,.78) 58%,rgba(0,0,0,.78)),linear-gradient(180deg,transparent,rgba(0,0,0,.35)); }
.statementBackdrop,.capabilityBackdrop img { filter:brightness(1.45) saturate(1.8); }
.statementGrid { display:grid; grid-template-columns:1fr 1fr; gap:80px; text-shadow:0 2px 12px rgba(0,0,0,.6); }
.statement h2,.portfolioHeading h2,.contact h2 { font-size:clamp(48px,6.3vw,102px); font-weight:500; letter-spacing:-.055em; line-height:.96; }
.statementCopy { padding-top:8px; max-width:600px; }
.statementCopy .lead { margin-bottom:52px; font-size:clamp(24px,2.1vw,34px); font-weight:400; letter-spacing:-.025em; line-height:1.24; }
.statementCopy>p:not(.lead) { max-width:485px; color:rgba(255,255,255,.95); font-size:17px; line-height:1.65; }

.headingWithAngle { --angle-inset:42px; --angle-size:76px; --angle-stroke:10px; position:relative; padding-top:var(--angle-inset); padding-left:var(--angle-inset); }
.angleMark { position:absolute; top:0; left:0; width:var(--angle-size); height:var(--angle-size); border-top:var(--angle-stroke) solid var(--red); border-left:var(--angle-stroke) solid var(--red); }


.capabilities { position:relative; isolation:isolate; overflow:hidden; background:var(--black); color:var(--white); }
.capabilityBackdrop { position:absolute; z-index:-1; inset:0; }
.capabilityBackdrop img { width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.capabilityBackdrop::after { content:""; position:absolute; inset:0; background:rgba(28,28,28,.4); }
.sectionRule.inverse { border-color:rgba(255,255,255,.32); }
.capabilities > .section { padding-block:24px; }
.capabilityList { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.capability { background:rgba(18,18,20,.78); display:flex; flex-direction:column; padding:28px 42px 44px; text-shadow:0 2px 12px rgba(0,0,0,.6); }
.capabilityTop { display:flex; justify-content:space-between; gap:30px; color:rgba(255,255,255,.52); font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.capNumber { color:var(--red); }
.capabilityContent { padding-top:36px; }
.capability h3 { max-width:560px; font-size:clamp(38px,3.5vw,58px); font-weight:500; letter-spacing:-.045em; line-height:1; }
.capabilityContent>p { max-width:520px; margin-top:25px; color:rgba(255,255,255,.95); font-size:16px; line-height:1.68; }
.serviceList { display:flex; flex-wrap:wrap; gap:10px 20px; margin:34px 0 0; padding:0; list-style:none; }
.serviceList li { color:rgba(255,255,255,.95); font-size:11px; letter-spacing:.075em; text-transform:uppercase; }
.operatingSection { background:#121315; color:var(--white); }
.operatingModel { display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(60px,8vw,130px); }
.operatingModelIntro h2 { max-width:620px; margin-top:38px; font-size:clamp(38px,4vw,64px); font-weight:500; letter-spacing:-.05em; line-height:1.02; }
.operatingModelIntro>p:last-child { max-width:500px; margin-top:34px; color:rgba(255,255,255,.7); font-size:16px; line-height:1.7; }
.operatingSteps { border-top:1px solid rgba(255,255,255,.22); }
.operatingStep { display:grid; grid-template-columns:44px minmax(150px,.75fr) 1.25fr; gap:24px; padding:29px 0; border-bottom:1px solid rgba(255,255,255,.22); }
.stepNumber { color:var(--red); font-size:11px; letter-spacing:.1em; }
.operatingStep h4 { font-size:17px; font-weight:500; }
.operatingStep>p:last-child { color:rgba(255,255,255,.67); font-size:14px; line-height:1.65; }
.patternDivider { position:relative; height:40px; background-color:#e2e2e2; background-image:url("/assets/hidcot-pattern-light.svg"); background-position:center; background-repeat:repeat-x; background-size:38.5px 40px; }

.patternDivider::before { content:""; position:absolute; inset:0 0 auto; height:2px; background:var(--white); pointer-events:none; }

.portfolioHeading { display:grid; grid-template-columns:1.5fr .5fr; gap:80px; align-items:end; margin-top:104px; }
.portfolioHeading>p { max-width:360px; color:#686868; line-height:1.65; }
.portfolioGrid { display:grid; grid-template-columns:repeat(6,1fr); gap:1px; margin-top:100px; background:var(--line); border:1px solid var(--line); }
.portfolioCard { position:relative; grid-column:span 2; display:grid; grid-template-rows:auto auto; align-content:start; row-gap:28px; padding:28px; background:var(--white); transition:background-color 180ms ease,color 180ms ease; }
.portfolioCard:nth-child(n+4) { grid-column:span 3; }
.portfolioCard::after { content:""; position:absolute; top:-1px; right:-1px; width:34px; height:6px; background:var(--red); }
.cardTop { display:flex; justify-content:space-between; font-size:12px; }
.portfolioCardBody { align-self:start; display:grid; grid-template-rows:112px 38px 42px minmax(88px,auto); }
.portfolioMark { height:88px; display:flex; align-items:center; padding-bottom:24px; border-bottom:1px solid var(--line); }
.portfolioMark img { display:block; max-width:100%; max-height:62px; width:auto; object-fit:contain; object-position:left center; }
.portfolioMarkAi img { max-width:190px; }
.portfolioMarkRedbills img { max-width:185px; }
.portfolioMarkSanction img { max-width:250px; }
.portfolioMarkSentry img { max-width:245px; }
.portfolioMarkBlack img { max-width:160px; border:1px solid var(--black); }
.wireLabel { align-self:end; margin:0 0 12px; color:var(--red); }
.portfolioCard h3 { font-size:28px; font-weight:500; letter-spacing:-.03em; }
.portfolioCardBody>p:last-child { margin-top:12px; color:#626262; font-size:14px; line-height:1.55; transition:color 180ms ease; }
.portfolioCard:hover { background:var(--red); color:var(--white); }
.portfolioCard:hover::after { background:var(--black); }
.portfolioCard:hover .wireLabel,.portfolioCard:hover .portfolioCardBody>p:last-child { color:var(--white); }
.portfolioCard:hover .portfolioMark { border-color:rgba(255,255,255,.48); }
.portfolioCard:hover .portfolioMark img { filter:none; mix-blend-mode:multiply; }
.portfolioCard:hover .portfolioMarkSentry img { filter:none; mix-blend-mode:normal; opacity:1; }
.portfolioCard:hover .portfolioMarkBlack img { border-color:var(--white); }

.contact { background:var(--red); color:var(--white); }
.contact .sectionRule { border-color:rgba(255,255,255,.55); }
.contact .sectionNumber { color:rgba(255,255,255,.6); }
.contactGrid { display:grid; grid-template-columns:1.4fr .6fr; gap:80px; align-items:end; margin-top:104px; }
.contactAside>p:first-child { max-width:380px; color:rgba(255,255,255,.78); line-height:1.65; }
.contactAssurance { max-width:380px; margin-top:18px; color:rgba(255,255,255,.68); font-size:14px; line-height:1.55; }
.contactLink { display:flex; justify-content:space-between; margin-top:50px; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,.7); font-size:18px; }

.footer { padding-block:54px; background:var(--black); color:var(--white); }
.footerGrid { display:grid; grid-template-columns:1fr 1fr 1fr; align-items:end; gap:30px; }
.footerLogo { width:122px; height:28px; }
.footerLogo img { width:155px; left:-17px; top:-17px; }
.footerStatement,.footerRight { color:rgba(255,255,255,.58); font-size:12px; letter-spacing:.075em; text-transform:uppercase; }
.footerStatement nav { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:16px; color:rgba(255,255,255,.8); font-size:11px; }
.footerRight { display:flex; justify-content:flex-end; gap:34px; }

@keyframes settle { from { opacity:.3; transform:scale(1.08); } to { opacity:1; transform:scale(1.015); } }
@keyframes brandScroll { to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .heroImage,.brandRailTrack { animation:none; }
  .brandRailViewport { overflow-x:auto; }
  .brandRailGroup[aria-hidden="true"] { display:none; }
}
@media (max-width:900px) {
  :root { --shell:calc(100vw - 40px); }
  .section { padding-block:76px; }
  .desktopNav,.headerContact,.heroIndex { display:none; }
  .siteHeader { height:88px; grid-template-columns:1fr auto; }
  .mobileMenu { display:block; justify-self:end; }
  .mobileMenu summary { list-style:none; cursor:pointer; font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
  .mobileMenu summary::-webkit-details-marker { display:none; }
  .mobileMenu[open] nav { position:absolute; top:89px; left:-20px; right:-20px; display:grid; padding:24px 20px 32px; background:var(--black); border-bottom:1px solid rgba(255,255,255,.2); }
  .mobileMenu nav a { padding:12px 0; font-size:18px; }
  .heroContent { min-height:calc(100svh - 88px); padding-top:clamp(70px,12vh,120px); padding-bottom:70px; }
  .heroContent h1 { max-width:760px; font-size:clamp(58px,15vw,104px); }
  .heroLower { grid-template-columns:1fr; gap:40px; margin-top:70px; }
  .textLink { width:max-content; }
  .brandRail { min-height:96px; grid-template-columns:130px minmax(0,1fr); }
  .brandRailLabel { padding-left:20px; }
  .brandRailGroup { gap:64px; padding:10px 64px; }
  .brandLogo { height:76px; }
  .brandLogo img { max-height:62px; }
  .brandLogoAi { width:188px; }
  .brandLogoRedbills { width:164px; }
  .brandLogoBlack { width:136px; }
  .brandLogoSentry { width:240px; }
  .brandLogoSanction { width:288px; }
  .brandRegistration { font-size:8px; }
  .brandLogoAi .brandRegistration { top:14px; left:calc(100% - 7px); font-size:9px; }
  .brandLogoBlack .brandRegistration { top:9px; left:114px; }
  .assuranceGrid { grid-template-columns:1fr; gap:50px; }
  .assuranceMarks { grid-template-columns:repeat(3,1fr); gap:34px 42px; }
  .statementGrid,.portfolioHeading,.contactGrid { grid-template-columns:1fr; gap:50px; margin-top:70px; }
  .statement { padding-block:48px; }
  .statement::after { background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.82)); }
  .statementGrid { margin-top:0; }
  .headingWithAngle { --angle-inset:34px; --angle-size:68px; --angle-stroke:9px; }
  .statementCopy { padding-top:0; }
  .capabilityList { grid-template-columns:1fr; }
  .capability { padding:24px 30px 36px; }
  .capabilityContent { padding-top:28px; }
  .operatingModel { grid-template-columns:1fr; gap:60px; }
  .portfolioGrid { grid-template-columns:1fr; margin-top:70px; }
  .portfolioCard,.portfolioCard:nth-child(n+4) { grid-column:auto; }
  .footerGrid { grid-template-columns:1fr; gap:42px; }
  .footerRight { justify-content:flex-start; }
}
@media (max-width:560px) {
  .logoCrop { width:142px; height:32px; }
  .logoCrop img { width:181px; left:-20px; top:-20px; }
  .heroImage { background-position:60% center; }
  .heroShade { background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.22)),linear-gradient(180deg,rgba(0,0,0,.45),transparent 35%,rgba(0,0,0,.5)); }
  .heroLower>p { font-size:16px; }
  .brandRail { min-height:88px; grid-template-columns:104px minmax(0,1fr); }
  .brandRailLabel { padding-left:20px; }
  .brandRailLabel .eyebrow { max-width:52px; line-height:1.45; }
  .brandRailViewport::before,.brandRailViewport::after { width:32px; }
  .brandRailGroup { gap:48px; padding:8px 48px; }
  .brandLogo { height:72px; }
  .brandLogo img { max-height:58px; }
  .brandLogoAi { width:165px; }
  .brandLogoRedbills { width:145px; }
  .brandLogoBlack { width:120px; }
  .brandLogoSentry { width:210px; }
  .brandLogoSanction { width:250px; }
  .brandRegistration { font-size:7px; }
  .brandLogoAi .brandRegistration { top:15px; left:calc(100% - 6px); font-size:8px; }
  .brandLogoBlack .brandRegistration { top:8px; left:104px; }
  .assurance { padding-block:76px; }
  .assuranceMarks { grid-template-columns:repeat(2,1fr); gap:30px 36px; padding:34px 28px; }
  .portfolioCardBody { grid-template-rows:106px 36px 40px auto; }
  .capability { padding:24px 24px 32px; }
  .operatingModel { gap:48px; }
  .operatingStep { grid-template-columns:34px 1fr; gap:16px; }
  .operatingStep>p:last-child { grid-column:2; }
  .patternDivider { height:32px; background-size:31px 32px; }
  .footerLogo { width:122px; height:28px; }
  .footerLogo img { width:155px; left:-17px; top:-17px; }
  .footerRight { display:grid; gap:18px; }
}

.notFound { min-height:100vh; display:grid; place-items:center; background:var(--black); color:var(--white); }
.notFound main { width:min(760px,calc(100vw - 40px)); }
.notFound h1 { margin:24px 0 40px; font-size:clamp(56px,10vw,120px); font-weight:500; letter-spacing:-.055em; line-height:.92; }
.notFound a { display:inline-block; padding-bottom:8px; border-bottom:1px solid var(--red); }

/* Journal, contact and client access */
.innerHeader { background:var(--black); color:white; }
.innerHeader .siteHeader { border:0; }
.innerPage main { min-height:65vh; }
.pageHeading { padding-block:80px 64px; }
.pageHeading>.eyebrow,.contactDetails>.eyebrow { margin-bottom:32px; color:#686868; }
.pageHeading h1,.contactDetails h1 { font-size:clamp(52px,7vw,104px); font-weight:500; line-height:.98; letter-spacing:-.055em; }
.blogGrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:50px 30px; padding-bottom:100px; }
.blogCard { border-bottom:1px solid var(--line); }
.blogCard a { display:block; height:100%; }
.blogImage { aspect-ratio:16/10; overflow:hidden; background:#171719; }
.blogImage img { width:100%; height:100%; object-fit:cover; transition:transform .25s; }
.blogCard a:hover .blogImage img { transform:scale(1.025); }
.blogCardCopy { padding:25px 0; }
.blogCard .eyebrow { color:#aa2528; margin-bottom:16px; }
.blogCard h2 { font-size:28px; font-weight:500; letter-spacing:-.035em; line-height:1.16; }
.postExcerpt { color:#626262; margin-top:18px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.postByline { display:flex; justify-content:space-between; gap:20px; margin-top:28px; font-size:13px; }
.postByline>span:last-child { color:var(--red); font-size:22px; }
.featuredPost { grid-column:1/-1; background:#f3f1ed; border:0; }
.featuredPost>a { display:grid; grid-template-columns:1.1fr 1fr; }
.featuredPost .blogImage { aspect-ratio:auto; min-height:360px; }
.featuredPost .blogCardCopy { padding:50px; align-self:center; }
.featuredPost h2 { font-size:clamp(32px,3.4vw,54px); }
.article { padding-block:48px 100px; }
.backLink { font-size:14px; border-bottom:1px solid var(--line); padding-bottom:6px; }
.articleHeading { max-width:1050px; margin:55px auto 40px; }
.articleHeading .eyebrow { color:#aa2528; }
.articleHeading h1 { font-size:clamp(36px,5.3vw,76px); line-height:1.06; font-weight:500; letter-spacing:-.045em; margin:22px 0; }
.articleAuthor { color:#686868; }
.articleCover { display:block; max-height:540px; width:100%; object-fit:contain; background:#f3f1ed; }
.articleBody { max-width:760px; margin:50px auto 0; font-size:18px; line-height:1.8; overflow-wrap:anywhere; }
.articleBody p,.articleBody ul { margin:0 0 24px; }
.articleBody h2 { font-size:32px; line-height:1.2; margin:46px 0 22px; font-weight:500; letter-spacing:-.025em; }
.articleBody h3 { font-size:24px; margin:30px 0 18px; font-weight:500; }
.articleLead { font-size:23px; line-height:1.5; }
.articleBody figure { margin:32px 0; }
.articleBody img { width:auto; max-width:100%; height:auto; display:block; margin:auto; }
.contactPage { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,8vw,130px); padding-block:85px 100px; }
.contactDetails address { font-style:normal; font-size:20px; margin-top:60px; line-height:1.7; }
.phoneLink { display:inline-block; margin-top:24px; font-size:22px; border-bottom:1px solid var(--red); }
.siteForm { display:flex; flex-direction:column; min-width:0; }
.siteForm h2 { font-size:28px; font-weight:500; margin-bottom:20px; }
.siteForm label { font-size:14px; margin:18px 0 8px; }
.siteForm input,.siteForm textarea { font:inherit; border:1px solid #bcbcbc; border-radius:0; background:#fff; color:var(--black); padding:13px 14px; width:100%; }
.siteForm textarea { resize:vertical; }
.siteForm input:focus,.siteForm textarea:focus { outline:2px solid var(--red); outline-offset:2px; }
.siteForm button { border:0; border-radius:0; background:var(--red); color:white; font:inherit; font-weight:500; padding:17px 20px; margin-top:28px; display:flex; justify-content:space-between; cursor:pointer; }
.siteForm button:hover { background:#ad2023; }
.siteForm button:focus-visible { outline:2px solid var(--black); outline-offset:4px; }
.siteForm .captchaInput { width:130px; }
.formError,.formNotice { padding:15px 18px; font-size:15px; background:#fff0ee; border-left:3px solid var(--red); margin:16px 0; }
.formNotice { background:#eff4ee; border-color:#3d6335; }
.formTrap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.loginPage { min-height:76vh; display:grid; place-items:center; padding:64px 20px; background:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.35)),url('/assets/hidcot-vault.jpg') center/cover; }
.loginPanel { background:#fff; padding:44px; width:min(460px,100%); }
.loginPanel>.eyebrow { color:#777; }
.loginPanel h1 { font-size:36px; letter-spacing:-.04em; line-height:1.1; font-weight:500; margin:16px 0 20px; }
.formLink { text-align:right; font-size:13px; margin-top:14px; text-decoration:underline; }
.loginBack { display:block; text-align:center; font-size:14px; margin-top:24px; text-decoration:underline; }
@media(max-width:1050px) and (min-width:901px) { .desktopNav { gap:20px; } }
@media(max-width:900px) { .blogGrid { grid-template-columns:repeat(2,minmax(0,1fr)); } .featuredPost>a { grid-template-columns:1fr; } .featuredPost .blogImage { aspect-ratio:16/9; min-height:0; } .featuredPost .blogCardCopy { padding:30px; } .contactPage { grid-template-columns:1fr; gap:50px; padding-block:55px; } .contactDetails address { margin-top:36px; } }
@media(max-width:560px) { .pageHeading { padding-block:45px; } .blogGrid { grid-template-columns:1fr; gap:32px; padding-bottom:60px; } .featuredPost .blogCardCopy { padding:24px; } .loginPanel { padding:30px 24px; } .articleHeading { margin-top:40px; } .articleBody { font-size:17px; } }

/* Persistent client access */
.headerLogin { grid-column:3; grid-row:1; justify-self:end; display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:12px 25px; background:var(--red); color:#fff; font-size:14px; font-weight:600; transition:background .18s; }
.headerLogin:hover { background:#b42326; color:#fff; }
@media(max-width:900px) {
  .siteHeader { grid-template-columns:1fr auto auto; gap:20px; }
  .siteHeader .mobileMenu { grid-column:2; grid-row:1; }
  .headerLogin { grid-column:3; padding:11px 20px; }
}
@media(max-width:380px) { .siteHeader { gap:12px; } .headerLogin { padding-inline:15px; } }

/* Original charity marks keep their proportions and colours. */
.charityVisual { display:flex; align-items:center; justify-content:center; flex-direction:column; gap:30px; padding:38px; background:#f6f4f0; border:1px solid #e8e4dd; }
.charityVisual img { width:100%; height:100%; max-width:320px; max-height:150px; object-fit:contain; }
.charityPair { gap:28px; }
.charityPair img { height:30%; max-height:85px; max-width:290px; }
.blogCard a:hover .charityVisual img { transform:none; }
.articleVisual { max-width:1050px; margin:0 auto; }
.articleVisual .blogImage { aspect-ratio:2/1; }
.articleVisual .charityVisual { min-height:270px; max-height:380px; }
.articleVisual .charityPair { flex-direction:row; gap:60px; }
.articleVisual .charityPair img { width:38%; height:auto; max-height:170px; }
@media(max-width:560px) { .articleVisual .charityPair { gap:25px; padding:25px; } }
.charityVisual { padding:28px; }
.charityPair { gap:20px; }
.charityPair img { height:68px; max-height:68px; }
.charityDark { background:#34393b; border-color:#34393b; }
.articleVisual .blogImage { aspect-ratio:3/2; }
.articleVisual .charityVisual { aspect-ratio:2/1; }
