/* =====================================================================
   ELOPEMENT DESIGN SYSTEM  v0.1
   A self-contained "section library" (constructor) for a worldwide
   elopement photography brand. Modern, editorial-luxury, WP-7.0-ready.
   Built to be portable: drop these classes into Osaka blocks, a fresh
   block theme, or use the standalone prototype as a blueprint.
   ===================================================================== */

/* ---------- 1. DESIGN TOKENS ---------------------------------------- */
:root{
  /* Palette — warm stone, deep ink, clay & sage. Earthy + luxe. */
  --ink:        #1c1a17;
  --ink-soft:   #45403a;
  --bone:       #f6f2ec;
  --bone-2:     #efe8dd;
  --paper:      #fffdf9;
  --clay:       #b0573c;   /* primary accent / CTA */
  --clay-dark:  #8f432d;
  --sage:       #6e7a63;   /* secondary accent */
  --line:       #d9cfc0;   /* hairlines */
  --gold:       #b89b6a;

  /* Type */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body:    "Hanken Grotesk", system-ui, sans-serif;

  /* Fluid type scale (clamp: min, ideal, max) */
  --fs-eyebrow: clamp(.72rem, .68rem + .2vw, .82rem);
  --fs-body:    clamp(1rem, .96rem + .25vw, 1.18rem);
  --fs-lead:    clamp(1.18rem, 1.05rem + .7vw, 1.5rem);
  --fs-h4:      clamp(1.15rem, 1rem + .8vw, 1.6rem);
  --fs-h3:      clamp(1.5rem, 1.2rem + 1.5vw, 2.4rem);
  --fs-h2:      clamp(2rem, 1.5rem + 2.6vw, 3.6rem);
  --fs-h1:      clamp(2.6rem, 1.6rem + 5vw, 6rem);
  --fs-mega:    clamp(3rem, 1rem + 9vw, 9rem);

  /* Space & layout */
  --maxw: 1280px;
  --gutter: clamp(1.25rem, 5vw, 5rem);
  --section-y: clamp(4rem, 8vw, 9rem);
  --radius: 2px;          /* sharp/editorial, not rounded */
  --radius-img: 4px;

  /* Motion */
  --ease: cubic-bezier(.22,.61,.36,1);
  --dur: .7s;
}

/* ---------- 2. RESET / BASE ---------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bone); color:var(--ink);
  font-family:var(--font-body); font-size:var(--fs-body);
  line-height:1.65; font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:380; line-height:1.05;
  letter-spacing:-.01em; margin:0; }
h1{ font-size:var(--fs-h1); } h2{ font-size:var(--fs-h2); }
h3{ font-size:var(--fs-h3); } h4{ font-size:var(--fs-h4); }
p{ margin:0 0 1.1em; }
::selection{ background:var(--clay); color:var(--paper); }

/* ---------- 3. LAYOUT HELPERS -------------------------------------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto;
  padding-inline:var(--gutter); }
.wrap--narrow{ max-width:780px; }
.section{ padding-block:var(--section-y); }
.section--tight{ padding-block:clamp(2.5rem,5vw,4.5rem); }
.bg-bone{ background:var(--bone); } .bg-bone-2{ background:var(--bone-2); }
.bg-ink{ background:var(--ink); color:var(--paper); }
.bg-paper{ background:var(--paper); }
.center{ text-align:center; }

.eyebrow{ font-family:var(--font-body); font-size:var(--fs-eyebrow);
  text-transform:uppercase; letter-spacing:.32em; font-weight:600;
  color:var(--clay); margin:0 0 1.1rem; display:inline-block; }
.bg-ink .eyebrow{ color:var(--gold); }
.lead{ font-size:var(--fs-lead); line-height:1.5; color:var(--ink-soft); }
.bg-ink .lead{ color:#d8d1c6; }
.script{ font-family:var(--font-display); font-style:italic; font-weight:380; }

/* ---------- 4. BUTTONS / CTA --------------------------------------- */
.btn{ --b:var(--clay); --t:var(--paper);
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-body); font-weight:600; font-size:.86rem;
  letter-spacing:.12em; text-transform:uppercase;
  padding:1.05em 1.9em; background:var(--b); color:var(--t);
  border:1px solid var(--b); border-radius:var(--radius);
  cursor:pointer; transition:all .35s var(--ease); position:relative; }
