/* =====================================================
  EMILY MARY PHOTOGRAPHY — stylesheet
   Warm watercolor theme derived from the client logo:
   dawn sun, rolling hills, florals, brush script type.
   ===================================================== */

:root{
  /* ---- palette (pulled from the logo art) ---- */
  --cream:      #FDF6EC;
  --cream-2:    #FBEDDC;
  --sand:       #F3E1C8;
  --peach:      #F3C295;
  --apricot:    #E8934A;
  --terracotta: #C8602F;
  --rust:       #9B4321;
  --ink:        #4A2E1E;
  --ink-soft:   #7A5A44;
  --gold:       #E8A33D;
  --white:      #FFFFFF;

  --grad-warm: linear-gradient(135deg,#F3C295 0%,#E8934A 55%,#C8602F 100%);
  --grad-line: linear-gradient(90deg, transparent, var(--terracotta), transparent);

  --font-script: 'Alex Brush', cursive;
  --font-display: 'Fraunces', serif;
  --font-body: 'Jost', sans-serif;

  --container: 1180px;
  --radius: 18px;
  --shadow-soft: 0 20px 50px -20px rgba(155,67,33,.35);
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }

::selection{ background:var(--peach); color:var(--rust); }

/* scrollbar accent */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--cream-2); }
::-webkit-scrollbar-thumb{ background:var(--apricot); border-radius:10px; }

.container{ max-width:var(--container); margin:0 auto; padding:0 28px; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-script);
  font-size:clamp(28px,3.4vw,38px);
  color:var(--terracotta);
  line-height:1;
}
.eyebrow::before,.eyebrow::after{
  content:'';
  width:34px; height:1px;
  background:var(--terracotta);
  opacity:.55;
}

h1,h2,h3{ font-family:var(--font-display); color:var(--ink); margin:0; }

.section-head{
  text-align:center;
  max-width:640px;
  margin:0 auto 56px;
}
.section-head h2{
  font-size:clamp(32px,4.6vw,52px);
  font-weight:600;
  margin-top:10px;
  letter-spacing:.2px;
}
.section-head p{
  color:var(--ink-soft);
  font-size:16.5px;
  line-height:1.7;
  margin-top:14px;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 32px;
  border-radius:999px;
  border:1px solid transparent;
  font-family:var(--font-body);
  font-size:14.5px;
  letter-spacing:.4px;
  text-transform:uppercase;
  font-weight:500;
  cursor:pointer;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), background .3s ease, color .3s ease;
}
.btn-primary{
  background:var(--grad-warm);
  color:var(--white);
  box-shadow:0 14px 30px -10px rgba(200,96,47,.55);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 20px 38px -12px rgba(200,96,47,.65); }
.btn-outline{
  background:transparent;
  border-color:rgba(255,255,255,.75);
  color:var(--white);
}
.btn-outline:hover{ background:rgba(255,255,255,.15); transform:translateY(-3px); }
.btn-dark{
  background:transparent;
  border-color:var(--terracotta);
  color:var(--terracotta);
}
.btn-dark:hover{ background:var(--terracotta); color:var(--white); transform:translateY(-3px); }

/* reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal-scale{ opacity:0; transform:scale(.92); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.reveal-scale.in-view{ opacity:1; transform:scale(1); }
.stagger .reveal:nth-child(1){ transition-delay:.05s; }
.stagger .reveal:nth-child(2){ transition-delay:.16s; }
.stagger .reveal:nth-child(3){ transition-delay:.27s; }
.stagger .reveal:nth-child(4){ transition-delay:.38s; }

/* =========================================================
   TOP ANNOUNCEMENT
   ========================================================= */
.topbar{
  background:var(--ink);
  color:var(--cream-2);
  text-align:center;
  font-size:12.5px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  padding:9px 12px;
  font-family:var(--font-body);
}
.topbar span{ color:var(--gold); }

/* =========================================================
   NAVBAR
   ========================================================= */
