/*
Theme Name: Heritage Immigration Law
Theme URI: https://heritageimmigrationlaw.com
Author: Heritage Immigration Law
Description: Heritage Immigration Law website: Home, About (family story), Practice Areas, Journal, Contact, Privacy Policy, and Accessibility Statement. Navy and gold.
Version: 4.3.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: heritage-law
*/
  :root{
    box-sizing:border-box;
    --navy:#182742; --navy-deep:#0f1b30; --cream:#f8f5ee; --ivory:#efe9db;
    --line:#d9d0ba; --gold:#a2833f; --ink:#1c2333; --ink-soft:#4a5164; --paper:#ffffff;
    padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
  }
  html{scroll-padding-top:90px;}
  *{box-sizing:inherit;}
  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;}
  h1,h2,h3{font-family:'Cormorant Garamond',serif;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; height:auto; display:block;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
  button{font-family:inherit; cursor:pointer;}


  header{position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:1px solid var(--line);}
  .nav-row{max-width:1120px; margin:0 auto; padding:16px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
  nav.links ul{list-style:none; margin:0; padding:0; display:flex; gap:30px;}
  nav.links a{display:block; padding:6px 0; color:var(--ink-soft); border-bottom:2px solid transparent; font-size:14.5px;}
  nav.links a.active,nav.links a:hover,nav.links .current-menu-item > a,nav.links .current_page_parent > a{color:var(--navy); border-bottom-color:var(--gold);}
  .cta-btn{background:var(--navy); color:#fff; border:1px solid var(--navy); padding:12px 22px; font-size:13.5px; letter-spacing:.06em; white-space:nowrap;}
  .cta-btn.outline{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55);}
  .menu-toggle{display:none;}

  .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:17px; color:#d7dbe6; max-width:460px; margin:0 0 30px;}
  .hero-img{position:relative;}
  .hero-img img{width:100%; height:100%; object-fit:cover;}
  .hero-img::after{content:"";position:absolute; inset:0; background:linear-gradient(90deg, var(--navy) 0%, rgba(24,39,66,0) 28%);}

  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:16.5px; max-width:640px; margin:0 auto 16px;}

  .eyebrow-dark{font-size:14.5px; letter-spacing:.14em; color:#ffffff; font-weight:500;}
  .eyebrow-light{font-size:14.5px; letter-spacing:.12em; color:var(--navy); font-weight:600;}

  .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);}
  .p-card p{font-size:14.5px; color:var(--ink-soft); margin:0 0 18px;}
  .p-card a{font-size:13px; color:var(--gold); border-bottom:1px solid var(--gold); padding-bottom:2px;}

  .split{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
  .split img{border:1px solid var(--line);}
  .split.big img.passport-photo{width:100%; max-width:none; height:auto; margin:0;}
  .quote{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:22px; color:var(--navy); margin:22px 0 0; max-width:480px;}

  .why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:36px 40px; margin-top:50px;}
  .why-item h3{font-size:19px; font-weight:600; color:var(--navy); margin:0 0 8px;}
  .why-item p{font-size:14.5px; color:var(--ink-soft); margin:0;}
  .why-item .rule{width:26px; height:1px; background:var(--gold); margin-bottom:14px;}

  .practice-block{padding:46px 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:19px;}
  .practice-block h2{font-size:27px; margin:8px 0 14px; color:var(--navy);}
  .practice-block .body{max-width:720px; color:var(--ink-soft); font-size:16px;}
  .practice-block .body p{margin:0 0 12px;}

  .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:13.5px; letter-spacing:.05em; margin:0 0 30px;}

  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-col p{font-size:13.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:12.5px; color:var(--ink-soft); flex-wrap:wrap; gap:10px;}

  .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;}

  .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:19px; margin:0 0 8px;}
  .practice-list-item p{color:var(--ink-soft); font-size:14.5px; margin:0;}

  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
  .field{margin-bottom:18px;}
  .field label{display:block; font-size:14px; color:var(--ink-soft); margin-bottom:6px;}
  .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:15px;}
  .field textarea{resize:vertical; min-height:110px;}
  .disclaimer{font-size:14px; 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:17px; color:var(--navy);}
  .contact-info-item p{margin:0; font-size:15px; color:var(--ink-soft);}
  .form-msg{display:none; background:var(--ivory); border:1px solid var(--line); padding:16px 18px; font-size:14px; margin-top:16px;}
  .form-msg.show{display:block;}

  .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-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:21px; color:var(--navy); margin:0 0 10px; line-height:1.25;}
  .journal-card p{font-size:14.5px; color:var(--ink-soft); margin:0 0 14px;}
  .journal-readmore{font-size:13px; color:var(--gold); border-bottom:1px solid var(--gold); padding-bottom:2px;}
  @media (max-width:900px){ .journal-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .journal-grid{grid-template-columns:1fr;} }


  @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;}
    .practice-list-grid{grid-template-columns:1fr;}
    nav.links{position:fixed; top:70px; left:0; right:0; background:var(--paper); flex-direction:column; gap:0; border-bottom:1px solid var(--line); display:none; padding:6px 32px 14px;}
    nav.links.open{display:flex;}
    nav.links ul{flex-direction:column; gap:0;}
    nav.links a{padding:12px 0; width:100%; text-align:left; border-bottom:1px solid var(--line);}
    .menu-toggle{display:inline-block; background:none; border:1px solid var(--line); padding:8px 12px; color:var(--navy);}
  }
  @media (max-width:560px){
    .card-grid{grid-template-columns:1fr;}
    .why-grid{grid-template-columns:1fr;}
    .wrap{padding:0 20px;}
  }
  /* WordPress additions */
  .cta-btn{display:inline-block;}
  .brand-logo img{height:60px; width:auto;}
  .nav-row nav.links{display:flex;}
  .photo-caption img{width:100%; height:auto;}
  .attorney-photo{max-width:300px; width:100%; justify-self:center;}
  .foot-legal{margin-top:36px; padding-top:22px; border-top:1px solid var(--line); font-size:12.5px; color:var(--ink-soft);}
  .foot-legal p{margin:0 0 10px; max-width:900px;}
  .foot-legal .copy{margin-top:14px;}
  .skip-link{position:absolute; left:-9999px;}
  .skip-link:focus{left:16px; top:16px; z-index:100; background:var(--paper); padding:8px 12px;}
  .entry{max-width:760px; color:var(--ink-soft); font-size:16px; line-height:1.8;}
  .entry h2,.entry h3{color:var(--navy);}
  .entry img{height:auto;}
  .journal-card img{width:100%; height:auto; aspect-ratio:16/10; object-fit:cover;}
  .journal-card h2 a{color:inherit;}
  .form-msg.error{border-color:#b45050;}
  .hp-field{position:absolute; left:-9999px; height:0; overflow:hidden;}
  .pagination{margin-top:36px;}
  .pagination .nav-links{display:flex; gap:14px; flex-wrap:wrap; font-size:14px;}
  .pagination a{color:var(--gold); border-bottom:1px solid var(--gold);}
  @media (max-width:900px){ .nav-row nav.links{display:none;} .nav-row nav.links.open{display:flex;} }

  /* About page banner */
  section.about-hero{position:relative; padding:0; background:#f4f4f2 url("assets/img/about-hero-bg.jpg?v=4.3.0") center / cover no-repeat; border-bottom:1px solid var(--line); overflow:hidden;}
  .about-hero::before{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(250,250,248,.92) 0%, rgba(250,250,248,.75) 40%, rgba(250,250,248,0) 70%);}
  .about-hero__inner{position:relative; display:grid; grid-template-columns:1fr auto; align-items:center; gap:40px;}
  .about-hero__text{grid-column:1; grid-row:1; padding:64px 0;}
  .about-hero__media{grid-column:2; grid-row:1; align-self:end;}
  .about-hero__media img{height:520px; width:auto; max-width:none; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);}
  .about-hero__name{white-space:nowrap; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:66px; line-height:1.02; color:var(--navy); margin:16px 0 14px;}
  .about-hero__title{font-size:16px; letter-spacing:.32em; text-transform:uppercase; color:var(--navy); font-weight:500;}
  .about-hero__rule{width:300px; max-width:80%; height:2px; background:var(--gold); margin:22px 0 30px;}
  .story-split{grid-template-columns:1.1fr .9fr; align-items:start;}
  @media (max-width:1100px){ .about-hero__media img{height:440px;} .about-hero__name{font-size:54px;} }
  @media (max-width:900px){
    .about-hero::before{background:none;}
    .about-hero__inner{grid-template-columns:1fr; gap:0; padding:0;}
    .about-hero__media{grid-row:1; grid-column:1; justify-self:center; width:100%;}
    .about-hero__media img{height:360px; width:100%; object-fit:cover; object-position:center top; -webkit-mask-image:none; mask-image:none;}
    .about-hero__text{grid-row:2; grid-column:1; padding:28px 20px 40px; text-align:center; background:rgba(250,250,248,.94);}
    .about-hero__name{font-size:46px;}
    .about-hero__title{font-size:13px; letter-spacing:.24em;}
    .about-hero__rule{margin:18px auto 24px;}
    .story-split{grid-template-columns:1fr;}
  }
