/* ==========================================================================
   PAGE-SPECIFIC STYLES
   ========================================================================== */

/* ---- Hero (asymmetric editorial) ---- */
.hero{
  display:grid; grid-template-columns:.85fr 1.15fr;
  min-height:88vh;
  align-items:stretch;
}
.hero-copy{
  display:flex; flex-direction:column; justify-content:center;
  padding:var(--sp-6) clamp(1.25rem,5vw,4rem);
  position:relative;
}
.hero-copy h1{ font-size:var(--text-3xl); margin-top:var(--sp-3); }
.hero-copy p{ margin-top:var(--sp-3); max-width:38ch; color:var(--ink-soft); font-size:var(--text-md); }
.hero-copy .btn{ margin-top:var(--sp-4); width:fit-content; }
.hero-visual{ position:relative; overflow:hidden; }
@media (max-width:900px){
  .hero{ grid-template-columns:1fr; min-height:auto; }
  .hero-visual{ height:56vh; order:-1; }
  .hero-copy{ padding-block:var(--sp-5); }
}

/* ---- Home: Brides/Grooms split feature ---- */
.split-feature{ display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--sand-line); }
.split-panel{ position:relative; min-height:460px; overflow:hidden; }
.split-panel img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform 1s var(--ease); }
.split-panel:hover img{ transform:scale(1.06); }
.split-panel .split-copy{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding:var(--sp-5); color:var(--paper); background:linear-gradient(0deg, rgba(27,21,18,.75) 10%, rgba(27,21,18,.05) 60%); }
.split-copy .eyebrow{ color:var(--gold-light); }
.split-copy h2{ color:var(--paper); margin-top:.3em; }
.split-copy p{ color:#E7DFCF; margin-top:.6em; max-width:36ch; }
.split-copy a{ margin-top:var(--sp-3); }
@media (max-width:820px){ .split-feature{ grid-template-columns:1fr; } .split-panel{ min-height:380px; } }

/* ---- Home: image duo / brand story ---- */
.story-block{ display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--sp-5); align-items:center; }
.story-visual{ position:relative; }
.story-visual img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.story-visual .story-float{ position:absolute; width:46%; bottom:-8%; left:-8%; box-shadow:var(--shadow-lift); aspect-ratio:1/1; object-fit:cover; border:6px solid var(--paper); }
.story-copy p{ margin-top:var(--sp-3); color:var(--ink-soft); font-size:var(--text-md); line-height:1.85; }
.story-copy .btn{ margin-top:var(--sp-4); }
@media (max-width:900px){ .story-block{ grid-template-columns:1fr; } .story-visual{ margin-bottom:var(--sp-5); } .story-visual .story-float{ display:none; } }

/* ---- Slideshow ---- */
.slideshow{ position:relative; height:78vh; overflow:hidden; }

/* ---- Full-screen framed hero mode (Hero Slideshow widget) ---- */
.hero-slideshow{ height:94vh; min-height:560px; }
.hero-slideshow .slideshow-copy{ background:linear-gradient(180deg, rgba(27,21,18,.42) 0%, rgba(27,21,18,.28) 35%, rgba(27,21,18,.48) 100%); }
.scroll-cue{
  position:absolute; left:50%; bottom:var(--sp-4); transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.6em; z-index:3;
  color:var(--paper); font-size:.68rem; letter-spacing:.25em; text-transform:uppercase;
}
.scroll-cue span{ width:1px; height:34px; background:rgba(251,247,240,.5); position:relative; overflow:hidden; }
.scroll-cue span::after{
  content:''; position:absolute; left:0; top:-100%; width:100%; height:100%; background:var(--paper);
  animation:scroll-cue-drop 2.2s ease-in-out infinite;
}
@keyframes scroll-cue-drop{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }
@media (max-width:760px){
  .hero-slideshow{ height:82vh; }
  .scroll-cue{ display:none; }
}
.slideshow-slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; }
.slideshow-slide.is-active{ opacity:1; }
.slideshow-slide img{ width:100%; height:100%; object-fit:cover; }
.slideshow-copy{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--paper); background:rgba(27,21,18,.28); }
.slideshow-copy .eyebrow{ color:var(--gold-light); }
.slideshow-copy h1, .slideshow-copy h2{ color:var(--paper); font-size:var(--text-3xl); max-width:16ch; margin-top:.4em; margin-inline:auto; }
.hero-slideshow-sub{ color:#EFE7D6; max-width:40ch; margin:1.1em auto 0; font-size:var(--text-md); line-height:1.7; }
.slideshow-copy .btn{ margin-top:var(--sp-4); }
.slideshow-dots{ position:absolute; bottom:var(--sp-3); left:0; right:0; display:flex; justify-content:center; gap:.6em; z-index:3; }
.slideshow-dots button{ width:8px; height:8px; border-radius:50%; border:1px solid var(--paper); background:transparent; padding:0; }
.slideshow-dots button.is-active{ background:var(--paper); }

/* ---- Testimonials ---- */
.testimonial-track{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-4); }
.testimonial{ background:var(--paper); border:1px solid var(--sand-line); padding:var(--sp-4); }
.testimonial .stars{ margin-bottom:var(--sp-2); }
.testimonial p{ font-family:var(--font-display); font-size:var(--text-md); line-height:1.6; }
.testimonial-name{ margin-top:var(--sp-3); font-size:var(--text-sm); font-weight:700; }
.testimonial-role{ font-size:var(--text-xs); color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; }
@media (max-width:900px){ .testimonial-track{ grid-template-columns:1fr; } }

