/* =========================================================
   DIVYA PARIS — Shared Stylesheet
   Design tokens
   ========================================================= */
:root{
  --ivory:      #FAF7F2;
  --ivory-deep: #F1EBE1;
  --charcoal:   #1C1B19;
  --charcoal-soft: #33312D;
  --taupe:      #C9BFAF;
  --gold:       #A9852B;
  --gold-soft:  #C9A75C;
  --line:       #E4DCCC;
  --white:      #FFFFFF;

  --font-display: 'Cormorant Garamond', 'Georgia', serif;
  --font-body: 'Jost', 'Helvetica Neue', Arial, sans-serif;

  --container: 1220px;
  --gap: clamp(1rem, 2vw, 2rem);
  --radius: 2px;
  --shadow-soft: 0 18px 40px -22px rgba(28,27,25,0.35);
  --transition: 240ms cubic-bezier(.4,0,.2,1);
}

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

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--charcoal);
  background:var(--ivory);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.15;
  margin:0 0 0.5em;
  color:var(--charcoal);
}
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input,textarea,select{ font-family:inherit; font-size:1rem; }

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(1.25rem, 4vw, 2.5rem);
}

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:0.95rem 2.1rem;
  font-size:0.95rem;
  letter-spacing:0.03em;
  border:1px solid transparent;
  border-radius:var(--radius);
  transition:background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
  min-height:48px;
  white-space:nowrap;
}
.btn-primary{
  background:var(--charcoal);
  color:var(--ivory);
  border-color:var(--charcoal);
}
.btn-primary:hover{ background:var(--gold); border-color:var(--gold); color:var(--charcoal); }
.btn-outline{
  background:transparent;
  color:var(--ivory);
  border-color:rgba(250,247,242,0.7);
}
.btn-outline:hover{ background:var(--ivory); color:var(--charcoal); }
.btn-dark-outline{
  background:transparent;
  color:var(--charcoal);
  border-color:var(--charcoal);
}
.btn-dark-outline:hover{ background:var(--charcoal); color:var(--ivory); }
.btn-block{ width:100%; }

.eyebrow{
  font-family:var(--font-body);
  font-size:0.8rem;
  color: #000 !important;
  letter-spacing:0.08em;
  margin-bottom:0.6em;
}
.section-head{ max-width:640px; margin-bottom:2.75rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size:clamp(1.9rem, 3.4vw, 2.75rem); }
.section-head p{ color:var(--charcoal-soft); font-size:1.05rem; }

section{ padding:clamp(3.5rem, 7vw, 6.5rem) 0; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(250,247,242,0.92);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
  transition:box-shadow var(--transition);
}
.site-header.is-scrolled{ box-shadow:0 6px 24px -18px rgba(0,0,0,0.4); }
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:76px;
  gap:1rem;
}
.brand{
  display:flex;
  align-items:center;
  gap:0.65rem;
  min-width:0;
  flex-shrink:0;
}
.brand img{
  height:44px;
  width:44px;
  border-radius:50%;
  object-fit:cover;
  flex-shrink:0;
}
.brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.brand-text .name{
  font-family:var(--font-display);
  font-size:1.35rem;
  font-weight:600;
  letter-spacing:0.02em;
}
.brand-text .tag{
  font-size:0.62rem;
  letter-spacing:0.16em;
  color:var(--gold);
}

