/*
Theme Name: Southern Mass Homes
Theme URI: https://southernmasshomes.com
Author: Southern Mass Homes
Description: Custom real estate lead-generation theme for Southern Mass Homes, covering Bristol & Plymouth County towns. Built for Contact Form 7 lead capture, Yoast SEO, and a custom "town" post type with county taxonomy.
Version: 1.0
Requires PHP: 7.4
Text Domain: smh
*/

:root{
  --ridge:#1E3A2F;
  --ridge-light:#2C4E3F;
  --cream:#F3EDE2;
  --cream-panel:#EAE2D2;
  --clay:#A63D2F;
  --clay-light:#C25542;
  --slate:#3E5568;
  --stone:#8B8578;
  --ink:#211D18;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  line-height:1.5;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.display{font-family:'Fraunces', serif;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

/* roofline divider — signature brand element */
.roofline{width:100%; height:34px; display:block;}

/* header */
header.site-header{background:var(--cream); border-bottom:1px solid rgba(33,29,24,0.1); position:sticky; top:0; z-index:10;}
.header-row{display:flex; align-items:center; justify-content:space-between; padding:18px 32px; max-width:1180px; margin:0 auto;}
.logo{display:flex; align-items:center; gap:12px; text-decoration:none;}
.logo-mark{width:38px; height:38px;}
.logo-text{font-family:'Fraunces', serif; font-weight:600; font-size:20px; letter-spacing:0.2px; color:var(--ridge);}
.logo-text span{color:var(--clay); font-style:italic; font-weight:500;}
.main-nav{display:flex; align-items:center; gap:30px;}
.main-nav ul{list-style:none; display:flex; gap:30px;}
.main-nav a{color:var(--ink); text-decoration:none; font-size:14.5px; font-weight:500; opacity:0.82;}
.main-nav a:hover{opacity:1;}
.cta-btn, .submit-btn, button.smh-btn{background:var(--clay); color:var(--cream); border:none; padding:11px 20px; border-radius:3px; font-family:'Work Sans', sans-serif; font-weight:600; font-size:14px; letter-spacing:0.2px; cursor:pointer;}

/* hero */
.hero{background:var(--ridge); color:var(--cream); padding:64px 0 0;}
.hero-inner{max-width:1180px; margin:0 auto; padding:0 32px 56px; display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:center;}
.eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:#C9B99E; margin-bottom:18px; display:block;}
h1.hero-title{font-family:'Fraunces', serif; font-weight:500; font-size:48px; line-height:1.08; letter-spacing:-0.5px; margin-bottom:22px;}
h1.hero-title em{font-style:italic; color:#D99A8B; font-weight:500;}
.hero-sub{font-size:17px; color:#D8D2C3; max-width:440px; margin-bottom:8px;}
.town-row{display:flex; gap:0; margin-top:28px; font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:#B7C9BE; flex-wrap:wrap;}
.town-row span{padding-right:14px; margin-right:14px; border-right:1px solid rgba(243,237,226,0.25);}
.town-row span:last-child{border-right:none;}

/* dual lead form card */
.split-card{background:var(--cream); border-radius:4px; overflow:hidden; box-shadow:0 24px 48px rgba(0,0,0,0.25);}
.tab-row{display:flex;}
.tab{flex:1; text-align:center; padding:16px 10px; font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:1px; text-transform:uppercase; cursor:pointer; color:var(--stone); background:var(--cream-panel); border:none;}
.tab.active{background:var(--cream); color:var(--ink); font-weight:500;}
.panel{padding:26px 28px 28px; display:none;}
.panel.active{display:block;}
.panel h3{font-family:'Fraunces', serif; font-weight:500; font-size:21px; margin-bottom:6px;}
.panel p.desc{font-size:13.5px; color:var(--stone); margin-bottom:18px;}

/* Contact Form 7 field styling */
.wpcf7 label{display:block; font-size:12px; font-weight:600; color:var(--ridge); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:6px; margin-top:14px;}
.wpcf7 .field-label{display:block; font-size:12px; font-weight:600; color:var(--ridge); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:6px; margin-top:14px;}
.wpcf7 .wpcf7-list-item{display:block; margin:4px 0 0; font-size:13.5px; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ink);}
.wpcf7 .wpcf7-list-item input{margin-right:8px;}
.wpcf7 .wpcf7-list-item label{display:inline; font-size:13.5px; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ink); margin:0;}
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 select{
  width:100%; padding:11px 12px; border:1px solid rgba(33,29,24,0.18); border-radius:3px; font-family:'Work Sans', sans-serif; font-size:14px; background:#fff; color:var(--ink);
}
.wpcf7 input[type=submit]{width:100%; margin-top:18px; background:var(--clay); color:#fff; border:none; padding:14px; border-radius:3px; font-weight:600; font-size:14.5px; cursor:pointer; font-family:'Work Sans', sans-serif;}
.wpcf7-not-valid-tip{font-size:11px; color:var(--clay);}
.wpcf7-response-output{font-size:12px; border-radius:3px; margin-top:12px !important;}
.microcopy{font-size:11.5px; color:var(--stone); margin-top:10px; text-align:center;}

/* trust strip */
.trust{background:var(--cream-panel); padding:22px 0; border-top:1px solid rgba(33,29,24,0.08); border-bottom:1px solid rgba(33,29,24,0.08);}
.trust-inner{max-width:1180px; margin:0 auto; padding:0 32px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px;}
.trust-item{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--slate);}
.trust-item b{font-family:'Fraunces', serif; font-size:19px; color:var(--ridge); display:block; font-weight:600;}

/* sections */
.section{padding:76px 0;}
.section-head{max-width:560px; margin-bottom:44px;}
.section-tag{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--clay); display:block; margin-bottom:12px;}
h2.section-title{font-family:'Fraunces', serif; font-weight:500; font-size:32px; letter-spacing:-0.3px;}

/* county directory — scales to 40+ towns */
.county-block{margin-bottom:34px;}
.county-head{display:flex; align-items:baseline; justify-content:space-between; border-bottom:1px solid rgba(33,29,24,0.15); padding-bottom:10px; margin-bottom:16px;}
.county-head h5{font-family:'Fraunces', serif; font-weight:500; font-style:italic; font-size:19px; color:var(--ridge);}
.county-count{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--stone);}
.town-list{display:flex; flex-wrap:wrap; gap:10px 0;}
.town-chip{font-size:13.5px; color:var(--ink); text-decoration:none; padding:6px 16px 6px 0; border-right:1px solid rgba(33,29,24,0.15); margin-right:16px;}
.town-chip:last-child{border-right:none;}
.town-chip.flagship{font-weight:600; color:var(--clay);}
.town-chip.flagship::after{content:" ●"; font-size:8px; vertical-align:middle;}
.directory-note{display:flex; align-items:center; gap:8px; margin-top:6px; font-size:12px; color:var(--stone);}
.directory-note .dot{width:6px; height:6px; border-radius:50%; background:var(--clay); display:inline-block;}