.btn:hover{ background:var(--clay-dark); border-color:var(--clay-dark);
  transform:translateY(-2px); }
.btn--ghost{ --b:transparent; --t:var(--ink); border-color:currentColor; }
.btn--ghost:hover{ background:var(--ink); color:var(--paper);
  border-color:var(--ink); }
.bg-ink .btn--ghost{ --t:var(--paper); }
.btn .arrow{ transition:transform .35s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }
.link-underline{ font-weight:600; letter-spacing:.04em; font-size:.92rem;
  text-transform:uppercase; border-bottom:1px solid var(--clay);
  padding-bottom:3px; transition:.3s; }
.link-underline:hover{ color:var(--clay); letter-spacing:.08em; }

/* ---------- 5. NAV + ANNOUNCEMENT + STICKY CTA --------------------- */
.announce{ background:var(--ink); color:var(--paper); text-align:center;
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.6rem 1rem; }
.announce a{ color:var(--gold); border-bottom:1px solid currentColor;
  margin-left:.5rem; }
.nav{ position:sticky; top:0; z-index:40;
  background:rgba(246,242,236,.86); backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line); }
.nav__inner{ display:flex; align-items:center; justify-content:space-between;
  gap:2rem; padding-block:1.05rem; }
.nav__logo{ font-family:var(--font-display); font-size:1.45rem;
  letter-spacing:.02em; }
.nav__logo span{ color:var(--clay); }
.nav__menu{ display:flex; gap:1.8rem; list-style:none; margin:0; padding:0;
  font-size:.84rem; letter-spacing:.08em; text-transform:uppercase;
  font-weight:500; }
.nav__menu a{ position:relative; padding-bottom:4px; }
.nav__menu a::after{ content:""; position:absolute; left:0; bottom:0;
  width:0; height:1px; background:var(--clay); transition:width .3s var(--ease); }
.nav__menu a:hover::after{ width:100%; }
.nav__cta{ font-size:.78rem; padding:.85em 1.5em; }
.nav__burger{ display:none; background:none; border:0; cursor:pointer;
  font-size:1.4rem; }
@media (max-width:960px){
  .nav__menu{ display:none; } .nav__burger{ display:block; }
}

/* ---------- 6. HERO (variant A: full-bleed cinematic) -------------- */
.hero{ position:relative; min-height:92vh; display:flex; align-items:flex-end;
  color:var(--paper); overflow:hidden; }
.hero__media{ position:absolute; inset:0; z-index:0;
  background:linear-gradient(120deg,#3a3631,#6e6256 55%,#9b8a73); }
.hero__media::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(20,18,15,.15),rgba(20,18,15,.7)); }
.hero__inner{ position:relative; z-index:2; padding-bottom:clamp(3rem,7vw,7rem);
  max-width:920px; }