.main-nav{ display:flex; align-items:center; gap:2.25rem; }
.main-nav a{
  position:relative;
  font-size:0.92rem;
  letter-spacing:0.02em;
  padding:0.35rem 0.1rem;
  color:var(--charcoal-soft);
  transition:color var(--transition);
}
.main-nav a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-3px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--transition);
}
.main-nav a:hover,
.main-nav a[aria-current="page"]{ color:var(--charcoal); }
.main-nav a:hover::after,
.main-nav a[aria-current="page"]::after{ transform:scaleX(1); }

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:44px;
  height:44px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:50%;
  flex-shrink:0;
}
.nav-toggle span{
  display:block;
  width:19px;
  height:1px;
  background:var(--charcoal);
  transition:transform var(--transition), opacity var(--transition);
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media (max-width: 860px){
  .main-nav{
    position:fixed;
    inset:76px 0 0 0;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    background:var(--ivory);
    padding:2.5rem clamp(1.25rem,6vw,2.5rem);
    gap:1.6rem;
    transform:translateX(100%);
    transition:transform 320ms cubic-bezier(.4,0,.2,1);
    overflow-y:auto;
  }
  .main-nav.is-open{ transform:translateX(0); }
  .main-nav a{ font-size:1.3rem; font-family:var(--font-display); }
  .nav-toggle{ display:flex; }
}

/* =========================================================
   HERO / SLIDER
   ========================================================= */
.hero{
  position:relative;
  height:min(78vh, 680px);
min-height:460px;
  overflow:hidden;
  background:var(--charcoal);
}
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity 900ms ease;
}
.hero-slide.is-active{ opacity:1; visibility:visible; z-index:1; }
.hero-slide img{
  width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 70% top;
}
.hero-slide::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(20,19,17,0.10) 0%,
    rgba(20,19,17,0.18) 55%,
    rgba(20,19,17,0.38) 100%
  );
}
.hero-caption{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:0 0 clamp(3rem,8vw,5.5rem);
  color:var(--ivory);
  z-index:2;
}
.hero-caption .container{ max-width:720px; margin:0; }
.hero-caption .eyebrow{ color:var(--gold-soft); }
.hero-caption h1{
  color:var(--ivory);
  font-size:clamp(2.1rem, 5.4vw, 3.75rem);
  margin-bottom:0.35em;
}
.hero-caption p{
  color:rgba(250,247,242,0.85);
  font-size:1.05rem;
  max-width:34ch;
}
.hero-arrow{
  position:absolute;
  top:50%; transform:translateY(-50%);
  z-index:3;
  width:48px; height:48px;
  border-radius:50%;
  border:1px solid rgba(250,247,242,0.55);
  background:rgba(20,19,17,0.25);
  color:var(--ivory);
  display:flex; align-items:center; justify-content:center;
  transition:background var(--transition), border-color var(--transition);
}
.hero-arrow:hover{ background:rgba(250,247,242,0.18); border-color:var(--ivory); }
.hero-arrow.prev{ left:clamp(0.75rem,3vw,2.5rem); }
.hero-arrow.next{ right:clamp(0.75rem,3vw,2.5rem); }
.hero-dots{
  position:absolute;
  right:clamp(1.25rem,4vw,2.5rem);
  bottom:clamp(1.5rem,4vw,2.25rem);
  z-index:3;
  display:flex; gap:0.6rem;
}
.hero-dots button{
  width:9px; height:9px;
  border-radius:50%;
  background:rgba(250,247,242,0.4);
  border:1px solid rgba(250,247,242,0.7);
  padding:0;
}
.hero-dots button.is-active{ background:var(--gold); border-color:var(--gold); }

/* =========================================================
   INTRO / TWO-COLUMN
   ========================================================= */
.intro{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}
.intro-media{ position:relative; }
.intro-media img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:var(--radius);
}
.intro-media::after{
  content:"";
  position:absolute;
  inset:18px -18px -18px 18px;
  border:1px solid var(--gold);
  z-index:-1;
}
.intro-copy .eyebrow{ }
.intro-copy p{ color:var(--charcoal-soft); font-size:1.05rem; }
@media (max-width: 860px){
  .intro{ grid-template-columns:1fr; }
  .intro-media{ order:-1; }
  .intro-media::after{ display:none; }
}

/* =========================================================
   PRODUCT GRID (shared: featured + catalogue)
   ========================================================= */
.product-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(1.25rem, 2.5vw, 2rem);
}
.grid-6{ grid-template-columns:repeat(3, 1fr); }
.product-card{
  background:var(--white);
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  height:100%;
  transition:box-shadow var(--transition), transform var(--transition);
}
.product-card:hover{ box-shadow:var(--shadow-soft); transform:translateY(-4px); }
.product-media{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--ivory-deep);
}
.product-media img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform 500ms ease;
}
.product-card:hover .product-media img{ transform:scale(1.05); }
.product-category{
  position:absolute;
  top:0.75rem; left:0.75rem;
  background:rgba(250,247,242,0.92);
  color:var(--charcoal-soft);
  font-size:0.68rem;
  letter-spacing:0.05em;
  padding:0.3rem 0.65rem;
}
.product-body{
  padding:1.1rem 1.1rem 1.3rem;
  display:flex;
  flex-direction:column;
  gap:0.4rem;
  flex:1;
}
.product-body h3{ font-size:1.15rem; margin-bottom:0; }
.product-body p{
  color:var(--charcoal-soft);
  font-size:0.9rem;
  margin-bottom:0.5rem;
  flex:1;
}
.product-link{
  align-self:flex-start;
  font-size:0.88rem;
  border-bottom:1px solid var(--charcoal);
  padding-bottom:2px;
  transition:color var(--transition), border-color var(--transition);
}
.product-link:hover{ color:var(--gold); border-color:var(--gold); }

