/* ===== CHEYENNE PHOTOGRAPHY — shared styles ===== */
:root{
  --green:#2f3d2a; --green-deep:#222e1e;
  --gold:#b08d3f; --gold-light:#cbae6a;
  --beige:#f3ecdd; --cream:#faf6ec; --sand:#e8dcc4;
  --ink:#2c2b22; --line:rgba(44,43,34,.14);
  --shadow:0 26px 60px rgba(34,46,30,.18);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;color:var(--ink);background:var(--cream);line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block;background:var(--sand)}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.1}

/* flourish */
.flourish{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);margin:0 auto 14px}
.flourish svg{width:30px;height:30px;opacity:.9}
.flourish .line{width:54px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.flourish .line.r{background:linear-gradient(90deg,var(--gold),transparent)}

/* HEADER */
.hdr{position:fixed;top:0;left:0;right:0;z-index:100;padding:22px 0;transition:background .4s,padding .4s,box-shadow .4s}
.hdr.solid,.hdr.scrolled{background:rgba(250,246,236,.97);backdrop-filter:blur(10px);padding:12px 0;box-shadow:0 1px 0 var(--line)}
.hdr-in{max-width:1280px;margin:0 auto;padding:0 38px;display:flex;align-items:center;justify-content:space-between}
.brand{font-family:'Cormorant Garamond',serif;font-size:1.75rem;letter-spacing:.5px;color:#fff;transition:color .4s}
.brand small{display:block;font-family:'Jost',sans-serif;font-size:.56rem;letter-spacing:.52em;text-transform:uppercase;margin-top:2px;color:var(--gold-light)}
.hdr.solid .brand,.hdr.scrolled .brand{color:var(--green)}
.hdr.solid .brand small,.hdr.scrolled .brand small{color:var(--gold)}
.nav{display:flex;align-items:center;gap:30px}
.nav a{font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.92);transition:color .3s}
.hdr.solid .nav a,.hdr.scrolled .nav a{color:var(--green)}
.nav a:hover,.nav a.active{color:var(--gold-light)}
.hdr.solid .nav a:hover,.hdr.scrolled .nav a:hover,.hdr.solid .nav a.active,.hdr.scrolled .nav a.active{color:var(--gold)}
.nav .book{border:1px solid rgba(255,255,255,.55);padding:9px 22px;border-radius:30px}
.hdr.solid .nav .book,.hdr.scrolled .nav .book{border-color:var(--gold);color:var(--gold)}
.nav .book:hover{background:var(--gold);border-color:var(--gold);color:#fff!important}
.burger{display:none;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer}
.hdr.solid .burger,.hdr.scrolled .burger{color:var(--green)}
.mnav{position:fixed;inset:0 0 0 auto;width:78%;max-width:320px;background:var(--green-deep);z-index:200;transform:translateX(100%);transition:transform .4s;display:flex;flex-direction:column;padding:90px 36px;gap:4px}
.mnav.open{transform:translateX(0)}
.mnav a{color:var(--cream);font-size:1rem;letter-spacing:.1em;text-transform:uppercase;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.mclose{position:absolute;top:26px;right:30px;background:none;border:none;color:var(--cream);font-size:1.9rem;cursor:pointer}

/* HERO (home) */
.hero{position:relative;height:100vh;min-height:620px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,46,30,.5),rgba(34,46,30,.62))}
.hero-frame{position:absolute;inset:26px;border:1px solid rgba(255,255,255,.28);z-index:2;pointer-events:none}
.hero-frame::before,.hero-frame::after{content:'';position:absolute;width:46px;height:46px;border:1px solid var(--gold-light)}
.hero-frame::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.hero-frame::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.hero-in{position:relative;z-index:3;max-width:880px;padding:0 28px;animation:fadeUp 1.2s ease both}
.hero .eyebrow{font-size:.7rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-light);margin-bottom:20px}
.hero h1{font-size:clamp(3rem,8vw,6rem);font-weight:400;letter-spacing:1px}
.hero h1 em{font-style:italic;color:var(--gold-light)}
.hero p{font-size:1.1rem;font-weight:300;max-width:34em;margin:22px auto 34px;color:rgba(255,255,255,.93)}
.hero-cta{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}
.scroll-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;color:rgba(255,255,255,.7);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;animation:bob 2s infinite}

