@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');
:root{--navy:#111e36;--ink:#202b35;--muted:#69727a;--sand:#f6f3ee;--gold:#c7a675;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:white;line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1140px,calc(100% - 44px));margin:auto}.topline{background:var(--navy);color:#f5f1e9;font-size:.79rem;letter-spacing:.05em}.topline .container{display:flex;justify-content:space-between;padding:8px 0;gap:20px}.header{background:white;box-shadow:0 2px 16px #111e3611;position:sticky;top:0;z-index:20}.nav{min-height:102px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand img{width:235px;max-height:83px;object-fit:contain;object-position:left center}.links{display:flex;align-items:center;gap:27px;font-size:.88rem;font-weight:600}.links a:hover,.footer a:hover{color:#b08b57}.button{display:inline-block;background:var(--navy);color:white;padding:13px 23px;font-weight:700;font-size:.86rem;border:1px solid var(--navy);transition:.2s;cursor:pointer}.button:hover{background:#2b4669}.button.light{background:white;color:var(--navy);border-color:white}.button.outline{background:transparent;color:var(--navy)}.button.outline:hover{background:var(--navy);color:white}.nav-toggle{display:none;border:1px solid #ddd;background:white;padding:8px 12px;font-size:1.3rem}.hero{position:relative;min-height:590px;display:flex;align-items:center;background:#1b2938;overflow:hidden;color:white}.hero .hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.56)}.hero .hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#07152aca,transparent 85%)}.hero .container{z-index:1;padding:115px 0}.eyebrow{font-size:.76rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#aa854f;margin-bottom:20px}.hero .eyebrow{color:#dec7a3}h1,h2,h3{font-family:'Libre Baskerville',Georgia,serif;font-weight:400;line-height:1.23}h1{font-size:clamp(2.7rem,5.2vw,5.2rem);max-width:830px;margin:0 0 20px}h2{font-size:clamp(2rem,3.2vw,3.3rem);margin:0 0 22px}h3{font-size:1.5rem;margin:10px 0}.hero p{max-width:650px;font-size:1.12rem;color:#f0f0f0}.actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:29px}.section{padding:92px 0}.section.alt{background:var(--sand)}.section-intro{max-width:750px;margin-bottom:35px}.section-intro p{color:var(--muted);font-size:1.04rem}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.tile{background:white;border:1px solid #e9e7e2}.tile img{width:100%;height:230px;object-fit:cover;background:#e4e4e4}.tile-body{padding:24px}.tile-body p{color:var(--muted);margin:0 0 16px}.textlink{font-weight:700;border-bottom:1px solid var(--gold);padding-bottom:3px}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.split img{height:430px;width:100%;object-fit:cover}.statline{margin-top:28px;border-top:1px solid #dedbd4;padding-top:20px;font-weight:700;color:var(--navy)}.dark{background:var(--navy);color:white}.dark p{color:#d5dce7}.quote{font-family:'Libre Baskerville',Georgia,serif;font-size:1.26rem;line-height:1.7}.quotes{display:grid;grid-template-columns:1fr 1fr;gap:40px}.subhero{background:var(--navy);color:white;padding:93px 0}.subhero h1{font-size:clamp(2.5rem,4vw,4.2rem)}.subhero p{max-width:750px;color:#e0e6ec}.bread{font-size:.83rem;opacity:.75;margin-bottom:25px}.step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:25px}.step{border-top:2px solid var(--gold);padding-top:20px}.step b{color:#a7834a;letter-spacing:.1em}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.gallery figure{margin:0;background:#eee}.gallery img{height:270px;width:100%;object-fit:cover}.gallery figcaption{background:#fff;padding:10px 3px;color:var(--muted);font-size:.85rem}.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:70px}.field{margin-bottom:18px}.field label{display:block;font-weight:600;font-size:.86rem;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;padding:12px;border:1px solid #c9cdd2;font:inherit;background:white;color:var(--ink);border-radius:0}.field textarea{min-height:145px}.small{font-size:.84rem;color:var(--muted)}.cta{padding:70px 0}.cta .container{display:flex;justify-content:space-between;align-items:center;gap:30px}.cta h2{margin:0}.footer{background:#0c1729;color:#e2e5eb;padding:57px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:60px}.footer img{width:210px;background:white;padding:8px}.footer h4{color:var(--gold);letter-spacing:.13em;font-size:.8rem;text-transform:uppercase}.footer a{display:block;margin:8px 0}.footer-bottom{border-top:1px solid #ffffff28;margin-top:36px;padding-top:16px;font-size:.75rem;color:#bac1ca}.note{padding:15px 19px;background:#f7f0e1;border-left:3px solid var(--gold)}@media(max-width:850px){.nav{min-height:82px}.brand img{width:175px}.nav-toggle{display:block}.links{display:none;position:absolute;top:100%;left:0;right:0;background:white;flex-direction:column;align-items:stretch;gap:0;padding:15px 24px;box-shadow:0 12px 16px #0002}.links.open{display:flex}.links a{padding:9px 0}.links .button{color:white;text-align:center}.grid3,.step-grid{grid-template-columns:1fr 1fr}.split,.contact-grid{grid-template-columns:1fr;gap:32px}.hero{min-height:520px}.section{padding:65px 0}.footer-grid{grid-template-columns:1fr 1fr}.cta .container{display:block}.quotes{grid-template-columns:1fr}}@media(max-width:560px){.topline .container{flex-direction:column;gap:0}.grid3,.step-grid,.gallery,.footer-grid{grid-template-columns:1fr}.hero .container{padding:86px 0}.quotes{gap:25px}.split img{height:270px}.gallery img{height:235px}}


/* Project images: no visible filenames, labels or addresses */
.photo-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.gallery-image{padding:0;background:#e9ecef;overflow:hidden;border:0;cursor:zoom-in;display:block;width:100%;aspect-ratio:4/3}.gallery-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.gallery-image:hover img{transform:scale(1.045)}.gallery-image:focus-visible{outline:3px solid #b18b55;outline-offset:3px}.gallery-jumps{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.gallery-jumps a{border:1px solid #ffffff8c;color:#fff;padding:9px 14px;font-size:.85rem}.gallery-jumps a:hover{background:#fff;color:#111e36}.section-end{margin-top:24px}.photo-dialog{border:0;background:#0e1726;color:white;width:min(94vw,1180px);max-height:94vh;padding:48px 15px 18px;box-shadow:0 14px 55px #0006}.photo-dialog::backdrop{background:#000d}.photo-dialog img{max-height:78vh;max-width:100%;width:auto;margin:auto;object-fit:contain}.photo-close{position:absolute;top:5px;right:12px;border:0;background:transparent;color:white;font-size:2rem;cursor:pointer}@media(max-width:850px){.photo-wall{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.photo-wall{grid-template-columns:1fr}.gallery-image{aspect-ratio:5/4}}

/* V6: licensed/insured brand statement, horizontal rotating testimonials, CTA arrows */
.license-badge{display:inline-flex;align-items:center;gap:8px;margin-top:19px;padding:9px 15px;border:1px solid currentColor;border-radius:3px;font-size:.85rem;font-weight:700;letter-spacing:.03em}
.license-footer{font-weight:700;letter-spacing:.02em;margin-top:14px}
.review-carousel{max-width:900px;margin:24px auto 0;position:relative}
.review-viewport{overflow:hidden;border-radius:8px}
.review-track{display:flex;will-change:transform;transition:transform .55s ease}
.review-slide{min-width:100%;box-sizing:border-box;padding:34px clamp(20px,5vw,55px);background:#f7f8fa;border:1px solid #e3e7ed;text-align:center}
.review-slide .quote{font-size:clamp(1.1rem,2vw,1.42rem);line-height:1.65;max-width:700px;margin:0 auto 19px}
.review-slide strong{display:block}
.review-slide .small{margin-top:6px}
.review-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:18px}
.review-controls button{width:42px;height:42px;border:1px solid #162a4a;border-radius:50%;background:#fff;color:#162a4a;cursor:pointer;font-size:1.3rem}
.review-controls button:hover,.review-controls button:focus-visible{background:#162a4a;color:#fff}
.review-status{font-size:.82rem;color:#586275;min-width:55px;text-align:center}
a.button:not(.no-arrow)::after{content:'\2192';font-size:1em;margin-left:.55em;display:inline-block;vertical-align:baseline}
@media(prefers-reduced-motion:reduce){.review-track{transition:none}}

/* V7: eliminate decorative arrow in every CTA and give contact button separate treatment */
a.button:not(.no-arrow)::after{content:none!important}a.button{white-space:normal}
.contact-button{border-radius:5px;background:#11375c!important;color:#fff!important;border:2px solid #11375c!important;box-shadow:0 3px 12px #11263e18;letter-spacing:.015em}
.contact-button:hover,.contact-button:focus-visible{background:#235581!important;border-color:#235581!important}
.dark .contact-button{background:#fff!important;color:#11375c!important;border-color:#fff!important}
.button-outline{background:transparent!important;color:#112440!important;border:1px solid #112440!important;border-radius:5px}
.vision-section{padding:86px 0;background:#f4f3f0}.vision-layout{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}
.vision-copy h2{font-size:clamp(2.6rem,5vw,5.1rem);line-height:1.12;letter-spacing:-.04em;margin:12px 0 24px}
.vision-copy h2 em{color:#ad8b51;font-style:normal}.vision-copy p:not(.eyebrow){max-width:520px;line-height:1.8}
.vision-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:27px}.vision-photo img{width:100%;height:470px;object-fit:cover;display:block}
.review-slide{border-radius:12px;box-shadow:0 14px 35px #10264a0a;min-height:270px;display:flex;flex-direction:column;justify-content:center}
.review-slide .quote{font-size:clamp(1.18rem,2.25vw,1.5rem)}.review-dots{display:flex;gap:9px;justify-content:center;margin-top:14px}
.review-dot{height:9px;width:9px;border-radius:50%;padding:0;border:0;background:#bbc3d0;cursor:pointer}
.review-dot.active{background:#142c50;width:27px;border-radius:20px}.review-dot:focus-visible{outline:2px solid #142c50;outline-offset:3px}
@media(max-width:850px){.vision-layout{grid-template-columns:1fr;gap:24px}.vision-section{padding:60px 0}.vision-photo img{height:320px}}
@media(max-width:550px){.vision-actions a{width:100%;text-align:center}}


/* V8 design funnel, refined CTA styling */
.button.contact-cta{background:#c6a472;color:#0c1729;border:1px solid #c6a472;box-shadow:0 5px 18px #0002;border-radius:3px;padding:15px 26px;letter-spacing:.035em}
.button.contact-cta:hover,.button.contact-cta:focus-visible{background:#e2c69a;border-color:#e2c69a;color:#0c1729;transform:translateY(-1px)}
.links .button.contact-button{background:var(--navy);color:#fff;border-color:var(--navy);border-radius:3px}
.links .button.contact-button:hover{background:#2c4b70}
.design-hero{background:linear-gradient(115deg,#101e35,#243d58)}
.design-hero .eyebrow{color:#e3c899}
.wizard-section{background:#f7f5f1}
.wizard-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.8fr);gap:35px;align-items:start}
.wizard-main{background:white;border:1px solid #e6e3dc;box-shadow:0 15px 48px #111e3610;padding:clamp(24px,4vw,48px)}
.wizard-top{display:flex;justify-content:space-between;gap:16px;align-items:center}.wizard-top .eyebrow{margin:0}.wizard-top span:last-child{color:#66727f;font-size:.85rem;white-space:nowrap}
.wizard-meter{height:5px;background:#e9e9e7;border-radius:5px;overflow:hidden;margin:20px 0 35px}.wizard-meter span{display:block;height:100%;width:11.11%;background:#a9814d;transition:width .3s}
.wizard-step h2{font-size:clamp(1.7rem,3vw,2.6rem);margin-bottom:12px}.wizard-step>p{color:#606b72;margin-bottom:25px}.wizard-step[hidden]{display:none}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:25px}
.choice{position:relative;cursor:pointer;display:flex}.choice input{position:absolute;opacity:0;left:14px;top:20px}.choice>span{width:100%;padding:18px 20px;border:1px solid #d5d9dd;background:#fff;transition:.17s;min-height:70px;display:flex;flex-direction:column;justify-content:center;gap:3px;font-weight:600;color:#243249}
.choice small{display:block;color:#68727e;font-weight:400;font-size:.82rem}.choice input:checked+span{background:#f6f0e5;border-color:#a9814d;box-shadow:inset 0 0 0 1px #a9814d}.choice input:focus-visible+span{outline:3px solid #335e96;outline-offset:3px}.choice>span:hover{border-color:#b18c57}
.wizard-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wizard-controls{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e8e6e1;padding-top:24px;margin-top:24px}.wizard-controls .button{border-radius:3px}.wizard-controls .button:disabled{opacity:.35;cursor:not-allowed}.button.button-outline{border-color:#b3bdc8;background:transparent;color:#23354c}
.wizard-aside{background:white;border:1px solid #e6e3dc}.wizard-aside>img{height:230px;width:100%;object-fit:cover}.wizard-aside>div{padding:24px}.wizard-aside .eyebrow{margin:0 0 10px}.wizard-aside h3{font-size:1.35rem}.wizard-aside p{font-size:.91rem;color:#60707b}
.summary-panel{background:#f7f5f1;border:1px solid #e7e3d9;padding:17px 20px;margin:16px 0 25px;overflow-wrap:anywhere}.summary-panel dl{margin:0;display:grid;grid-template-columns:1fr 2fr;gap:8px 12px;font-size:.86rem}.summary-panel dt{color:#5c6771}.summary-panel dd{margin:0;font-weight:600;color:#1d3044}
.wizard-feedback{margin-top:14px;font-size:.91rem}.wizard-feedback.error{color:#a12525}.wizard-feedback.success{color:#226345}.wizard-feedback a{text-decoration:underline}
.wizard-consent{display:flex!important;align-items:flex-start;gap:10px;font-size:.9rem!important;font-weight:400!important}.wizard-consent input{width:auto!important;margin-top:7px}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.design-contact-card{background:#f6f3ee;padding:25px;border-left:3px solid #c7a675;margin:0 0 35px}.design-contact-card h3{font-size:1.35rem}.design-contact-card .eyebrow{margin:0 0 8px}
@media(max-width:950px){.wizard-layout{grid-template-columns:1fr}.wizard-aside{display:grid;grid-template-columns:240px 1fr}.wizard-aside>img{height:100%}}
@media(max-width:600px){.choice-grid,.wizard-two{grid-template-columns:1fr}.wizard-aside{display:block}.wizard-aside>img{height:200px}.wizard-main{padding:22px}.summary-panel dl{grid-template-columns:1fr}.wizard-controls .button{padding:12px 17px}}


/* V9: Unified Bishop & Bishop Deep Navy primary + navy-outline secondary buttons */
:root{--navy:#183d66;--gold:#316a9b}
.button, .button.contact-cta, .button.contact-button, .links .button.contact-button, .dark .contact-button{
  background:#183d66!important;color:#fff!important;border:1px solid #183d66!important;
  border-radius:5px!important;box-shadow:none!important;letter-spacing:.01em;
  font-weight:700;transition:background-color .2s,border-color .2s,color .2s,transform .2s}
.button:hover, .button:focus-visible, .button.contact-cta:hover, .button.contact-cta:focus-visible,
.button.contact-button:hover, .button.contact-button:focus-visible, .links .button.contact-button:hover,
.dark .contact-button:hover{background:#285887!important;border-color:#285887!important;color:#fff!important;transform:none}
.button.outline, .button.button-outline, .button.light{
  background:transparent!important;color:#183d66!important;border:1px solid #183d66!important;box-shadow:none!important}
.button.outline:hover, .button.button-outline:hover, .button.light:hover{
  background:#183d66!important;color:#fff!important;border-color:#183d66!important}
.hero .button.light,.dark .button.outline,.dark .button.button-outline,.subhero .button.outline{
  background:transparent!important;color:#fff!important;border-color:#fff!important}
.hero .button.light:hover,.dark .button.outline:hover,.dark .button.button-outline:hover,.subhero .button.outline:hover{
  background:#fff!important;color:#183d66!important}
a.button::after{content:none!important}
.button:focus-visible{outline:3px solid #77a5d5;outline-offset:3px}


/* V10: Charcoal CTA system; contrast protected on navy backgrounds */
:root{--cta-charcoal:#292e33;--cta-charcoal-hover:#424a51;--cta-neutral:#ebe8e1}
a.button:not(.no-arrow)::after,a.button::after{content:none!important}
.button,.button.contact-cta,.button.contact-button,.links .button.contact-button{
 background:var(--cta-charcoal)!important;color:#fff!important;border:2px solid var(--cta-charcoal)!important;
 border-radius:5px!important;box-shadow:0 3px 10px #13191f1c!important;letter-spacing:.01em!important;
 transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s!important;
}
.button:hover,.button:focus-visible,.button.contact-cta:hover,.button.contact-cta:focus-visible,.button.contact-button:hover,.button.contact-button:focus-visible,.links .button.contact-button:hover{
 background:var(--cta-charcoal-hover)!important;border-color:var(--cta-charcoal-hover)!important;color:#fff!important;
 box-shadow:0 5px 16px #13191f38!important;transform:none!important;
}
.button.outline,.button.button-outline,.button.light{background:transparent!important;color:var(--cta-charcoal)!important;border:2px solid var(--cta-charcoal)!important;box-shadow:none!important}
.button.outline:hover,.button.button-outline:hover,.button.light:hover{background:var(--cta-charcoal)!important;color:#fff!important;border-color:var(--cta-charcoal)!important}
/* The dark navy hero and CTA sections need a pale non-white primary treatment to stay distinct. */
.hero .button:not(.outline),.subhero .button:not(.outline),.dark .button:not(.outline),.cta.dark .button.contact-cta{
 background:var(--cta-neutral)!important;color:var(--cta-charcoal)!important;border:2px solid var(--cta-neutral)!important;box-shadow:0 4px 16px #0005!important;
}
.hero .button:not(.outline):hover,.subhero .button:not(.outline):hover,.dark .button:not(.outline):hover,.cta.dark .button.contact-cta:hover{
 background:#fff!important;color:#171b1f!important;border-color:#fff!important;
}
.hero .button.outline,.dark .button.outline,.dark .button.button-outline,.subhero .button.outline,.hero .button.light{
 background:transparent!important;color:#fff!important;border:2px solid #f0efea!important;
}
.hero .button.outline:hover,.dark .button.outline:hover,.dark .button.button-outline:hover,.subhero .button.outline:hover,.hero .button.light:hover{
 background:#ebe8e1!important;color:#292e33!important;border-color:#ebe8e1!important;
}
.button:focus-visible{outline:3px solid #7fb0e4!important;outline-offset:3px}