@media (max-width: 980px){
  .product-grid{ grid-template-columns:repeat(2, 1fr); }
  .grid-6{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 480px){
  .product-grid{ gap:0.9rem; }
  .product-body{ padding:0.85rem 0.85rem 1rem; }
  .product-body h3{ font-size:1rem; }
}

/* CTA below grid */
.grid-cta{ text-align:center; margin-top:2.75rem; }

/* =========================================================
   FEATURE CARDS
   ========================================================= */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
}
.feature-card{
  padding:2.25rem 1.5rem;
  border:1px solid var(--line);
  text-align:left;
}
.feature-card .icon{
  width:44px; height:44px;
  margin-bottom:1.25rem;
  color:var(--gold);
}
.feature-card h3{ font-size:1.15rem; }
.feature-card p{ color:var(--charcoal-soft); font-size:0.92rem; margin-bottom:0; }
@media (max-width: 980px){ .feature-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 520px){ .feature-grid{ grid-template-columns:1fr; } }

/* =========================================================
   FULL-WIDTH CTA
   ========================================================= */
.cta-band{
  background:var(--charcoal);
  color:var(--ivory);
  text-align:center;
  padding:clamp(3.5rem,8vw,6rem) 0;
}
.cta-band h2{ color:var(--ivory); font-size:clamp(1.9rem,4vw,2.9rem); }
.cta-band p{ color:rgba(250,247,242,0.75); max-width:46ch; margin-left:auto; margin-right:auto; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
  background:var(--charcoal);
  color:rgba(250,247,242,0.75);
  padding:clamp(3rem,6vw,4.5rem) 0 1.5rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 0.8fr 1fr;
  gap:2.5rem;
  padding-bottom:2.5rem;
  border-bottom:1px solid rgba(250,247,242,0.15);
}
.footer-brand{ display:flex; gap:0.75rem; align-items:center; margin-bottom:1rem; }
.footer-brand img{ height:40px; width:40px; border-radius:50%; object-fit:cover; }
.footer-brand span{ font-family:var(--font-display); font-size:1.2rem; color:var(--ivory); }
.footer-col h4{
  color:var(--ivory);
  font-size:0.85rem;
  letter-spacing:0.06em;
  margin-bottom:1.1rem;
}
.footer-col ul li{ margin-bottom:0.65rem; }
.footer-col a{ font-size:0.92rem; transition:color var(--transition); }
.footer-col a:hover{ color:var(--gold-soft); }
.social-row{ display:flex; gap:0.75rem; margin-top:1.3rem; }
.social-row a{
  width:38px; height:38px;
  border:1px solid rgba(250,247,242,0.3);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.social-row a:hover{ border-color:var(--gold-soft); color:var(--gold-soft); }
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:0.75rem;
  padding-top:1.5rem;
  font-size:0.8rem;
}
@media (max-width: 860px){
  .footer-grid{ grid-template-columns:1fr; gap:2rem; }
}

/* =========================================================
   BACK TO TOP
   ========================================================= */
.back-to-top{
  position:fixed;
  right:1.25rem; bottom:1.25rem;
  z-index:900;
  width:46px; height:46px;
  border-radius:50%;
  background:var(--charcoal);
  color:var(--ivory);
  border:none;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transform:translateY(12px);
  transition:opacity var(--transition), transform var(--transition), visibility var(--transition);
}
.back-to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }

/* =========================================================
   SCROLL REVEAL
   ========================================================= */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity 650ms ease, transform 650ms ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* =========================================================
   PAGE HERO (Products / Contact)
   ========================================================= */
.page-hero{
  padding:clamp(3.5rem,8vw,5.5rem) 0 clamp(2.5rem,5vw,3.5rem);
  text-align:center;
  border-bottom:1px solid var(--line);
}
.page-hero h1{ font-size:clamp(2.1rem,5vw,3.2rem); }
.page-hero p{ max-width:52ch; margin:0 auto; color:var(--charcoal-soft); }

/* =========================================================
   PRODUCTS PAGE — filters
   ========================================================= */
