:root {
  --black: #0d0d0d;
  --ink: #171717;
  --muted: #6d6a66;
  --line: rgba(17,17,17,.14);
  --cream: #f7f4ef;
  --beige: #e8ded1;
  --beige-2: #d3c1aa;
  --white: #fff;
  --shadow: 0 24px 80px rgba(0,0,0,.13);
  --radius: 28px;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: var(--sans);
  line-height: 1.55;
  text-rendering: geometricPrecision;
}
a { color: inherit; }
img { max-width: 100%; display: block; }
.skip-link { position: absolute; left: -999px; top: 12px; background: var(--black); color: white; padding: .75rem 1rem; z-index: 999; }
.skip-link:focus { left: 12px; }
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 16px clamp(20px, 5vw, 70px);
  background: rgba(247,244,239,.83);
  border-bottom: 1px solid rgba(17,17,17,.08);
  backdrop-filter: blur(18px);
}
.brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; min-width: max-content; }
.brand img { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line); object-fit: cover; object-position: center; }
.brand strong { display: block; letter-spacing: .18em; font-size: .9rem; }
.brand small { display: block; color: var(--muted); margin-top: -2px; }
.site-nav { display: flex; align-items: center; gap: 1.1rem; font-size: .94rem; }
.site-nav a { text-decoration: none; color: var(--ink); opacity: .83; }
.site-nav a:hover { opacity: 1; }
.nav-pill { border: 1px solid var(--black); border-radius: 999px; padding: .65rem 1rem; opacity: 1 !important; }
.nav-toggle { display: none; }
.section-pad { padding: clamp(64px, 9vw, 130px) clamp(20px, 5vw, 70px); }
.hero { min-height: calc(100svh - 78px); display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(32px, 6vw, 90px); }
.eyebrow { text-transform: uppercase; letter-spacing: .16em; color: var(--muted); font-size: .78rem; font-weight: 700; margin: 0 0 1rem; }
h1, h2, h3 { line-height: 1.02; margin: 0; letter-spacing: -.045em; }
h1 { font-size: clamp(3.4rem, 8.8vw, 8.8rem); max-width: 950px; }
h2 { font-size: clamp(2.4rem, 5vw, 5.8rem); }
h3 { font-size: clamp(1.35rem, 2vw, 2.1rem); }
.lead { font-size: clamp(1.1rem, 2vw, 1.45rem); max-width: 720px; color: #34312d; }
.hero-actions, .contact-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .86rem 1.25rem; border-radius: 999px; text-decoration: none; font-weight: 800; border: 1px solid var(--black); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,.12); }
.button-dark { background: var(--black); color: white; }
.button-light { background: rgba(255,255,255,.68); color: var(--black); }
.hero-visual { position: relative; min-height: 630px; }
.phone-frame { position: absolute; overflow: hidden; border: 12px solid #111; border-radius: 42px; background: white; box-shadow: var(--shadow); }
.phone-frame img { width: 100%; height: 100%; object-fit: cover; }
.tilt-left { width: 48%; height: 72%; left: 3%; top: 8%; transform: rotate(-7deg); }
.tilt-right { width: 48%; height: 72%; right: 5%; bottom: 3%; transform: rotate(6deg); }
.stamp-card { position: absolute; left: 27%; bottom: 14%; background: var(--white); padding: 1.5rem; border-radius: 18px; box-shadow: var(--shadow); font-family: var(--serif); font-size: 1.45rem; text-align: center; }
.stamp-card span { font-family: var(--sans); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.intro-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--black); color: var(--white); }
.intro-strip p { margin: 0; padding: 1rem clamp(20px,4vw,70px); text-align: center; background: var(--black); font-size: .95rem; }
.two-col { display: grid; grid-template-columns: .9fr 1fr; gap: clamp(30px, 6vw, 90px); align-items: start; }
.text-stack { display: grid; gap: 1rem; font-size: clamp(1rem, 1.7vw, 1.24rem); color: #3f3b36; }
.text-stack p { margin: 0; }
.section-heading { max-width: 880px; margin-bottom: 2.5rem; }
.section-heading p:last-child { color: var(--muted); font-size: 1.05rem; }
.package-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; }
.package-card { display: flex; flex-direction: column; gap: 1rem; min-height: 100%; padding: clamp(22px, 3vw, 34px); border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.72); box-shadow: 0 16px 50px rgba(0,0,0,.05); }
.package-card.featured { background: var(--black); color: white; transform: translateY(-10px); }
.package-card.featured .package-top span, .package-card.featured p, .package-card.featured li, .package-card.featured .price span { color: rgba(255,255,255,.72); }
.package-card.featured .text-link { color: white; }
.package-top { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.package-top span { border: 1px solid currentColor; border-radius: 999px; padding: .35rem .65rem; color: var(--muted); font-size: .74rem; text-transform: uppercase; letter-spacing: .09em; white-space: nowrap; }
.price { margin: 0; font-size: clamp(2rem, 3vw, 3.3rem); font-family: var(--serif); letter-spacing: -.05em; }
.price span { font-family: var(--sans); font-size: .95rem; color: var(--muted); letter-spacing: 0; }
.package-card p { margin: 0; color: #403d38; }
.package-card ul { padding-left: 1.1rem; margin: 0; color: #34312d; }
.package-card li { margin: .45rem 0; }
.text-link { margin-top: auto; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; text-decoration: none; border-bottom: 1px solid currentColor; width: max-content; }
.work-section { background: var(--white); }
.portfolio-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; }
.portfolio-grid img { aspect-ratio: 4/5; object-fit: cover; object-position: top; border-radius: 26px; filter: saturate(.9); }
.wedding-cta { display: grid; grid-template-columns: .65fr 1fr; gap: 1rem; align-items: stretch; }
.wedding-card { background: var(--black); color: white; border-radius: var(--radius); padding: clamp(28px,4vw,56px); display: flex; flex-direction: column; justify-content: center; min-height: 420px; }
.wedding-card .eyebrow, .wedding-card p { color: rgba(255,255,255,.7); }
.wedding-cta img { border-radius: var(--radius); width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08); }
.faq-list { display: grid; gap: .8rem; }
details { background: rgba(255,255,255,.75); border: 1px solid var(--line); border-radius: 18px; padding: 1.2rem 1.35rem; }
summary { cursor: pointer; font-weight: 900; }
details p { color: var(--muted); margin-bottom: 0; }
.contact-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: 1rem; align-items: stretch; background: var(--white); }
.contact-panel, .contact-form { background: var(--cream); border-radius: var(--radius); padding: clamp(28px,4vw,56px); border: 1px solid var(--line); }
.contact-form { display: grid; gap: 1rem; }
label { display: grid; gap: .35rem; font-weight: 800; }
input, textarea, select { width: 100%; border: 1px solid var(--line); border-radius: 14px; padding: 1rem; font: inherit; background: white; }
.float-chat { position: fixed; right: 20px; bottom: 20px; z-index: 45; background: var(--black); color: white; border-radius: 999px; padding: .85rem 1.05rem; text-decoration: none; font-weight: 900; box-shadow: 0 14px 40px rgba(0,0,0,.22); }
.site-footer { display: flex; justify-content: space-between; gap: 1rem; padding: 28px clamp(20px,5vw,70px); background: var(--black); color: rgba(255,255,255,.72); flex-wrap: wrap; }
.site-footer p { margin: 0; }
/* Weddings page */
.page-weddings { background: #fbf7f0; }
.wedding-header { background: rgba(251,247,240,.84); }
.wedding-hero { min-height: calc(100svh - 78px); display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 90px); align-items: center; position: relative; overflow: hidden; }
.wedding-hero:before { content: ""; position: absolute; inset: 13% 5% auto auto; width: 38vw; height: 38vw; background: radial-gradient(circle, rgba(211,193,170,.55), transparent 66%); pointer-events: none; }
.script-small { font-family: var(--serif); font-style: italic; font-size: clamp(1.35rem,2.2vw,2.2rem); color: #8b6f54; margin: 0 0 .5rem; }
.wedding-invite h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(3.1rem, 8vw, 8rem); }
.wedding-hero-gallery { min-height: 680px; position: relative; }
.w-img { position: absolute; object-fit: cover; border: 10px solid #fffaf3; box-shadow: var(--shadow); filter: grayscale(.95) contrast(1.12); transition: filter .25s ease, transform .25s ease; }
.w-img:hover { filter: grayscale(.15) contrast(1.02); transform: scale(1.015); }
.w-img.one { width: 42%; height: 62%; left: 0; top: 10%; transform: rotate(-4deg); }
.w-img.two { width: 44%; height: 70%; left: 31%; bottom: 0; transform: rotate(3deg); }
.w-img.three { width: 42%; height: 58%; right: 0; top: 4%; transform: rotate(-2deg); }
.wedding-date-card { position: absolute; right: 12%; bottom: 16%; background: rgba(255,250,243,.92); border: 1px solid rgba(17,17,17,.1); border-radius: 999px; width: 170px; height: 170px; display: grid; place-content: center; text-align: center; font-family: var(--serif); font-size: 2rem; box-shadow: var(--shadow); }
.wedding-date-card span { font-family: var(--sans); font-size: .7rem; letter-spacing: .23em; text-transform: uppercase; }
.wedding-marquee { display: flex; overflow: hidden; justify-content: center; gap: clamp(1rem,4vw,4rem); background: var(--black); color: white; padding: 1rem; text-transform: uppercase; letter-spacing: .16em; font-size: .8rem; }
.wedding-about { background: var(--white); align-items: center; }
.about-copy { max-width: 760px; }
.about-media { display: flex; justify-content: center; }
.polaroid-frame {
  width: min(420px, 100%);
  background: #fff;
  padding: 18px 18px 56px;
  border-radius: 8px;
  box-shadow: var(--shadow);
  transform: rotate(-4deg);
  border: 1px solid rgba(17,17,17,.08);
}
.polaroid-frame img {
  width: 100%;
  aspect-ratio: 4 / 5.4;
  object-fit: cover;
  object-position: center;
  filter: grayscale(1) contrast(1.05);
}
.polaroid-caption {
  display: block;
  margin-top: 14px;
  text-align: center;
  font-family: var(--serif);
  font-size: 1.1rem;
  letter-spacing: .04em;
  color: var(--muted);
}
.gallery-section { background: #fbf7f0; }
.masonry-gallery { columns: 4 240px; column-gap: .85rem; }
.masonry-gallery img { width: 100%; margin: 0 0 .85rem; border-radius: 24px; break-inside: avoid; filter: grayscale(.9) contrast(1.09); transition: filter .25s ease, transform .25s ease; }
.masonry-gallery img:hover { filter: grayscale(.2); transform: translateY(-3px); }
.note, .travel-note { color: var(--muted); font-size: .96rem; max-width: 980px; }
.process-section { background: var(--black); color: white; }
.process-section .eyebrow, .process-section .script-small, .process-section .section-heading p { color: rgba(255,255,255,.72); }
.timeline { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(255,255,255,.16); border-radius: var(--radius); overflow: hidden; }
.timeline div { background: #141414; padding: clamp(24px,3vw,40px); min-height: 230px; }
.timeline span { display: inline-grid; place-content: center; width: 42px; height: 42px; border-radius: 999px; background: var(--beige); color: var(--black); font-weight: 900; margin-bottom: 1.2rem; }
.timeline p { color: rgba(255,255,255,.67); }
.testimonial-section { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; background: #f1e8dc; }
.testimonial-card { background: rgba(255,255,255,.72); border-radius: var(--radius); padding: clamp(28px,4vw,54px); border: 1px solid rgba(17,17,17,.08); }
.testimonial-card p { font-family: var(--serif); font-size: clamp(1.25rem,2vw,2rem); line-height: 1.25; }
.testimonial-card span { color: var(--muted); font-weight: 900; }
.wedding-packages { background: var(--white); }
.wedding-package-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.wedding-package-grid .bespoke { background: #f1e8dc; }
.wedding-contact { background: #fbf7f0; }
.contact-photo { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); filter: grayscale(.8); }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: .12s; }
.delay-2 { transition-delay: .22s; }
@media (max-width: 1020px) {
  .package-grid, .wedding-package-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .hero, .wedding-hero, .two-col, .wedding-cta, .contact-section { grid-template-columns: 1fr; }
  .hero-visual, .wedding-hero-gallery { min-height: 560px; }
  .portfolio-grid { grid-template-columns: repeat(2,1fr); }
  .timeline { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 760px) {
  .site-header { align-items: flex-start; }
  .nav-toggle { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; background: white; padding: .7rem .9rem; font-weight: 900; }
  .site-nav { position: absolute; left: 16px; right: 16px; top: 78px; display: none; flex-direction: column; align-items: stretch; background: rgba(255,255,255,.96); padding: 1rem; border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); }
  .site-nav.is-open { display: flex; }
  .intro-strip { grid-template-columns: 1fr; }
  .package-grid, .wedding-package-grid, .timeline, .testimonial-section { grid-template-columns: 1fr; }
  h1 { font-size: clamp(3rem, 15vw, 5rem); }
  .hero-visual, .wedding-hero-gallery { min-height: 500px; }
  .phone-frame { border-width: 8px; border-radius: 30px; }
  .portfolio-grid { grid-template-columns: 1fr; }
  .wedding-marquee { flex-wrap: wrap; }
  .w-img.one { width: 54%; }
  .w-img.two { width: 58%; left: 22%; }
  .w-img.three { width: 50%; }
  .site-footer { display: grid; }
}

/* Wedding V2 */
.wedding-v2 { --ocean:#7ca8b8; --sand:#dfcdb8; --olive:#596251; --ivory:#fbf7f1; background:var(--ivory); }
.wedding-v2 .wedding-header { background:rgba(251,247,241,.9); }
.v2-hero { position:relative; min-height:calc(100svh - 78px); display:grid; place-items:end end; overflow:hidden; color:#fff; }
.v2-hero-video,.v2-contact-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.v2-hero-shade,.v2-contact-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.58)); }
.v2-hero-copy { position:relative; z-index:2; max-width:720px; padding:clamp(40px,8vw,110px) clamp(20px,6vw,90px); text-align:right; margin-left:auto; }
.v2-hero-copy .eyebrow,.v2-hero-copy p { color:rgba(255,255,255,.88); }
.v2-hero-copy h1 { font-family:var(--serif); font-weight:400; font-size:clamp(4rem,10vw,10rem); }
.v2-hero-copy > p:not(.eyebrow) { font-family:var(--serif); font-style:italic; font-size:clamp(1.3rem,2.5vw,2.2rem); }
.button-ivory { background:var(--ivory); color:#171717; border-color:var(--ivory); }
.button-outline-light { color:#fff; border-color:rgba(255,255,255,.75); background:transparent; }
.v2-scroll { position:absolute; z-index:3; right:clamp(20px,5vw,70px); bottom:32px; color:#fff; text-decoration:none; text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; }
.v2-packages { background:linear-gradient(135deg,#f8f1e8,#fff 50%,#e8f0f1); }
.v2-packages .section-heading { max-width:1050px; }
.v2-packages .package-card { background:rgba(255,255,255,.88); }
.v2-packages .package-card.featured { background:var(--olive); }
.v2-about { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,8vw,120px); align-items:center; background:#fff; }
.v2-about-photo { display:flex; justify-content:center; }
.v2-about-copy { max-width:760px; }
.v2-about-copy p:not(.eyebrow) { font-size:clamp(1.05rem,1.6vw,1.3rem); color:#4a4640; }
.v2-manifesto { background:var(--ocean); color:#fff; text-align:center; }
.v2-manifesto h2 { max-width:1200px; margin:auto; font-family:var(--serif); font-weight:400; line-height:1.12; }
.v2-manifesto .script-small { color:rgba(255,255,255,.75); }
.v2-editorial { background:#f7f2eb; }
.v2-editorial-heading { padding-bottom:30px; }
.story-block { position:relative; }
.story-split { display:grid; grid-template-columns:.75fr 1fr .75fr; gap:clamp(18px,3vw,46px); align-items:center; }
.story-film { display:grid; grid-template-columns:.75fr .8fr .75fr; gap:clamp(18px,3vw,46px); align-items:center; background:#fff; }
.story-copy span { display:block; font-size:.75rem; letter-spacing:.2em; color:var(--muted); margin-bottom:2rem; }
.story-copy h3 { font-family:var(--serif); font-weight:400; font-size:clamp(2rem,4vw,4.7rem); }
.story-copy > p:last-child { color:var(--muted); }
.story-video,.story-photo { width:100%; height:min(68vw,760px); object-fit:cover; border-radius:220px 220px 24px 24px; }
.story-photo { height:min(54vw,620px); border-radius:24px; }
.story-wide { min-height:75svh; display:flex; align-items:flex-end; overflow:hidden; color:#fff; }
.story-wide img,.story-wide-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.story-wide:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.58),transparent 70%); }
.story-wide .story-copy { position:relative; z-index:2; max-width:720px; }
.story-wide .story-copy span,.story-wide .script-small { color:rgba(255,255,255,.78); }
.v2-film-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; background:var(--sand); }
.v2-film-strip video { width:100%; aspect-ratio:9/16; object-fit:cover; border-radius:200px 200px 20px 20px; }
.v2-details { background:#fff; }
.v2-details-grid { display:grid; grid-template-columns:1fr .8fr .8fr 1fr; gap:.8rem; align-items:end; }
.v2-details-grid img,.v2-details-grid video { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:24px; }
.v2-details-grid > :nth-child(2),.v2-details-grid > :nth-child(3) { aspect-ratio:3/5; }
.v2-testimonials { background:#e8ddd0; }
.v2-testimonials .testimonial-section { padding:0; background:transparent; }
.v2-faq { background:#fff; }
.v2-contact { min-height:85svh; position:relative; display:grid; place-items:center; text-align:center; color:#fff; overflow:hidden; }
.v2-contact-copy { position:relative; z-index:2; max-width:900px; padding:60px 20px; }
.v2-contact-copy h2 { font-family:var(--serif); font-weight:400; font-size:clamp(4rem,9vw,9rem); }
.v2-contact-copy > p:not(.script-small) { font-size:1.2rem; }
.v2-contact-copy .contact-actions { justify-content:center; }
@media (max-width:1020px){
  .v2-about,.story-split,.story-film { grid-template-columns:1fr; }
  .story-video,.story-photo { height:auto; aspect-ratio:4/5; max-height:760px; }
  .v2-details-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px){
  .v2-hero-copy h1 { font-size:clamp(3.7rem,17vw,6rem); }
  .v2-scroll { display:none; }
  .v2-film-strip { grid-template-columns:1fr; }
  .v2-film-strip video { border-radius:160px 160px 18px 18px; }
  .v2-details-grid { grid-template-columns:1fr; }
  .v2-details-grid > * { aspect-ratio:4/5 !important; }
  .story-wide { min-height:650px; }
}

.return-home { font-weight:800; }
@media (max-width:760px){ .v2-hero-copy{ text-align:left; margin-left:0; } }

/* Final wedding page refinements */
.v2-hero-video { object-position: center center; }
.v2-testimonials .testimonial-card { height: 100%; }
.v2-testimonials .testimonial-card p { font-size: clamp(1rem, 1.35vw, 1.15rem); line-height: 1.7; }
@media (max-width: 980px) {
  .v2-testimonials .testimonial-section { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .v2-hero-video { object-position: 48% center; }
  .v2-hero-copy { max-width: 78%; margin-left: auto; text-align: right; padding-top: 110px; }
  .v2-hero-copy h1 { font-size: clamp(3rem, 14vw, 5rem); }
}

/* Autoplay-only wedding films: suppress browser play overlays and native controls. */
.page-weddings video {
  pointer-events: none;
  background: #171717;
}
.page-weddings video::-webkit-media-controls,
.page-weddings video::-webkit-media-controls-enclosure,
.page-weddings video::-webkit-media-controls-panel,
.page-weddings video::-webkit-media-controls-start-playback-button,
.page-weddings video::-webkit-media-controls-overlay-play-button,
.page-weddings video::-webkit-media-controls-play-button {
  display: none !important;
  -webkit-appearance: none;
  opacity: 0 !important;
}

/* Long-form couple reviews */
.v2-testimonials .testimonial-section {
  grid-template-columns: 1fr;
  max-width: 1120px;
  margin-inline: auto;
}
.v2-testimonials .testimonial-card {
  height: auto;
}
.v2-testimonials .testimonial-card .review-copy p {
  font-family: var(--sans);
  font-size: clamp(1rem, 1.25vw, 1.15rem);
  line-height: 1.75;
  margin: 0 0 1rem;
}
.v2-testimonials .testimonial-card .review-copy p:last-child {
  margin-bottom: 1.5rem;
}

/* Responsive wedding hero: editorial still on desktop, vertical film on mobile. */
.v2-hero-image,
.v2-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.v2-hero-desktop {
  display: block;
  object-position: center center;
}
.v2-hero-mobile {
  display: none;
}

/* Small finishing touches without changing the approved layout. */
.wedding-v2 .package-card,
.wedding-v2 .review-card,
.wedding-v2 details,
.wedding-v2 .story-video,
.wedding-v2 .story-wide-video,
.wedding-v2 .story-photo {
  transition: transform .35s ease, box-shadow .35s ease;
}
.wedding-v2 .package-card:hover,
.wedding-v2 .review-card:hover {
  transform: translateY(-4px);
}
.wedding-v2 .story-video:hover,
.wedding-v2 .story-wide-video:hover,
.wedding-v2 .story-photo:hover {
  transform: scale(1.006);
}

@media (max-width: 760px) {
  .v2-hero-desktop { display: none; }
  .v2-hero-mobile {
    display: block;
    object-position: 48% center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wedding-v2 .package-card,
  .wedding-v2 .review-card,
  .wedding-v2 details,
  .wedding-v2 .story-video,
  .wedding-v2 .story-wide-video,
  .wedding-v2 .story-photo {
    transition: none;
  }
}

/* Mobile hero copy position: keep wording above the couple in the Santorini film. */
@media (max-width:760px) {
  .v2-hero-copy {
    position:absolute;
    top:23%;
    right:auto;
    bottom:auto;
    left:0;
    width:100%;
    max-width:92%;
    margin:0;
    padding:18px 22px;
    text-align:left;
  }
  .v2-hero-copy h1 {
    font-size:clamp(3rem,13vw,4.8rem);
    line-height:.88;
  }
  .v2-hero-copy > p:not(.eyebrow) {
    font-size:clamp(1.15rem,5.4vw,1.65rem);
    line-height:1.05;
  }
}
