/*
Theme Name: Lupe Bradshaw Design
Theme URI: https://lupebradshawdesign.com
Author: Lupe Bradshaw Design
Description: Warm, editorial starter theme for Lupe Bradshaw Design — residential interiors, North Carolina. Includes a homepage and a reusable project-page template (Silver Falls). Fully responsive.
Version: 1.0.5
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lupe-bradshaw-design
*/

:root{
  --cream:#faf7f1;
  --band:#ece3d3;
  --band-2:#f2ece1;
  --panel:#fff;
  --ink:#221f1a;
  --ink-soft:#4d473e;
  --ink-mute:#6b6459;
  --clay:#8a6a4f;
  --clay-light:#c2a688;
  --border:#e3dbcd;
  --dark:#221f1a;
  --darker:#1a1712;
  --serif:"Newsreader",Georgia,serif;
  --sans:"Public Sans",system-ui,-apple-system,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,blockquote,p{margin:0;}

.container{width:min(1200px,calc(100% - 80px));margin-inline:auto;}

.eyebrow{
  font-size:12px;text-transform:uppercase;letter-spacing:.26em;
  color:var(--clay);
}
.eyebrow--sm{font-size:11px;letter-spacing:.16em;}
.serif{font-family:var(--serif);font-weight:400;}
.section-title{
  font-family:var(--serif);font-weight:400;line-height:1.08;
  font-size:clamp(38px,4vw,58px);margin:0;
}
.prose{font-size:18px;line-height:1.7;color:var(--ink-soft);}
.prose p{margin:0 0 22px;}
.prose p:last-child{margin-bottom:0;}
.text-link{
  display:inline-block;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);
  padding-bottom:5px;transition:opacity .2s ease;
}
.text-link:hover{opacity:.6;}
.text-link--arrow{display:inline-flex;align-items:center;gap:10px;width:fit-content;padding-bottom:6px;}
.text-link--arrow span{font-size:16px;}

.site-header{
  position:sticky;top:0;z-index:20;
  background:rgba(250,247,241,.92);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.site-header__inner{
  width:min(1200px,calc(100% - 80px));margin:auto;
  min-height:140px;display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.site-logo{display:flex;align-items:center;text-decoration:none;}
.site-logo img{height:130px;width:auto;}
.site-nav{
  display:flex;gap:32px;align-items:center;
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);
}
.site-nav a{text-decoration:none;transition:opacity .2s ease;}
.site-nav a:hover{opacity:.6;}
.btn-inquire{
  display:inline-flex;align-items:center;min-height:46px;padding:0 24px;
  border:1px solid var(--ink);text-decoration:none;font-size:12px;letter-spacing:.12em;
  transition:background .2s ease,color .2s ease;
}
.btn-inquire:hover{background:var(--ink);color:var(--cream);}
.nav-toggle{display:none;}

.hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:680px;background:var(--band);}
.hero__text{display:flex;flex-direction:column;justify-content:center;padding:70px 6vw 70px 60px;}
.hero__title{
  font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.01em;
  font-size:clamp(46px,5.4vw,80px);margin:24px 0 30px;
}
.hero__title em{font-style:italic;color:var(--clay);}
.hero__lead{font-size:18px;line-height:1.6;color:var(--ink-soft);max-width:520px;margin:0 0 36px;}
.hero__media{position:relative;overflow:hidden;}
.hero__media img{width:100%;height:100%;object-fit:cover;}
.hero__caption{
  position:absolute;left:26px;bottom:26px;background:rgba(250,247,241,.92);
  padding:13px 18px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);
}

.section{padding:90px 0;}
.intro__grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:90px;align-items:start;}
.intro__body{max-width:640px;}