.filter-bar{
  display:flex;
  flex-wrap:wrap;
  gap:0.6rem;
  justify-content:center;
  margin-bottom:2.5rem;
}
.filter-btn{
  padding:0.55rem 1.3rem;
  border:1px solid var(--line);
  background:transparent;
  color:var(--charcoal-soft);
  border-radius:999px;
  font-size:0.88rem;
  transition:background var(--transition), color var(--transition), border-color var(--transition);
}
.filter-btn:hover{ border-color:var(--gold); }
.filter-btn.is-active{ background:var(--charcoal); color:var(--ivory); border-color:var(--charcoal); }

.catalogue-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(1rem, 2.2vw, 1.75rem);
}
@media (max-width: 980px){ .catalogue-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width: 700px){ .catalogue-grid{ grid-template-columns:repeat(2,1fr); } }

.product-card-btn{
  background:transparent; border:none; padding:0; text-align:left; width:100%; display:block;
}

/* =========================================================
   MODAL
   ========================================================= */
.modal-overlay{
  position:fixed; inset:0;
  background:rgba(20,19,17,0.7);
  display:flex; align-items:center; justify-content:center;
  padding:1.25rem;
  z-index:2000;
  opacity:0; visibility:hidden;
  transition:opacity var(--transition), visibility var(--transition);
}
.modal-overlay.is-open{ opacity:1; visibility:visible; }
.modal-box{
  background:var(--ivory);
  max-width:820px;
  width:100%;
  max-height:88vh;
  overflow-y:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  position:relative;
  transform:translateY(16px) scale(0.98);
  transition:transform var(--transition);
}
.modal-overlay.is-open .modal-box{ transform:translateY(0) scale(1); }
.modal-media{ background:var(--ivory-deep); }
.modal-media img{ width:100%; height:100%; object-fit:cover; min-height:280px; }
.modal-info{ padding:2.25rem; display:flex; flex-direction:column; }
.modal-info .product-category{ position:static; display:inline-block; margin-bottom:1rem; align-self:flex-start; }
.modal-info h3{ font-size:1.6rem; }
.modal-info p{ color:var(--charcoal-soft); flex:1; }
.modal-close{
  position:absolute;
  top:0.85rem; right:0.85rem;
  width:38px; height:38px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--ivory);
  display:flex; align-items:center; justify-content:center;
  z-index:5;
}
@media (max-width: 700px){
  .modal-box{ grid-template-columns:1fr; }
  .modal-media img{ min-height:220px; }
}

/* =========================================================
   CONTACT PAGE
   ========================================================= */
.contact-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
  margin-bottom:4rem;
}
.contact-card{
  border:1px solid var(--line);
  padding:2rem 1.5rem;
  text-align:center;
}
.contact-card .icon{ width:36px; height:36px; margin:0 auto 1rem; color:var(--gold); }
.contact-card h3{ font-size:1rem; letter-spacing:0.02em; }
.contact-card p{ color:var(--charcoal-soft); font-size:0.92rem; margin-bottom:0; }
@media (max-width: 980px){ .contact-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 520px){ .contact-grid{ grid-template-columns:1fr; } }