.navbar{
  position:fixed;
  top:34px; left:0; right:0;
  z-index:200;
  padding:16px 0;
  transition:background .45s var(--ease), padding .45s var(--ease), box-shadow .45s var(--ease), top .3s var(--ease);
}
.navbar.scrolled{
  top:0;
  background:rgba(253,246,236,.92);
  backdrop-filter:blur(10px);
  box-shadow:0 8px 30px -18px rgba(74,46,30,.35);
  padding:8px 0;
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.brand{ display:flex; align-items:center; gap:14px; }
.brand-mark{
  width:86px; height:86px;
  border-radius:50%;
  background:var(--cream);
  padding:7px;
  border:2px solid rgba(255,255,255,.72);
  box-shadow:0 12px 28px -14px rgba(0,0,0,.5);
  overflow:hidden;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
  flex:none;
}
.navbar.scrolled .brand-mark{ width:74px; height:74px; }
.brand-mark img{
  width:100%; height:100%;
  object-fit:contain;
  border-radius:50%;
  transform:none;
}
.brand-mark{ animation:brandFloat 5s ease-in-out infinite; }
@keyframes brandFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-3px); } }
.brand:hover .brand-mark{ transform:rotate(-6deg) scale(1.05); }
.brand-text{ display:flex; flex-direction:column; line-height:1.05; }
.brand-text .b1{ font-family:var(--font-script); font-size:24px; color:var(--gold); text-shadow:0 2px 14px rgba(0,0,0,.4); transition:color .45s var(--ease), text-shadow .45s var(--ease); }
.brand-text .b2{ font-family:var(--font-display); font-size:14px; letter-spacing:3px; color:var(--white); text-shadow:0 2px 14px rgba(0,0,0,.4); text-transform:uppercase; transition:color .45s var(--ease), text-shadow .45s var(--ease); }
.navbar.scrolled .brand-text .b1{ color:var(--terracotta); text-shadow:none; }
.navbar.scrolled .brand-text .b2{ color:var(--ink); text-shadow:none; }

.nav-links{ display:flex; align-items:center; gap:38px; }
.nav-links a{
  position:relative;
  font-size:13.5px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  font-weight:500;
  color:var(--white);
  text-shadow:0 2px 10px rgba(0,0,0,.35);
  padding:6px 0;
  transition:color .45s var(--ease), text-shadow .45s var(--ease);
}
.navbar.scrolled .nav-links a{ color:var(--ink); text-shadow:none; }
.nav-links a::after{
  content:'';
  position:absolute; left:0; bottom:0;
  width:0; height:2px;
  background:var(--terracotta);
  transition:width .35s var(--ease);
}
.nav-links a:hover::after{ width:100%; }
.nav-links a.nav-cta{ text-shadow:none; }
.nav-cta{
  padding:11px 24px !important;
  border-radius:999px;
  background:var(--grad-warm);
  color:var(--white) !important;
  letter-spacing:1.4px;
}
.nav-cta::after{ display:none; }

.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none; border:none;
  padding:8px;
  z-index:210;
}
.nav-toggle span{
  width:26px; height:2px; background:var(--white);
  box-shadow:0 1px 6px rgba(0,0,0,.35);
  transition:transform .35s var(--ease), opacity .3s ease, background .45s var(--ease);
}
.navbar.scrolled .nav-toggle span{ background:var(--ink); box-shadow:none; }
.nav-toggle.open span{ background:var(--ink) !important; box-shadow:none; }
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* =========================================================
   HERO / BANNER — two-image diptych
   ========================================================= */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:var(--ink);
}
.hero-photos{
  position:absolute; inset:0;
  display:grid;
  grid-template-columns:1fr 1fr;
}
.hero-photo{
  position:relative;
  overflow:hidden;
}
.hero-photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  animation:kenburns 18s ease-in-out infinite alternate;
  filter:saturate(1.05);
}
.hero-photo:nth-child(2) img{ animation-delay:-9s; animation-name:kenburns2; }
@keyframes kenburns{
  0%{ transform:scale(1.08) translate(0,0); }
  100%{ transform:scale(1.22) translate(-1.5%,-2%); }
}
@keyframes kenburns2{
  0%{ transform:scale(1.15) translate(0,0); }
  100%{ transform:scale(1.02) translate(1.5%,2%); }
}
.hero-split{
  position:absolute; top:0; bottom:0; left:50%;
  width:1px;
  background:rgba(255,255,255,.25);
  z-index:2;
}
.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(74,46,30,.55) 0%, rgba(74,46,30,.28) 32%, rgba(74,46,30,.42) 68%, rgba(74,46,30,.72) 100%);
  z-index:2;
}
.hero-content{
  position:relative; z-index:3;
  text-align:center;
  color:var(--white);
  padding:0 20px;
  max-width:900px;
}
.hero-content .eyebrow-sm{
  font-family:var(--font-script);
  font-size:clamp(24px,3vw,34px);
  color:var(--gold);
  display:block;
  margin-bottom:6px;
  opacity:0;
  animation:fadeUp 1s var(--ease) .3s forwards;
}
.hero-content h1{
  color:var(--white);
  font-size:clamp(46px,9vw,108px);
  font-weight:600;
  letter-spacing:1px;
  line-height:.98;
  text-shadow:0 12px 40px rgba(0,0,0,.35);
  opacity:0;
  animation:fadeUp 1.1s var(--ease) .5s forwards;
}
.hero-content .tagline{
  margin-top:22px;
  font-size:15px;
  letter-spacing:4px;
  text-transform:uppercase;
  color:var(--cream-2);
  opacity:0;
  animation:fadeUp 1s var(--ease) .8s forwards;
}
.hero-content .tagline b{ color:var(--gold); font-weight:500; }
.hero-cta{
  margin-top:38px;
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
  opacity:0;
  animation:fadeUp 1s var(--ease) 1.05s forwards;
}
@keyframes fadeUp{
  from{ opacity:0; transform:translateY(24px); }
  to{ opacity:1; transform:translateY(0); }
}

