/* ============================================================
   MORANI ESTATE — Design System v2
   Estate Green #1D2A24 · Warm Ivory #F5F1E8 · Champagne Gold #C3A46B
   Principles (from industry research):
   restraint, generous whitespace, editorial serif headlines,
   static hero w/ single clear CTA, humanistic warmth
   ============================================================ */
:root{
  --ink:#1D2A24;          /* Estate Green */
  --ink-soft:#243329;
  --hunter:#2C3E30;
  --parchment:#F5F1E8;    /* Warm Ivory */
  --bone:#FFFFFF;         /* Pure White */
  --charcoal:#303431;     /* Soft Charcoal body text */
  --brass:#C3A46B;        /* Champagne Gold */
  --brass-light:#D9BF8E;
  --walnut:#725A33;
  --line:rgba(245,241,232,0.16);
  --line-dark:rgba(48,52,49,0.13);
}
*{margin:0; padding:0; box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  font-size:16px;
  background:var(--parchment);
  color:var(--charcoal);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Cormorant Garamond', serif; font-weight:600; letter-spacing:0.005em; line-height:1.12; color:var(--ink);}
h1 em, h2 em, h3 em{font-style:italic; font-weight:500; color:var(--brass);}
a{text-decoration:none; color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
section{padding:110px 0;}

.eyebrow{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.28em; text-transform:uppercase; color:var(--brass); display:flex; align-items:center; gap:14px; margin-bottom:20px;}
.eyebrow::before{content:""; width:34px; height:1px; background:var(--brass);}

/* ---------- NAV ---------- */
.nav{background:var(--ink); position:sticky; top:0; z-index:200; border-bottom:1px solid rgba(195,164,107,0.22);}
.nav-inner{max-width:1320px; margin:0 auto; padding:0 32px; height:78px; display:flex; align-items:center; justify-content:space-between; gap:24px;}
.logo{font-family:'Cormorant Garamond', serif; font-weight:600; font-size:19px; letter-spacing:0.10em; color:#FFFFFF; display:flex; align-items:center; gap:10px; white-space:nowrap;}
.logo img.mark-img{height:34px; width:auto; flex-shrink:0;}
.footer-top .logo img.mark-img{height:44px;}
.nav-links{display:flex; gap:26px; font-size:13.5px; color:rgba(255,255,255,0.82); flex-wrap:nowrap;}
.nav-links a{transition:color .2s; padding-bottom:3px; border-bottom:1px solid transparent; white-space:nowrap;}
.nav-links a:hover{color:var(--brass-light);}
.nav-links a[aria-current="page"]{color:var(--brass-light); border-bottom-color:var(--brass);}
.nav-cta{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; border:1px solid var(--brass); color:var(--brass); padding:10px 18px; border-radius:2px; transition:all .25s; white-space:nowrap;}
.nav-cta:hover{background:var(--brass); color:var(--ink);}
.nav-toggle{display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; background:none; border:none;}
.nav-toggle span{display:block; width:22px; height:2px; background:#FFFFFF; transition:all .25s;}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (max-width:1200px){ .nav-links{gap:18px; font-size:12.5px;} .logo-text{display:none;} }
@media (max-width:1000px){
  .nav-links{display:none; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:var(--ink); padding:16px 28px 26px; gap:0; border-bottom:1px solid rgba(195,164,107,0.25); z-index:210;}
  .nav-links.open{display:flex;}
  .nav-links a{padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.08); font-size:15px;}
  .nav-links a:last-child{border-bottom:none;}
  .nav-toggle{display:flex;}
  .nav-inner{position:relative;}
}

/* ---------- HOME HERO (photo + green overlay) ---------- */
.hero{
  position:relative;
  background:
    linear-gradient(180deg, rgba(29,42,36,0.86) 0%, rgba(29,42,36,0.62) 55%, rgba(29,42,36,0.88) 100%),
    var(--ink) url('images/pandora-home-maintenance.jpg') center 28%/cover no-repeat;
  color:#FFFFFF;
  padding:0;
}
.hero-inner{max-width:1180px; margin:0 auto; padding:150px 32px 140px; display:block; text-align:center;}
.hero .eyebrow{justify-content:center;}
.hero .eyebrow::after{content:""; width:34px; height:1px; background:var(--brass);}
.hero h1{font-size:clamp(42px, 6vw, 74px); color:#FFFFFF; max-width:900px; margin:0 auto 26px; font-weight:600;}
.hero p.lede{font-size:clamp(16px,1.6vw,19px); color:rgba(255,255,255,0.85); max-width:640px; margin:0 auto 40px; font-weight:400;}
.hero-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
.btn{display:inline-block; padding:16px 34px; font-size:13px; font-family:'IBM Plex Mono', monospace; letter-spacing:0.09em; text-transform:uppercase; border-radius:2px; transition:all .25s; border:1px solid transparent;}
.btn-primary{background:var(--brass); color:var(--ink); border-color:var(--brass); font-weight:500;}
.btn-primary:hover{background:var(--brass-light); border-color:var(--brass-light);}
.btn-ghost{border-color:rgba(255,255,255,0.55); color:#FFFFFF; background:transparent;}
.btn-ghost:hover{border-color:var(--brass-light); color:var(--brass-light);}
.hero-stats{display:flex; gap:56px; justify-content:center; margin-top:64px; flex-wrap:wrap;}
.stat .num{font-family:'Cormorant Garamond', serif; font-size:34px; color:var(--brass-light); line-height:1;}
.stat .label{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.6); margin-top:8px;}
/* legacy hero decorations neutralized (restraint) */
.blueprint-grid,.crosshair,.seal-wrap,.seal,.seal-text{display:none;}

/* ---------- TRUSTBAR ---------- */
.trustbar{background:var(--ink); border-top:1px solid rgba(195,164,107,0.28); padding:20px 0;}
.trustbar .wrap{display:flex; justify-content:center; gap:14px 48px; flex-wrap:wrap; font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.14em; color:var(--brass);}

/* ---------- PAGE HERO (interior) ---------- */
.page-hero{background:var(--ink); color:#FFFFFF; padding:110px 0 96px;}
.breadcrumb{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; color:rgba(255,255,255,0.45); margin-bottom:30px; text-transform:uppercase;}
.breadcrumb a{color:rgba(255,255,255,0.45);} .breadcrumb a:hover{color:var(--brass-light);}
.page-hero .eyebrow{color:var(--brass);}
.page-hero h1{font-size:clamp(38px,4.8vw,58px); max-width:760px; margin-bottom:22px; color:#FFFFFF;}
.page-hero p.lede{font-size:17.5px; color:rgba(255,255,255,0.75); max-width:640px; line-height:1.8;}

/* ---------- SECTION HEADS ---------- */
.section-head{max-width:660px; margin-bottom:64px;}
.section-head h2{font-size:clamp(32px,3.6vw,46px); margin-bottom:18px;}
.section-head p{color:#5f5a4e; font-size:16.5px;}
.section-head.on-dark h2{color:#FFFFFF;}
.section-head.on-dark p{color:rgba(255,255,255,0.68);}

/* ---------- SERVICES ---------- */
.services{background:var(--parchment);}
.service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:1080px){.service-grid{grid-template-columns:repeat(2,1fr) !important;}}
@media (max-width:720px){.service-grid{grid-template-columns:1fr !important;}}
.service-card{background:var(--bone); border:1px solid var(--line-dark); padding:46px 38px 40px; display:flex; flex-direction:column; transition:border-color .25s, transform .25s;}
.service-card:hover{border-color:var(--brass); transform:translateY(-3px);}
.service-card .icon{width:52px; height:52px; margin-bottom:26px;}
.service-card .icon svg{width:100%; height:100%; stroke:var(--brass); fill:none; stroke-width:1.1;}
.service-card h3{font-size:25px; margin-bottom:12px;}
.service-card p{font-size:14.5px; color:#5f5a4e; margin-bottom:22px;}
.service-card ul{list-style:none; margin-bottom:26px;}
.service-card li{font-size:13.5px; padding:9px 0; border-top:1px solid var(--line-dark); color:#3d392f; display:flex; justify-content:space-between; gap:10px; align-items:baseline;}
.service-card .cta{margin-top:auto; font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.06em; color:var(--ink); border-bottom:1px solid var(--brass); padding-bottom:3px; align-self:flex-start; transition:color .2s;}
.service-card .cta:hover{color:var(--brass);}
.tag{font-family:'IBM Plex Mono', monospace; font-size:9px; letter-spacing:0.08em; color:var(--walnut); background:rgba(195,164,107,0.14); padding:2px 7px; border-radius:2px; white-space:nowrap;}

/* ---------- DETAIL BLOCKS (service pages) ---------- */
.detail-block{background:var(--bone); border:1px solid var(--line-dark); padding:54px 50px; margin-bottom:30px;}
.detail-block h3{font-size:28px; margin-bottom:14px;}
.detail-block > p{color:#5f5a4e; font-size:15.5px; max-width:640px; margin-bottom:26px;}
.detail-block ul{list-style:none; columns:2; column-gap:48px;}
@media (max-width:820px){.detail-block ul{columns:1;} .detail-block{padding:40px 30px;}}
.detail-block li{font-size:14.5px; padding:11px 0; border-top:1px solid var(--line-dark); color:#3d392f; display:flex; justify-content:space-between; gap:12px; break-inside:avoid; align-items:baseline;}

/* ---------- BIO / PRINCIPAL ---------- */
.bio-single{display:grid; grid-template-columns:400px 1fr; gap:72px; align-items:center;}
@media (max-width:900px){.bio-single{grid-template-columns:1fr; gap:40px;}}
.bio-photo{position:relative; height:520px; overflow:hidden; border:1px solid var(--line-dark); background:var(--ink);}
@media (max-width:900px){.bio-photo{height:440px; max-width:400px;}}
.bio-photo img{width:100%; height:100%; object-fit:cover; object-position:top center;}
.tick{position:absolute; width:20px; height:20px; border-color:var(--brass);}
.tick.tl{top:14px; left:14px; border-top:1px solid var(--brass); border-left:1px solid var(--brass);}
.tick.br{bottom:14px; right:14px; border-bottom:1px solid var(--brass); border-right:1px solid var(--brass);}
.bio-text .role{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--walnut); display:block; margin:10px 0 20px;}
.bio-text h4{font-size:30px;}
.bio-text p{color:#5f5a4e; font-size:15.5px; margin-bottom:16px; max-width:520px;}
.intro-photo{position:relative; overflow:hidden;}
.intro-photo img{width:100%; height:100%; object-fit:cover;}

/* ---------- VALUES ---------- */
.values-list{display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}
@media (max-width:820px){.values-list{grid-template-columns:1fr;}}
.value-item{background:var(--bone); border:1px solid var(--line-dark); padding:42px 38px;}
.value-item .num{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--brass); display:block; margin-bottom:16px;}
.value-item h4{font-size:23px; margin-bottom:10px;}
.value-item p{font-size:14.5px; color:#5f5a4e;}

/* dark variant */
.values-dark-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:900px){.values-dark-grid{grid-template-columns:1fr;}}
.value-dark{background:rgba(255,255,255,0.03); border:1px solid rgba(195,164,107,0.25); padding:42px 36px;}
.value-dark .num{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--brass-light); display:block; margin-bottom:16px;}
.value-dark h4{font-size:22px; color:#FFFFFF; margin-bottom:10px;}
.value-dark p{font-size:14px; color:rgba(255,255,255,0.62);}

/* ---------- TESTIMONIALS / DARK SECTIONS ---------- */
.testimonials{background:var(--ink); color:#FFFFFF;}
.t-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
@media (max-width:820px){.t-grid{grid-template-columns:1fr;}}
.t-card{border:1px solid rgba(195,164,107,0.3); padding:44px 40px;}
.t-card blockquote{font-family:'Cormorant Garamond', serif; font-size:22px; font-style:italic; color:#FFFFFF; line-height:1.5; margin-bottom:22px;}
.t-card .who{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.18em; color:var(--brass-light);}

/* ---------- PORTFOLIO CARDS ---------- */
.portfolio{background:var(--parchment);}
.pf-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:900px){.pf-grid{grid-template-columns:1fr;}}
.pf-card{background:var(--bone); border:1px solid var(--line-dark); overflow:hidden;}
.pf-photo{position:relative; height:120px; background:linear-gradient(135deg, var(--ink) 0%, var(--hunter) 100%);}
.pf-body{padding:32px 30px 36px;}
.pf-body h4{font-size:21px; margin:8px 0 10px;}
.pf-body p{font-size:14px; color:#5f5a4e;}

/* ---------- PROCESS ---------- */
.process{background:var(--ink); color:#FFFFFF;}
.process-list{max-width:860px;}
.process-row{display:grid; grid-template-columns:80px 260px 1fr; gap:30px; padding:34px 0; border-top:1px solid rgba(195,164,107,0.25); align-items:baseline;}
@media (max-width:820px){.process-row{grid-template-columns:60px 1fr; } .process-desc{grid-column:2;}}
.process-num{font-family:'Cormorant Garamond', serif; font-size:30px; color:var(--brass);}
.process-row h4{font-size:22px; color:#FFFFFF;}
.process-desc{font-size:14.5px; color:rgba(255,255,255,0.65);}

/* ---------- CTA BAND ---------- */
.cta-band{background:var(--ink); color:#FFFFFF; padding:96px 0; text-align:center; border-top:1px solid rgba(195,164,107,0.3);}
.cta-band h2{color:#FFFFFF; font-size:clamp(30px,3.6vw,44px); margin-bottom:16px;}
.cta-band p{color:rgba(255,255,255,0.7); max-width:520px; margin:0 auto 34px; font-size:16px;}
.cta-band .hero-ctas{justify-content:center;}

/* ---------- CONTACT ---------- */
.contact{background:var(--parchment); padding:100px 0;}
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start;}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-info h2{font-size:36px; margin-bottom:12px;}
.contact-info > p{color:#5f5a4e; margin-bottom:30px; font-size:15.5px;}
.info-row{display:grid; grid-template-columns:120px 1fr; gap:16px; padding:15px 0; border-top:1px solid var(--line-dark); font-size:14.5px;}
.info-row .k{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--walnut); padding-top:3px;}
.estate-form{background:var(--bone); border:1px solid var(--line-dark); padding:48px 44px;}
@media (max-width:600px){.estate-form{padding:34px 24px;}}
.estate-form h3{font-size:26px; margin-bottom:26px;}
.field{margin-bottom:20px;}
.field label{display:block; font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--walnut); margin-bottom:8px;}
.field input, .field select, .field textarea{width:100%; border:1px solid var(--line-dark); background:var(--parchment); color:var(--charcoal); padding:13px 14px; font-family:'Inter', sans-serif; font-size:14.5px; border-radius:2px; outline:none; transition:border .2s;}
.field input:focus, .field textarea:focus{border-color:var(--brass);}
.field textarea{min-height:120px; resize:vertical;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:600px){.row2{grid-template-columns:1fr;}}
.checkbox-group{display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; margin:6px 0 8px;}
@media (max-width:600px){.checkbox-group{grid-template-columns:1fr;}}
.checkbox-item{display:flex; gap:9px; align-items:center; font-size:13.5px; color:#3d392f;}
.checkbox-item input{accent-color:var(--ink);}
.submit-btn{margin-top:10px; background:var(--ink); color:#FFFFFF; border:1px solid var(--ink); width:100%; padding:17px; font-family:'IBM Plex Mono', monospace; letter-spacing:0.1em; text-transform:uppercase; font-size:12.5px; cursor:pointer; border-radius:2px; transition:background .25s;}
.submit-btn:hover{background:var(--hunter);}

/* ---------- FOOTER ---------- */
footer{background:var(--ink); color:rgba(255,255,255,0.75); padding:82px 0 42px;}
.footer-top{display:grid; grid-template-columns:1fr 1.4fr; gap:64px; padding-bottom:52px; border-bottom:1px solid rgba(195,164,107,0.3);}
@media (max-width:900px){.footer-top{grid-template-columns:1fr; gap:40px;}}
.footer-top .logo{margin-bottom:18px; color:#FFFFFF;}
.footer-top p{max-width:320px; font-size:14px; line-height:1.75; color:rgba(255,255,255,0.6);}
.footer-cols{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
@media (max-width:700px){.footer-cols{grid-template-columns:1fr 1fr;}}
.footer-col h5{font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--brass); margin-bottom:16px; font-weight:500;}
.footer-col a{display:block; font-size:14px; padding:5px 0; color:rgba(255,255,255,0.62); transition:color .2s;}
.footer-col a:hover{color:var(--brass-light);}
.footer-bottom{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:32px; font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.14em; color:rgba(255,255,255,0.4);}

/* ---------- MISC ---------- */
.lede{font-size:17px;}
::selection{background:var(--brass); color:var(--ink);}