.hero h1{ font-size:var(--fs-h1); font-weight:340; }
.hero__sub{ font-size:var(--fs-lead); max-width:42ch; margin:1.4rem 0 2rem;
  color:#ece7df; }
.hero__meta{ display:flex; gap:1.3rem; flex-wrap:wrap; margin-bottom:2rem;
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:#d8cfc0; }
.hero__cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.hero__press{ position:absolute; bottom:1.4rem; right:var(--gutter); z-index:2;
  display:flex; gap:1.6rem; align-items:center; font-size:.7rem;
  letter-spacing:.2em; text-transform:uppercase; color:#cabfae; opacity:.85; }
@media (max-width:700px){ .hero__press{ display:none; } }

/* ---------- 7. STATS BAR ------------------------------------------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr);
  border-block:1px solid var(--line); }
.stat{ text-align:center; padding:clamp(1.8rem,4vw,3rem) 1rem;
  border-right:1px solid var(--line); }
.stat:last-child{ border-right:0; }
.stat__num{ font-family:var(--font-display); font-size:clamp(2.2rem,4vw,3.4rem);
  color:var(--clay); line-height:1; }
.stat__label{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft); margin-top:.6rem; }
@media (max-width:760px){ .stats{ grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(2){ border-right:0; }
  .stat:nth-child(-n+2){ border-bottom:1px solid var(--line); } }

/* ---------- 8. PHILOSOPHY / EDITORIAL PULL ------------------------- */
.pull{ text-align:center; }
.pull h2{ font-size:var(--fs-h2); max-width:18ch; margin-inline:auto;
  font-weight:340; }
.pull .resolve{ font-size:var(--fs-h4); color:var(--clay);
  margin-top:1.6rem; font-style:italic; font-family:var(--font-display); }

/* ---------- 9. SECTION HEADING ------------------------------------- */
.s-head{ max-width:60ch; margin-bottom:clamp(2rem,4vw,3.5rem); }
.s-head--center{ margin-inline:auto; text-align:center; }

/* ---------- 10. DESTINATIONS GRID ---------------------------------- */
.dest-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
@media (max-width:1024px){ .dest-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .dest-grid{ grid-template-columns:1fr; } }
.dest{ position:relative; aspect-ratio:3/4; overflow:hidden;
  border-radius:var(--radius-img); display:flex; align-items:flex-end;
  color:var(--paper); }
.dest__img{ position:absolute; inset:0; transition:transform 1.1s var(--ease); }
.dest__img img,.dest__img .ph{ width:100%; height:100%; object-fit:cover; display:block; }
.dest:hover .dest__img{ transform:scale(1.06); }
.dest::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(20,16,12,.78)); }
.dest__body{ position:relative; z-index:2; padding:1.4rem; width:100%; }
.dest__name{ font-family:var(--font-display); font-size:1.5rem; }
.dest__for{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  color:#e4dccd; margin-top:.3rem; opacity:.9; }
.dest__go{ margin-top:.8rem; font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; opacity:0; transform:translateY(8px);
  transition:.4s var(--ease); }
.dest:hover .dest__go{ opacity:1; transform:none; }

/* ---------- 11. SERVICES (3-col) ----------------------------------- */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(1.5rem,4vw,3.5rem); }
@media (max-width:820px){ .svc-grid{ grid-template-columns:1fr; } }
.svc__num{ font-family:var(--font-display); font-style:italic;
  font-size:1.3rem; color:var(--clay); }
.svc h3{ font-size:var(--fs-h4); margin:.6rem 0 1rem;
  padding-bottom:1rem; border-bottom:1px solid var(--line); }
.svc ul{ list-style:none; margin:0; padding:0; }
.svc li{ padding:.45rem 0; padding-left:1.4rem; position:relative;
  color:var(--ink-soft); font-size:.98rem; }
.svc li::before{ content:"—"; position:absolute; left:0; color:var(--clay); }

/* ---------- 12. STORY CARDS (horizontal) -------------------------- */
.story{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(1.5rem,4vw,3rem);
  align-items:center; margin-bottom:clamp(2.5rem,5vw,4.5rem); }
.story:nth-child(even){ direction:rtl; }
.story:nth-child(even) > *{ direction:ltr; }
@media (max-width:760px){ .story{ grid-template-columns:1fr; } }
.story__img{ aspect-ratio:4/3; border-radius:var(--radius-img); overflow:hidden; }
.story__img img,.story__img .ph{ width:100%; height:100%; object-fit:cover; display:block; }
.story__where{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--clay); }
.story h3{ font-size:var(--fs-h3); margin:.5rem 0 1rem; }

/* ---------- 13. PROCESS / STEPS ----------------------------------- */
.steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:1.5rem;
  counter-reset:step; }
@media (max-width:900px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .steps{ grid-template-columns:1fr; } }
.step{ counter-increment:step; }
.step::before{ content:"0" counter(step); font-family:var(--font-display);
  font-size:2.2rem; color:var(--clay); display:block; margin-bottom:.6rem; }
.step h4{ font-size:1.05rem; font-family:var(--font-body); font-weight:700;
  letter-spacing:.02em; margin-bottom:.4rem; }
.step p{ font-size:.92rem; color:var(--ink-soft); }

/* ---------- 14. SPLIT (about teaser / image+text) ----------------- */
.split{ display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(1.5rem,5vw,4.5rem); align-items:center; }
@media (max-width:820px){ .split{ grid-template-columns:1fr; } }
.split__img{ aspect-ratio:4/5; border-radius:var(--radius-img); overflow:hidden; }
.split__img img,.split__img .ph{ width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }

/* ---------- 15. TESTIMONIALS -------------------------------------- */
.quote{ max-width:46ch; margin-inline:auto; text-align:center; }
.quote blockquote{ font-family:var(--font-display); font-style:italic;
  font-size:var(--fs-h3); line-height:1.3; margin:0 0 1.4rem; font-weight:340; }