.hero-scroll{
  position:absolute; bottom:30px; left:50%; transform:translateX(-50%);
  z-index:3; color:var(--cream-2);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  font-size:11px; letter-spacing:3px; text-transform:uppercase;
  opacity:.85;
}
.hero-scroll .line{
  width:1px; height:38px;
  background:linear-gradient(var(--gold),transparent);
  animation:scrollLine 1.8s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{ transform:scaleY(0); transform-origin:top; }
  50%{ transform:scaleY(1); transform-origin:top; }
  50.01%{ transform-origin:bottom; }
  100%{ transform:scaleY(0); transform-origin:bottom; }
}

/* =========================================================
   SUN + HILLS DIVIDER (signature motif from the logo)
   ========================================================= */
.motif{
  position:relative;
  width:100%;
  height:clamp(90px,14vw,150px);
  overflow:hidden;
  background:var(--cream);
}
.motif svg{ position:absolute; bottom:-2px; left:0; width:100%; height:100%; }
.motif .sun{
  transform-origin:center;
  animation:sunPulse 6s ease-in-out infinite;
}
.motif .rays{
  transform-origin:170px 42px;
  animation:rayspin 40s linear infinite;
}
@keyframes rayspin{ to{ transform:rotate(360deg); } }
@keyframes sunPulse{ 0%,100%{ opacity:1; } 50%{ opacity:.75; } }
.motif .bird{ animation:birdFloat 5s ease-in-out infinite; }
.motif .bird:nth-child(2){ animation-delay:.4s; }
.motif .bird:nth-child(3){ animation-delay:.8s; }
@keyframes birdFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-4px); } }

/* =========================================================
   ABOUT
   ========================================================= */
.about{
  position:relative;
  padding:120px 0 130px;
  background:var(--cream);
  overflow:hidden;
}
.about-grid{
  display:grid;
  grid-template-columns:.85fr 1fr;
  gap:70px;
  align-items:center;
}
.about-media{
  position:relative;
  aspect-ratio:4/5;
}
.about-media .m-main{
  position:absolute;
  inset:0 12% 10% 0;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.about-media .m-main img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.about-media:hover .m-main img{ transform:scale(1.06); }
.about-media .m-accent{
  position:absolute;
  right:0; bottom:0;
  width:56%; aspect-ratio:1/1.05;
  border-radius:var(--radius);
  overflow:hidden;
  border:7px solid var(--cream);
  box-shadow:0 18px 40px -14px rgba(155,67,33,.5);
  animation:floaty 6s ease-in-out infinite;
}
.about-media .m-accent img{ width:100%; height:100%; object-fit:cover; }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-14px); } }
.about-media .m-ring{
  position:absolute; top:-30px; left:-30px;
  width:110px; height:110px;
  border:2px dashed var(--apricot);
  border-radius:50%;
  opacity:.6;
  animation:spin 30s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

.about-copy .eyebrow{ margin-bottom:6px; }
.about-copy h2{
  font-size:clamp(32px,4.4vw,50px);
  font-weight:600;
  margin-bottom:22px;
}
.about-copy p{
  color:var(--ink-soft);
  line-height:1.85;
  font-size:16px;
  margin:0 0 18px;
}
.about-copy .who{
  font-size:15px;
  color:var(--rust);
  font-weight:600;
  letter-spacing:.3px;
}
.signature{
  font-family:var(--font-script);
  font-size:38px;
  color:var(--terracotta);
  margin-top:24px;
}
.signature small{
  display:block;
  font-family:var(--font-body);
  font-size:11.5px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-top:2px;
}
.about-tags{
  display:flex; flex-wrap:wrap; gap:12px;
  margin-top:30px;
}
.about-tags span{
  padding:9px 18px;
  border:1px solid var(--peach);
  border-radius:999px;
  font-size:12.5px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--rust);
  background:var(--cream-2);
}