.featured{background:var(--panel);padding:90px 0;}
.featured__head{margin-bottom:44px;}
.featured__note{font-size:16px;color:var(--ink-mute);line-height:1.65;margin:0;}
.featured__grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:20px;}
.tile{position:relative;display:block;overflow:hidden;min-height:400px;background:var(--band);}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.tile:hover img{transform:scale(1.04);}
.tile__label{
  position:absolute;left:18px;bottom:18px;background:rgba(250,247,241,.92);
  padding:9px 13px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);
}

.residences{background:var(--band-2);padding:90px 0;}
.residences__head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:50px;}
.residences__note{max-width:380px;color:var(--ink-mute);font-size:15px;line-height:1.6;margin:0;}
.residences__grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.project-card__media{display:block;height:400px;overflow:hidden;background:var(--band);}
.project-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.project-card__media:hover img{transform:scale(1.04);}
.project-card__meta{display:flex;justify-content:space-between;gap:16px;padding-top:20px;}
.project-card__meta h3{font-family:var(--serif);font-weight:400;font-size:26px;margin:0;}
.project-card__tag{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--clay);padding-top:9px;}

.services{background:var(--dark);color:#fff;padding:90px 0;}
.services__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;}
.services .eyebrow{color:var(--clay-light);}
.services__list{border-top:1px solid rgba(255,255,255,.22);}
.service-row{
  display:grid;grid-template-columns:60px 1fr;gap:20px;
  padding:32px 0;border-bottom:1px solid rgba(255,255,255,.22);
}
.service-row__num{font-family:var(--serif);color:var(--clay);font-size:15px;}
.service-row h3{font-family:var(--serif);font-weight:400;font-size:26px;margin:0 0 10px;}
.service-row p{margin:0;color:#c7c1b6;line-height:1.6;max-width:560px;}

.quote{text-align:center;padding:100px 0;}
.quote blockquote{
  font-family:var(--serif);font-style:italic;font-weight:400;line-height:1.2;
  font-size:clamp(32px,4vw,54px);max-width:900px;margin:0 auto 26px;
}
.quote cite{font-style:normal;text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:var(--clay);}

.contact{background:var(--clay);color:#fff;padding:80px 0;}
.contact__grid{display:grid;grid-template-columns:1fr auto;gap:50px;align-items:center;}
.contact h2{font-family:var(--serif);font-weight:400;line-height:1.08;font-size:clamp(38px,4vw,58px);margin:0 0 14px;}
.contact p{margin:0;font-size:17px;color:#f4ede2;}
.contact__btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;
  border:1px solid #fff;color:#fff;text-decoration:none;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;white-space:nowrap;transition:background .2s ease,color .2s ease;
}
.contact__btn:hover{background:#fff;color:var(--clay);}

.site-footer{background:var(--darker);color:#b9b2a5;padding:44px 0;font-size:13px;}
.site-footer__inner{
  width:min(1200px,calc(100% - 80px));margin:auto;
  display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;
}
.site-footer strong{font-family:var(--serif);font-size:20px;color:#fff;font-weight:400;}

.project-hero{position:relative;min-height:64vh;max-height:760px;overflow:hidden;background:#ddd;}
.project-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.project-hero__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,18,16,.25),rgba(20,18,16,.02) 55%);}

.project-title-band{background:var(--band);border-bottom:1px solid var(--border);padding:44px 20px 48px;text-align:center;}
.project-title-band h1{font-family:var(--serif);font-weight:400;font-size:clamp(48px,6vw,80px);line-height:1;margin:16px 0 20px;}
.project-title-band p{font-size:18px;line-height:1.6;color:var(--ink-soft);max-width:640px;margin:0 auto;}
.project-title-band .rule{width:64px;height:1px;background:#a4896d;margin:26px auto 0;}

.project-overview{padding:100px 0;}
.project-overview__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;}
.project-overview__grid h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.6vw,48px);line-height:1.1;margin:0;}
.project-overview__body{font-size:17px;line-height:1.75;color:var(--ink-soft);}
.project-overview__body p{margin:0 0 20px;}
.project-overview__body p:last-child{margin-bottom:0;}
.project-meta{
  width:min(1200px,calc(100% - 80px));margin:60px auto 0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  border-top:1px solid var(--border);padding-top:30px;
}
.project-meta dt{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--clay);margin-bottom:8px;}
.project-meta dd{font-family:var(--serif);font-size:20px;margin:0;}