/* ---- Instagram strip ---- */
.insta-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:4px; }
.insta-grid a{ position:relative; aspect-ratio:1/1; overflow:hidden; display:block; }
.insta-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.insta-grid a:hover img{ transform:scale(1.1); }
@media (max-width:900px){ .insta-grid{ grid-template-columns:repeat(3,1fr); } }

/* ---- As seen in ---- */
.logo-strip{ display:flex; align-items:center; justify-content:center; gap:var(--sp-6); flex-wrap:wrap; filter:grayscale(1); opacity:.6; }
.logo-strip img{ height:34px; width:auto; object-fit:contain; }

/* ==========================================================================
   PRODUCT PAGE
   ========================================================================== */
.product-view{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-6); align-items:flex-start; }
@media (max-width:960px){ .product-view{ grid-template-columns:1fr; gap:var(--sp-4); } }

.gallery{ display:grid; grid-template-columns:100px 1fr; gap:var(--sp-2); position:sticky; top:110px; }
.gallery-main{ aspect-ratio:4/5; overflow:hidden; background:var(--sand); position:relative; cursor:zoom-in; }
.gallery-main img{ width:100%; height:100%; object-fit:cover; transition:transform .4s var(--ease); }
.gallery-main.is-zoomed img{ transform:scale(1.9); cursor:zoom-out; }
.gallery-thumbs{
  display:flex; flex-direction:column; gap:.6rem; min-height:0; overflow-y:auto; max-height:640px;
  scrollbar-width:thin; scrollbar-color:var(--gold) transparent; padding-right:2px;
}
.gallery-thumbs::-webkit-scrollbar{ width:4px; }
.gallery-thumbs::-webkit-scrollbar-thumb{ background:var(--sand-line); border-radius:2px; }
.gallery-thumbs::-webkit-scrollbar-thumb:hover{ background:var(--gold); }
.gallery-thumbs button{
  border:1px solid var(--sand-line); padding:0; background:none; aspect-ratio:4/5; overflow:hidden;
  flex-shrink:0; transition:border-color .2s; cursor:pointer;
}
.gallery-thumbs button:hover{ border-color:var(--gold); }
.gallery-thumbs button.is-active{ border-color:var(--gold-deep); border-width:2px; }
.gallery-thumbs img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:640px){ .gallery{ grid-template-columns:1fr; position:static; } .gallery-thumbs{ flex-direction:row; max-height:none; overflow-x:auto; overflow-y:visible; gap:.6rem; } .gallery-thumbs button{ flex:0 0 64px; width:64px; max-width:64px; min-width:0; } }

.product-info__cat a{ font-size:var(--text-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep); font-weight:700; }
.product-info h1{ font-size:var(--text-2xl); margin-top:.3em; }
.product-info .stars{ margin-top:.6em; font-size:.85rem; }
.review-link{ font-size:var(--text-xs); text-decoration:underline; color:var(--ink-soft); margin-left:.6em; }
.price-row{ display:flex; align-items:center; gap:.8em; margin-top:var(--sp-2); font-family:var(--font-display); font-size:var(--text-xl); }
.product-desc{ margin-top:var(--sp-3); color:var(--ink-soft); line-height:1.9; }

