
:root{
  --paper:#efe9de;
  --paper-soft:#f7f3eb;
  --ink:#1d2521;
  --ink-soft:#35413b;
  --fog:#cad1cc;
  --slate:#647376;
  --forest:#35443b;
  --moss:#667363;
  --cedar:#9c7856;
  --sand:#b9a383;
  --line:rgba(29,37,33,.17);
  --max:1180px;
  --gutter:clamp(34px,5.5vw,72px);
  --radius:2px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.55;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:auto}
.site-header{
  max-width:var(--max);
  margin:auto;
  padding:25px var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  position:relative;
}
.brand{display:flex;gap:.48rem;align-items:baseline;letter-spacing:.095em;font-size:.96rem}
.brand-first{font-weight:850}.brand-last{font-weight:420}
.nav{display:flex;gap:24px;align-items:center;font-size:.91rem;font-weight:630}
.nav a{opacity:.72;transition:.2s ease}.nav a:hover{opacity:1}
.nav-cta{border:1px solid currentColor;border-radius:999px;padding:10px 17px;opacity:1!important}
.menu-toggle{display:none;background:transparent;border:0;color:inherit;font:inherit;font-size:.78rem;letter-spacing:.1em;font-weight:750}
.eyebrow{
  margin:0 0 16px;
  font-size:.73rem;
  letter-spacing:.145em;
  text-transform:uppercase;
  font-weight:800;
}
h1,h2,h3{margin:0 0 22px;line-height:.99;letter-spacing:-.047em}
h1{font-size:clamp(3.25rem,8vw,7.1rem);font-weight:760}
h1 em{display:block;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-style:italic;color:var(--slate);letter-spacing:-.055em}
h2{font-size:clamp(2.25rem,5.4vw,4.8rem);font-weight:735}
h3{font-size:clamp(1.45rem,2.4vw,2rem);font-weight:720;line-height:1.08}
p{margin-top:0}
.lede{font-size:clamp(1.08rem,2vw,1.35rem);max-width:760px;color:#444d48}
.narrow{max-width:650px}
.section{max-width:var(--max);margin:auto;padding:96px var(--gutter)}
.hero{
  max-width:var(--max);
  margin:auto;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:56px;
  align-items:center;
  padding:42px var(--gutter) 76px;
}
.hero-copy{padding:35px 0}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.button{display:inline-flex;align-items:center;justify-content:center;padding:13px 21px;border-radius:999px;font-weight:760;font-size:.92rem}
.primary{background:var(--ink);color:var(--paper-soft)}
.ghost{border:1px solid currentColor}
.light{background:var(--paper-soft);color:var(--ink)}
.portrait-frame{margin:0;position:relative;overflow:hidden;background:var(--fog)}
.portrait-frame img{width:100%;height:100%;object-fit:cover}
.hero-portrait{aspect-ratio:.77/1;max-height:720px}
.hero-portrait img{object-position:center 33%}
.portrait-frame figcaption{
  position:absolute;left:0;bottom:0;
  padding:10px 14px;
  background:rgba(29,37,33,.83);
  color:var(--paper-soft);
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.11em;
}
.proof-strip{
  max-width:var(--max);
  margin:auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:16px var(--gutter);
  text-align:center;
  gap:12px;
  font-size:.75rem;
  letter-spacing:.085em;
  text-transform:uppercase;
  font-weight:760;
}
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.body-copy{font-size:1.08rem;color:#3c4540}
.large-copy{font-size:1.12rem}
.text-link{display:inline-block;font-weight:760;margin-top:14px;border-bottom:1px solid currentColor;padding-bottom:3px}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.service{
  min-height:390px;border:1px solid var(--line);
  padding:30px;display:flex;flex-direction:column;
  background:rgba(255,255,255,.13)
}
.service-dark{background:var(--ink);color:var(--paper-soft)}
.service-number{margin-left:auto;font-family:Georgia,serif;font-style:italic;font-size:1.4rem;opacity:.55}
.service h3{margin-top:8px}
.service p:not(.eyebrow){opacity:.82}
.service a{margin-top:auto;font-weight:750}
.local-band{
  display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;align-items:center;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.local-mark{
  min-height:390px;
  background:var(--forest);
  position:relative;
  overflow:hidden;
}
.rings{
  position:absolute;width:330px;height:330px;border:1px solid rgba(239,233,222,.75);
  border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);
}
.rings:before,.rings:after{content:"";position:absolute;border:1px solid rgba(239,233,222,.42);border-radius:50%}
.rings:before{width:230px;height:230px;left:49px;top:49px}
.rings:after{width:410px;height:410px;left:-41px;top:-41px}
.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:42px}
.section-note{max-width:360px;color:#4a544f}
.listing-placeholder{display:grid;grid-template-columns:.85fr 1.15fr;border:1px solid var(--line);min-height:420px}
.listing-shape{
  background:
    linear-gradient(150deg,transparent 0 27%,rgba(255,255,255,.12) 27% 28%,transparent 28% 50%),
    linear-gradient(25deg,var(--forest),#55635c);
}
.listing-placeholder>div:last-child{padding:48px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.more-than{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin:34px 0 45px}
.mini-grid article{position:relative;padding-top:20px}
.mini-grid article:before{content:"";position:absolute;top:0;left:0;width:42px;border-top:2px solid var(--ink)}
.mini-grid strong{font-size:1.55rem;display:block;margin:9px 0}
.mini-icon{font-family:Georgia,serif;font-style:italic;color:var(--cedar);font-size:1.3rem}
.contact-band{
  background:var(--forest);color:var(--paper-soft);
  padding:72px max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)));
  display:flex;align-items:end;justify-content:space-between;gap:46px
}
.contact-band h2{max-width:880px;margin-bottom:0}
.footer{
  max-width:var(--max);margin:auto;padding:58px var(--gutter) 70px;
  display:grid;grid-template-columns:1fr auto;gap:30px 60px;
  border-top:1px solid var(--line);font-size:.88rem
}
.footer p{margin:4px 0}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.fineprint{grid-column:1/-1;font-size:.75rem;opacity:.6}
.page-hero{max-width:var(--max);margin:auto;padding:88px var(--gutter) 56px}
.page-hero h1{max-width:1120px}
.about-intro-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  border-top:1px solid var(--line);
}
.about-statement{
  min-height:430px;
  background:var(--ink);
  color:var(--paper-soft);
  padding:42px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.about-statement h2{max-width:650px}
.about-pullquote{
  margin-top:42px;
  padding-top:24px;
  border-top:1px solid var(--line);
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(1.55rem,3vw,2.35rem);
  line-height:1.12;
  color:var(--slate);
}
.feature{display:grid;grid-template-columns:.85fr 1.15fr;gap:66px;align-items:center}
.story-block{border-top:1px solid var(--line)}
.candid-section{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center;background:var(--paper-soft)}
.candid{aspect-ratio:.82/1;max-height:600px}.candid img{object-position:center 30%}
.quote-block p{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:clamp(2.4rem,5vw,4.7rem);letter-spacing:-.04em;line-height:1.04;max-width:1000px}
.issue-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);padding:1px}
.issue-grid article{background:var(--paper);padding:30px;min-height:260px}
.issue-grid span{font-family:Georgia,serif;font-style:italic;color:var(--cedar);font-size:1.25rem}
.process{border-top:1px solid var(--line)}
.process-row{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:44px;border-top:1px solid var(--line)}
.process-row>div{padding:26px 20px 10px 0;border-right:1px solid var(--line);min-height:230px}
.process-row>div:not(:first-child){padding-left:20px}
.process-row>div:last-child{border-right:0}
.process-row b{display:block;font-family:Georgia,serif;font-style:italic;color:var(--cedar);font-size:1.2rem;margin-bottom:35px}
.process-row strong{display:block;font-size:1.03rem;margin-bottom:10px}
.process-row p{font-size:.9rem;color:#4a544f}
.listing-links{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.listing-source{border:1px solid var(--line);padding:42px;min-height:390px;display:flex;flex-direction:column}
.listing-source h2{font-size:clamp(2rem,4vw,3.5rem)}
.listing-source span{margin-top:auto;font-weight:760}
.dark-source{background:var(--ink);color:var(--paper-soft)}
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:stretch}
.contact-card{background:var(--ink);color:var(--paper-soft);padding:48px}
.contact-card h2{font-size:clamp(2.4rem,5vw,4.6rem)}
.direct-details{border-top:1px solid rgba(255,255,255,.22);margin-top:36px}
.direct-details a{display:block;padding:19px 0;border-bottom:1px solid rgba(255,255,255,.22)}
.direct-details small{display:block;font-size:.67rem;letter-spacing:.14em;opacity:.65;margin-bottom:3px}
.direct-details strong{font-size:1.08rem}
.contact-photo{min-height:520px}.contact-photo img{object-position:center 30%}
@media (max-width:880px){
  .menu-toggle{display:block}
  .nav{
    display:none;position:absolute;top:76px;left:18px;right:18px;z-index:30;
    background:var(--paper-soft);border:1px solid var(--line);padding:22px;
    flex-direction:column;align-items:flex-start
  }
  .nav.open{display:flex}
  .hero,.split,.feature,.candid-section,.local-band,.contact-grid,.listing-placeholder,.about-intro-grid{grid-template-columns:1fr}
  .hero{padding-top:16px}
  .hero-portrait{max-height:620px}
  .proof-strip{grid-template-columns:1fr 1fr}
  .services,.mini-grid,.issue-grid,.listing-links{grid-template-columns:1fr}
  .process-row{grid-template-columns:1fr;border-top:0}
  .process-row>div,.process-row>div:not(:first-child){border-right:0;border-top:1px solid var(--line);padding:24px 0;min-height:auto}
  .process-row b{margin-bottom:10px}
  .section{padding-top:72px;padding-bottom:72px}
  .section-heading{align-items:flex-start;flex-direction:column}
  .local-mark{min-height:300px}
  .contact-band{align-items:flex-start;flex-direction:column}
  .footer{grid-template-columns:1fr}
  .fineprint{grid-column:auto}
}
@media (max-width:520px){
  .site-header{padding:20px}
  .section,.hero,.page-hero{padding-left:20px;padding-right:20px}
  h1{font-size:clamp(3rem,16vw,5rem)}
  .proof-strip{grid-template-columns:1fr;text-align:left;padding-left:20px}
  .service,.contact-card,.listing-source,.listing-placeholder>div:last-child{padding:26px}
}


/* v0.4 — property/listing pages */
.property-card-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:22px;
}
.property-card{
  border:1px solid var(--line);
  background:rgba(255,255,255,.12);
}
.property-card-art{
  min-height:350px;
  background:var(--forest);
  position:relative;
  display:block;
  overflow:hidden;
}
.card-index{
  position:absolute;
  top:22px;right:24px;
  color:rgba(247,243,235,.72);
  font-family:Georgia,serif;
  font-style:italic;
  font-size:1.25rem;
}
.property-lines{
  position:absolute;
  inset:0;
  background:
    linear-gradient(135deg,transparent 49.6%,rgba(239,233,222,.35) 49.8% 50.2%,transparent 50.4%),
    linear-gradient(35deg,transparent 33%,rgba(239,233,222,.18) 33.2% 33.5%,transparent 33.7%),
    radial-gradient(circle at 72% 33%,transparent 0 79px,rgba(239,233,222,.22) 80px 81px,transparent 82px);
}
.property-card-copy{padding:30px}
.property-card-copy h2{font-size:clamp(1.9rem,3.5vw,3rem);margin-bottom:7px}
.property-card-city{color:#56615b;margin-bottom:22px}
.listing-stats{
  display:flex;gap:15px;flex-wrap:wrap;
  padding:16px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:.86rem
}
.listing-stats strong{font-size:1.06rem;margin-right:auto}
.property-card-actions{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px}
.subtle-link{opacity:.68}
.listing-hero{
  max-width:var(--max);
  margin:auto;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  min-height:660px;
  padding:46px var(--gutter) 80px;
  gap:50px;
  align-items:stretch;
}
.listing-hero-copy{
  display:flex;flex-direction:column;justify-content:center;
}
.listing-hero h1{font-size:clamp(3rem,7vw,6.3rem)}
.listing-city{font-size:1.16rem;color:#56615b;margin-top:-4px;margin-bottom:30px}
.listing-stats-large{max-width:620px}
.listing-stats-large strong{font-size:1.35rem}
.property-art{
  min-height:570px;
  background:var(--forest);
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:22px;
  color:rgba(247,243,235,.72);
  letter-spacing:.11em;
  font-size:.7rem;
  font-weight:750;
}
.listing-intro{border-top:1px solid var(--line)}
.property-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fact-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.fact-grid>div{
  background:var(--paper);
  padding:25px;
  min-height:115px;
}
.fact-grid small{
  display:block;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.66rem;
  opacity:.58;
  margin-bottom:7px;
}
.fact-grid strong{font-size:1.08rem}
.direct-agent{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:50px;
  align-items:center;
}
.direct-agent-actions{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.listing-disclaimer{
  max-width:var(--max);
  margin:auto;
  padding:0 var(--gutter) 80px;
  font-size:.78rem;
  color:#69716d;
}
@media(max-width:880px){
  .property-card-grid,.listing-hero,.direct-agent{grid-template-columns:1fr}
  .property-card-art{min-height:280px}
  .property-art{min-height:380px}
  .fact-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
  .fact-grid{grid-template-columns:1fr}
  .listing-hero{padding-left:20px;padding-right:20px}
  .property-card-copy{padding:24px}
}


/* v0.5 launch polish: actual listing photos + more breathing room */
.property-card-photo{
  min-height:350px;
  height:350px;
  position:relative;
  display:block;
  overflow:hidden;
  background:var(--fog);
}
.property-card-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
.property-card:hover .property-card-photo img{
  transform:scale(1.018);
}
.property-card-photo .card-index{
  background:rgba(29,37,33,.78);
  color:var(--paper-soft);
  padding:7px 10px;
  line-height:1;
}
.property-photo-hero{
  margin:0;
  min-height:570px;
  overflow:hidden;
  background:var(--fog);
}
.property-photo-hero img{
  width:100%;
  height:100%;
  min-height:570px;
  object-fit:cover;
}
@media(max-width:880px){
  :root{--gutter:clamp(24px,5vw,38px)}
  .property-card-photo{height:300px;min-height:300px}
  .property-photo-hero,.property-photo-hero img{min-height:380px}
}
@media(max-width:520px){
  :root{--gutter:20px}
}


/* v0.6 — Lincoln City spacing/alignment cleanup */
.local-intro{
  padding-top:58px;
  padding-bottom:52px;
  gap:48px;
  align-items:start;
  border-top:1px solid var(--line);
}
.local-intro h2{
  max-width:470px;
}
.local-intro .body-copy{
  max-width:540px;
}

/* The generic .section padding made this grid nearly touch the viewport
   and created a huge vertical gap. Give this grid its own editorial inset. */
.local-issues{
  width:calc(100% - (2 * var(--gutter)));
  max-width:1045px;
  margin:0 auto 82px;
  padding:1px;
}
.local-issues article{
  min-height:245px;
  padding:30px 28px;
}

@media(max-width:880px){
  .local-intro{
    padding-top:48px;
    padding-bottom:42px;
    gap:24px;
  }
  .local-issues{
    width:calc(100% - (2 * var(--gutter)));
    margin-bottom:58px;
  }
  .local-issues article{
    min-height:auto;
  }
}
@media(max-width:520px){
  .local-issues{
    width:calc(100% - 40px);
  }
}
