/* Shemper Law — clean static rebuild. Palette: gold #bb8e5d, navy #13103a. Fonts: Marcellus + Montserrat */
:root{
  --gold:#bb8e5d; --gold2:#cfb53b; --navy:#13103a; --navy2:#051d40;
  --ink:#0e0c0c; --body:#5c6c82; --muted:#7a7a7a; --line:#eaeaea;
  --alt:#f4f4f9; --white:#fff; --maxw:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--body);line-height:1.75;font-size:16px;background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:'Marcellus',Georgia,'Times New Roman',serif;color:var(--navy);
  line-height:1.25;margin:0 0 .5em;font-weight:400;letter-spacing:.3px}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.8rem,3.5vw,2.7rem)}
h3{font-size:1.5rem}h4{font-size:1.2rem}h5{font-size:1rem;text-transform:uppercase;letter-spacing:1px}
p{margin:0 0 1rem}
a{color:var(--gold);text-decoration:none;transition:.2s}
a:hover{color:var(--navy)}
img{max-width:100%;height:auto;display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;width:100%}
.row{display:flex;flex-wrap:wrap;margin:0 -15px;align-items:center}
.col{padding:0 15px;flex:1 1 100%}
.sec{padding:70px 0;position:relative}
.sec .sec{padding:0}
/* nested sections shouldn't double the container padding */
.sec .sec>.container{padding:0}

/* buttons */
.btn{display:inline-block;background:var(--gold);color:#fff;padding:14px 34px;border-radius:2px;
  font-family:'Montserrat';font-weight:600;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;
  margin:8px 12px 8px 0;border:2px solid var(--gold);cursor:pointer}