.contact-layout{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
@media (max-width: 900px){ .contact-layout{ grid-template-columns:1fr; } }

.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
@media (max-width: 560px){ .form-row{ grid-template-columns:1fr; } }

.field{ margin-bottom:1.2rem; }
.field label{
  display:block;
  font-size:0.85rem;
  margin-bottom:0.45rem;
  color:var(--charcoal-soft);
}
.field input,
.field textarea{
  width:100%;
  padding:0.85rem 1rem;
  border:1px solid var(--line);
  background:var(--white);
  border-radius:var(--radius);
  transition:border-color var(--transition);
  min-height:48px;
}
.field textarea{ min-height:130px; resize:vertical; }
.field input:focus,
.field textarea:focus{ border-color:var(--gold); }
.field.has-error input,
.field.has-error textarea{ border-color:#B3452F; }
.field-error{
  display:none;
  color:#B3452F;
  font-size:0.8rem;
  margin-top:0.35rem;
}
.field.has-error .field-error{ display:block; }

.form-note{
  font-size:0.82rem;
  color:var(--charcoal-soft);
  margin-top:0.5rem;
}
.form-success{
  display:none;
  padding:1.1rem 1.25rem;
  background:#F0EEE4;
  border:1px solid var(--gold);
  color:var(--charcoal);
  margin-bottom:1.5rem;
  font-size:0.95rem;
}
.form-success.is-visible{ display:block; }

.map-block{
  margin-top:4rem;
  border:1px solid var(--line);
  aspect-ratio:16/6;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:0.5rem;
  background:
    repeating-linear-gradient(45deg, var(--ivory-deep) 0 12px, var(--ivory) 12px 24px);
  color:var(--charcoal-soft);
  text-align:center;
  padding:2rem;
}
.map-block .icon{ width:34px; height:34px; color:var(--gold); }

/* Skip link */
.skip-link{
  position:absolute;
  left:-999px; top:auto;
  background:var(--charcoal); color:var(--ivory);
  padding:0.75rem 1.25rem;
  z-index:3000;
}
.skip-link:focus{ left:1rem; top:1rem; }

/* =========================================================
   COLLECTION ROWS (Home — Discover Our Collection)
   ========================================================= */
.collection-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
  padding:clamp(2.5rem,5vw,3.5rem) 0;
}
.collection-row:not(:last-child){ border-bottom:1px solid var(--line); }
.collection-row.reverse .collection-media{ order:2; }
.collection-media{ position:relative; }
/* .collection-media img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:var(--radius);
} */
 .collection-media img {
    width: 100%;
    height: 100%;
    min-height: 460px;
    object-fit: cover;
}
.collection-media::after{
  content:"";
  position:absolute;
  inset:16px -16px -16px 16px;
  border:1px solid var(--gold);
  z-index:-1;
}
.collection-row.reverse .collection-media::after{ inset:16px 16px -16px -16px; }
.collection-copy h3{ font-size:clamp(1.5rem,2.6vw,2rem); }
.collection-copy p{ color:var(--charcoal-soft); }
@media (max-width: 860px){
  .collection-row, .collection-row.reverse{ grid-template-columns:1fr; }
  .collection-row .collection-media, .collection-row.reverse .collection-media{ order:-1; }
  .collection-media::after, .collection-row.reverse .collection-media::after{ display:none; }
}

/* =========================================================
   SIMPLE CTA STRIP (New Arrivals)
   ========================================================= */
.strip-section{
  background:var(--ivory-deep);
}
.strip-inner{
  max-width:680px;
  margin:0 auto;
  text-align:center;
}
.strip-inner p{ color:var(--charcoal-soft); font-size:1.05rem; }

/* =========================================================
   FEATURED COLLECTIONS (text cards)
   ========================================================= */
.text-card-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
}
.text-card{
  padding:2.25rem 1.6rem;
  border:1px solid var(--line);
  background:var(--white);
}
.text-card h3{ font-size:1.1rem; margin-bottom:0.5em; }
.text-card p{ color:var(--charcoal-soft); font-size:0.92rem; margin-bottom:0; }
@media (max-width: 980px){ .text-card-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 520px){ .text-card-grid{ grid-template-columns:1fr; } }

/* =========================================================
   ABOUT PAGE — philosophy / promise
   ========================================================= */
.philosophy{ text-align:center; max-width:640px; margin:0 auto; }
.philosophy .tagline{
  font-family:var(--font-display);
  font-size:clamp(1.3rem,2.6vw,1.7rem);
  color:var(--gold);
  margin-bottom:0.75em;
}
.promise-block{
  background:var(--charcoal);
  color:var(--ivory);
}
.promise-block .section-head h2,
.promise-block .section-head p{ color:var(--ivory); }
.promise-block .section-head p{ color:rgba(250,247,242,0.75); }
.promise-block p.body-text{ color:rgba(250,247,242,0.85); max-width:760px; margin:0 auto 1.1em; font-size:1.02rem; }

/* =========================================================
   SHOP BY CATEGORY / GIFT IDEAS
   ========================================================= */
.category-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
}
.category-card{
  display:block;
  padding:2rem 1.5rem;
  border:1px solid var(--line);
  background:var(--white);
  transition:box-shadow var(--transition), transform var(--transition), border-color var(--transition);
}
.category-card:hover{ box-shadow:var(--shadow-soft); transform:translateY(-4px); border-color:var(--gold); }
.category-card h3{ font-size:1.15rem; }
.category-card p{ color:var(--charcoal-soft); font-size:0.92rem; margin-bottom:0.75em; }
.category-card .product-link{ font-size:0.85rem; }
@media (max-width: 860px){ .category-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 520px){ .category-grid{ grid-template-columns:1fr; } }