/* flagship town cards (homepage highlight) */
.town-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; margin-bottom:48px;}
.town-card{background:var(--ridge); color:var(--cream); border-radius:4px; padding:26px 22px; min-height:210px; display:flex; flex-direction:column; justify-content:space-between; text-decoration:none;}
.town-card.alt{background:var(--slate);}
.town-card .num{font-family:'IBM Plex Mono', monospace; font-size:11px; color:#B7C9BE; opacity:0.8;}
.town-card h4{font-family:'Fraunces', serif; font-weight:500; font-size:22px; margin-top:14px;}
.town-card p{font-size:12.5px; color:#D8D2C3; margin-top:8px;}
.town-card .arrow{font-size:20px; margin-top:18px; color:var(--clay-light);}

/* how it works */
.steps{background:var(--cream-panel); padding:70px 0;}
.step-row{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
.step{border-top:2px solid var(--ridge); padding-top:18px;}
.step .step-num{font-family:'Fraunces', serif; font-style:italic; font-size:30px; color:var(--clay); margin-bottom:10px; display:block;}
.step h5{font-family:'Fraunces', serif; font-weight:500; font-size:18px; margin-bottom:8px;}
.step p{font-size:13.5px; color:var(--stone); line-height:1.6;}

/* single town page */
.town-hero{background:var(--ridge); color:var(--cream); padding:56px 0 40px;}
.town-hero .county-tag{font-family:'IBM Plex Mono', monospace; font-size:12px; color:#B7C9BE; letter-spacing:1px; text-transform:uppercase;}
.town-hero h1{font-family:'Fraunces', serif; font-weight:500; font-size:42px; margin:12px 0 14px;}
.town-hero p{max-width:600px; color:#D8D2C3; font-size:16px;}
.stat-block{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:36px 0;}
.stat-card{background:var(--cream-panel); border-radius:4px; padding:18px 20px; border-left:3px solid var(--clay);}
.stat-card .label{font-family:'IBM Plex Mono', monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:0.5px; color:var(--stone);}
.stat-card .value{font-family:'Fraunces', serif; font-size:22px; font-weight:600; color:var(--ridge); margin-top:6px;}
.stat-card .placeholder-flag{font-size:10px; color:var(--clay); display:block; margin-top:4px;}
.town-body{max-width:760px; padding:20px 0;}
.town-body h2{font-family:'Fraunces', serif; font-size:24px; margin:32px 0 12px;}
.town-body p{margin-bottom:14px; font-size:15px;}
.faq-item{border-top:1px solid rgba(33,29,24,0.12); padding:18px 0;}
.faq-item h3{font-family:'Fraunces', serif; font-size:17px; margin-bottom:8px;}
.related-towns{margin-top:40px;}
.related-towns a{display:inline-block; margin:0 12px 8px 0; font-size:13.5px; color:var(--slate); text-decoration:underline;}

/* footer */
footer.site-footer{background:var(--ridge); color:#D8D2C3; padding:56px 0 28px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; margin-bottom:40px;}
.foot-logo{font-family:'Fraunces', serif; font-weight:600; font-size:19px; color:var(--cream); margin-bottom:12px;}
.foot-logo span{color:var(--clay-light); font-style:italic;}
footer p{font-size:12.5px; line-height:1.7; color:#B7C9BE; max-width:280px;}
footer h6{font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:1px; color:#B7C9BE; margin-bottom:14px;}
footer ul{list-style:none;}
footer li{font-size:13px; margin-bottom:9px;}
footer a{color:#D8D2C3; text-decoration:none;}
.legal-strip{border-top:1px solid rgba(243,237,226,0.15); padding-top:22px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
.legal-strip p{font-size:11px; color:#8FA398; max-width:none;}
.fh-badge{font-family:'IBM Plex Mono', monospace; font-size:10.5px; color:#8FA398; border:1px solid rgba(243,237,226,0.2); padding:5px 10px; border-radius:3px;}

@media (max-width: 900px){
  .hero-inner{grid-template-columns:1fr;}
  .town-grid{grid-template-columns:repeat(2,1fr);}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .stat-block{grid-template-columns:repeat(2,1fr);}
  .main-nav ul{display:none;}
}

/* ===== Facebook ad landing pages — deliberately stripped of nav/exits ===== */
.landing-header{background:var(--cream); padding:16px 0; border-bottom:1px solid rgba(33,29,24,0.1);}
.landing-header .wrap{display:flex; align-items:center; justify-content:space-between;}
.landing-phone{font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--ridge); font-weight:500; text-decoration:none;}
.landing-hero{background:var(--ridge); color:var(--cream); padding:44px 0 52px;}
.landing-hero-inner{max-width:1180px; margin:0 auto; padding:0 32px; display:grid; grid-template-columns:1.05fr 0.95fr; gap:48px; align-items:start;}
.landing-hero h1{font-family:'Fraunces', serif; font-weight:500; font-size:38px; line-height:1.1; margin-bottom:16px;}
.landing-hero h1 em{font-style:italic; color:#D99A8B;}
.landing-hero p.sub{font-size:16px; color:#D8D2C3; max-width:460px; margin-bottom:24px;}
.proof-list{list-style:none; margin-top:10px;}
.proof-list li{font-size:14px; color:#D8D2C3; padding:8px 0; border-top:1px solid rgba(243,237,226,0.15);}
.proof-list li::before{content:"✓ "; color:var(--clay-light); font-weight:700;}
.landing-card{background:var(--cream); border-radius:4px; padding:28px 30px 30px; box-shadow:0 24px 48px rgba(0,0,0,0.25);}
.landing-card h3{font-family:'Fraunces', serif; font-weight:500; font-size:22px; margin-bottom:6px;}
.landing-card p.desc{font-size:13.5px; color:var(--stone); margin-bottom:16px;}
.landing-footer{background:var(--ridge); padding:24px 0; color:#8FA398; font-size:11px;}
.landing-footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
@media (max-width:900px){ .landing-hero-inner{grid-template-columns:1fr;} }