.bg-ink .quote blockquote{ color:var(--paper); }
.quote cite{ font-style:normal; font-size:.8rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--gold); }
.stars{ color:var(--clay); letter-spacing:.3em; margin-bottom:1.4rem;
  font-size:.9rem; }

/* ---------- 16. PRICING TIERS ------------------------------------- */
.tiers{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
@media (max-width:880px){ .tiers{ grid-template-columns:1fr; } }
.tier{ background:var(--paper); border:1px solid var(--line);
  padding:clamp(1.8rem,3vw,2.6rem); border-radius:var(--radius);
  display:flex; flex-direction:column; }
.tier--feature{ background:var(--ink); color:var(--paper); border-color:var(--ink);
  transform:scale(1.02); }
.tier__name{ font-family:var(--font-display); font-size:1.7rem; }
.tier__tag{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--clay); margin-bottom:1.2rem; }
.tier--feature .tier__tag{ color:var(--gold); }
.tier__price{ font-family:var(--font-display); font-size:2.1rem;
  margin-bottom:1.4rem; }
.tier__price small{ font-family:var(--font-body); font-size:.8rem;
  letter-spacing:.1em; text-transform:uppercase; opacity:.6; display:block; }
.tier ul{ list-style:none; margin:0 0 1.8rem; padding:0; flex:1; }
.tier li{ padding:.5rem 0; border-bottom:1px solid var(--line);
  font-size:.95rem; }
