/* Photo Sessions page — scoped styles, loaded only on this template */
.ps-eyebrow-grad{font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;background:linear-gradient(90deg,#bf7a5a,#c77f8e,#d98aa0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;display:inline-block}

/* ---------- Hero ---------- */
.ps-hero{position:relative;min-height:clamp(600px,92vh,880px);display:flex;align-items:center;padding:calc(var(--header-h) + 40px) 24px 90px;overflow:hidden}
.ps-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%}
.ps-hero__scrim{position:absolute;inset:0;background:linear-gradient(102deg,rgba(22,31,25,.9) 0%,rgba(22,31,25,.62) 38%,rgba(22,31,25,.24) 70%,rgba(22,31,25,.08) 100%)}
.ps-hero__scrim2{position:absolute;inset:0;background:linear-gradient(to top,rgba(22,31,25,.65),transparent 32%)}
.ps-hero__inner{position:relative;max-width:1200px;margin:0 auto;width:100%;text-align:center;color:#f3f1ea}
.ps-hero__inner h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(2.6rem,6.4vw,4.4rem);line-height:1.03;letter-spacing:-.012em;margin:0 0 20px;text-shadow:0 2px 30px rgba(0,0,0,.28);color:#fff}
.ps-hero__inner p{font-size:clamp(1.06rem,2.4vw,1.28rem);line-height:1.58;color:#ecede5;margin:0 0 24px;text-shadow:0 1px 14px rgba(0,0,0,.25)}
.ps-hero__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px;margin-top:34px}
.ps-badge{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;color:#f3f1ea;background:rgba(22,31,25,.55);padding:9px 16px;border-radius:999px;backdrop-filter:blur(4px)}
.ps-badge--l{padding-right:50px;margin-right:-50px;position:relative;z-index:0}
.ps-badge--r{padding-left:50px;margin-left:-50px;position:relative;z-index:0}
.ps-hero__cta{position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;font-weight:600;color:#23282d;background:#f0a99a;padding:17px 44px;border-radius:999px;font-size:1rem;letter-spacing:.22em;text-transform:uppercase;border:none;cursor:pointer;font-family:inherit;box-shadow:0 0 14px rgba(255,255,255,.3),0 18px 44px -18px rgba(0,0,0,.35);transition:background .2s}
.ps-hero__cta:hover{background:#f6c3b6}
.ps-hero__curve{position:absolute;bottom:-1px;left:0;width:100%;height:clamp(34px,5vw,58px);z-index:1;display:block}

/* ---------- Botanical seam divider ---------- */
.ps-seam{position:relative;width:100%;height:clamp(46px,6vw,74px)}
.ps-seam__inner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:14px;line-height:1}
.ps-seam__line{display:block;width:clamp(28px,7vw,72px);height:1px}
.ps-seam__leaf{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;box-shadow:0 6px 16px -10px rgba(35,40,45,.6)}

/* ---------- How it works ---------- */
.ps-how-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(16px,2vw,26px)}
.ps-how-card{background:#fff;border-radius:15px;padding:28px 26px 30px;box-shadow:0 16px 40px -30px rgba(35,40,45,.5);display:block;color:inherit;border:1px solid transparent}
a.ps-how-card:hover{border:1px solid rgba(191,122,90,.4);transform:translateY(-2px)}
.ps-how-card__top{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.ps-how-card__num{font-family:var(--font-serif);font-size:2rem;color:var(--terra)}
.ps-how-card__tag{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--light-muted)}
.ps-how-card h3{font-family:var(--font-serif);font-weight:600;font-size:1.3rem;color:#23282d;margin:0 0 8px}
.ps-how-card p{font-size:.94rem;line-height:1.6;color:var(--muted);margin:0}
.ps-how-card__link{font-size:.86rem;font-weight:600;color:var(--green);display:inline-block;margin-top:14px}

/* ---------- Pricing + perk ---------- */
.ps-pricing-grid{max-width:1060px;margin:0 auto;display:flex;flex-wrap:wrap;gap:clamp(18px,2.5vw,28px);align-items:stretch}
.ps-price-card{flex:1 1 320px;min-width:280px;background:#fff;border-radius:15px;padding:clamp(30px,4vw,46px);box-shadow:0 16px 40px -30px rgba(35,40,45,.5);display:flex;flex-direction:column;justify-content:center;text-align:center}
.ps-price-card__amt{font-family:var(--font-serif);font-weight:500;font-size:clamp(3rem,7vw,4.4rem);color:#23282d;line-height:1;margin:18px 0 6px}
.ps-price-card__amt span{font-size:.35em;color:var(--light-muted);font-family:var(--font-body);font-weight:500}
.ps-perk-card{flex:1.3 1 380px;min-width:300px;background:#25302a;color:#ebe8e0;border-radius:15px;padding:clamp(30px,4vw,46px);box-shadow:0 30px 70px -40px rgba(35,40,45,.7);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.ps-perk-card h3{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.9rem,4vw,2.7rem);line-height:1.06;color:var(--cream);margin:14px 0 14px}
.ps-perk-card p{font-size:1rem;line-height:1.66;color:var(--cream-text);margin:0 0 24px;max-width:44em}

/* ---------- Social proof strip ---------- */
.ps-proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,16px)}
.ps-proof-grid a{aspect-ratio:1/1;border-radius:16px;overflow:hidden;display:block;box-shadow:0 14px 36px -28px rgba(35,40,45,.6)}
.ps-proof-grid img{width:100%;height:100%;object-fit:cover}

/* ---------- Booking ---------- */
.ps-book-card{background:#fff;border-radius:15px;overflow:hidden;box-shadow:0 16px 40px -30px rgba(35,40,45,.5);border:1px solid rgba(35,40,45,.08)}
.ps-book-card__head{padding:14px 20px;border-bottom:1px solid rgba(35,40,45,.08);display:flex;align-items:center;gap:10px}
.ps-cal-embed{height:min(620px,80vh);background:#fff}
.ps-book-note{display:flex;gap:10px;align-items:flex-start;margin-top:18px;font-size:.82rem;color:var(--light-muted);line-height:1.55}
.ps-confirm{max-width:680px;margin:0 auto;background:#fff;border-radius:15px;padding:clamp(32px,5vw,56px);box-shadow:0 34px 80px -34px rgba(35,40,45,.4);text-align:center}
.ps-confirm__check{width:64px;height:64px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;margin:0 auto 22px}
.ps-confirm h2{font-family:var(--font-serif);font-weight:600;font-size:clamp(2rem,4.6vw,2.8rem);color:#23282d;line-height:1.05;margin:0 0 14px}
.ps-confirm__box{text-align:left;border:1px solid rgba(35,40,45,.1);border-radius:13px;padding:20px 22px;margin-bottom:16px;background:#fcfbf8}
.ps-confirm__box-label{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--terra);margin-bottom:8px}
.ps-confirm__list{display:flex;flex-direction:column;gap:8px;font-size:.94rem;line-height:1.55;color:#4c5147}
.ps-confirm__list>div{display:flex;gap:10px}

/* ---------- Good to know ---------- */
.ps-know-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(16px,2vw,26px)}
.ps-know-card{background:#fff;border-radius:15px;padding:26px 26px 28px;box-shadow:0 16px 40px -30px rgba(35,40,45,.5)}
.ps-know-card__label{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--terra);margin-bottom:14px}
.ps-know-card__list{display:flex;flex-direction:column;gap:12px;font-size:.94rem;line-height:1.6;color:#4c5147}

/* ---------- Sticky mobile CTA ---------- */
.ps-sticky{position:fixed;bottom:0;left:0;right:0;z-index:400;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(247,245,242,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(35,40,45,.1);align-items:center;justify-content:space-between;gap:14px;display:flex}
.ps-sticky__price{font-weight:700;color:#23282d;font-size:.95rem}
.ps-sticky__perk{font-size:.74rem;color:var(--terra);font-weight:600}
body.ps-hide-sticky .ps-sticky{display:none}
@media(min-width:880px){.ps-sticky{display:none !important}}

@media(max-width:767px){
  .ps-hero{padding-top:calc(var(--header-h) + 24px);padding-bottom:70px}
  .ps-badge.ps-badge--r{display:none}
  .ps-badge.ps-badge--l{padding-right:16px}
  .ps-proof-grid{grid-template-columns:repeat(2,1fr)}
}

/* ---------- Terms & Conditions page ---------- */
.ps-terms-back{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:600;letter-spacing:.04em;color:var(--green);margin-bottom:clamp(26px,4vw,40px)}
.ps-terms-back:hover{color:var(--terra)}
.ps-terms-card{background:#fff;border-radius:15px;padding:clamp(24px,3.6vw,40px);box-shadow:0 16px 40px -30px rgba(35,40,45,.5);margin-bottom:18px}
.ps-terms-card h2{font-family:var(--font-serif);font-weight:600;font-size:1.25rem;color:#23282d;margin:0 0 10px}
.ps-terms-card p{font-size:.95rem;line-height:1.7;color:#4c5147;margin:0 0 12px}
.ps-terms-card p:last-child{margin-bottom:0}
.ps-terms-warning{background:#25302a;border-radius:15px;padding:clamp(24px,3.6vw,40px);margin-bottom:18px}
.ps-terms-warning__label{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#e8b7a4;margin-bottom:12px}
.ps-terms-warning p{font-size:.95rem;line-height:1.7;color:#f3f1ea;font-weight:600;margin:0 0 12px}
.ps-terms-warning p.ps-terms-warning__sub{font-size:.88rem;line-height:1.65;color:#aab0a4;font-weight:400;margin:0}
.ps-terms-list{display:flex;flex-direction:column;gap:10px;font-size:.95rem;line-height:1.7;color:#4c5147}
.ps-terms-list>div{display:flex;gap:10px}
.ps-terms-list>div>span:first-child{color:var(--terra)}