.gift-ideas{ background:var(--ivory-deep); }
.gift-ideas-inner{ max-width:680px; margin:0 auto; text-align:center; }
.gift-ideas-inner p{ color:var(--charcoal-soft); font-size:1.05rem; }

/* =========================================================
   STORE INFORMATION
   ========================================================= */
.store-info{ border-top:1px solid var(--line); }
.store-info-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
.store-info-copy p{ color:var(--charcoal-soft); }
.store-info-details{
  border:1px solid var(--line);
  padding:2rem;
  background:var(--white);
}
.store-info-details dl{ margin:0 0 1.5rem; }
.store-info-details dt{
  font-size:0.78rem;
  letter-spacing:0.06em;
  color:var(--gold);
  margin-bottom:0.3rem;
}
.store-info-details dd{
  margin:0 0 1.3rem;
  color:var(--charcoal-soft);
  line-height:1.55;
}
.store-info-details dd:last-child{ margin-bottom:0; }
@media (max-width: 860px){ .store-info-grid{ grid-template-columns:1fr; } }

/* =========================================================
   FOLLOW US
   ========================================================= */
.follow-us{ text-align:center; background:var(--charcoal); color:var(--ivory); }
.follow-us .section-head h2,
.follow-us .section-head p{ color:var(--ivory); }
.follow-us .section-head p{ color:rgba(250,247,242,0.75); max-width:560px; margin-left:auto; margin-right:auto; }
.follow-perks{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:0.6rem 1rem;
  max-width:720px;
  margin:0 auto 2.25rem;
  color:rgba(250,247,242,0.75);
  font-size:0.9rem;
}
.follow-perks span{ position:relative; padding-left:1rem; }
.follow-perks span::before{ content:"—"; position:absolute; left:0; color:var(--gold-soft); }
.follow-social{ display:flex; justify-content:center; gap:1rem; }
.follow-social a{
  width:50px; height:50px;
  border:1px solid rgba(250,247,242,0.35);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:border-color var(--transition), color var(--transition);
}
.follow-social a:hover{ border-color:var(--gold-soft); color:var(--gold-soft); }

/* =========================================================
   NEWSLETTER
   ========================================================= */
.newsletter{ background:var(--ivory-deep); }
.newsletter-inner{ max-width:560px; margin:0 auto; text-align:center; }
.newsletter-inner p{ color:var(--charcoal-soft); }
.newsletter-form{
  display:flex;
  gap:0.75rem;
  margin-top:1.5rem;
}
.newsletter-form input{
  flex:1;
  padding:0.9rem 1.1rem;
  border:1px solid var(--line);
  background:var(--white);
  border-radius:var(--radius);
  min-height:48px;
}
.newsletter-form input:focus{ border-color:var(--gold); outline:none; }
@media (max-width: 560px){ .newsletter-form{ flex-direction:column; } }

/* =========================================================
   CUSTOMER SUPPORT STRIP (Store page — replaces Contact page)
   ========================================================= */
.support-strip{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
  margin-top:3rem;
}
.support-card{
  border:1px solid var(--line);
  padding:1.75rem 1.5rem;
  text-align:center;
  background:var(--white);
}
.support-card .icon{ width:32px; height:32px; margin:0 auto 0.85rem; color:var(--gold); }
.support-card h4{ font-size:0.95rem; margin-bottom:0.35em; }
.support-card a, .support-card span{ color:var(--charcoal-soft); font-size:0.92rem; }
.support-card a:hover{ color:var(--gold); }
@media (max-width: 860px){ .support-strip{ grid-template-columns:1fr; } }

.newsletter-note{
  display:none;
  margin-top:1rem;
  padding:0.9rem 1.1rem;
  background:#F0EEE4;
  border:1px solid var(--gold);
  color:var(--charcoal);
  font-size:0.9rem;
  text-align:left;
}
.newsletter-note.is-visible{ display:block; }

/* =========================================================
   VIDEO TOUR (Home)
   ========================================================= */
.video-section{ background:var(--ivory-deep); }
.video-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(1rem, 2.2vw, 1.75rem);
}
.video-card{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  background:var(--charcoal);
  aspect-ratio:9/16;
}
.video-card video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  background:var(--charcoal);
}
.video-card .video-sound-btn{
  position:absolute;
  right:12px;
  bottom:12px;
  z-index:2;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(250,247,242,0.55);
  background:rgba(28,27,25,0.55);
  color:var(--ivory);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background var(--transition), transform var(--transition);
  backdrop-filter:blur(2px);
}
.video-card .video-sound-btn:hover{ background:rgba(28,27,25,0.8); transform:scale(1.06); }
.video-card .video-sound-btn svg{ width:18px; height:18px; }
.video-card .video-label{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:2;
  color:var(--ivory);
  font-family:var(--font-body);
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  background:rgba(28,27,25,0.5);
  padding:0.35rem 0.65rem;
  border-radius:20px;
  pointer-events:none;
}
@media (max-width: 860px){
  .video-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 560px){
  .video-grid{ grid-template-columns:1fr; max-width:360px; margin:0 auto; }
}