.tier--feature li{ border-color:#3a352e; }

/* ---------- 17. FAQ (accordion) ----------------------------------- */
.faq__item{ border-bottom:1px solid var(--line); }
.faq__q{ width:100%; text-align:left; background:none; border:0; cursor:pointer;
  font-family:var(--font-display); font-size:var(--fs-h4); color:var(--ink);
  padding:1.3rem 2.5rem 1.3rem 0; position:relative; }
.faq__q::after{ content:"+"; position:absolute; right:.3rem; top:50%;
  transform:translateY(-50%); color:var(--clay); font-size:1.6rem;
  transition:transform .3s; }
.faq__item[open] .faq__q::after{ content:"–"; }
.faq__a{ padding:0 0 1.5rem; color:var(--ink-soft); max-width:65ch; }
details > summary{ list-style:none; } details > summary::-webkit-details-marker{ display:none; }

/* ---------- 18. CTA BANNER ---------------------------------------- */
.cta-band{ text-align:center; }
.cta-band h2{ font-size:var(--fs-h2); max-width:20ch; margin:0 auto 1.2rem;
  font-weight:340; }
.cta-band .avail{ font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.2rem; }

/* ---------- 19. CONTACT FORM -------------------------------------- */
.contact{ display:grid; grid-template-columns:.9fr 1.1fr;
  gap:clamp(1.5rem,5vw,4rem); align-items:start; }
@media (max-width:860px){ .contact{ grid-template-columns:1fr; } }
.contact__img{ aspect-ratio:3/4; border-radius:var(--radius-img); overflow:hidden; }
.contact__img img,.contact__img .ph{ width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.field{ margin-bottom:1.3rem; }
.field label{ display:block; font-size:.74rem; letter-spacing:.16em;
  text-transform:uppercase; margin-bottom:.5rem; color:var(--ink-soft); }
.field input,.field textarea,.field select{ width:100%; padding:.95rem 1rem;
  border:1px solid var(--line); background:var(--paper); font:inherit;
  font-size:1rem; border-radius:var(--radius); color:var(--ink); }
.field input:focus,.field textarea:focus,.field select:focus{ outline:none;
  border-color:var(--clay); }
.field--row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:520px){ .field--row{ grid-template-columns:1fr; } }
.choice-row{ display:flex; flex-wrap:wrap; gap:.6rem; }
.choice{ border:1px solid var(--line); padding:.6rem 1rem; cursor:pointer;
  font-size:.88rem; border-radius:var(--radius); transition:.25s; }
.choice:hover{ border-color:var(--clay); color:var(--clay); }

/* ---------- 20. FOOTER -------------------------------------------- */
.footer{ background:var(--ink); color:#cabfae; padding-block:clamp(3rem,6vw,5rem); }
.footer a:hover{ color:var(--paper); }
.footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.5rem;
  padding-bottom:2.5rem; border-bottom:1px solid #322d27; }
@media (max-width:760px){ .footer__top{ grid-template-columns:1fr; gap:1.8rem; } }
.footer__logo{ font-family:var(--font-display); font-size:1.8rem; color:var(--paper); }
.footer h5{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin:0 0 1rem; }
.footer ul{ list-style:none; margin:0; padding:0; line-height:2.1; font-size:.95rem; }
.footer__awards{ display:flex; gap:2rem; flex-wrap:wrap; padding-block:2rem;
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; opacity:.7; }
.footer__bottom{ display:flex; justify-content:space-between; flex-wrap:wrap;
  gap:1rem; font-size:.8rem; opacity:.65; }

/* ---------- 21. WHATSAPP FLOAT + FX -------------------------------- */
.wa{ position:fixed; right:1.2rem; bottom:1.2rem; z-index:50;
  background:var(--clay); color:var(--paper); width:56px; height:56px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 30px rgba(0,0,0,.25); font-size:1.5rem;
  transition:.3s var(--ease); }
.wa:hover{ transform:scale(1.08); background:var(--clay-dark); }

/* Image placeholders (handoff: replace with real photos) */
.ph{ width:100%; height:100%; background:
  linear-gradient(135deg,#cdbfa8,#9b8a73 50%,#6e6256);
  display:flex; align-items:flex-end; padding:.8rem;
  font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.7); }
.ph--alt{ background:linear-gradient(135deg,#b9a98f,#7d8a72 60%,#4f5a45); }
.ph--cool{ background:linear-gradient(135deg,#a9b4bd,#6f7d88 55%,#3f4953); }

/* Scroll reveal */
.reveal{ opacity:0; transform:translateY(24px);
  transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ scroll-behavior:auto !important; }
}

/* =====================================================================
   22. WORDPRESS THEME ADDITIONS (blog, portfolio, gallery, forms, a11y)
   ===================================================================== */

/* Accessibility */
.screen-reader-text{ position:absolute!important; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.skip-link{ position:absolute; left:-999px; top:0; z-index:100; background:var(--ink);
  color:#fff; padding:.7rem 1rem; }
.skip-link:focus{ left:1rem; top:1rem; }
:focus-visible{ outline:2px solid var(--clay); outline-offset:3px; }

/* WP custom logo */
.custom-logo{ max-height:54px; width:auto; }

/* Long-form content flow */
.flow > * + *{ margin-top:1.1em; }
.flow h2{ font-size:var(--fs-h3); margin-top:1.6em; }
.flow h3{ font-size:var(--fs-h4); margin-top:1.4em; }
.flow a{ color:var(--clay); border-bottom:1px solid currentColor; }
.flow ul,.flow ol{ padding-left:1.3em; }
.flow li{ margin:.35em 0; }
.flow blockquote{ border-left:3px solid var(--clay); padding-left:1.3rem; margin:1.6em 0;
  font-family:var(--font-display); font-style:italic; font-size:var(--fs-h4); }
.flow img{ border-radius:var(--radius-img); margin-block:1.4em; }
.post-body{ font-size:var(--fs-lead); line-height:1.7; }

/* Ticklist (destination "best for") */
.ticklist{ list-style:none; margin:0; padding:0; }
.ticklist li{ padding:.55rem 0 .55rem 1.8rem; position:relative;
  border-bottom:1px solid var(--line); }
.ticklist li::before{ content:"✓"; position:absolute; left:0; color:var(--clay); font-weight:700; }

/* Post grid + cards */
.post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,3vw,2.5rem); }
@media (max-width:900px){ .post-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .post-grid{ grid-template-columns:1fr; } }
.post-card__img{ display:block; aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius-img); }
.post-card__img img,.post-card__img .ph{ width:100%; height:100%; object-fit:cover;
  transition:transform 1s var(--ease); }
.post-card:hover .post-card__img img{ transform:scale(1.05); }
.post-card__meta{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-soft); margin:1rem 0 .5rem; }
.post-card__cat{ color:var(--clay); }
.post-card__title{ font-size:var(--fs-h4); line-height:1.15; margin-bottom:.6rem; }
.post-card__title a:hover{ color:var(--clay); }
.post-card__excerpt{ color:var(--ink-soft); font-size:.96rem; }

/* Portfolio grid + filter */
.pf-filter{ display:inline-flex; flex-wrap:wrap; gap:.4rem; justify-content:center; }
.pf-filter__btn{ background:none; border:1px solid var(--line); cursor:pointer;
  font:inherit; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase;
  padding:.55rem 1.1rem; border-radius:var(--radius); transition:.25s; color:var(--ink-soft); }
.pf-filter__btn:hover{ border-color:var(--clay); color:var(--clay); }
.pf-filter__btn.is-active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.pf-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
@media (max-width:900px){ .pf-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .pf-grid{ grid-template-columns:1fr; } }
.pf-item{ position:relative; display:block; }
.pf-item.is-hidden{ display:none; }
.pf-item__img{ aspect-ratio:4/5; overflow:hidden; border-radius:var(--radius-img); }
.pf-item__img img,.pf-item__img .ph{ width:100%; height:100%; object-fit:cover;
  transition:transform 1s var(--ease); }
.pf-item:hover .pf-item__img img{ transform:scale(1.05); }
.pf-item__meta{ display:flex; justify-content:space-between; align-items:baseline;
  margin-top:.8rem; gap:1rem; }
.pf-item__title{ font-family:var(--font-display); font-size:1.25rem; }
.pf-item__where{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--clay); }

/* Story hero (single gallery) */
.story-hero{ min-height:78vh; display:flex; align-items:flex-end; color:var(--paper);
  background:linear-gradient(120deg,#3a3631,#6e6256 55%,#9b8a73); }
.story-hero__inner{ padding-bottom:clamp(2.5rem,6vw,6rem); }
.story-hero h1{ font-size:var(--fs-h1); max-width:16ch; }
.story-intro{ text-align:center; }

/* Gallery grid + lightbox */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; }
@media (max-width:760px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.gallery-grid__item{ display:block; aspect-ratio:1/1.2; overflow:hidden; cursor:zoom-in; }
.gallery-grid__item img{ width:100%; height:100%; object-fit:cover;
  transition:transform .9s var(--ease); }
.gallery-grid__item:hover img{ transform:scale(1.04); }
.lightbox{ position:fixed; inset:0; z-index:90; background:rgba(18,15,12,.94);
  display:none; align-items:center; justify-content:center; padding:3vw; }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:92vw; max-height:90vh; object-fit:contain; }
.lightbox__close,.lightbox__nav{ position:absolute; background:none; border:0; color:#fff;
  font-size:2rem; cursor:pointer; opacity:.8; padding:1rem; }
.lightbox__close{ top:1rem; right:1.5rem; }
.lightbox__nav{ top:50%; transform:translateY(-50%); }
.lightbox__nav--prev{ left:1rem; } .lightbox__nav--next{ right:1rem; }
.lightbox__nav:hover,.lightbox__close:hover{ opacity:1; }

/* Locations grid (destination) */
.loc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,3vw,2rem); }
@media (max-width:820px){ .loc-grid{ grid-template-columns:1fr; } }
.loc__img{ aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius-img); margin-bottom:1rem; }
.loc__img img,.loc__img .ph{ width:100%; height:100%; object-fit:cover; display:block; }
.loc h4{ font-size:var(--fs-h4); margin-bottom:.4rem; }
.loc p{ color:var(--ink-soft); font-size:.96rem; }