.opt-group{ margin-top:var(--sp-4); }
.opt-group h4{ font-size:var(--text-sm); font-weight:700; margin-bottom:.8em; }
.swatch-row{ display:flex; gap:.6em; flex-wrap:wrap; }
.swatch{ width:38px; height:38px; border-radius:50%; border:2px solid var(--paper); box-shadow:0 0 0 1px var(--sand-line); cursor:pointer; position:relative; }
.swatch.is-selected{ box-shadow:0 0 0 2px var(--gold-deep); }
.size-row{ display:flex; gap:.6em; flex-wrap:wrap; }
.size-opt{ min-width:44px; height:44px; padding-inline:.6em; border:1px solid var(--sand-line); display:flex; align-items:center; justify-content:center; font-size:var(--text-sm); background:none; transition:.2s; }
.size-opt.is-selected,.size-opt:hover{ border-color:var(--ink); background:var(--ink); color:var(--paper); }

.qty-add-row{ display:flex; gap:var(--sp-2); margin-top:var(--sp-4); }
.qty-add-row .qty-stepper{ height:56px; padding-inline:.4em; }
.qty-add-row .qty-stepper button{ width:36px; height:100%; }
.qty-add-row .btn{ flex:1; height:56px; }

.sticky-atc{
  position:fixed; left:0; right:0; bottom:0; background:var(--paper); border-top:1px solid var(--sand-line);
  padding:.9em clamp(1rem,4vw,2rem); z-index:300; transform:translateY(100%); transition:transform .4s var(--ease);
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); box-shadow:0 -10px 30px -20px rgba(0,0,0,.3);
}
.sticky-atc.is-visible{ transform:translateY(0); }
.sticky-atc img{ width:44px; height:52px; object-fit:cover; }
.sticky-atc-info{ display:flex; align-items:center; gap:var(--sp-2); flex:1; }
.sticky-atc .btn{ white-space:nowrap; }

.trust-mini{ display:flex; flex-direction:column; gap:.6em; margin-top:var(--sp-4); padding:var(--sp-3); background:var(--paper-dim); font-size:var(--text-sm); }
.trust-mini div{ display:flex; gap:.7em; align-items:flex-start; }
.trust-mini svg{ width:18px; height:18px; color:var(--gold-deep); flex:none; margin-top:.15em; }

.related-rail{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-3); }
@media (max-width:760px){ .related-rail{ grid-template-columns:repeat(2,1fr); } }

/* ==========================================================================
   ABOUT PAGE
   ========================================================================== */