/* =========================================================
   CATEGORY HIGHLIGHTS (Store)
   ========================================================= */
.category-highlights{ background:var(--cream, #faf7f2); }
.highlight-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(0.9rem, 2vw, 1.5rem);
}
.highlight-item{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  aspect-ratio:4/5;
  box-shadow:var(--shadow-soft);
  background:#fff;
}
.highlight-item.is-wide{ grid-column:span 2; aspect-ratio:8/5; }
.highlight-item.is-circle{
  border-radius:50%;
  aspect-ratio:1/1;
  box-shadow:none;
  border:1px solid rgba(28,27,25,0.08);
}
.highlight-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 500ms cubic-bezier(.4,0,.2,1);
}
.highlight-item:hover img{ transform:scale(1.06); }
.highlight-item .highlight-label{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:0.7rem 0.9rem;
  font-family:var(--font-body, 'Jost', sans-serif);
  font-size:0.8rem;
  letter-spacing:0.02em;
  color:#fff;
  background:linear-gradient(180deg, rgba(28,27,25,0) 40%, rgba(28,27,25,0.55) 100%);
}
.highlight-item.is-circle .highlight-label{ display:none; }
@media (max-width: 980px){
  .highlight-grid{ grid-template-columns:repeat(3, 1fr); }
  .highlight-item.is-wide{ grid-column:span 3; }
}
@media (max-width: 620px){
  .highlight-grid{ grid-template-columns:repeat(2, 1fr); gap:0.7rem; }
  .highlight-item.is-wide{ grid-column:span 2; aspect-ratio:4/5; }
}

/* =========================================================
   STORE GALLERY + LIGHTBOX (Store)
   ========================================================= */
.store-gallery{ background:var(--white); }
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(0.75rem, 1.8vw, 1.25rem);
}
.gallery-item{
  position:relative;
  display:block;
  width:100%;
  padding:0;
  border:none;
  background:transparent;
  cursor:pointer;
  overflow:hidden;
  border-radius:var(--radius);
  aspect-ratio:4/5;
  box-shadow:var(--shadow-soft);
}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 500ms cubic-bezier(.4,0,.2,1);
}
.gallery-item:hover img{ transform:scale(1.08); }
.gallery-item::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(28,27,25,0) 55%, rgba(28,27,25,0.45) 100%);
  opacity:0;
  transition:opacity var(--transition);
}
.gallery-item:hover::after{ opacity:1; }
.gallery-item .gallery-zoom{
  position:absolute;
  right:10px;
  bottom:10px;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(250,247,242,0.92);
  color:var(--charcoal);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transform:translateY(6px);
  transition:opacity var(--transition), transform var(--transition);
}
.gallery-item:hover .gallery-zoom{ opacity:1; transform:translateY(0); }
.gallery-item .gallery-zoom svg{ width:16px; height:16px; }

@media (max-width: 980px){ .gallery-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width: 600px){ .gallery-grid{ grid-template-columns:repeat(2, 1fr); gap:0.6rem; } }

.lightbox-overlay{
  position:fixed;
  inset:0;
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(15,14,13,0.92);
  opacity:0;
  visibility:hidden;
  transition:opacity var(--transition), visibility var(--transition);
  padding:clamp(1rem, 4vw, 3rem);
}
.lightbox-overlay.is-open{ opacity:1; visibility:visible; }
.lightbox-figure{
  position:relative;
  max-width:min(92vw, 900px);
  max-height:90vh;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.lightbox-figure img{
  max-width:100%;
  max-height:80vh;
  object-fit:contain;
  border-radius:var(--radius);
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.6);
}
.lightbox-counter{
  margin-top:0.85rem;
  color:var(--ivory);
  font-size:0.85rem;
  letter-spacing:0.06em;
  opacity:0.8;
}
.lightbox-close, .lightbox-arrow{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(250,247,242,0.4);
  background:rgba(28,27,25,0.5);
  color:var(--ivory);
  cursor:pointer;
  transition:background var(--transition), border-color var(--transition);
}
.lightbox-close:hover, .lightbox-arrow:hover{ background:rgba(250,247,242,0.18); border-color:var(--ivory); }
.lightbox-close{ top:-4px; right:-4px; transform:translate(50%,-50%); }
.lightbox-arrow.prev{ left:clamp(-8px, -3vw, 8px); top:50%; transform:translateY(-50%); }
.lightbox-arrow.next{ right:clamp(-8px, -3vw, 8px); top:50%; transform:translateY(-50%); }
@media (max-width: 640px){
  .lightbox-close{ top:6px; right:6px; transform:none; width:38px; height:38px; }
  .lightbox-arrow{ width:38px; height:38px; }
  .lightbox-arrow.prev{ left:4px; }
  .lightbox-arrow.next{ right:4px; }
}

