/* ============================================================
   Bohemian Living Puerto Vallarta — shared styles
   Coldwell Banker Global Luxury® design system
   ============================================================ */
:root{
  --black:#2B2E30; --black-deep:#000307; --ink:#1A1C1E;
  --white:#FFFFFF; --paper:#FAF8F5; --gray:#D1D3D4; --gray-mute:#6E7173;
  --aegean:#14477C; --camel:#CFB799; --camel-light:#FFE9CA; --camel-dark:#9D876B;
  --serif:'EB Garamond',Garamond,'Times New Roman',serif;
  --sans:'Roboto',-apple-system,BlinkMacSystemFont,sans-serif;
  --maxw:1240px; --gutter:clamp(1.25rem,5vw,4rem);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--white);line-height:1.65;-webkit-font-smoothing:antialiased;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.13;}
.eyebrow{font-size:0.7rem;font-weight:300;letter-spacing:0.34em;text-transform:uppercase;color:var(--camel-dark);}
.center{text-align:center;}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:var(--black);color:#fff;}
.nav{display:flex;align-items:center;justify-content:space-between;padding-block:1.05rem;}
.logo{font-family:var(--serif);font-size:1.15rem;letter-spacing:0.04em;color:#fff;}
.logo b{font-weight:500;}
.logo span{display:block;font-family:var(--sans);font-weight:300;font-size:0.55rem;letter-spacing:0.36em;text-transform:uppercase;color:var(--camel);margin-top:0.3rem;}
.nlinks{display:flex;gap:2rem;align-items:center;}
.nlinks a{font-size:0.74rem;font-weight:400;letter-spacing:0.14em;text-transform:uppercase;color:var(--gray);transition:color .2s;}
.nlinks a:hover{color:#fff;}
.nlinks .find{border:1px solid var(--camel);color:var(--camel);padding:0.55rem 1.15rem;}
.nlinks .find:hover{background:var(--camel);color:var(--black);}
.ntoggle{display:none;background:none;border:0;color:#fff;font-size:1.4rem;cursor:pointer;}

/* buttons */
.btn{display:inline-block;font-family:var(--sans);font-weight:500;font-size:0.76rem;letter-spacing:0.14em;text-transform:uppercase;padding:0.9rem 1.9rem;transition:all .2s;cursor:pointer;}
.btn-camel{background:var(--camel);color:var(--black);}
.btn-camel:hover{background:var(--camel-light);}
.btn-line{border:1px solid var(--ink);color:var(--ink);}
.btn-line:hover{background:var(--ink);color:#fff;}
.btn-light{border:1px solid rgba(255,255,255,0.6);color:#fff;}
.btn-light:hover{background:#fff;color:var(--aegean);}

/* hero */
.hero{background:var(--black);color:#fff;}
.hero-media{aspect-ratio:16/8;position:relative;display:flex;align-items:flex-end;
  background:linear-gradient(180deg,rgba(0,3,7,0.15),rgba(0,3,7,0.78)),linear-gradient(135deg,#3a4a52,#1c2226);}
.hero-media .meta{padding:clamp(1.5rem,5vw,3.5rem);width:100%;}
.hero-media .price{font-family:var(--serif);font-size:clamp(1.8rem,3.4vw,2.8rem);}
.hero-media .loc{font-size:0.82rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gray);margin-top:0.3rem;}
.hero-media .view{display:inline-block;margin-top:1rem;font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--camel);border-bottom:1px solid var(--camel);padding-bottom:3px;}
.hero-statement{text-align:center;padding-block:clamp(3rem,8vh,5.5rem);max-width:60ch;margin:0 auto;}
.hero-statement h1{font-size:clamp(2.2rem,4.6vw,3.6rem);color:#fff;}
.hero-statement h1 em{font-style:italic;color:var(--camel);}
.hero-statement p{color:var(--gray);margin-top:1.4rem;}
.hero-statement .legacy{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--camel-light);margin-top:1.6rem;}

/* generic section */
section.blk{padding-block:clamp(3.5rem,9vh,6.5rem);}
.shead{max-width:58ch;margin-bottom:2.6rem;}
.shead.center{margin-inline:auto;}
.shead h2{font-size:clamp(1.9rem,3.8vw,2.9rem);color:var(--ink);margin-top:0.8rem;}
.shead p{color:var(--gray-mute);margin-top:0.9rem;}

/* page header band */
.phead{text-align:center;padding-block:clamp(2.8rem,7vh,4.5rem) clamp(1.4rem,4vh,2.4rem);}
.phead h1{font-size:clamp(2.3rem,5vw,3.6rem);color:var(--ink);margin-top:0.7rem;}
.phead p{color:var(--gray-mute);max-width:56ch;margin:1rem auto 0;}

/* breadcrumb */
.crumb{padding-top:1.6rem;font-size:0.78rem;color:var(--gray-mute);}
.crumb a:hover{color:var(--aegean);}
.crumb span{color:var(--camel-dark);}

/* listing cards (grid) */
.lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.lcard{background:#fff;border:1px solid var(--gray);display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s;}
.lcard:hover{box-shadow:0 20px 44px -26px rgba(0,3,7,0.5);transform:translateY(-3px);}
.lphoto{aspect-ratio:3/2;background:linear-gradient(135deg,#e7e3dc,#cfc7ba) center/cover no-repeat;position:relative;display:flex;align-items:center;justify-content:center;color:var(--gray-mute);font-size:0.74rem;letter-spacing:0.1em;text-transform:uppercase;}
.lphoto .tag{position:absolute;top:0.85rem;left:0.85rem;background:var(--black);color:#fff;font-size:0.6rem;letter-spacing:0.16em;text-transform:uppercase;padding:0.28rem 0.7rem;}
.lbody{padding:1.25rem 1.35rem 1.45rem;display:flex;flex-direction:column;flex:1;}
.larea{font-size:0.66rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--camel-dark);}
.lname{font-family:var(--serif);font-size:1.35rem;color:var(--ink);margin:0.4rem 0 0.5rem;}
.lprice{font-weight:400;color:var(--ink);margin-bottom:1rem;}
.llink{margin-top:auto;font-size:0.72rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--aegean);border-top:1px solid var(--gray);padding-top:0.85rem;}
.search-bar{margin-top:2.6rem;text-align:center;}

/* listing detail */
.lh{padding-top:0.8rem;padding-bottom:2.2rem;}
.lh .loc{margin-top:1.2rem;}
.lh h1{font-size:clamp(2.2rem,5vw,3.4rem);color:var(--ink);margin-top:0.6rem;}
.price-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:1rem;margin-top:1rem;}
.price-usd{font-family:var(--serif);font-size:1.9rem;color:var(--aegean);}
.price-mxn{font-size:0.95rem;color:var(--gray-mute);}
.price-note{font-size:0.8rem;color:var(--camel-dark);font-weight:500;}
.gallery{aspect-ratio:16/8;border:1px solid var(--camel);margin-top:1.8rem;background:linear-gradient(150deg,rgba(20,71,124,0.16),rgba(43,46,48,0.30)),var(--gray);display:flex;align-items:flex-end;padding:1.4rem;color:#fff;font-family:var(--serif);font-size:1.05rem;}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--gray);border:1px solid var(--gray);margin-top:1.8rem;}
.fact{background:#fff;padding:1.3rem 1rem;text-align:center;}
.fact .n{font-family:var(--serif);font-size:1.5rem;color:var(--ink);}
.fact .l{font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--gray-mute);margin-top:0.3rem;}
.body-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(2rem,5vw,4rem);padding-block:3rem;align-items:start;}
.prose h2{font-size:1.7rem;color:var(--ink);margin-bottom:1rem;}
.prose p{margin-bottom:1.1rem;color:var(--gray-mute);}
.prose p strong{color:var(--ink);font-weight:500;}
.amen{background:var(--paper);border:1px solid var(--gray);padding:1.6rem 1.7rem;}
.amen h3{font-size:1.25rem;color:var(--ink);margin-bottom:1rem;}
.amen ul{list-style:none;display:grid;gap:0.6rem;}
.amen li{padding-left:1.3rem;position:relative;font-size:0.92rem;}
.amen li::before{content:"";position:absolute;left:0;top:0.55em;width:7px;height:7px;background:var(--camel);border-radius:50%;}

/* blog grid */
.feat{display:grid;grid-template-columns:1.25fr 1fr;border:1px solid var(--gray);background:#fff;margin-bottom:2.4rem;}
.feat .img{aspect-ratio:16/10;background:#e7e3dc center/cover no-repeat;}
.feat .txt{padding:clamp(1.5rem,3vw,2.6rem);display:flex;flex-direction:column;justify-content:center;}
.feat h2{font-size:clamp(1.6rem,2.6vw,2.2rem);color:var(--ink);}
.feat p{color:var(--gray-mute);margin-top:0.9rem;font-size:0.98rem;}
.tag{display:inline-block;font-size:0.62rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--camel-dark);margin-bottom:0.7rem;}
.readmore{margin-top:1.3rem;font-size:0.72rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--aegean);}
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.7rem;}
.bcard{background:#fff;border:1px solid var(--gray);display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s;}
.bcard:hover{box-shadow:0 20px 44px -28px rgba(0,3,7,0.5);transform:translateY(-3px);}
.bcard .img{aspect-ratio:16/10;background:#e7e3dc center/cover no-repeat;}
.bcard .b{padding:1.25rem 1.35rem 1.45rem;display:flex;flex-direction:column;flex:1;}
.bcard h3{font-size:1.24rem;color:var(--ink);margin:0.35rem 0 0.55rem;line-height:1.2;}
.bcard p{color:var(--gray-mute);font-size:0.9rem;flex:1;}
.bcard .readmore{padding-top:1rem;border-top:1px solid var(--gray);margin-top:1rem;}

/* neighborhoods */
.ngrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
.ncard{position:relative;aspect-ratio:3/4;overflow:hidden;color:#fff;display:flex;align-items:flex-end;background:linear-gradient(180deg,rgba(0,3,7,0.05),rgba(0,3,7,0.72)),linear-gradient(135deg,#566b62,#2b2e30);}
.ncard .nc{padding:1.2rem;}
.ncard .nc .place{font-family:var(--serif);font-size:1.4rem;}
.ncard .nc .from{font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--camel);margin-top:0.3rem;}

/* report / updates teaser on home */
.report{background:var(--black);color:#fff;}
.report .shead h2{color:#fff;}
.report .shead p{color:var(--gray);}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.rcard{border:1px solid rgba(255,255,255,0.16);padding:1.6rem;display:flex;flex-direction:column;min-height:230px;}
.rcard .kicker{font-size:0.66rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--camel);}
.rcard h3{font-size:1.4rem;color:#fff;margin:0.7rem 0 0.6rem;}
.rcard p{color:var(--gray);font-size:0.92rem;}
.rcard a{margin-top:auto;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--camel-light);padding-top:1rem;}

/* about */
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center;}
.about-portrait{aspect-ratio:4/5;background:linear-gradient(160deg,#e7e3dc,#cfc7ba);display:flex;align-items:flex-end;padding:1.5rem;color:var(--gray-mute);font-family:var(--serif);}
.about h2{font-size:clamp(1.9rem,3.6vw,2.7rem);color:var(--ink);margin-top:0.8rem;}
.about p{color:var(--gray-mute);margin-top:1rem;}
.creds{list-style:none;margin-top:1.5rem;display:grid;gap:0.55rem;}
.creds li{padding-left:1.4rem;position:relative;font-size:0.93rem;color:var(--ink);}
.creds li::before{content:"";position:absolute;left:0;top:0.6em;width:8px;height:1px;background:var(--camel-dark);}

/* faq */
.faqlist{max-width:780px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--gray);padding:1.4rem 0;}
.faq-item h3{font-size:1.3rem;color:var(--ink);margin-bottom:0.6rem;}
.faq-item p{color:var(--gray-mute);}

/* cta */
.cta{background:var(--aegean);color:#fff;text-align:center;}
.cta h2{color:#fff;font-size:clamp(1.9rem,4vw,2.9rem);}
.cta p{color:rgba(255,255,255,0.85);margin-top:0.8rem;}
.cta-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:1.8rem;}

/* footer */
footer{background:var(--black-deep);color:var(--gray-mute);padding-block:3.4rem 2.4rem;font-size:0.82rem;}
.ftop{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,0.12);}
.ftop .logo{color:#fff;}
.fsoc{display:flex;gap:1.3rem;flex-wrap:wrap;}
.fsoc a{color:var(--camel);font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;}
.fsoc a:hover{color:#fff;}
.disc{margin-top:1.8rem;font-size:0.71rem;line-height:1.7;color:var(--gray-mute);max-width:84ch;}
.cpy{margin-top:1.4rem;font-size:0.72rem;color:var(--gray-mute);}

/* reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s,transform .7s;}
.reveal.in{opacity:1;transform:none;}

@media(max-width:880px){
  .nlinks{display:none;} .ntoggle{display:block;}
  .lgrid,.rgrid,.bgrid{grid-template-columns:1fr;}
  .ngrid{grid-template-columns:repeat(2,1fr);}
  .about{grid-template-columns:1fr;} .about-portrait{order:-1;aspect-ratio:3/2;}
  .body-grid{grid-template-columns:1fr;}
  .facts{grid-template-columns:repeat(2,1fr);}
  .feat{grid-template-columns:1fr;}
}
@media(max-width:560px){ .bgrid{grid-template-columns:1fr;} }
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;}.reveal{opacity:1;transform:none;transition:none;}}