.about-hero{ position:relative; height:64vh; min-height:420px; overflow:hidden; }
.about-hero img{ width:100%; height:100%; object-fit:cover; }
.about-hero-copy{ position:absolute; inset:0; display:flex; align-items:flex-end; padding:var(--sp-5); background:linear-gradient(0deg, rgba(27,21,18,.7), rgba(27,21,18,0) 60%); }
.about-hero-copy h1{ color:var(--paper); font-size:var(--text-3xl); }
.value-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-4); }
@media (max-width:820px){ .value-grid{ grid-template-columns:1fr; } }
.value-card{ padding:var(--sp-4); border:1px solid var(--sand-line); }
.value-card .num{ font-family:var(--font-display); font-size:var(--text-lg); color:var(--gold-deep); }
.value-card h3{ margin-top:var(--sp-2); }
.value-card p{ margin-top:.7em; color:var(--ink-soft); font-size:var(--text-sm); line-height:1.8; }
.press-row{ display:flex; align-items:center; gap:var(--sp-6); flex-wrap:wrap; justify-content:center; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-6); align-items:flex-start; }
@media (max-width:900px){ .contact-wrap{ grid-template-columns:1fr; } }
.contact-visual{ position:relative; }
.contact-visual img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.contact-meta{ margin-top:var(--sp-4); }
.contact-meta div{ display:flex; gap:.8em; padding-block:.7em; border-bottom:1px solid var(--sand-line); font-size:var(--text-sm); }
.contact-meta strong{ min-width:110px; display:inline-block; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq-hero{ text-align:center; max-width:640px; margin-inline:auto; }
.faq-tabs{ display:flex; gap:var(--sp-2); justify-content:center; flex-wrap:wrap; margin-block:var(--sp-4); }
.faq-tab{ padding:.7em 1.4em; border:1px solid var(--sand-line); font-size:var(--text-sm); background:none; }
.faq-tab.is-active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.faq-list{ max-width:800px; margin-inline:auto; }

/* ==========================================================================
   POLICIES
   ========================================================================== */
.policy-layout{ display:grid; grid-template-columns:240px 1fr; gap:var(--sp-5); align-items:flex-start; }
@media (max-width:820px){ .policy-layout{ grid-template-columns:1fr; } }
.policy-nav{ position:sticky; top:110px; display:flex; flex-direction:column; gap:.2em; }
.policy-nav a{ padding:.7em .3em; font-size:var(--text-sm); border-left:2px solid transparent; }
.policy-nav a.is-active{ border-color:var(--gold-deep); color:var(--gold-deep); font-weight:700; }
.policy-section{ margin-bottom:var(--sp-6); scroll-margin-top:120px; }
.policy-section h3{ margin-bottom:var(--sp-2); }
.policy-section p{ color:var(--ink-soft); margin-bottom:1em; line-height:1.85; }
.policy-section ul{ list-style:disc; padding-left:1.4em; color:var(--ink-soft); }
.policy-section li{ margin-bottom:.5em; line-height:1.7; }

/* ==========================================================================
   CART / SEARCH
   ========================================================================== */
.cart-page{ display:grid; grid-template-columns:1.6fr 1fr; gap:var(--sp-6); align-items:flex-start; }
@media (max-width:900px){ .cart-page{ grid-template-columns:1fr; } }
.cart-table-head{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; padding-bottom:1em; border-bottom:1px solid var(--ink); font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.08em; font-weight:700; }
.cart-row{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; align-items:center; padding-block:var(--sp-3); border-bottom:1px solid var(--sand-line); }
.cart-row .prod{ display:flex; gap:var(--sp-2); }
.cart-row img{ width:80px; height:96px; object-fit:cover; background:var(--sand); }
@media (max-width:700px){
  .cart-table-head{ display:none; }
  .cart-row{
    display:grid; grid-template-columns:76px 1fr; column-gap:1rem; row-gap:.5rem;
    padding-block:var(--sp-4); align-items:start;
  }
  .cart-row .prod{
    grid-column:1/-1; display:grid; grid-template-columns:76px 1fr; column-gap:1rem; gap:0;
  }
  .cart-row .prod img{ width:76px; height:90px; }
  .cart-row > div:not(.prod){
    grid-column:2; display:flex; align-items:center; gap:.5em; font-size:var(--text-sm); min-height:1.6em;
  }
  .cart-row > div:not(.prod)::before{
    content: attr(data-label) ":"; font-size:.68rem; text-transform:uppercase;
    letter-spacing:.05em; color:var(--ink-soft); font-weight:600; min-width:3.6em; flex:none;
  }
}
.order-summary{ background:var(--paper-dim); padding:var(--sp-4); position:sticky; top:110px; }
.order-summary .row{ display:flex; justify-content:space-between; margin-bottom:.9em; font-size:var(--text-sm); }
.order-summary .row.total{ font-family:var(--font-display); font-size:var(--text-lg); border-top:1px solid var(--sand-line); padding-top:var(--sp-2); }
.order-summary .btn{ width:100%; margin-top:var(--sp-3); }

.search-hero{ text-align:center; padding-block:var(--sp-5); }
.search-input-wrap{ max-width:640px; margin:var(--sp-3) auto 0; position:relative; }
.search-input-wrap input{ width:100%; border:none; border-bottom:2px solid var(--ink); background:none; padding:.7em 2em .7em 0; font-family:var(--font-display); font-size:var(--text-xl); }
.search-input-wrap svg{ position:absolute; right:0; top:50%; transform:translateY(-50%); width:22px; height:22px; }
.search-suggest{ display:flex; gap:.6em; justify-content:center; flex-wrap:wrap; margin-top:var(--sp-3); }
.search-suggest a{ font-size:var(--text-xs); text-transform:uppercase; letter-spacing:.06em; border:1px solid var(--sand-line); padding:.6em 1.1em; }