/* =========================================================
   INSTAGRAM BAR (top of page)
   ========================================================= */
.insta-bar{
  background:var(--charcoal);
  padding:0;
}

.insta-bar-inner{
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:58px;
  padding:0.65rem clamp(1.25rem, 4vw, 2.5rem);
}
.insta-bar-inner{ display:flex; justify-content:center; align-items:center; padding:0.65rem clamp(1.25rem, 4vw, 2.5rem); }
.insta-bar a{
  display:inline-flex;
  align-items:center;
  gap:0.55rem;
  color:var(--ivory);
  font-size:0.82rem;
  letter-spacing:0.03em;
  text-transform:uppercase;
  transition:color var(--transition);
}
.insta-bar a:hover{ color:var(--gold-soft); }
.insta-bar svg{ width:17px; height:17px; flex-shrink:0; }

/* =========================================================
   HIGHLIGHT GRID — 3-column variant (reuses .highlight-item / .is-circle)
   ========================================================= */
.highlight-grid.cols-3{ grid-template-columns:repeat(3, 1fr); }
@media (max-width: 620px){
  .highlight-grid.cols-3{ grid-template-columns:repeat(3, 1fr); gap:0.6rem; }
}

/* =========================================================
   VISIT / LOCATION STRIP (bottom of each page)
   ========================================================= */
.visit-strip{ background:var(--ivory-deep); text-align:center; }
.visit-strip-inner{ max-width:640px; margin:0 auto; }
.visit-strip-inner p{ color:var(--charcoal-soft); }
.visit-strip-inner .visit-lead{ color:var(--charcoal); font-size:1.08rem; }
.visit-strip-inner .visit-since{ color:var(--gold); font-family:var(--font-display); font-size:1.05rem; margin-bottom:1.4rem; }
.visit-strip-inner .btn{ margin-top:0.3rem; }

/* =========================================================
   LANGUAGE SWITCHER (EN / FR)
   ========================================================= */
.header-inner > .brand{ margin-right:auto; }
.lang-switch{
  display:flex;
  align-items:center;
  flex-shrink:0;
  margin-left:1.75rem;
  border:1px solid var(--line);
  border-radius:999px;
  padding:3px;
  background:var(--white);
}
.lang-switch button{
  border:0;
  background:transparent;
  color:var(--charcoal-soft);
  font-size:0.72rem;
  font-weight:500;
  letter-spacing:0.12em;
  padding:0.38rem 0.7rem;
  border-radius:999px;
  line-height:1;
  transition:background var(--transition), color var(--transition);
}
.lang-switch button:hover{ color:var(--charcoal); }
.lang-switch button.is-active{ background:var(--charcoal); color:var(--ivory); }
.lang-switch button:focus-visible{ outline:1px solid var(--gold); outline-offset:2px; }
@media (max-width: 860px){
  .lang-switch{ margin-left:0; margin-right:0.6rem; }
}
@media (max-width: 480px){
  .header-inner > .lang-switch{ padding:0; border:0; background:transparent; margin-right:0.4rem; }
  .header-inner > .lang-switch button{ display:none; }
  .header-inner > .lang-switch button:not(.is-active){
    display:flex; align-items:center; justify-content:center;
    width:40px; height:40px; padding:0;
    border:1px solid var(--line); border-radius:50%;
    background:var(--white); color:var(--charcoal);
  }
}
@media (max-width: 400px){
  .header-inner > .lang-switch{ margin:0 -0.75rem; }
  .header-inner > .lang-switch button:not(.is-active){ width:36px; height:36px; }
}