/* Timeline (destination) */
.timeline{ list-style:none; margin:0; padding:0; }
.timeline__item{ display:grid; grid-template-columns:120px 1fr; gap:1.5rem;
  padding:1.4rem 0; border-bottom:1px solid var(--line); align-items:baseline; }
@media (max-width:520px){ .timeline__item{ grid-template-columns:1fr; gap:.3rem; } }
.timeline__time{ font-family:var(--font-display); font-size:1.6rem; color:var(--clay); }
.timeline__item h4{ font-size:1.1rem; font-family:var(--font-body); font-weight:700; margin-bottom:.2rem; }
.timeline__item p{ color:var(--ink-soft); font-size:.95rem; }

/* Single post */
.single-post__head{ padding-block:clamp(2.5rem,5vw,4rem) clamp(1.5rem,3vw,2.5rem); text-align:center; }
.single-post__head h1{ font-size:var(--fs-h1); max-width:18ch; margin:1rem auto 0; }
.single-post__head .post-card__meta{ justify-content:center; }
.single-post__feat{ margin:0 0 clamp(2rem,4vw,3.5rem); aspect-ratio:16/9; overflow:hidden; }
.single-post__feat img{ width:100%; height:100%; object-fit:cover; display:block; }
.single-post__feat img{ width:100%; height:100%; object-fit:cover; }
.post-tags{ margin-top:2.5rem; display:flex; gap:.5rem; flex-wrap:wrap; }
.post-tags a{ font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
  border:1px solid var(--line); padding:.4rem .9rem; border-radius:var(--radius); }