/* =========================================================
   PACKAGES / SWIPE CAROUSEL
   ========================================================= */
.packages{
  position:relative;
  padding:120px 0 130px;
  background:
    radial-gradient(circle at 15% 20%, rgba(243,194,149,.35), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(232,147,74,.25), transparent 45%),
    var(--cream-2);
}
.carousel{
  max-width:900px;
  margin:0 auto;
  position:relative;
}
.carousel-track-wrap{ overflow:hidden; border-radius:24px; }
.carousel-track{
  display:flex;
  transition:transform .65s var(--ease);
}
.pkg-card{
  flex:0 0 100%;
  background:var(--white);
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:460px;
  box-shadow:var(--shadow-soft);
}
.pkg-card{ animation:cardReveal .8s var(--ease) both; }
.pkg-card:nth-child(2){ animation-delay:.12s; }
.pkg-card:nth-child(3){ animation-delay:.24s; }
.pkg-card:nth-child(4){ animation-delay:.36s; }
.pkg-card:nth-child(5){ animation-delay:.48s; }
@keyframes cardReveal{
  from{ opacity:0; transform:translateY(22px); }
  to{ opacity:1; transform:translateY(0); }
}
.pkg-card:hover{ transform:translateY(-6px); }
.pkg-media{ position:relative; overflow:hidden; background:var(--sand); }
.pkg-media img{ width:100%; height:100%; object-fit:contain; object-position:center; transition:filter .6s ease; }
.pkg-card:hover .pkg-media img{ filter:saturate(1.08); }
.pkg-media .pkg-price{
  position:absolute; left:24px; bottom:24px;
  background:var(--white);
  color:var(--rust);
  font-family:var(--font-display);
  font-weight:600;
  font-size:26px;
  padding:12px 22px;
  border-radius:14px;
  box-shadow:0 12px 26px -10px rgba(0,0,0,.35);
}
.pkg-media .pkg-price span{
  display:block; font-family:var(--font-body); font-size:10.5px;
  letter-spacing:1.5px; text-transform:uppercase; color:var(--ink-soft); font-weight:500;
}
.pkg-body{
  padding:48px 46px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.pkg-body .pkg-eyebrow{
  font-size:12px; letter-spacing:2.5px; text-transform:uppercase;
  color:var(--apricot); font-weight:600; margin-bottom:10px;
}
.pkg-body h3{
  font-size:clamp(24px,3vw,32px);
  margin-bottom:16px;
  line-height:1.15;
}
.pkg-body p{ color:var(--ink-soft); line-height:1.75; font-size:15px; margin:0 0 20px; }
.pkg-list{ display:flex; flex-direction:column; gap:10px; margin-bottom:26px; }
.pkg-list li{
  display:flex; align-items:center; gap:10px;
  font-size:14.5px; color:var(--ink);
  list-style:none;
}
.pkg-list li::before{
  content:'';
  width:7px; height:7px;
  border-radius:50%;
  background:var(--grad-warm);
  flex:none;
}

.carousel-nav{
  display:flex; align-items:center; justify-content:center;
  gap:22px; margin-top:34px;
}
.carousel-arrow{
  width:46px; height:46px;
  border-radius:50%;
  border:1px solid var(--terracotta);
  background:var(--white);
  color:var(--terracotta);
  display:flex; align-items:center; justify-content:center;
  transition:all .35s var(--ease);
}
.carousel-arrow:hover{ background:var(--terracotta); color:var(--white); transform:scale(1.08); }
.carousel-count{
  font-family:var(--font-display);
  font-size:16px;
  color:var(--ink-soft);
  min-width:56px;
  text-align:center;
  letter-spacing:1px;
}
.carousel-dots{ display:flex; gap:9px; }
.carousel-dots button{
  width:9px; height:9px; border-radius:50%;
  border:none; background:var(--peach);
  transition:all .35s var(--ease);
}
.carousel-dots button.active{ background:var(--terracotta); width:26px; border-radius:6px; }
.swipe-hint{
  text-align:center;
  margin-top:16px;
  font-size:12.5px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--ink-soft);
  opacity:.75;
}