.project-gallery{background:var(--panel);padding:0 0 100px;}
.project-gallery__grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.project-gallery__grid .fig{margin:0;overflow:hidden;background:#eee;position:relative;}
.project-gallery__grid .fig--wide{grid-column:1/-1;}
.project-gallery__grid .fig img{width:100%;object-fit:cover;display:block;aspect-ratio:4/3;}
.project-gallery__grid .fig--wide img{aspect-ratio:16/9;}
.fig figcaption{
  position:absolute;left:16px;bottom:16px;background:#f4ede2;
  padding:8px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--clay);
}

@media (max-width:1080px){
  .container,.site-header__inner,.site-footer__inner,.project-meta{width:min(1200px,calc(100% - 56px));}
  .hero__text{padding:60px 40px;}
  .intro__grid,.services__grid,.project-overview__grid{gap:56px;}
  .featured__head{gap:48px;}
}

@media (max-width:860px){
  .site-header__inner{min-height:96px;position:relative;}
  .site-logo img{height:78px;}
  .nav-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    width:46px;height:46px;background:none;border:1px solid var(--ink);cursor:pointer;
    flex-direction:column;gap:5px;padding:0;
  }
  .nav-toggle span{display:block;width:20px;height:1.5px;background:var(--ink);}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--cream);border-bottom:1px solid var(--border);
    padding:8px 40px 20px;
    display:none;
  }
  .site-nav.is-open{display:flex;}
  .site-nav a{padding:14px 0;border-bottom:1px solid var(--border);}
  .btn-inquire{margin-top:10px;justify-content:center;}

  .hero{grid-template-columns:1fr;min-height:0;}
  .hero__text{padding:56px 40px;order:2;}
  .hero__media{order:1;min-height:52vh;}

  .section,.featured,.residences,.services,.contact{padding:64px 0;}
  .intro__grid,.featured__head,.services__grid,.project-overview__grid,.residences__grid{grid-template-columns:1fr;gap:32px;}
  .featured__grid{grid-template-columns:1fr 1fr;}
  .featured__grid .tile:first-child{grid-column:1/-1;}
  .residences__head{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:36px;}
  .quote{padding:72px 0;}

  .project-overview{padding:64px 0;}
  .project-meta{grid-template-columns:1fr 1fr;gap:24px 20px;}
  .project-gallery__grid{grid-template-columns:1fr;}
  .project-gallery__grid .fig img,
  .project-gallery__grid .fig--wide img{aspect-ratio:4/3;}
}

@media (max-width:520px){
  .container,.site-header__inner,.site-footer__inner,.project-meta,.site-nav{width:auto;margin-inline:0;}
  .container,.site-header__inner,.site-footer__inner{padding-inline:22px;width:100%;}
  .hero__text{padding:44px 22px;}
  .site-nav{padding:8px 22px 20px;}
  .featured__grid{grid-template-columns:1fr;}
  .featured__grid .tile:first-child{grid-column:auto;}
  .project-meta{grid-template-columns:1fr;}
  .contact__grid{grid-template-columns:1fr;gap:28px;}
  .site-footer__inner{flex-direction:column;gap:16px;}
  .tile,.project-card__media{min-height:0;height:300px;aspect-ratio:auto;}
}

/* anchor scroll offset for sticky header */
#top,#approach,#projects,#services,#contact{scroll-margin-top:156px;}
@media (max-width:860px){#top,#approach,#projects,#services,#contact{scroll-margin-top:110px;}}

/* mobile fix: allow image grid items to shrink */
.featured__grid>*,.residences__grid>*,.residences__grid article,.tile,.project-card__media{min-width:0;}