.post-tags a:hover{ border-color:var(--clay); color:var(--clay); }

/* Prev/next nav */
.post-nav{ display:flex; justify-content:space-between; gap:1rem;
  border-top:1px solid var(--line); padding-top:1.5rem; }
.post-nav__link{ font-family:var(--font-display); font-size:1.1rem; max-width:45%; }
.post-nav__link:hover{ color:var(--clay); }
.post-nav__link--next{ text-align:right; margin-left:auto; }

/* Built-in contact form */
.el-form .field input[type=radio]{ width:auto; }
.choice input{ accent-color:var(--clay); }
.form-success{ background:var(--paper); border:1px solid var(--line); padding:2.5rem;
  border-radius:var(--radius); text-align:center; }
.form-success h3{ font-size:var(--fs-h3); color:var(--clay); margin-bottom:.6rem; }
.form-error{ color:var(--clay-dark); font-weight:600; margin-bottom:1rem; }

/* Search form */
.el-search{ display:flex; gap:.5rem; }
.el-search input{ flex:1; padding:.85rem 1rem; border:1px solid var(--line);
  background:var(--paper); font:inherit; border-radius:var(--radius); }
.el-search input:focus{ outline:none; border-color:var(--clay); }

/* Pagination */
.pagination,.nav-links{ display:flex; gap:.4rem; justify-content:center;
  margin-top:clamp(2.5rem,5vw,4rem); flex-wrap:wrap; }
.pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; height:44px; padding:0 .8rem; border:1px solid var(--line);
  border-radius:var(--radius); font-size:.9rem; transition:.25s; }
.pagination .page-numbers:hover{ border-color:var(--clay); color:var(--clay); }
.pagination .page-numbers.current{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

/* Comments */
.comments-area{ margin-top:1rem; }
.comments-title{ font-size:var(--fs-h4); margin-bottom:1.5rem; }
.comment-list{ list-style:none; margin:0 0 2.5rem; padding:0; }
.comment-list ol{ list-style:none; padding-left:2rem; }
.comment-body{ padding:1.3rem 0; border-bottom:1px solid var(--line); }
.comment-form input[type=text],.comment-form input[type=email],
.comment-form input[type=url],.comment-form textarea{ width:100%; padding:.85rem 1rem;
  border:1px solid var(--line); background:var(--paper); font:inherit; border-radius:var(--radius); margin-top:.4rem; }
.comment-form label{ font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
.comment-form p{ margin-bottom:1rem; }

/* WP core alignments */
.alignwide{ max-width:1100px; margin-inline:auto; }
.alignfull{ width:100vw; margin-left:calc(50% - 50vw); }
.aligncenter{ margin-inline:auto; }

/* =====================================================================
   23. VIDEO EMBED + STORY DATE + PRICING (patch)
   ===================================================================== */

/* Responsive video wrap (16:9) */
.video-wrap{position:relative;padding-top:56.25%;border-radius:var(--radius-img);overflow:hidden;}
.video-wrap iframe,.video-wrap video{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* Story hero date line */
.story-hero__date{color:rgba(255,255,255,.65);font-size:.88rem;letter-spacing:.14em;
  text-transform:uppercase;margin-top:.6rem;}

/* Gallery CTA band tighter on listing */
.pf-item__where{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--clay);margin-top:.2rem;}

/* Pricing — film vs photo split override */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.5rem);}
@media(max-width:820px){.svc-grid{grid-template-columns:1fr;}}

/* Avail pill in CTA band */
.avail{display:inline-block;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1rem;}

/* =====================================================================
   24. TEAM BIOS (About page)
   ===================================================================== */
.team-bios p{ margin-bottom:1.2rem; }
.team-bios strong{ display:block; font-family:var(--font-display); font-size:1.15rem;
  color:var(--clay); font-weight:500; margin-top:1.8rem; margin-bottom:.1rem; letter-spacing:.01em; }
.team-bios p:first-child{ font-size:var(--fs-lead); color:var(--ink-soft); margin-bottom:2rem; }