/* =========================================================
   GALLERY
   ========================================================= */
.gallery{
  padding:120px 0 130px;
  background:var(--cream);
}
.gallery-grid{
  column-count:4;
  column-gap:18px;
}
.g-item{
  position:relative;
  break-inside:avoid;
  margin-bottom:18px;
  border-radius:14px;
  overflow:hidden;
  cursor:pointer;
  box-shadow:0 10px 26px -16px rgba(74,46,30,.4);
}
.g-item img{
  width:100%; display:block;
  transition:transform .8s var(--ease), filter .5s ease;
}
.g-item:hover img{ transform:scale(1.08); filter:saturate(1.15); }
.g-item::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(74,46,30,.65) 100%);
  opacity:0;
  transition:opacity .45s ease;
}
.g-item:hover::after{ opacity:1; }
.g-item .g-icon{
  position:absolute; right:14px; bottom:14px;
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.92);
  color:var(--terracotta);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(10px) scale(.85);
  transition:all .4s var(--ease);
}
.g-item:hover .g-icon{ opacity:1; transform:translateY(0) scale(1); }

.gallery-more{ text-align:center; margin-top:50px; }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:500;
  background:rgba(30,17,10,.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .4s ease, visibility .4s ease;
  padding:30px;
}
.lightbox.open{ opacity:1; visibility:visible; }
.lightbox-inner{
  position:relative;
  max-width:min(90vw,900px);
  max-height:88vh;
}
.lightbox-inner img{
  max-width:100%; max-height:88vh;
  border-radius:10px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
  transform:scale(.94);
  transition:transform .4s var(--ease);
}
.lightbox.open .lightbox-inner img{ transform:scale(1); }
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:fixed;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.35);
  color:#fff;
  width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:all .3s ease;
}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{ background:var(--terracotta); border-color:var(--terracotta); }
.lightbox-close{ top:24px; right:28px; }
.lightbox-prev{ left:28px; top:50%; transform:translateY(-50%); }
.lightbox-next{ right:28px; top:50%; transform:translateY(-50%); }
.lightbox-counter{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
  color:#fff; font-size:13px; letter-spacing:2px;
}

/* =========================================================
   QUOTE STRIP
   ========================================================= */
.quote-strip{
  position:relative;
  padding:110px 20px;
  text-align:center;
  background:
    linear-gradient(rgba(74,46,30,.62), rgba(74,46,30,.62)),
    url('assets/emaimages/783753557_17899371429592770_2706290499442421860_n.jpg') center 30%/cover fixed;
}
.quote-strip p{
  max-width:780px; margin:0 auto;
  font-family:var(--font-display);
  font-style:italic;
  font-weight:500;
  font-size:clamp(22px,3.4vw,34px);
  color:var(--white);
  line-height:1.5;
}
.quote-strip .quote-by{
  margin-top:26px;
  font-family:var(--font-script);
  font-size:26px;
  color:var(--gold);
}

/* =========================================================
   CONTACT / FOOTER
   ========================================================= */
