/* KEREB — isolated styles for the header, footer and shortcode banners. */
body.kereb-design-enabled #site-header,
body.kereb-design-enabled #site-footer { display:none !important; }

.kereb-header, .kereb-footer, .kereb-banner,
.kereb-header *, .kereb-footer *, .kereb-banner * { box-sizing:border-box; }
.kereb-header, .kereb-footer, .kereb-banner { font-family:Arial, Helvetica, sans-serif; }
.kereb-header a, .kereb-footer a, .kereb-banner a { text-decoration:none; }
.kereb-header a:focus-visible, .kereb-footer a:focus-visible, .kereb-banner a:focus-visible,
.kereb-header button:focus-visible { outline:2px solid currentColor; outline-offset:5px; }

/* HEADER */
.kereb-header { position:relative; isolation:isolate; width:100%; z-index:150; background:#f8f8f7; color:#111; border-bottom:1px solid #ebebea; }
body.kereb-header-sticky .kereb-header { position:sticky; top:0; }
body.admin-bar.kereb-header-sticky .kereb-header { top:32px; }
.kereb-header-inner { width:min(100%, 1600px); min-height:100px; margin:0 auto; padding:18px clamp(24px,4.5vw,80px); display:grid; grid-template-columns:minmax(72px,1fr) auto minmax(145px,1fr); gap:24px; align-items:center; }
.kereb-logo { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; max-width:100%; flex:none; border-radius:50%; overflow:hidden; background:#101010; line-height:1; }
.kereb-logo-fallback .kereb-logo-image { filter:grayscale(100%); }
.kereb-logo-image { display:block; width:100%; height:100%; object-fit:cover; border-radius:50%; }
.kereb-logo-fallback { color:white !important; font-family:Georgia,serif !important; font-size:38px; font-weight:400; }
.kereb-logo-fallback span { color:inherit; font:inherit; }
.kereb-header-logo { justify-self:start; }
.kereb-nav { justify-self:center; }
.kereb-nav ul { list-style:none; display:flex; align-items:center; justify-content:center; gap:clamp(15px,2.2vw,38px); padding:0; margin:0; }
.kereb-nav li { padding:0; margin:0; list-style:none; }
.kereb-nav a { display:block; color:#151515; font-size:11px; line-height:1.45; font-weight:750; letter-spacing:.045em; text-transform:uppercase; white-space:nowrap; transition:opacity .2s ease; }
.kereb-nav a:hover { opacity:.5; color:#151515; }
.kereb-header-cta, .kereb-mobile-cta { display:inline-flex; align-items:center; justify-content:center; column-gap:19px; background:#111; color:#fff !important; text-transform:uppercase; font-size:11px; font-weight:750; letter-spacing:.045em; transition:background .2s ease,transform .2s ease; }
.kereb-header-cta { justify-self:end; min-width:180px; min-height:48px; padding:14px 22px; }
.kereb-header-cta span { font-size:17px; line-height:0; }
.kereb-header-cta:hover, .kereb-mobile-cta:hover { background:#363636; color:#fff; transform:translateY(-1px); }
.kereb-menu-toggle, .kereb-mobile-cta { display:none; }

/* FOOTER */
.kereb-footer { width:100%; background:#0e0e0e; color:#ededed; }
.kereb-footer-main { width:min(100%,1600px); min-height:104px; margin:0 auto; padding:26px clamp(24px,4.5vw,80px); display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:clamp(20px,5vw,82px); }
.kereb-footer-location,.kereb-footer-contact { display:flex; align-items:center; gap:14px; min-width:0; }
.kereb-footer-location>svg, .kereb-footer-contact>svg { flex-shrink:0; color:#a8a8a8; width:20px; height:20px; }
.kereb-footer a, .kereb-footer span { color:#e5e5e5; font-size:13px; line-height:1.65; font-weight:400; }
.kereb-footer a:hover { color:#fff; }
.kereb-footer-contact a { display:flex; flex-wrap:wrap; column-gap:14px; align-items:baseline; }
.kereb-footer-phone-number { opacity:.63; font-size:12px !important; white-space:nowrap; }
.kereb-footer-actions { display:flex; justify-content:flex-end; align-items:center; gap:12px; }
.kereb-footer-social { height:42px; width:42px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; border:1px solid #484848; transition:border-color .2s; }
.kereb-footer-social:hover { border-color:#fff; }
.kereb-footer-arrow { width:48px; height:48px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #8e8e8e; border-radius:50%; transition:background .2s, color .2s; }
.kereb-footer-arrow:hover { background:#fff; color:#0a0a0a !important; }
.kereb-footer-arrow svg { width:22px; height:22px; }
.kereb-footer-bottom { width:min(100%,1600px); margin:0 auto; border-top:1px solid #363636; padding:14px clamp(24px,4.5vw,80px); display:flex; align-items:center; justify-content:space-between; gap:20px; opacity:.75; }
.kereb-footer-bottom>span { font-size:11px; letter-spacing:.04em; }
.kereb-footer-logo { height:28px; width:28px; font-size:17px; }

/* BANNERS */
.kereb-banner { width:100%; min-width:0; overflow:hidden; position:relative; isolation:isolate; background:#ededeb; color:#101010; }
.kereb-banner--dark { background:#171717; color:#fff; }
.kereb-banner--full { width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.kereb-banner-media, .kereb-banner-picture { display:block; position:absolute; inset:0; width:100%; height:100%; overflow:hidden; }
.kereb-banner-image { display:block; width:100%; height:100% !important; max-height:none !important; object-fit:cover; object-position:center; filter:grayscale(100%); }
.kereb-banner--photo-color .kereb-banner-image { filter:none; }
.kereb-banner--focus-left .kereb-banner-image { object-position:left center; }
.kereb-banner--focus-right .kereb-banner-image { object-position:right center; }
.kereb-banner--focus-top .kereb-banner-image { object-position:center top; }
.kereb-banner--focus-bottom .kereb-banner-image { object-position:center bottom; }
.kereb-banner-content { width:100%; position:relative; z-index:2; }
.kereb-banner-upper { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.kereb-banner-eyebrow { position:relative; max-width:180px; margin:0 !important; font-size:clamp(10px,1vw,13px) !important; font-weight:700; letter-spacing:.2em; line-height:1.5 !important; white-space:normal; text-transform:uppercase; }
.kereb-banner-eyebrow::after { content:""; display:block; width:35px; height:1px; margin-top:15px; background:currentColor; }
.kereb-banner-eyebrow-right { text-align:left; }
.kereb-banner-lower { position:relative; }
.kereb-banner-heading { margin:0 !important; padding:0; color:inherit !important; font-family:Impact,'Arial Narrow','Arial Black',Arial,sans-serif !important; text-transform:uppercase; font-weight:900 !important; letter-spacing:-.055em !important; line-height:.81 !important; }
.kereb-banner-subtitle { color:inherit !important; font-weight:750; letter-spacing:.36em; text-transform:uppercase; line-height:1.4; margin:14px 0 0 !important; }
.kereb-banner-description { white-space:normal; font-size:clamp(14px,1.45vw,18px); line-height:1.6; margin:20px 0 0 !important; max-width:470px; }
.kereb-banner-button { display:inline-flex; align-items:center; gap:23px; background:#111; padding:16px 22px; margin-top:25px; color:#fff !important; font-size:12px; text-transform:uppercase; font-weight:750; letter-spacing:.06em; }
.kereb-banner-button svg { width:17px; height:17px; }
.kereb-banner--dark .kereb-banner-button { background:#fff; color:#111 !important; }
.kereb-banner--hero { min-height:clamp(480px,53vw,780px); display:flex; }
.kereb-banner--hero .kereb-banner-content { min-height:inherit; display:flex; flex-direction:column; justify-content:space-between; padding:clamp(34px,5vw,86px) clamp(22px,5.2vw,90px) clamp(35px,3.8vw,70px); }
.kereb-banner--hero .kereb-banner-heading { font-size:clamp(85px,23.3vw,360px) !important; white-space:nowrap; max-width:100%; }
.kereb-banner--hero .kereb-banner-subtitle { font-size:clamp(12px,2vw,26px) !important; }
.kereb-banner--hero .kereb-banner-description { max-width:500px; }
.kereb-banner--hero .kereb-banner-button { margin-top:20px; }
.kereb-banner--split { display:grid; grid-template-columns:1fr 1fr; min-height:clamp(420px,40vw,680px); }
.kereb-banner--split .kereb-banner-media { position:relative; grid-column:2; grid-row:1; }
.kereb-banner--split .kereb-banner-content { grid-column:1; grid-row:1; padding:clamp(30px,4.5vw,80px); display:flex; flex-direction:column; justify-content:space-between; }
.kereb-banner--split .kereb-banner-eyebrow-right { display:none; }
.kereb-banner--split .kereb-banner-heading { font-size:clamp(42px,5vw,82px) !important; line-height:.98 !important; letter-spacing:-.035em !important; }
.kereb-banner--split .kereb-banner-subtitle { font-size:12px !important; letter-spacing:.2em; }

@media (max-width:1100px) {
 .kereb-header-inner { min-height:84px; gap:15px; grid-template-columns:80px 1fr auto; padding:14px 25px; }
 .kereb-logo { width:56px; height:56px; }
 .kereb-nav ul { gap:16px; }
 .kereb-nav a { font-size:10px; }
 .kereb-header-cta { min-width:145px; padding:13px 14px; }
 .kereb-footer-main { gap:25px; }
}
@media (max-width:840px) {
 .kereb-header-inner { display:grid; grid-template-columns:auto 1fr auto; gap:12px; padding:12px 22px; min-height:76px; }
 .kereb-header-cta { grid-column:2; grid-row:1; min-width:unset; justify-self:end; min-height:42px; padding:10px 17px; }
 .kereb-menu-toggle { grid-column:3; grid-row:1; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:44px; height:44px; background:transparent; border:1px solid #d7d7d7; padding:10px; cursor:pointer; color:#111; }
 .kereb-menu-toggle>span { display:block; width:21px; height:1.8px; background:#111; transition:transform .2s,opacity .2s; }
 .kereb-menu-toggle[aria-expanded="true"]>span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
 .kereb-menu-toggle[aria-expanded="true"]>span:nth-child(2) { opacity:0; }
 .kereb-menu-toggle[aria-expanded="true"]>span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
 .kereb-nav { display:none; position:absolute; top:100%; left:0; right:0; z-index:50; background:#f8f8f7; padding:20px 24px 26px; box-shadow:0 16px 24px rgba(0,0,0,.09); border-top:1px solid #ededed; }
 .kereb-nav.kereb-nav-open { display:block; }
 .kereb-nav ul { display:flex; flex-direction:column; align-items:stretch; gap:0; width:100%; }
 .kereb-nav li { border-bottom:1px solid #dfdfdd; }
 .kereb-nav a { font-size:13px; display:block; padding:14px 0; }
 .kereb-mobile-cta { display:none; }
 .kereb-footer-main { grid-template-columns:1fr 1fr auto; padding:25px; }
 .kereb-footer-phone-number { display:block; width:100%; }
}
@media (max-width:600px) {
 body.admin-bar.kereb-header-sticky .kereb-header { top:46px; }
 .kereb-header-inner { padding:10px 17px; min-height:68px; grid-template-columns:56px 1fr 44px; }
 .kereb-logo { width:48px; height:48px; }
 .kereb-logo-fallback { font-size:29px; }
 .kereb-header-cta { margin-left:auto; min-height:39px; min-width:0; padding:10px 13px; font-size:10px; letter-spacing:.015em; gap:8px; }
 .kereb-header-cta span { display:none; }
 .kereb-nav { padding:15px 20px 23px; }
 .kereb-footer-main { grid-template-columns:1fr auto; gap:18px; padding:27px 22px; }
 .kereb-footer-location { grid-column:1; grid-row:1; }
 .kereb-footer-contact { grid-column:1; grid-row:2; }
 .kereb-footer-actions { grid-column:2; grid-row:1 / span 2; align-self:center; flex-wrap:wrap; max-width:104px; }
 .kereb-footer a, .kereb-footer span { font-size:12px; }
 .kereb-footer-social { width:36px; height:36px; }
 .kereb-footer-arrow { width:44px; height:44px; }
 .kereb-footer-bottom { padding:15px 22px; }
 .kereb-banner-eyebrow { font-size:9px !important; letter-spacing:.13em; max-width:135px; }
 .kereb-banner-eyebrow::after { margin-top:11px; width:27px; }
 .kereb-banner--hero { min-height:540px; }
 .kereb-banner--hero .kereb-banner-content { padding:36px 21px 32px; }
 .kereb-banner--hero .kereb-banner-heading { font-size:clamp(70px,23.5vw,142px) !important; letter-spacing:-.06em !important; }
 .kereb-banner--hero .kereb-banner-subtitle { font-size:11px !important; letter-spacing:.28em; }
 .kereb-banner--hero .kereb-banner-description { font-size:13px; max-width:270px; line-height:1.5; }
 .kereb-banner--split { display:flex; flex-direction:column-reverse; min-height:0; }
 .kereb-banner--split .kereb-banner-media { position:relative; height:300px; flex:none; width:100%; }
 .kereb-banner--split .kereb-banner-content { min-height:325px; padding:29px 22px 34px; }
 .kereb-banner--split .kereb-banner-heading { font-size:clamp(46px,10vw,74px) !important; }
 .kereb-banner--split .kereb-banner-description { font-size:14px; }
}
@media (max-width:360px) {
 .kereb-header-inner { grid-template-columns:47px 1fr 40px; padding-left:12px; padding-right:12px; }
 .kereb-logo { width:44px; height:44px; }
 .kereb-header-cta { padding:9px 10px; font-size:9px; }
 .kereb-banner--hero .kereb-banner-heading { font-size:23vw !important; }
 .kereb-banner-eyebrow { max-width:115px; }
}
@media (prefers-reduced-motion: reduce) {
 .kereb-header *, .kereb-footer *, .kereb-banner * { transition:none !important; }
}