.btn:hover{background:transparent;color:var(--gold)}
.sec-dark .btn:hover{color:#fff;border-color:#fff}

/* section variants */
.sec-dark{background:var(--navy);color:#c9cbd6}
.sec-dark h1,.sec-dark h2,.sec-dark h3,.sec-dark h4,.sec-dark h5{color:#fff}
.sec-gold{background:var(--gold);color:#fff}
.sec-gold h1,.sec-gold h2,.sec-gold h3,.sec-gold h4{color:#fff}
.sec-alt{background:var(--alt)}

/* headings emphasis / small caps label pattern (text-editor short lines) */
.wid-text p{margin:0 0 1rem}
.wid-heading{margin-bottom:.4em}
.wid-divider{height:3px;width:70px;background:var(--gold);margin:18px 0;border-radius:2px}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 2px 18px rgba(0,0,0,.06)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:var(--maxw);margin:0 auto}
.brand img{height:52px}
.menu{display:flex;list-style:none;gap:30px;margin:0;padding:0;align-items:center}
.menu a{color:var(--navy);font-weight:600;font-size:14px;letter-spacing:.5px;text-transform:uppercase;font-family:'Montserrat'}
.menu a:hover{color:var(--gold)}
.menu .has-sub{position:relative}
.submenu{position:absolute;top:130%;left:0;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.12);
  min-width:250px;padding:10px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:.22s;list-style:none;margin:0}
.has-sub:hover .submenu{opacity:1;visibility:visible;transform:translateY(0)}
.submenu li{padding:0}
.submenu a{display:block;padding:10px 22px;text-transform:none;font-weight:500;font-size:13.5px}
.submenu a:hover{background:var(--alt);color:var(--gold)}
.nav-cta{background:var(--navy);color:#fff!important;padding:11px 24px;border-radius:2px}
.nav-cta:hover{background:var(--gold)}
.hamb{display:none;background:none;border:0;font-size:26px;color:var(--navy);cursor:pointer}

/* hero / page banners */
.hero{color:#fff;text-align:center;padding:118px 0 96px;background:linear-gradient(135deg,var(--navy),var(--navy2))}
.hero h1,.hero h2,.hero h3{color:#fff}
.hero .wid-text p{color:var(--gold2);text-transform:uppercase;letter-spacing:3px;font-weight:600;font-size:13px;margin-bottom:6px}
.hero .wid-heading{margin:6px 0 18px}
.hero .btn{margin-top:6px}
/* any section with a real background image = overlay banner */
.sec.has-bg{background-size:cover;background-position:center;background-repeat:no-repeat;color:#eef}
.sec.has-bg h1,.sec.has-bg h2,.sec.has-bg h3,.sec.has-bg h4,.sec.has-bg h5{color:#fff}
.sec.has-bg .ib-desc,.sec.has-bg .wid-text{color:#dfe2f0}

/* funfacts */
.funfact{text-align:center;padding:10px}
.ff-num{font-family:'Marcellus';font-size:3rem;color:var(--gold);line-height:1}
.ff-title{font-weight:600;text-transform:uppercase;letter-spacing:1px;font-size:13px;color:var(--navy);margin-top:8px}
.sec-dark .ff-title{color:#fff}

/* icon-box / service cards */
.icon-box{padding:8px 0}
.ib-title{color:var(--navy);text-transform:uppercase;letter-spacing:.5px;font-size:1.05rem;margin-bottom:.5em}
.ib-desc{font-size:14.5px;color:var(--body)}
.image-box{background:#fff;padding:34px 26px;box-shadow:0 10px 30px rgba(0,0,0,.06);text-align:center;height:100%;border-bottom:3px solid transparent;transition:.25s}
.image-box:hover{border-bottom-color:var(--gold);transform:translateY(-6px)}
.image-box img{width:70px;height:70px;object-fit:contain;margin:0 auto 18px}

/* icon list */
.icon-list{list-style:none;padding:0;margin:0}
.icon-list li{position:relative;padding:8px 0 8px 32px;border-bottom:1px solid var(--line)}
.icon-list li:before{content:"";}

/* pricing */
.pricing{background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.07);padding:36px 28px;text-align:center;height:100%}
.pricing h4{color:var(--navy);text-transform:uppercase}
.pricing .price{font-family:'Marcellus';font-size:2.6rem;color:var(--gold);margin:14px 0}
.pricing .price span{font-size:.9rem;color:var(--muted)}
.pricing ul{list-style:none;padding:0;margin:18px 0;text-align:left}
.pricing li{padding:8px 0 8px 26px;position:relative;border-bottom:1px solid var(--line);font-size:14px}
.pricing li:before{content:"\2713";position:absolute;left:0;color:var(--gold)}

/* team */
.team{text-align:center;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.06);padding-bottom:22px;height:100%}
.team img{width:100%;aspect-ratio:1/1;object-fit:cover;margin-bottom:16px}
.team h4{margin-bottom:2px}
.team-pos{color:var(--gold);font-size:13px;text-transform:uppercase;letter-spacing:1px}

/* testimonials */
.testi-wrap{display:grid;grid-template-columns:1fr;gap:24px}
.testimonial{margin:0;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.06);padding:34px;border-left:4px solid var(--gold)}
.testimonial p{font-style:italic;color:var(--body)}
.testimonial cite{font-style:normal;font-weight:700;color:var(--navy);display:block;margin-top:12px}
.testimonial cite span{display:block;color:var(--gold);font-weight:500;font-size:13px}

/* accordion */
.accordion details{background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.05);margin-bottom:12px;padding:6px 20px;border-radius:3px}
.accordion summary{cursor:pointer;font-family:'Marcellus';font-size:1.15rem;color:var(--navy);padding:12px 0;list-style:none}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary:after{content:"+";float:right;color:var(--gold);font-size:1.4rem}
.accordion details[open] summary:after{content:"\2013"}

/* forms */
.contact-form{max-width:560px}
.form-row{margin-bottom:16px}
.contact-form input,.contact-form textarea{width:100%;padding:14px 16px;border:1px solid var(--line);
  border-radius:2px;font-family:inherit;font-size:15px;background:#fafafa}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--gold);background:#fff}
.wid-map{border-radius:3px}

/* footer */
.site-footer{background:var(--navy);color:#a7abc0;padding:60px 0 0}
.site-footer h4{color:#fff;margin-bottom:18px;font-size:1.15rem}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:40px}
.site-footer a{color:#c9cbd6}
.site-footer a:hover{color:var(--gold)}
.foot-logo{height:56px;margin-bottom:18px;filter:brightness(0) invert(1)}
.foot-links{list-style:none;padding:0;margin:0}
.foot-links li{padding:6px 0}
.foot-contact p{margin:4px 0;font-size:14.5px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:46px;padding:22px 0;text-align:center;font-size:13px;color:#8489a3}

/* responsive */
@media(max-width:900px){
  .foot-grid{grid-template-columns:1fr}
  .hamb{display:block}
  .menu{position:fixed;inset:0 0 0 auto;width:78%;max-width:320px;background:#fff;flex-direction:column;
    align-items:flex-start;padding:80px 30px;gap:6px;transform:translateX(100%);transition:.3s;box-shadow:-8px 0 30px rgba(0,0,0,.15);overflow-y:auto}
  .menu.open{transform:translateX(0)}
  .menu li{width:100%}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;padding-left:16px;display:none}
  .has-sub.open .submenu{display:block}
  .sec{padding:48px 0}
  .col[style]{flex:1 1 100%!important;max-width:100%!important}
  .hero{padding:80px 0}
}

/* text wordmark logo */
.brand{display:flex;flex-direction:column;line-height:1.1;text-decoration:none}
.brand-name{font-family:'Marcellus',serif;font-size:1.7rem;color:var(--navy);letter-spacing:.5px}
.brand-sub{font-family:'Montserrat';font-size:10.5px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-top:2px}
.site-footer .brand-name{color:#fff}
.foot-brand{margin-bottom:18px;display:flex;flex-direction:column;line-height:1.1}


/* ================= consistent page banner (all subpages) ================= */
.page-banner{background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 100%);
  padding:96px 0;text-align:center}
.page-banner .wid-heading,.page-banner h1{color:#fff;margin:0;text-transform:capitalize;
  font-size:clamp(2rem,4vw,3rem)}
.page-banner .row{justify-content:center}

/* ================= HOME "Our Services" cards (icon tile + text) ========= */
.row:has(.icon-box){align-items:stretch}
.col:has(> .icon-box){display:flex;flex-direction:column;text-align:center;padding-top:15px;padding-bottom:15px}
.col:has(> .icon-box) > img.wid-image{width:100%;aspect-ratio:1/1;object-fit:cover;
  border-radius:4px;margin:0 0 22px;display:block}
.col:has(> .icon-box) > .icon-box{flex:1 1 auto;text-align:center}
.col:has(> .icon-box) > .icon-box .ib-title{justify-content:center;min-height:2.4em;display:flex;align-items:flex-end}
.col:has(> .icon-box) > .btn{margin:18px auto 0}

/* ================= practice-area image cards (photo fills card) ========= */
.row:has(.image-box){align-items:stretch}
.col:has(.image-box){display:flex;padding-top:15px;padding-bottom:15px}
.image-box{padding:0;overflow:hidden;display:flex;flex-direction:column;height:100%;width:100%;
  box-shadow:0 10px 30px rgba(0,0,0,.08);border-radius:5px;background:#fff;text-align:center;
  border-bottom:3px solid transparent;transition:.25s}
.image-box:hover{border-bottom-color:var(--gold);transform:translateY(-6px)}
.image-box img{width:100%;height:210px;object-fit:cover;margin:0;display:block}
.image-box .ib-title{padding:22px 22px 0;min-height:auto;display:block;align-items:initial}
.image-box .ib-desc{padding:8px 22px 26px;flex:1 1 auto}

/* clean numbered "Committed to Excellence" list */
.wid-heading b{font-family:'Marcellus';font-size:2.2rem;color:var(--gold)}
/* clean icon-list (no checkmarks) */
.icon-list li{padding-left:0}
.icon-list li:before{content:""}

/* contact form status message */
.form-status{margin-top:14px;font-size:14.5px;min-height:1em}
.form-status.ok{color:#1a7f4b;font-weight:600}
.form-status.err{color:#c0392b;font-weight:600}
.sec.has-bg .form-status.ok{color:#8ef0b8}
.sec.has-bg .form-status.err{color:#ffb3a8}