.footer{
  position:relative;
  background:linear-gradient(180deg, var(--ink) 0%, #3a2416 100%);
  color:var(--cream-2);
  padding:110px 0 0;
  overflow:hidden;
}
.footer-motif{ opacity:.12; }
.footer-inner{
  text-align:center;
  position:relative; z-index:2;
}
.footer .eyebrow{ color:var(--gold); }
.footer .eyebrow::before,.footer .eyebrow::after{ background:var(--gold); }
.footer h2{
  color:var(--white);
  font-size:clamp(30px,4.6vw,52px);
  margin:12px 0 20px;
}
.footer p.lead{ color:var(--peach); max-width:520px; margin:0 auto 34px; line-height:1.7; }
.footer-cta{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:70px; }

.footer-cols{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:40px;
  border-top:1px solid rgba(255,255,255,.12);
  padding:56px 0 44px;
  text-align:left;
}
.footer-brand{ display:flex; align-items:center; gap:14px; }
.footer-brand .brand-mark{ background:var(--cream); }
.footer-brand .b1{ font-family:var(--font-script); font-size:26px; color:var(--gold); }
.footer-brand .b2{ font-size:12px; letter-spacing:2.5px; color:var(--cream-2); text-transform:uppercase; }
.footer-col h4{
  font-size:12px; letter-spacing:2px; text-transform:uppercase;
  color:var(--gold); margin:0 0 18px; font-weight:600;
}
.footer-col ul{ display:flex; flex-direction:column; gap:12px; }
.footer-col a{ color:var(--cream-2); font-size:14.5px; opacity:.85; transition:all .3s ease; }
.footer-col a:hover{ opacity:1; color:var(--gold); padding-left:4px; }

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding:24px 0 30px;
  text-align:center;
  font-size:12.5px;
  color:rgba(253,246,236,.55);
  letter-spacing:.5px;
}
.footer-bottom span{ color:var(--gold); }

.back-to-top{
  position:fixed; right:26px; bottom:26px; z-index:150;
  width:48px; height:48px; border-radius:50%;
  background:var(--grad-warm);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -10px rgba(200,96,47,.65);
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:all .4s var(--ease);
}
.back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ transform:translateY(-4px); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 980px){
  .about-grid{ grid-template-columns:1fr; gap:60px; }
  .about-media{ width:100%; max-width:420px; margin:0 auto; aspect-ratio:4/4.6; }
  .pkg-card{ grid-template-columns:1fr; min-height:auto; }
  .pkg-media{ height:280px; }
  .footer-cols{ grid-template-columns:1fr 1fr; }
  .footer-brand{ grid-column:1/-1; margin-bottom:10px; }
  .gallery-grid{ column-count:3; }
}

@media (max-width: 760px){
  .topbar{
    min-height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    font-size:clamp(8px,2.3vw,10px);
    line-height:1.25;
    letter-spacing:0;
    padding:7px 8px;
  }
  .navbar{ top:34px; }
  .nav-links{
    position:fixed; top:0; right:0; height:100vh; width:min(78vw,320px);
    background:var(--cream);
    flex-direction:column; align-items:flex-start;
    padding:110px 34px 40px;
    box-shadow:-20px 0 50px rgba(74,46,30,.25);
    transform:translateX(100%);
    transition:transform .5s var(--ease);
    gap:26px;
    z-index:205;
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-links a{ color:var(--ink) !important; text-shadow:none !important; }
  .nav-toggle{ display:flex; }
  .nav-cta{ margin-top:8px; }

  .hero{ min-height:100svh; }
  .hero-photos{ grid-template-columns:1fr; grid-template-rows:1fr 1fr; }
  .hero-split{ display:none; }
  .hero-photo img{ object-fit:cover; object-position:center; }
  .hero-overlay{
    background:linear-gradient(180deg, rgba(74,46,30,.38) 0%, rgba(74,46,30,.18) 45%, rgba(74,46,30,.5) 100%);
  }

  .about,.packages,.gallery{ padding:80px 0; }
  .about-media{ aspect-ratio:4/5; }
  .about-media .m-accent{ width:60%; }

  .pkg-body{ padding:34px 26px; }

  .carousel{ width:100%; }
  .carousel-track-wrap{ width:100%; overflow:hidden; touch-action:pan-y; }
  .carousel-track{ will-change:transform; }
  .pkg-card{ width:100%; }

  .gallery-grid{ column-count:2; column-gap:12px; }
  .g-item{ margin-bottom:12px; }

  .quote-strip{ padding:80px 20px; background-attachment:scroll; }

  .footer-cols{ grid-template-columns:1fr; gap:30px; }
  .footer{ padding:80px 0 0; }

  .carousel-nav{ gap:14px; }
}

@media (max-width: 420px){
  .hero-content h1{ font-size:15vw; }
  .brand-text .b2{ font-size:11px; letter-spacing:2px; }
}

/* focus visibility for a11y */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--terracotta);
  outline-offset:3px;
}