/* PAGE BANNER (inner pages) */
.banner{position:relative;height:46vh;min-height:340px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}
.banner-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.banner-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,46,30,.52),rgba(34,46,30,.62))}
.banner-in{position:relative;z-index:3;padding:100px 28px 0;animation:fadeUp 1s ease both}
.banner .eyebrow{font-size:.68rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-light);margin-bottom:14px}
.banner h1{font-size:clamp(2.6rem,6vw,4.4rem);font-weight:400}
.banner h1 em{font-style:italic;color:var(--gold-light)}

/* BUTTONS */
.btn{display:inline-block;padding:15px 38px;border-radius:30px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;transition:transform .3s,background .3s,color .3s;cursor:pointer;border:none;font-family:'Jost',sans-serif}
.btn-fill{background:var(--gold);color:#fff}
.btn-fill:hover{background:#fff;color:var(--green);transform:translateY(-3px)}
.btn-out{border:1px solid rgba(255,255,255,.6);color:#fff}
.btn-out:hover{background:#fff;color:var(--green)}
.btn-green{background:var(--green);color:#fff}
.btn-green:hover{background:var(--gold);transform:translateY(-3px)}

/* PROMO */
.promo{background:var(--green);color:var(--cream);text-align:center;padding:15px 24px;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.promo b{color:var(--gold-light);font-weight:500}

/* SECTIONS */
.sec{padding:104px 38px;position:relative}
.sec.tight{padding:78px 38px}
.sec-in{max-width:1180px;margin:0 auto}
.label{text-align:center;font-size:.68rem;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.sec h2{text-align:center;font-size:clamp(2.3rem,5vw,3.5rem);font-weight:400;margin-bottom:16px}
.sec h2 em{font-style:italic;color:var(--gold)}
.sec .sub{text-align:center;max-width:42em;margin:0 auto 54px;color:#6f6a59;font-weight:300}

/* INTRO split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.split-img{position:relative;aspect-ratio:4/5;box-shadow:var(--shadow)}
.split-img img{width:100%;height:100%;object-fit:cover}
.split-img::after{content:'';position:absolute;inset:14px;border:1px solid rgba(255,255,255,.55);pointer-events:none}
.split-txt .label{text-align:left}
.split-txt h2{text-align:left;font-size:clamp(2.1rem,4vw,3rem)}
.split-txt .flourish{justify-content:flex-start;margin-bottom:18px}
.split-txt p{margin:18px 0;color:#6f6a59;font-weight:300;font-size:1.05rem}
.sig{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:2rem;color:var(--gold)}

/* GALLERY mosaic */
.gallery-bg{background:var(--beige)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:14px}
.grid figure{overflow:hidden;position:relative}
.grid img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease}
.grid figure:hover img{transform:scale(1.07)}
.grid .tall{grid-row:span 2}
.grid .wide{grid-column:span 2}

/* Portfolio masonry */
.masonry{columns:3;column-gap:16px}
.masonry figure{break-inside:avoid;margin:0 0 16px;overflow:hidden;position:relative}
.masonry img{width:100%;display:block;transition:transform .9s ease,filter .4s}
.masonry figure:hover img{transform:scale(1.05)}
.masonry figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 18px 14px;color:#fff;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.2rem;background:linear-gradient(transparent,rgba(34,46,30,.78));opacity:0;transition:opacity .4s}
.masonry figure:hover figcaption{opacity:1}

/* portfolio filter tabs */
.tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:44px}
.tab{background:transparent;border:1px solid var(--line);color:var(--green);padding:9px 24px;border-radius:30px;font-family:'Jost',sans-serif;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .3s}
.tab:hover{border-color:var(--gold)}
.tab.active{background:var(--green);color:#fff;border-color:var(--green)}

/* SERVICES cards */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.card{background:#fff;overflow:hidden;box-shadow:0 14px 40px rgba(34,46,30,.09);transition:transform .4s,box-shadow .4s;border-bottom:3px solid var(--gold)}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.card .ph{aspect-ratio:3/2;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.card:hover .ph img{transform:scale(1.07)}
.card-b{padding:30px 28px 34px;text-align:center}
.card-b h3{font-size:1.9rem;margin-bottom:6px}
.card-b .sm{color:var(--gold);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px}
.card-b p{color:#6f6a59;font-weight:300;font-size:.96rem;min-height:74px}
.card-b a{display:inline-block;margin-top:10px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);border-bottom:1px solid var(--gold);padding-bottom:3px}

/* PRICING */
.pricing{background:var(--green);color:var(--cream)}
.pricing .label{color:var(--gold-light)}
.pricing h2,.pricing h2 em{color:var(--cream)}
.pricing h2 em{color:var(--gold-light)}
.pricing .sub{color:rgba(250,246,236,.72)}
.pricing .flourish{color:var(--gold-light)}
.pricing .flourish .line{background:linear-gradient(90deg,transparent,var(--gold-light))}
.pricing .flourish .line.r{background:linear-gradient(90deg,var(--gold-light),transparent)}
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.tier{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.14);padding:40px 26px;text-align:center;position:relative;transition:transform .35s,border-color .35s}
.tier:hover{transform:translateY(-6px);border-color:var(--gold-light)}
.tier.feat{background:rgba(176,141,63,.14);border-color:var(--gold-light)}
.badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--gold);color:#fff;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;padding:5px 16px;border-radius:20px;white-space:nowrap}
.tier h3{font-size:1.7rem;color:var(--cream);margin-bottom:12px}
.was{color:rgba(250,246,236,.5);text-decoration:line-through;font-size:1.05rem}
.now{font-family:'Cormorant Garamond',serif;font-size:3.3rem;color:var(--gold-light);line-height:1;margin:4px 0 2px}
.per{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(250,246,236,.6);margin-bottom:20px}
.tier ul{list-style:none;text-align:left;margin:0 auto 26px;max-width:200px}
.tier li{font-size:.9rem;font-weight:300;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.09);color:rgba(250,246,236,.9)}
.tier li::before{content:'❧';color:var(--gold-light);margin-right:9px;font-size:.85rem}
.tier .btn-fill{width:100%}
.price-note{text-align:center;margin-top:38px;color:rgba(250,246,236,.62);font-size:.86rem;font-weight:300}

/* FAQ */
.faq-list{max-width:820px;margin:0 auto}
.faq{border-bottom:1px solid var(--line)}
.faq-q{width:100%;background:none;border:none;text-align:left;padding:26px 44px 26px 0;font-family:'Cormorant Garamond',serif;font-size:1.45rem;color:var(--green);cursor:pointer;position:relative;line-height:1.2}
.faq-q::after{content:'+';position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:1.6rem;font-family:'Jost',sans-serif;transition:transform .3s}
.faq.open .faq-q::after{content:'–'}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-a p{padding:0 0 26px;color:#6f6a59;font-weight:300}

/* CTA band */
.cta-band{background:var(--green-deep);color:var(--cream);text-align:center;padding:96px 32px}
.cta-band h2{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:400;margin-bottom:14px;color:var(--cream)}
.cta-band h2 em{font-style:italic;color:var(--gold-light)}
.cta-band p{font-weight:300;color:rgba(250,246,236,.8);margin-bottom:30px;max-width:34em;margin-left:auto;margin-right:auto}

/* AREAS */
.areas-bg{background:var(--beige);text-align:center}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:780px;margin:0 auto}
.chips span{background:#fff;border:1px solid var(--line);padding:9px 22px;border-radius:30px;font-size:.85rem;color:var(--green)}

/* BOOKING */
.cal-wrap{max-width:1000px;margin:24px auto 0;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.cal-placeholder{padding:64px 30px;background:#fff;border:2px solid var(--gold);color:#6f6a59;text-align:center}
.cal-placeholder h3{font-size:1.8rem;color:var(--green);margin-bottom:10px}
.cal-placeholder p{font-weight:300;max-width:30em;margin:0 auto 6px}
.cal-placeholder .em{color:var(--gold);font-weight:500}

/* CONTACT */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.contact-img{position:relative;aspect-ratio:1;box-shadow:var(--shadow)}
.contact-img img{width:100%;height:100%;object-fit:cover}
.contact-img::after{content:'';position:absolute;inset:14px;border:1px solid rgba(255,255,255,.55);pointer-events:none}
.contact .flourish{justify-content:flex-start}
.contact p{color:#6f6a59;font-weight:300;margin-bottom:18px}
.cinfo{margin-top:22px}
.cinfo a{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line);font-size:1rem}
.cinfo a:last-child{border-bottom:1px solid var(--line)}
.cinfo .ic{width:40px;height:40px;border-radius:50%;background:var(--beige);display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0;font-size:1.1rem}
.cinfo b{display:block;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:500}

/* FOOTER */
.ftr{background:var(--green-deep);color:rgba(250,246,236,.72);text-align:center;padding:60px 38px 30px}
.ftr .brand{color:var(--cream);font-size:2rem;margin-bottom:6px;display:inline-block}
.ftr .brand small{color:var(--gold-light)}
.ftr .flourish{color:var(--gold-light);margin:18px auto}
.ftr .flourish .line{background:linear-gradient(90deg,transparent,var(--gold-light))}
.ftr .flourish .line.r{background:linear-gradient(90deg,var(--gold-light),transparent)}
.ftr .fnav{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin:6px 0 18px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.ftr .fnav a:hover{color:var(--gold-light)}
.ftr .base{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;margin-top:18px;font-size:.74rem;font-weight:300}

@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

@media(max-width:980px){
  .split,.contact{grid-template-columns:1fr;gap:40px}
  .split-txt h2,.split-txt .label{text-align:center}
  .split-txt .flourish,.contact .flourish{justify-content:center}
  .svc{grid-template-columns:1fr 1fr}
  .tiers{grid-template-columns:1fr 1fr}
  .grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}
  .masonry{columns:2}
}
@media(max-width:680px){
  .nav{display:none}.burger{display:block}
  .sec{padding:74px 22px}
  .svc{grid-template-columns:1fr}.tiers{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.grid .wide{grid-column:span 2}
  .masonry{columns:1}
  .hdr-in{padding:0 22px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ===== EXPANDED COMPONENTS ===== */

/* clickable session cards */
.card.link-card{cursor:pointer;text-decoration:none;color:inherit;display:block}
.card.link-card .card-b .go{display:inline-block;margin-top:12px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);border-bottom:1px solid var(--gold);padding-bottom:3px}
.card.link-card:hover .go{color:var(--gold)}

/* testimonials */
.quotes{background:var(--beige)}
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.quote{background:#fff;padding:36px 30px;box-shadow:0 14px 40px rgba(34,46,30,.08);border-top:3px solid var(--gold);position:relative}
.quote .mark{font-family:'Cormorant Garamond',serif;font-size:3.4rem;color:var(--gold-light);line-height:.6;height:24px}
.quote p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.25rem;color:var(--ink);line-height:1.4;margin:6px 0 18px}
.quote .who{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.stars{color:var(--gold);letter-spacing:3px;margin-bottom:14px;font-size:.9rem}

/* process timeline */
.timeline{max-width:760px;margin:0 auto;position:relative}
.timeline::before{content:'';position:absolute;left:23px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--gold),var(--gold-light))}
.step{display:flex;gap:26px;padding:18px 0;position:relative}
.step .num{flex-shrink:0;width:48px;height:48px;border-radius:50%;background:var(--green);color:var(--gold-light);display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:1.4rem;z-index:2;border:2px solid var(--gold-light)}
.step h3{font-size:1.5rem;color:var(--green);margin-bottom:4px}
.step p{color:#6f6a59;font-weight:300}

/* booking session picker */
.picker{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:900px;margin:0 auto 14px}
.pick{background:#fff;border:1px solid var(--line);border-radius:6px;padding:24px 18px;text-align:center;cursor:pointer;transition:all .3s;font-family:inherit}
.pick:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 12px 30px rgba(34,46,30,.1)}
.pick.sel{border-color:var(--gold);background:var(--beige);box-shadow:0 12px 30px rgba(34,46,30,.12)}
.pick h4{font-size:1.35rem;color:var(--green);margin-bottom:4px}
.pick .p{color:var(--gold);font-family:'Cormorant Garamond',serif;font-size:1.8rem;line-height:1}
.pick .d{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#6f6a59;margin-top:6px}
.pick-note{text-align:center;color:#6f6a59;font-weight:300;font-size:.92rem;margin-bottom:24px}
.pick-note b{color:var(--green);font-weight:500}

/* stat band */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:900px;margin:0 auto}
.stat{text-align:center}
.stat .n{font-family:'Cormorant Garamond',serif;font-size:3rem;color:var(--gold);line-height:1}
.stat .l{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#6f6a59;margin-top:6px}

@media(max-width:980px){
  .quote-grid{grid-template-columns:1fr}
  .picker{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr;gap:36px}
}
@media(max-width:680px){
  .picker{grid-template-columns:1fr 1fr}
}
