/*
Theme Name: Heritage Immigration Law
Theme URI: https://heritageimmigrationlaw.com
Author: Heritage Immigration Law
Description: A custom navy & cream theme for Heritage Immigration Law, built around Home, About, Practice Areas and Contact pages.
Version: 1.7
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: heritage-immigration-law
*/

:root{
  box-sizing:border-box;
  --navy:#182742;
  --navy-deep:#0f1b30;
  --cream:#f8f5ee;
  --ivory:#efe9db;
  --line:#d9d0ba;
  --gold:#a2833f;
  --gold-text:#816832;
  --ink:#1c2333;
  --ink-soft:#4a5164;
  --paper:#ffffff;
}
html{scroll-padding-top:90px;}
*{box-sizing:inherit;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --cream:#12161f; --ivory:#171c27; --paper:#181d28; --ink:#eae7dd; --ink-soft:#b6b3ac; --line:#2a3040;
  }
}
:root[data-theme="dark"]{
  --cream:#12161f; --ivory:#171c27; --paper:#181d28; --ink:#eae7dd; --ink-soft:#b6b3ac; --line:#2a3040;
}
html,body{height:100%;}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:'Jost',sans-serif; font-weight:300; line-height:1.65; font-size:17px;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{font-family:'Cormorant Garamond',serif;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
button{font-family:inherit; cursor:pointer;}

/* Header */
header.site-header{
  position:sticky; top:0; z-index:50; background:var(--paper);
  border-bottom:1px solid var(--line);
}
.nav-row{ max-width:1160px; margin:0 auto; padding:22px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.brand{font-family:'Cormorant Garamond',serif; font-size:26px; color:var(--navy); font-weight:600; letter-spacing:.02em;}
.brand small{display:block; font-style:italic; font-size:14px; font-weight:400; color:var(--gold); letter-spacing:.08em;}
.custom-logo-link img{height:120px; width:auto;}
.footer-logo .custom-logo-link img{height:130px;}
nav.links ul{display:flex; gap:30px; font-size:15.5px; letter-spacing:.02em; list-style:none; margin:0; padding:0;}
nav.links li{list-style:none;}
nav.links a{background:none; border:none; padding:6px 0; color:var(--ink-soft); border-bottom:2px solid transparent; display:inline-block;}
nav.links a:hover, nav.links .current-menu-item > a{color:var(--navy); border-bottom-color:var(--gold);}
@media (prefers-color-scheme: dark){ nav.links .current-menu-item > a{color:var(--gold);} }
.cta-btn{
  background:var(--navy); color:#fff; border:1px solid var(--navy); padding:12px 22px; font-size:14.5px;
  letter-spacing:.06em; white-space:nowrap; display:inline-block;
}
.cta-btn:hover{background:var(--navy-deep);}
.cta-btn.outline{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55);}
.cta-btn.outline:hover{background:rgba(255,255,255,.12);}
.menu-toggle{display:none; background:none; border:1px solid var(--line); padding:8px 12px; color:var(--navy);}

/* Hero */
.hero{position:relative; overflow:hidden; background:var(--navy); color:#fff;}
.hero-grid{display:grid; grid-template-columns:1.1fr 1fr; align-items:stretch; min-height:520px;}
.hero-copy{padding:80px 56px 70px 32px; display:flex; flex-direction:column; justify-content:center; max-width:560px; margin-left:auto;}
.eyebrow-line{width:46px; height:1px; background:var(--gold); margin:18px 0;}
.hero-copy h1{font-size:44px; font-weight:600; line-height:1.15; margin:0 0 6px;}
.hero-copy .script{display:block; font-style:italic; font-weight:500; color:#ffffff; font-size:34px; margin-top:4px;}
.hero-copy p.lede{font-size:18px; color:#d7dbe6; max-width:460px; margin:0 0 30px;}
.hero-img{position:relative;}
.hero-img img{width:100%; height:100%; object-fit:cover; object-position:center;}
.hero-img::after{content:"";position:absolute; inset:0; background:linear-gradient(90deg, var(--navy) 0%, rgba(24,39,66,0) 28%);}

/* Sections */
section{padding:88px 0;}
.section-tight{padding:64px 0;}
.center{text-align:center;}
.lead-h{font-size:36px; font-weight:600; margin:0 0 18px; max-width:640px;}
.lead-p{color:var(--ink-soft); font-size:17.5px; max-width:640px; margin:0 auto 16px;}
.divider{width:46px; height:1px; background:var(--gold); margin:0 auto 20px;}

/* Practice area cards */
.card-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:46px;}
.p-card{background:var(--paper); border:1px solid var(--line); padding:30px 26px; text-align:left;}
.p-card .icon{width:34px; height:34px; margin-bottom:18px;}
.p-card h3{font-size:20px; font-weight:600; margin:0 0 10px; color:var(--navy);}
@media (prefers-color-scheme: dark){ .p-card h3{color:var(--gold);} }
.p-card p{font-size:15.5px; color:var(--ink-soft); margin:0 0 18px;}
.p-card a{font-size:14px; color:var(--gold-text); border-bottom:1px solid var(--gold); padding-bottom:2px;}

/* About split */
.split{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.split img{border:1px solid var(--line);}
.quote{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:22px; color:var(--navy); margin:22px 0 0; max-width:480px;}
@media (prefers-color-scheme: dark){ .quote{color:var(--gold);} }
.credentials-list{list-style:none; margin:22px 0 0; padding:0; max-width:480px;}
.credentials-list li{position:relative; padding-left:20px; margin-bottom:10px; font-size:15px; color:var(--ink-soft);}
.credentials-list li::before{content:""; position:absolute; left:0; top:9px; width:9px; height:1px; background:var(--gold-text);}

/* Why grid */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:36px 40px; margin-top:50px;}
.why-item h3{font-size:20px; font-weight:600; color:var(--navy); margin:0 0 8px;}
@media (prefers-color-scheme: dark){ .why-item h3{color:var(--gold);} }
.why-item p{font-size:15.5px; color:var(--ink-soft); margin:0;}
.why-item .rule{width:26px; height:1px; background:var(--gold); margin-bottom:14px;}

/* Practice detail sections */
.practice-block{padding:60px 0; border-bottom:1px solid var(--line);}
.practice-block:last-child{border-bottom:none;}
.practice-block .num{color:var(--navy); font-family:'Cormorant Garamond',serif; font-style:italic; font-size:20px;}
.practice-block h2{font-size:30px; margin:8px 0 18px; color:var(--navy);}
@media (prefers-color-scheme: dark){ .practice-block h2{color:var(--gold);} }
.practice-block .body{max-width:680px; color:var(--ink-soft); font-size:17px;}
.practice-block .body p{margin:0 0 14px;}
.practice-block .closing{font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--navy); font-size:20px; margin-top:10px;}
@media (prefers-color-scheme: dark){ .practice-block .closing{color:var(--ink);} }

/* CTA banner */
.banner{background:var(--navy-deep); color:#fff; text-align:center; padding:70px 32px;}
.banner h2{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:30px; font-weight:500; margin:0 0 10px;}
.banner p{color:#c4cadd; font-size:14.5px; letter-spacing:.05em; margin:0 0 30px;}

/* Footer */
footer.site-footer{background:var(--paper); border-top:1px solid var(--line); padding:46px 0 40px;}
.foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:30px; align-items:start;}
.foot-grid .brand{margin-bottom:8px;}
.foot-col p{font-size:14.5px; color:var(--ink-soft); margin:0 0 8px;}
.foot-bottom{margin-top:36px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-size:13.5px; color:var(--ink-soft); flex-wrap:wrap; gap:10px;}
.footer-logo{filter:none;}
@media (prefers-color-scheme: dark){ .footer-logo{filter:invert(1) brightness(1.8);} }

/* Contact page */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
.field{margin-bottom:18px;}
.field label{display:block; font-size:15px; color:var(--ink-soft); margin-bottom:6px; letter-spacing:.02em;}
.field input,.field textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); background:var(--paper); color:var(--ink);
  font-family:inherit; font-size:16px;
}
.field textarea{resize:vertical; min-height:110px;}
.field input:focus,.field textarea:focus{outline:2px solid var(--gold); outline-offset:1px;}
.disclaimer{font-size:15px; color:var(--ink-soft); margin-top:18px; line-height:1.7; background:var(--ivory); padding:16px 18px; border:1px solid var(--line);}
.contact-info-item{display:flex; gap:14px; margin-bottom:22px;}
.contact-info-item .ic{width:20px; height:20px; flex:none; margin-top:2px; color:var(--gold);}
.contact-info-item h3{margin:0 0 4px; font-size:18px; color:var(--navy);}
@media (prefers-color-scheme: dark){ .contact-info-item h3{color:var(--gold);} }
.contact-info-item p{margin:0; font-size:16px; color:var(--ink-soft);}
.form-msg{display:none; background:var(--ivory); border:1px solid var(--line); padding:16px 18px; font-size:15px; margin-top:16px; color:var(--ink);}
.form-msg.show{display:block;}

.photo-caption{position:relative;}
.photo-caption .cap{position:absolute; left:0; right:0; bottom:0; background:linear-gradient(0deg, rgba(15,27,48,.88), rgba(15,27,48,0)); color:#fff; padding:26px 22px 16px; font-family:'Cormorant Garamond',serif; font-size:20px; font-style:italic;}
.about-photo-split{grid-template-columns:0.85fr 1.15fr;}
.about-attorney-photo{max-width:340px;}
@media (max-width:900px){
  .about-photo-split{grid-template-columns:1fr;}
  .about-attorney-photo{max-width:420px; margin:0 auto;}
}
@media (max-width:560px){
  .about-attorney-photo{max-width:100%;}
}

.practice-list-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:20px;}
.practice-list-item{background:var(--paper); border:1px solid var(--line); padding:24px 24px;}
.practice-list-item h3{color:var(--navy); font-size:20px; margin:0 0 8px;}
.practice-list-item p{color:var(--ink-soft); font-size:15.5px; margin:0;}
@media (max-width:900px){ .practice-list-grid{grid-template-columns:1fr;} }

/* Journal (blog) */
.journal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:10px;}
.journal-card{background:var(--paper); border:1px solid var(--line);}
.journal-card a{display:block; color:inherit;}
.journal-card-img{aspect-ratio:16/10; overflow:hidden;}
.journal-card-img img{width:100%; height:100%; object-fit:cover;}
.journal-card-body{padding:22px 22px 26px;}
.journal-date{font-size:12.5px; letter-spacing:.08em; color:var(--gold); text-transform:uppercase; margin-bottom:8px;}
.journal-card h2{font-size:22px; color:var(--navy); margin:0 0 10px; line-height:1.25;}
.journal-card p{font-size:15.5px; color:var(--ink-soft); margin:0 0 14px;}
.journal-readmore{font-size:14px; color:var(--gold-text); border-bottom:1px solid var(--gold); padding-bottom:2px;}
.journal-pagination{margin-top:50px; display:flex; justify-content:space-between; font-size:15px;}
.journal-pagination .page-numbers{padding:8px 14px; border:1px solid var(--line); margin:0 4px; color:var(--ink-soft);}
.journal-pagination .page-numbers.current{background:var(--navy); color:#fff; border-color:var(--navy);}
@media (max-width:900px){ .journal-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .journal-grid{grid-template-columns:1fr;} }

/* Plain page fallback (page.php) */
.plain-page{padding:70px 0; max-width:760px; margin:0 auto;}
.plain-page h1{font-size:34px; color:var(--navy); margin-bottom:20px;}
@media (prefers-color-scheme: dark){ .plain-page h1{color:var(--gold);} }
.plain-page .entry-content{font-size:17px; color:var(--ink-soft);}
.plain-page .entry-content p{margin:0 0 16px;}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr; min-height:auto;}
  .hero-img{height:260px; order:-1;}
  .hero-copy{margin:0; max-width:100%; padding:44px 24px;}
  .hero-copy h1{font-size:32px;}
  .card-grid{grid-template-columns:1fr 1fr;}
  .split{grid-template-columns:1fr; gap:30px;}
  .why-grid{grid-template-columns:1fr 1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  nav.links{position:fixed; top:96px; left:0; right:0; background:var(--paper); border-bottom:1px solid var(--line); display:none;}
  nav.links.open{display:block;}
  nav.links ul{flex-direction:column; gap:0; padding:6px 32px 14px;}
  nav.links a{padding:12px 0; width:100%; border-bottom:1px solid var(--line);}
  .menu-toggle{display:inline-block;}
}
@media (max-width:560px){
  .card-grid{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .wrap{padding:0 20px;}
  .custom-logo-link img{height:56px;}
  header.site-header a.brand img{height:56px !important;}
}

/* Eyebrow / kicker labels */
.eyebrow-dark{font-size:15.5px; letter-spacing:.14em; color:#ffffff; font-weight:500;}
.eyebrow-light{font-size:15.5px; letter-spacing:.12em; color:var(--navy); font-weight:600;}
@media (prefers-color-scheme: dark){ .eyebrow-light{color:var(--gold);} }
