/* ============================================================
   LOTUS ENERGY — Association Loi 1901
   Design system: "atelier" — laser-engraved plaques, wood grain,
   craft-market warmth. See notes at bottom of file.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bitter:ital,wght@0,400;0,500;0,600;0,700;1,500&family=Dancing+Script:wght@600;700&family=IBM+Plex+Mono:wght@400;500&family=Montserrat:wght@500;600;700&family=Work+Sans:wght@400;500;600&display=swap');

:root{
  --bark:       #2B241C;
  --bark-soft:  #3F372B;
  --linen:      #EFE4CB;
  --linen-2:    #E5D8B8;
  --paper-dark: #1D1811;
  --walnut:     #6B4426;
  --walnut-dk:  #4A2E19;
  --sage:       #5E6948;
  --sage-dk:    #444D34;
  --ochre:      #8A5523;
  --line:       #CDBB8E;
  --line-dark:  #3A3021;
  --cream:      #FAF6EA;
  --white:      #FFFFFF;
  --fashion-night:#1D1811;
  --fashion-navy:#2B241C;
  --fashion-gold:#E2A33A;
  --fashion-ivory:#F1E4CD;
  --fashion-pink:#CE235D;

  --serif: 'Bitter', Georgia, serif;
  --sans: 'Work Sans', -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', monospace;

  --radius: 3px;
  --shadow-plaque: inset 0 1px 0 rgba(255,255,255,0.25), inset 0 -2px 3px rgba(0,0,0,0.18), 0 1px 2px rgba(0,0,0,0.15);
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ font-size:17px; scroll-behavior:smooth; }
html.text-large{ font-size:19px; }

body{
  background:var(--cream);
  color:var(--bark);
  font-family:var(--sans);
  font-size:1rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }

.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:0 5vw;
}

.eyebrow{
  font-family:var(--mono);
  font-size:0.78rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ochre);
  display:inline-block;
  margin-bottom:0.9rem;
}

/* ---------- engraved plaque (signature element) ---------- */
/* Used for headings & nameplates: raised wood plaque with an
   engraved (inset) letter treatment, referencing the
   association's laser-engraving craft activity. */
.plaque{
  display:inline-block;
  background:linear-gradient(180deg, #8A5A34, var(--walnut) 55%, var(--walnut-dk));
  color:var(--linen);
  padding:0.55em 1em;
  border-radius:var(--radius);
  box-shadow:var(--shadow-plaque);
  font-family:var(--serif);
  font-weight:600;
}

h1, h2, h3{
  font-family:var(--serif);
  font-weight:600;
  color:var(--bark);
  line-height:1.15;
}
h1{ font-size:clamp(2.2rem, 5vw, 3.6rem); }
h2{ font-size:clamp(1.6rem, 3.4vw, 2.3rem); }
h3{ font-size:1.15rem; }

p{ color:var(--bark-soft); max-width:60ch; }

.lede{
  font-size:1.1rem;
  color:var(--bark-soft);
}

/* ---------- header / nav ---------- */
header.site{
  position:sticky;
  top:0;
  z-index:500;
  background:linear-gradient(105deg, var(--fashion-night) 0%, var(--fashion-navy) 64%, #3A3021 100%);
  border-bottom:2px solid var(--fashion-gold);
  box-shadow:0 5px 18px rgba(2,6,15,0.28);
}
.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1rem 5vw;
  gap:1.5rem;
}
.brand{
  display:flex;
  align-items:center;
  gap:0.7rem;
  font-family:'Montserrat', var(--sans);
  font-weight:700;
  font-size:1.32rem;
  white-space:nowrap;
  text-decoration:none;
}
.brand .mark{
  width:46px; height:46px;
  flex:none;
  display:block;
  object-fit:contain;
  border-radius:50%;
  background:var(--white);
  box-shadow:0 0 0 1px rgba(226,163,58,0.76), 0 3px 9px rgba(0,0,0,0.28);
}
.brand-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1;
}
.brand-name{
  display:block;
  font-family:'Montserrat', var(--sans);
  font-weight:600;
  letter-spacing:-0.055em;
}
.brand-lotus{ color:var(--fashion-gold); }
.brand-energy{ color:var(--fashion-ivory); }
.brand-tagline{
  display:block;
  margin-top:0.08rem;
  color:var(--fashion-pink);
  font-family:'Dancing Script', cursive;
  font-size:1rem;
  font-weight:700;
  letter-spacing:0.01em;
  line-height:0.9;
  text-transform:none;
}
nav.primary{ display:flex; }
nav.primary ul{
  list-style:none;
  display:flex;
  gap:0.4rem;
}
nav.primary > ul > li{ position:relative; }
nav.primary a{
  display:block;
  text-decoration:none;
  font-size:0.9rem;
  font-weight:600;
  letter-spacing:0.03em;
  text-transform:uppercase;
  color:var(--fashion-ivory);
  min-height:44px;
  padding:0.68rem 0.9rem;
  display:flex;
  align-items:center;
  border-radius:var(--radius);
  transition:background .2s ease, color .2s ease;
}
nav.primary > ul > li > a::after{ content:""; }
nav.primary a:hover, nav.primary a:focus-visible{
  background:rgba(226,163,58,0.17);
  color:var(--fashion-gold);
}
nav.primary .submenu{
  list-style:none;
  position:absolute;
  top:100%; left:0;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  min-width:220px;
  box-shadow:0 10px 24px rgba(43,36,28,0.14);
  padding:0.4rem;
  display:none;
  z-index:50;
}
nav.primary li:hover > .submenu,
nav.primary li:focus-within > .submenu{ display:block; }
nav.primary .submenu a{
  color:var(--bark-soft);
  text-transform:none;
  font-weight:500;
  font-size:0.94rem;
  letter-spacing:0;
  padding:0.68rem 0.8rem;
}
nav.primary .submenu a:hover{ background:var(--linen); color:var(--bark); }
header.site .header-cta{ background:var(--fashion-gold); color:var(--fashion-night); }
header.site .header-cta:hover{ background:var(--fashion-pink); color:var(--white); }

.cta-btn{
  font-family:var(--mono);
  font-size:0.86rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  background:var(--sage);
  color:var(--cream);
  min-height:44px;
  padding:0.72rem 1.2rem;
  border-radius:var(--radius);
  text-decoration:none;
  white-space:nowrap;
  transition:background .2s ease;
  border:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.cta-btn:hover{ background:var(--sage-dk); }
.cta-btn.walnut{ background:var(--walnut); }
.cta-btn.walnut:hover{ background:var(--walnut-dk); }

.menu-toggle{
  display:none;
  background:var(--sage);
  border:2px solid var(--sage);
  border-radius:var(--radius);
  width:46px; height:44px;
  cursor:pointer;
  flex:none;
  position:relative;
}
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after{
  content:"";
  position:absolute;
  left:9px; right:9px;
  height:2px;
  background:var(--fashion-ivory);
  transition:transform .2s ease, opacity .2s ease;
}
.menu-toggle span{ top:21px; }
.menu-toggle span::before{ top:-7px; }
.menu-toggle span::after{ top:7px; }
.menu-toggle[aria-expanded="true"] span{ background:transparent; }
.menu-toggle[aria-expanded="true"] span::before{ transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span::after{ transform:translateY(-7px) rotate(-45deg); }
.menu-toggle[aria-expanded="true"]{ background:#B54532; border-color:#B54532; }
.menu-toggle:hover{ background:var(--sage-dk); border-color:var(--sage-dk); }
.menu-toggle[aria-expanded="true"]:hover{ background:#923526; border-color:#923526; }
.text-size-toggle{
  min-width:44px;
  min-height:44px;
  padding:0.35rem 0.5rem;
  border:2px solid var(--sage);
  border-radius:var(--radius);
  background:var(--sage);
  color:var(--white);
  font-family:var(--sans);
  font-size:0.95rem;
  font-weight:700;
  line-height:1;
  cursor:pointer;
}
.text-size-toggle:hover{ background:var(--sage-dk); border-color:var(--sage-dk); }
.text-size-toggle[aria-pressed="true"]{ background:#B54532; border-color:#B54532; color:var(--white); }
.text-size-toggle[aria-pressed="true"]:hover{ background:#923526; border-color:#923526; }
.language-switch{
  display:flex;
  align-items:center;
  gap:0.28rem;
  min-height:38px;
  padding:0.25rem 0.45rem;
  border:1px solid rgba(241,228,205,0.65);
  border-radius:var(--radius);
  color:var(--fashion-ivory);
  font-family:var(--mono);
  font-size:0.76rem;
  font-weight:500;
  line-height:1;
}
.language-switch a{ color:var(--fashion-ivory); text-decoration:none; }
.language-switch a:hover{ color:var(--fashion-gold); }
.language-switch .is-current{ color:var(--fashion-gold); font-weight:700; }
.sms-contact-button{
  position:fixed;
  right:1.2rem;
  bottom:1.2rem;
  z-index:450;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  min-height:48px;
  padding:0.65rem 1rem;
  border:2px solid var(--fashion-ivory);
  border-radius:999px;
  background:var(--fashion-pink);
  box-shadow:0 6px 18px rgba(29,24,17,0.3);
  color:var(--white);
  font-family:var(--mono);
  font-size:0.86rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-decoration:none;
}
.sms-contact-button:hover{ background:var(--fashion-night); color:var(--fashion-gold); }

/* Safari can report a very wide pixel viewport even where the visible header
   has too little usable room for the complete navigation. Keep the compact,
   accessible menu on normal desktop screens; the full navigation is reserved
   for exceptionally wide displays. */
@media (min-width:2401px){
  nav.primary ul{ gap:0.1rem; }
  nav.primary a{ padding-left:0.58rem; padding-right:0.58rem; letter-spacing:0.01em; }
  header.site .header-cta{
    min-height:40px;
    padding:0.55rem 0.78rem;
    font-size:0.76rem;
    letter-spacing:0.04em;
  }
}

/* ---------- kerf divider (laser-cut edge, signature motif) ---------- */
.kerf{
  height:14px;
  width:100%;
  background:
    linear-gradient(135deg, var(--cream) 50%, transparent 50%) 0 0/14px 14px repeat-x,
    linear-gradient(-135deg, var(--cream) 50%, transparent 50%) 0 0/14px 14px repeat-x;
  background-color:var(--bark);
}
.kerf.flip{ transform:scaleY(-1); }

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:flex-end;
  background:var(--paper-dark);
  overflow:hidden;
}
.hero-img{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center 25%;
}
.hero-img::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(29,24,17,0.35) 0%, rgba(29,24,17,0.55) 60%, rgba(29,24,17,0.95) 100%);
}
.hero-body{
  position:relative;
  z-index:2;
  padding:3rem 5vw 4rem;
  max-width:840px;
}
.hero .plaque{ font-size:clamp(1.9rem, 5vw, 3.2rem); margin-bottom:1.1rem; }
.hero p{ color:var(--linen); font-size:1.15rem; max-width:520px; }
.hero-actions{
  margin-top:1.8rem;
  display:flex;
  gap:0.9rem;
  flex-wrap:wrap;
  align-items:flex-start;
}
.hero-activity-links{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.65rem;
}
.hero-activity-links .manual{ background:var(--ochre); color:var(--bark); }
.hero-activity-links .manual:hover{ background:var(--walnut); color:var(--cream); }

/* ---------- association identity ---------- */
.association-story{
  background:linear-gradient(120deg, var(--fashion-night), var(--paper-dark));
  color:var(--linen);
  padding:3.8rem 0;
  border-top:3px solid var(--fashion-gold);
  border-bottom:3px solid var(--fashion-pink);
}
.association-story-grid{ display:grid; grid-template-columns:minmax(230px, 0.8fr) minmax(0, 1.2fr); gap:3rem; align-items:start; }
.association-story .eyebrow{ color:var(--fashion-pink); }
.association-story h2{ color:var(--fashion-gold); margin-bottom:0; }
.association-story-copy{ display:grid; gap:1rem; }
.association-story-copy p{ color:var(--linen-2); max-width:none; }
.association-identity-bar{ background:var(--fashion-night); color:var(--linen); border-bottom:2px solid var(--fashion-gold); }
.association-identity-bar p{ max-width:none; padding:0.75rem 0; color:var(--linen-2); font-size:0.93rem; }
.association-identity-bar strong{ color:var(--fashion-gold); }

/* ---------- home-page featured news ---------- */
.featured-news{
  background:linear-gradient(115deg, #E6B85D, #C98738);
  border-top:3px solid var(--walnut-dk);
  border-bottom:3px solid var(--walnut-dk);
  color:var(--paper-dark);
  padding:1.65rem 0;
}
.featured-news-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.featured-news .eyebrow{ color:var(--fashion-pink); margin-bottom:0.35rem; }
.featured-news h2{ color:var(--paper-dark); font-size:clamp(1.45rem, 3vw, 2rem); margin-bottom:0.35rem; }
.featured-news p{ max-width:760px; color:var(--bark); font-weight:500; }
.featured-news-cta{
  flex:none;
  background:var(--fashion-pink);
  color:var(--white);
  white-space:nowrap;
}
.featured-news-cta:hover, .featured-news-cta:focus-visible{ background:var(--fashion-gold); color:var(--fashion-night); }

/* page header (non-home hero, smaller) */
.page-head{
  position:relative;
  padding:4.5rem 5vw 3.5rem;
  background:var(--paper-dark);
  color:var(--linen);
  overflow:hidden;
}
.page-head-img{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  opacity:0.32;
}
.page-head-content{ position:relative; z-index:2; max-width:760px; }
.page-head .eyebrow{ color:var(--ochre); }
.page-head h1{ color:var(--cream); }
.page-head p{ color:var(--linen-2); }
.breadcrumb{
  font-family:var(--mono);
  font-size:0.72rem;
  color:var(--linen-2);
  text-transform:uppercase;
  letter-spacing:0.08em;
  margin-bottom:1rem;
  display:block;
}
.breadcrumb a{ text-decoration:none; color:var(--ochre); }

/* ---------- sections ---------- */
section{ padding:5.5rem 0; }
section.tight{ padding:3.5rem 0; }
.section-head{ max-width:680px; margin-bottom:3rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.course-enquiry-link{ margin-top:1rem; }

.bg-alt{ background:var(--linen); }

.laser-intro-copy{ display:grid; gap:0.9rem; margin-top:1.35rem; }
.laser-intro-copy p{ max-width:68ch; margin:0; }

/* ---------- Tai Chi: research and optional weapons practice ---------- */
.research-section{ background:#DEE3D2; }
.research-copy{ display:grid; gap:1rem; max-width:760px; }
.research-copy p{ max-width:68ch; }
.research-weapons{
  max-width:760px;
  margin-top:2.75rem;
  padding:1.5rem 1.7rem;
  background:rgba(250,246,234,.78);
  border-left:4px solid var(--sage);
}
.research-weapons .eyebrow{ color:var(--sage-dk); }
.research-weapons h3{ margin-bottom:.65rem; }
.research-weapons p{ max-width:68ch; }
.bg-dark{ background:var(--paper-dark); color:var(--linen); }
.bg-dark h2, .bg-dark h3{ color:var(--cream); }
.bg-dark p{ color:var(--linen-2); }
.bg-dark .eyebrow{ color:var(--ochre); }

/* ---------- manual activities: invitation to co-create ---------- */
.craft-wellbeing-section{ background:#D8C2AA; }
.craft-timetable-section{
  background:#D8C2AA;
  border-top:2px solid rgba(107,68,38,0.22);
  border-bottom:2px solid rgba(107,68,38,0.22);
}
.craft-timetable-section .section-head{ margin-bottom:1.5rem; }
.craft-timetable-section .section-head p{ max-width:68rem; }
.craft-timetable-section .dates-to-come{ margin:0 0 2rem; }
.craft-wellbeing-section .section-head{ margin-bottom:1.45rem; }
.craft-wellbeing-copy{ max-width:760px; }
.craft-wellbeing-copy p{ color:var(--bark); max-width:68ch; }
.craft-wellbeing-copy p + p{ margin-top:1rem; }
.ideas-section{ background:#EDE1C8; }
.ideas-section .section-head{ margin-bottom:1.45rem; }
.ideas-copy{ max-width:760px; }
.ideas-copy p{ color:var(--bark-soft); max-width:none; }
.ideas-copy p + p{ margin-top:1rem; }
.ideas-section .cta-btn{
  display:inline-block;
  margin-top:1.7rem;
}

/* ---------- Lotus Energy Fashion ---------- */
.fashion-section{
  background:linear-gradient(118deg, #1D1811, #2B241C 65%, #3A3021);
  color:var(--fashion-ivory);
  border-top:2px solid var(--fashion-gold);
  border-bottom:2px solid var(--fashion-gold);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.1), inset 0 -1px 0 rgba(0,0,0,0.22);
}
.fashion-lockup{
  display:flex;
  align-items:center;
  margin-bottom:2.1rem;
}
.fashion-lockup-copy{
  display:flex;
  flex-direction:column;
  line-height:1;
  padding:0.15rem 0 0.45rem;
}
.fashion-lockup-name{
  font-family:'Montserrat', var(--sans);
  font-size:clamp(2rem, 4vw, 2.65rem);
  font-weight:600;
  letter-spacing:-0.06em;
}
.fashion-lockup-name .brand-lotus{ color:var(--fashion-gold); }
.fashion-lockup-name .brand-energy{ color:var(--fashion-ivory); }
.fashion-lockup-tagline{
  color:var(--fashion-pink);
  font-family:'Dancing Script', cursive;
  font-size:clamp(1.8rem, 4vw, 2.35rem);
  font-weight:700;
  line-height:0.9;
  margin:0.24rem 0 0 0.32rem;
}
.fashion-inline{
  color:var(--fashion-pink);
  font-weight:800;
}
.fashion-copy{ max-width:790px; }
.fashion-copy p{ color:var(--fashion-ivory); max-width:none; }
.fashion-copy p + p{ margin-top:1rem; }
.fashion-cta{
  display:inline-block;
  margin:0;
  background:var(--fashion-gold);
  color:var(--fashion-night);
}
.fashion-cta:hover, .fashion-cta:focus-visible{ background:var(--fashion-pink); color:var(--white); }
.fashion-cta-row{
  display:flex;
  width:100%;
  margin-top:3.5rem;
  padding-top:2rem;
  border-top:1px solid rgba(241,228,205,0.28);
}
.market-fashion-cta{
  display:flex;
  width:100%;
  margin-top:4.5rem;
  padding-top:2.25rem;
  border-top:1px solid rgba(241,228,205,0.28);
  justify-content:center;
  position:relative;
  z-index:1;
}
.wood-intro-section{ background:var(--cream); }
.workshops-section{ background:#E8D3A7; }

/* ---------- laser page: Lotus Energy Fashion galleries ---------- */
.fashion-gallery-section{ background:#EDE1C8; }
.laser-categories-section{ background:#E8D3A7; }
.fashion-gallery-brand{
  width:100%;
  padding:2.15rem 2.4rem;
  background:linear-gradient(105deg, var(--fashion-night), var(--fashion-navy) 64%, #3A3021);
  border:2px solid var(--fashion-gold);
  border-radius:var(--radius);
  box-shadow:0 10px 24px rgba(43,36,28,0.2);
}
.fashion-gallery-brand .fashion-lockup{ margin:0; }
.fashion-market-plaque{
  position:relative;
  max-width:900px;
  margin:2.2rem auto 0;
  padding:2.15rem clamp(1.25rem, 4vw, 3.5rem) 1.9rem;
  overflow:hidden;
  border:1px solid #C7A16A;
  border-radius:var(--radius);
  background:
    linear-gradient(90deg, rgba(255,255,255,0.24), transparent 22%, rgba(115,76,42,0.06) 58%, transparent),
    linear-gradient(135deg, #F4E9D3, #E5CFA8);
  box-shadow:inset 0 0 0 5px rgba(255,255,255,0.22), 0 10px 24px rgba(76,50,29,0.14);
  color:var(--bark);
  text-align:center;
}
.fashion-market-plaque::before{
  content:"◇  ♡  ◇";
  display:block;
  margin-bottom:0.65rem;
  color:#8D3949;
  font-family:var(--serif);
  letter-spacing:0.28em;
}
.market-plaque-kicker{
  color:#8D3949;
  font-family:var(--mono);
  font-size:0.76rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
.fashion-market-plaque h2{
  max-width:720px;
  margin:0.45rem auto 0.75rem;
  color:#4A2C25;
  font-size:clamp(1.45rem, 3vw, 2.15rem);
}
.fashion-market-plaque p{
  max-width:700px;
  margin:0 auto;
  color:#654A3D;
}
.fashion-collection-nav{
  display:flex;
  align-items:flex-start;
  gap:1rem 1.35rem;
  margin-top:1.4rem;
  padding:1.15rem 1.25rem;
  border:1px solid rgba(107,68,38,0.25);
  border-radius:calc(var(--radius) * 0.75);
  background:rgba(250,246,234,0.8);
}
.fashion-collection-nav > strong{
  flex:0 0 auto;
  padding-top:0.55rem;
  color:#7E3043;
  font-family:var(--mono);
  font-size:0.75rem;
  letter-spacing:0.09em;
  text-transform:uppercase;
}
.fashion-collection-links{
  display:flex;
  flex-wrap:wrap;
  gap:0.55rem;
}
.fashion-collection-links a{
  display:inline-flex;
  min-height:42px;
  align-items:center;
  padding:0.55rem 0.85rem;
  border:1px solid #B8935C;
  border-radius:999px;
  background:#FFF9EC;
  color:#56392C;
  font-size:0.88rem;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  transition:background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.fashion-collection-links a:hover,
.fashion-collection-links a:focus-visible{
  border-color:#7E3043;
  background:#7E3043;
  color:#FFF9EC;
  transform:translateY(-1px);
}
.reimagined-brand-section{ background:#DCE1D6; }
.reimagined-gallery-brand{
  background:linear-gradient(105deg, #1D1811, #2B241C 64%, #344232);
  border-color:#9CAA86;
}
.reimagined-copy{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:1.2rem 1.6rem;
  margin-top:1.45rem;
  padding-top:1.45rem;
  border-top:1px solid rgba(241,228,205,0.3);
}
.reimagined-copy p{ flex:1 1 34rem; max-width:52rem; margin:0; color:var(--fashion-ivory); }
.fashion-latest-head{ margin:4rem 0 2.4rem; }
.fashion-latest-head h2{ margin:0; }
.gallery-uniqueness-note{
  width:100%;
  max-width:none;
  margin:0 0 2.4rem;
  padding:1.15rem 1.35rem;
  border-left:4px solid #B7792B;
  border-radius:0 var(--radius) var(--radius) 0;
  background:rgba(244,233,211,0.72);
  box-shadow:0 6px 16px rgba(76,50,29,0.08);
  color:var(--bark-soft);
  font-size:0.96rem;
  font-style:italic;
  line-height:1.68;
}
.gallery-uniqueness-note p{ margin:0; }
.gallery-uniqueness-note p + p{ margin-top:0.7rem; }
.gallery-uniqueness-note strong{ color:var(--bark); }
.gallery-uniqueness-note .gallery-note-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  color:#7E3043;
  font-family:var(--mono);
  font-size:0.76rem;
  font-style:normal;
  font-weight:700;
  letter-spacing:0.07em;
  text-transform:uppercase;
}
.gallery-uniqueness-note .gallery-note-title .section-listen-button{ margin-left:auto; flex:0 0 auto; }
.gallery-note-copy{
  position:relative;
  margin-top:0.7rem;
}
.gallery-note-copy.is-collapsed{
  max-height:5.04em;
  overflow:hidden;
}
.gallery-note-copy.is-collapsed::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:1.7em;
  pointer-events:none;
  background:linear-gradient(to bottom, rgba(244,233,211,0), rgba(244,233,211,0.98));
}
.gallery-note-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.65rem;
  margin-top:0.8rem;
  padding:0.5rem 1rem;
  border:2px solid #7E3043;
  border-radius:999px;
  background:#7E3043;
  color:#fff;
  font-family:var(--sans);
  font-size:0.92rem;
  font-style:normal;
  font-weight:800;
  cursor:pointer;
}
.gallery-note-toggle:hover,
.gallery-note-toggle:focus-visible{
  border-color:var(--ochre);
  background:var(--ochre);
  outline:none;
}
.gallery-material-note{
  margin:0 0 1.8rem;
  border-left-color:#7E3043;
  background:rgba(239,221,190,0.62);
}
.gallery-heading-qr-row{
  display:grid;
  grid-template-columns:minmax(280px, 1fr) minmax(280px, 430px);
  align-items:start;
  gap:1.4rem;
  margin:0 0 1.7rem;
}
.gallery-heading-qr-row .fashion-category-head,
.gallery-heading-qr-row .section-head{
  width:100%;
  margin:0;
}
.gallery-heading-qr-row .gallery-qr-note{
  width:100%;
  margin:0;
}
.gallery-qr-note{
  display:flex;
  align-items:center;
  gap:1rem;
  width:min(100%, 430px);
  margin:0 0 1.7rem auto;
  padding:0.75rem 0.85rem 0.75rem 1rem;
  border:1px solid rgba(183,121,43,0.55);
  border-radius:calc(var(--radius) * 0.7);
  background:var(--fashion-night);
  color:var(--fashion-ivory);
  box-shadow:var(--shadow-soft);
}
.gallery-qr-note .eyebrow{ margin:0 0 0.25rem; color:var(--fashion-gold); }
.gallery-qr-note p{ margin:0; color:var(--linen-2); font-size:0.82rem; line-height:1.45; }
.gallery-qr-note .gallery-qr-link{
  display:inline-block;
  margin-top:0.4rem;
  color:var(--fashion-gold);
  font-size:0.8rem;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:0.18em;
}
.gallery-qr-note > a:last-child{ flex:0 0 92px; line-height:0; }
.gallery-qr-note img{
  flex:0 0 92px;
  width:92px;
  height:92px;
  padding:0.25rem;
  border-radius:0.35rem;
  background:#fff;
}
.fashion-gallery-item + .fashion-gallery-item{
  margin-top:3.2rem;
  padding-top:3.2rem;
  border-top:1px solid rgba(107,68,38,0.25);
}
.fashion-gallery-item{
  position:relative;
  scroll-margin-top:9rem;
}
.fashion-gallery-item:target{
  outline:3px solid #B7792B;
  outline-offset:12px;
}
.fashion-gallery-item:target::before{
  content:"Collection repérée — vous êtes au bon endroit";
  display:inline-flex;
  margin:0 0 1.15rem;
  padding:0.55rem 0.8rem;
  border-radius:999px;
  background:#7E3043;
  color:#FFF9EC;
  font-family:var(--mono);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
}
html[lang^="en"] .fashion-gallery-item:target::before{
  content:"Collection located — you are in the right place";
}
.fashion-gallery-item h3{
  margin:0 0 1.1rem;
  color:var(--bark);
  font-size:clamp(1.35rem, 2.5vw, 1.75rem);
}
.fashion-category-head{
  width:min(100%, 680px);
  margin:0 0 1.5rem;
  padding:1rem 1.25rem 1.05rem;
  border:1px solid #C7A16A;
  border-left:5px solid #8D3949;
  border-radius:calc(var(--radius) * 0.7);
  background:
    linear-gradient(100deg, rgba(255,255,255,0.28), transparent 38%),
    linear-gradient(135deg, #F4E9D3, #E5CFA8);
  box-shadow:0 7px 16px rgba(76,50,29,0.11);
}
.fashion-category-head .eyebrow{ margin:0 0 0.35rem; color:#8D3949; }
.fashion-category-head h2,
.fashion-category-head h3{ margin:0; }
.fashion-category-head h2{ font-size:clamp(1.35rem, 2.5vw, 1.75rem); }
.fashion-category-intro{
  max-width:58ch;
  margin:0.75rem 0 0;
  color:var(--bark-soft);
  font-family:var(--serif);
  font-size:1.02rem;
  font-style:italic;
  line-height:1.55;
}
.overview-collection-links{ margin-top:1.4rem; }
.gallery-contact{
  clear:both;
  margin-top:4.5rem;
  padding-top:2.25rem;
  border-top:1px solid rgba(107,68,38,0.25);
}
.gallery-contact p{
  margin:0 0 1.35rem;
  color:var(--bark-soft);
  font-size:0.95rem;
}
.gallery-contact .cta-btn{ display:inline-block; }
.gallery-pending-frame{
  min-height:200px;
  display:grid;
  place-items:center;
  border:1px dashed var(--line-dark);
  border-radius:var(--radius);
  background:rgba(250,246,234,0.72);
  color:var(--bark-soft);
  font-family:var(--mono);
  font-size:0.8rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.future-gallery-frame{
  min-height:245px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:2.2rem;
  border:1px dashed #B8935C;
  border-radius:var(--radius);
  background:
    radial-gradient(circle at 12% 18%, rgba(141,57,73,0.08), transparent 28%),
    radial-gradient(circle at 88% 82%, rgba(183,121,43,0.12), transparent 30%),
    rgba(255,249,236,0.76);
  color:var(--bark-soft);
  text-align:center;
}
.future-gallery-symbol{
  margin-bottom:0.4rem;
  color:#A55A38;
  font-family:var(--serif);
  font-size:2rem;
}
.future-gallery-frame strong{
  color:#4A2C25;
  font-family:var(--serif);
  font-size:clamp(1.25rem, 3vw, 1.7rem);
  font-weight:600;
}
.future-gallery-frame p{
  max-width:580px;
  margin:0.75rem auto 0;
}
.future-gallery-shell{
  overflow:hidden;
  border:1px solid var(--line-dark);
  border-radius:var(--radius);
  background:var(--fashion-night);
}
.future-gallery-shell .future-gallery-frame{
  border:0;
  border-radius:0;
}
.jewellery-placeholder-slideshow .slideshow-viewport{
  height:auto;
  min-height:245px;
  max-height:none;
  aspect-ratio:auto;
}
.jewellery-placeholder-slideshow .slideshow-slide{
  position:relative;
  min-height:245px;
}
.jewellery-placeholder-slideshow .future-gallery-frame{
  min-height:245px;
  border:0;
  border-radius:0;
}
.gallery-general-introduction .slideshow-product-copy{
  gap:0.75rem;
}
.gallery-general-introduction .slideshow-product-copy > span{
  display:block;
  max-width:none;
  line-height:1.68;
}
.gallery-introduction{
  width:100%;
  max-width:none;
  margin:-0.25rem 0 1.5rem;
  padding:1.2rem 1.35rem;
  border-left:3px solid var(--fashion-gold);
  border-radius:0 calc(var(--radius) * 0.7) calc(var(--radius) * 0.7) 0;
  background:rgba(255,249,236,0.72);
  color:var(--bark-soft);
}
.gallery-introduction p{ margin:0; }
.gallery-introduction p + p{ margin-top:0.8rem; }
.future-gallery-description{
  display:grid;
  gap:0.65rem;
  margin-top:1rem;
  padding:1.35rem 1.5rem;
  border-top:2px solid var(--fashion-gold);
  border-radius:0 0 calc(var(--radius) * 0.75) calc(var(--radius) * 0.75);
  background:var(--fashion-night);
  color:var(--linen-2);
}
.future-gallery-description > strong{
  color:var(--fashion-gold);
  font-family:var(--serif);
  font-size:1.1rem;
}
.future-gallery-description p{
  max-width:820px;
  margin:0;
  color:var(--linen-2);
}
.future-gallery-description b{ color:var(--fashion-ivory); }
.future-gallery-description .future-handmade-statement{
  color:var(--fashion-gold);
  font-weight:700;
}
#special-orders-slideshow .gallery-pending-frame{
  height:100%;
  min-height:0;
  padding:2rem;
  text-align:center;
  background:linear-gradient(135deg, #F1E4CD, #E8D3A7);
}
#special-orders-slideshow .gallery-pending-frame strong{
  display:block;
  margin-top:0.8rem;
  color:var(--bark);
  font-family:var(--serif);
  font-size:clamp(1.25rem, 3vw, 1.8rem);
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
}
.cultural-copy{ max-width:760px; }
.cultural-copy p{ color:var(--bark-soft); max-width:none; }
.cultural-copy p + p{ margin-top:1rem; }
.cultural-cta{ display:inline-block; margin-top:2.5rem; }
.recycle-copy{ max-width:760px; }
.recycle-copy p{ color:var(--bark-soft); max-width:none; }
.recycle-copy p + p{ margin-top:1rem; }
.recycle-cta{ display:inline-block; margin-top:2.5rem; }

/* ---------- pillar cards (home) ---------- */
.pillars{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.4rem;
}
.pillar-card{
  position:relative;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:2.2rem 1.7rem;
  text-decoration:none;
  transition:transform .22s ease, box-shadow .22s ease;
  overflow:hidden;
}
.pillar-card::before{
  content:"";
  position:absolute; top:0; left:0; right:0; height:6px;
  background:var(--walnut);
}
.pillar-card.sage::before{ background:var(--sage); }
.pillar-card.ochre::before{ background:var(--ochre); }
.pillar-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 30px rgba(43,36,28,0.12);
}
.pillar-card .num{
  font-family:var(--mono);
  font-size:0.75rem;
  color:var(--ochre);
  letter-spacing:0.1em;
}
.pillar-card h3{ margin:0.6rem 0 0.7rem; font-size:1.4rem; }
.pillar-card p{ font-size:0.95rem; margin-bottom:0; }
.pillar-card .goto{
  display:inline-block;
  margin-top:1.1rem;
  font-family:var(--mono);
  font-size:0.76rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--bark);
}

/* ---------- notice board (upcoming events) ---------- */
.board{
  background:var(--bark);
  border-radius:var(--radius);
  padding:2.2rem;
  color:var(--linen);
}
.board h3{ color:var(--cream); font-family:var(--mono); text-transform:uppercase; font-size:0.95rem; letter-spacing:0.1em; margin-bottom:1.1rem; }
.board-list{ list-style:none; display:flex; flex-direction:column; gap:0.9rem; }
.board-list li{
  display:flex;
  gap:1rem;
  padding-bottom:0.9rem;
  border-bottom:1px dashed rgba(239,228,203,0.25);
  font-size:0.93rem;
}
.board-list li:last-child{ border-bottom:none; padding-bottom:0; }
.board-list .when{
  font-family:var(--mono);
  color:var(--ochre);
  flex:none;
  min-width:150px;
  font-size:0.82rem;
}
.board-list .what{ color:var(--linen-2); }
.board-list .what b{ color:var(--cream); font-weight:600; }
.market-update{
  color:var(--linen-2);
  max-width:none;
  font-size:0.95rem;
  margin-bottom:1.15rem;
}
.market-banner{
  display:block;
  width:100%;
  max-width:640px;
  height:auto;
  margin-top:1.5rem;
  border:1px solid rgba(229,216,184,0.45);
  border-radius:var(--radius);
  box-shadow:0 8px 22px rgba(0,0,0,0.24);
}
.wood-banner-section{ background:#DEE3D2; }
.wood-benefits-banner{
  display:block;
  width:100%;
  max-width:860px;
  height:auto;
  margin:0 auto;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 10px 26px rgba(43,36,28,0.16);
}

/* ---------- schedule table ---------- */
.schedule{
  width:100%;
  border-collapse:collapse;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}
.schedule th, .schedule td{
  text-align:left;
  padding:0.85rem 1.1rem;
  border-bottom:1px solid var(--line);
  font-size:0.92rem;
}
.schedule th{
  background:var(--walnut);
  color:var(--linen);
  font-family:var(--mono);
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-weight:500;
}
.schedule tr:last-child td{ border-bottom:none; }
.schedule .loc{ font-weight:600; font-family:var(--serif); }
.schedule .time{ font-family:var(--mono); color:var(--walnut-dk); font-size:0.85rem; }
.schedule-restart{
  max-width:none;
  margin:-1.1rem 0 1.35rem;
  padding:0.9rem 1rem;
  background:var(--cream);
  border-left:4px solid var(--ochre);
  color:var(--bark-soft);
}
.saturday-sessions{
  margin-top:3.25rem;
  padding-top:2.8rem;
  border-top:1px solid var(--line);
}
.saturday-sessions .section-head{ margin-bottom:1.45rem; }
.saturday-sessions h3{ font-size:1.35rem; }
.saturday-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.25rem;
}
.saturday-card{
  background:var(--cream);
  border:1px solid var(--line);
  border-top:4px solid var(--ochre);
  border-radius:var(--radius);
  padding:1.35rem 1.45rem;
}
.saturday-date{
  display:block;
  margin-bottom:0.85rem;
  color:var(--bark);
  font-family:var(--serif);
  font-size:1.08rem;
  font-weight:600;
}
.saturday-card p{ color:var(--bark-soft); max-width:none; }
.saturday-card p + p{ margin-top:0.5rem; }
.saturday-card .time{
  color:var(--walnut-dk);
  font-family:var(--mono);
  font-size:0.84rem;
}
.dates-to-come{
  max-width:none;
  margin-top:1.15rem;
  color:var(--bark-soft);
  font-size:0.9rem;
  font-style:italic;
}
.instructor-credentials{
  max-width:880px;
  margin:2.4rem auto 0;
  color:var(--bark-soft);
  font-size:0.72rem;
  line-height:1.55;
  text-align:center;
}

/* ---------- info panel / pull quote ---------- */
.panel{
  background:var(--white);
  border:1px solid var(--line);
  border-left:5px solid var(--sage);
  border-radius:var(--radius);
  padding:1.8rem 2rem;
}
.panel p{ max-width:none; }

/* ---------- two column ---------- */
.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:center;
}
.two-col.reverse .col-img{ order:2; }
.col-img img{
  border-radius:var(--radius);
  border:1px solid var(--line);
}
.col-img.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0.7rem;
}
.col-img.grid-2 img:first-child{ grid-row:span 2; height:100%; object-fit:cover; }

/* ---------- feature list (equipment/weapons style content) ---------- */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.6rem;
}
.feature{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}
.feature img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.feature-body{ padding:1.4rem 1.5rem 1.6rem; }
.feature-body h3{
  font-size:1.15rem;
  margin-bottom:0.7rem;
  padding-bottom:0.6rem;
  border-bottom:2px solid var(--ochre);
  display:inline-block;
}
.feature-body ul{ list-style:none; }
.feature-body ul li{
  position:relative;
  padding-left:1.1rem;
  margin-bottom:0.45rem;
  font-size:0.92rem;
  color:var(--bark-soft);
}
.feature-body ul li::before{
  content:"";
  position:absolute; left:0; top:0.55em;
  width:6px; height:6px;
  border-radius:50%;
  background:var(--sage);
}

/* ---------- craft tag categories ---------- */
.tag-groups{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:1.4rem;
}
.tag-group{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.3rem 1.4rem;
}
.tag-group h4{
  font-family:var(--mono);
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--ochre);
  margin-bottom:0.8rem;
}
.tag-group ul{ list-style:none; display:flex; flex-wrap:wrap; gap:0.4rem; }
.tag-group li{
  font-size:0.82rem;
  background:var(--linen);
  padding:0.3rem 0.65rem;
  border-radius:20px;
  color:var(--bark-soft);
}

/* ---------- photo gallery (static grid, used sparingly) ---------- */
.gallery{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:0.8rem;
}
.gallery img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:var(--radius);
  transition:transform .35s ease;
}
.gallery a{ overflow:hidden; border-radius:var(--radius); display:block; }
.gallery a:hover img{ transform:scale(1.06); }

/* ---------- slideshow ---------- */
.slideshow{
  position:relative;
  background:var(--paper-dark);
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line-dark);
}
.slideshow-viewport{
  position:relative;
  width:100%;
  height:56.25vw;
  min-height:240px;
  max-height:560px;
  aspect-ratio:16/9;
  background:var(--paper-dark);
}
.slideshow-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease;
  background:var(--paper-dark);
}
.slideshow-slide.is-active{
  opacity:1;
  visibility:visible;
}
.slideshow-slide .responsive-picture,
.slideshow-slide picture{
  display:block;
  width:100%;
  height:100%;
}
.slideshow-slide img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:var(--paper-dark);
}
#boards-slideshow,
#boards-slideshow .slideshow-slide img{
  background:var(--paper-dark);
}
.future-recycled-materials-gallery{
  padding:0;
}
.slideshow-caption{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:2.2rem 1.4rem 1rem;
  background:linear-gradient(0deg, rgba(29,24,17,0.88) 0%, rgba(29,24,17,0) 100%);
  color:var(--cream);
  font-size:0.92rem;
  font-family:var(--serif);
  font-style:italic;
}
.slideshow-filename{
  display:block;
  margin-top:0.3rem;
  color:var(--linen-2);
  font-family:var(--mono);
  font-size:0.68rem;
  font-style:normal;
  letter-spacing:0.01em;
  overflow-wrap:anywhere;
}
.slideshow-size{
  display:block;
  margin-top:0.35rem;
  color:var(--white);
  font-family:var(--sans);
  font-size:0.92rem;
  font-style:normal;
  font-weight:700;
  letter-spacing:0.015em;
}
#chess-slideshow .slideshow-caption{ padding-bottom:3rem; }
.slideshow-product-info,
.home-gallery-introduction{
  display:grid;
  gap:0.35rem;
  align-content:start;
  padding:1.15rem 1.35rem;
  background:var(--fashion-night);
  border-top:2px solid var(--fashion-gold);
  color:var(--fashion-ivory);
}
.slideshow-product-copy{ display:grid; gap:0.35rem; }
.slideshow-product-info strong,
.home-gallery-introduction strong{ color:var(--fashion-gold); font-family:var(--serif); font-size:1.1rem; }
.slideshow-product-copy > span:not(.slideshow-size):not(.slideshow-filename):not(.slideshow-product-reference){ color:var(--linen-2); }
.product-handmade{ color:var(--fashion-gold); font-weight:700; }
.slideshow-product-info .slideshow-size{ margin-top:0.15rem; }
.slideshow-product-info .slideshow-filename{ margin-top:0.1rem; }
.slideshow-product-reference{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  gap:0.35rem;
  margin:0 0 0.35rem;
  padding:0.48rem 0.78rem;
  border:2px solid #71440C;
  border-radius:999px;
  background:#F2B64D;
  color:#171008;
  font-family:var(--sans);
  font-size:0.92rem;
  font-weight:800;
  line-height:1.15;
  letter-spacing:0.015em;
}
.slideshow-product-reference strong{
  color:#171008;
  font-family:inherit;
  font-size:1.08em;
}
.bespoke-market-guide{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:1.5rem;
  margin:0 0 2rem;
  padding:1.35rem 1.5rem;
  border:1px solid rgba(212,154,49,0.5);
  border-radius:var(--radius);
  background:var(--fashion-night);
  color:var(--fashion-ivory);
  box-shadow:var(--shadow-soft);
}
.bespoke-market-guide h3{ margin:0.25rem 0 0.5rem; color:var(--fashion-gold); }
.bespoke-market-guide p{ margin:0; max-width:760px; color:var(--linen-2); }
.bespoke-qr-placeholder{
  display:grid;
  place-items:center;
  align-content:center;
  width:116px;
  aspect-ratio:1;
  padding:0.6rem;
  border:2px dashed var(--fashion-gold);
  border-radius:0.65rem;
  background:rgba(255,255,255,0.06);
  color:var(--fashion-gold);
  text-align:center;
}
.bespoke-qr-placeholder span{ font-size:1.7rem; font-weight:900; letter-spacing:0.08em; }
.bespoke-qr-placeholder small{ font-size:0.68rem; line-height:1.2; }
.bespoke-qr-placeholder.collection-qr-code{
  width:128px;
  aspect-ratio:auto;
  border-style:solid;
  background:#fff;
  color:var(--bark);
}
.bespoke-qr-placeholder.collection-qr-code img{ display:block; width:100%; height:auto; }
.bespoke-qr-placeholder.collection-qr-code small{ margin-top:0.35rem; color:var(--bark); }
@media (max-width:640px){
  .bespoke-market-guide{ grid-template-columns:1fr; }
  .bespoke-qr-placeholder{ width:104px; }
  .gallery-qr-note{ margin-left:0; }
}
@media (max-width:860px){
  .gallery-heading-qr-row{
    grid-template-columns:1fr;
    gap:0.85rem;
  }
}
.product-listen-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.45rem;
  width:fit-content;
  min-height:2.8rem;
  margin-top:0.55rem;
  padding:0.6rem 0.9rem;
  border:2px solid var(--fashion-gold);
  border-radius:999px;
  background:var(--fashion-gold);
  color:var(--fashion-night);
  font-family:var(--sans);
  font-size:0.95rem;
  font-weight:800;
  cursor:pointer;
}
.product-listen-button:hover, .product-listen-button:focus-visible, .product-listen-button.is-speaking{ background:var(--fashion-pink); border-color:var(--fashion-pink); color:var(--white); }
.slideshow-product-info > .product-listen-button,
.home-gallery-introduction > .product-listen-button{ justify-self:end; }
.product-actions{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:0.7rem; align-items:center; margin-top:0.55rem; }
.product-actions .product-listen-button{ margin-top:0; }
.product-actions .slideshow-description-toggle{ margin:0; }
.product-contact-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.8rem;
  padding:0.6rem 0.95rem;
  border:2px solid var(--fashion-pink);
  border-radius:999px;
  background:var(--fashion-pink);
  color:var(--white);
  font-family:var(--sans);
  font-size:0.95rem;
  font-weight:800;
  cursor:pointer;
}
.product-contact-button:hover,
.product-contact-button:focus-visible{
  border-color:var(--fashion-gold);
  background:var(--fashion-gold);
  color:var(--fashion-night);
}
.product-contact-button[hidden]{ display:none; }
.contact-product-context{
  display:grid;
  gap:0.3rem;
  margin:0 0 1.25rem;
  padding:1rem 1.1rem;
  border:2px solid var(--ochre);
  border-radius:var(--radius);
  background:var(--cream);
  color:var(--bark);
}
.contact-product-context strong{
  color:var(--walnut);
  font-family:var(--serif);
  font-size:1.08rem;
}
.contact-product-context > span:last-child{
  font-family:var(--mono);
  font-size:0.78rem;
  font-weight:800;
  letter-spacing:0.04em;
}
#form_2 textarea[name="message"]{
  min-height:20rem;
  resize:vertical;
}
.product-how-to-play-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.8rem;
  padding:0.6rem 0.95rem;
  border:2px solid var(--fashion-gold);
  border-radius:999px;
  background:transparent;
  color:var(--fashion-gold);
  font-family:var(--sans);
  font-size:0.95rem;
  font-weight:800;
  cursor:pointer;
}
.product-how-to-play-button:hover, .product-how-to-play-button:focus-visible{ background:var(--fashion-pink); border-color:var(--fashion-pink); color:var(--white); }
.process-story-link{
  display:flex;
  justify-content:flex-end;
  margin:1.15rem 0 1.75rem;
}
.process-story-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.55rem;
  min-height:3.15rem;
  padding:0.7rem 1.05rem;
  border:2px solid #7E3043;
  border-radius:999px;
  background:#7E3043;
  color:#fff;
  font-family:var(--sans);
  font-size:0.96rem;
  font-weight:800;
  line-height:1.25;
  text-align:center;
  cursor:pointer;
  box-shadow:0 0.45rem 1rem rgba(67,35,25,0.16);
}
.process-story-button:hover, .process-story-button:focus-visible{
  border-color:var(--fashion-gold);
  background:var(--fashion-night);
  color:var(--fashion-gold);
}
.how-to-play-modal{
  position:fixed;
  z-index:1000;
  inset:0;
  display:grid;
  place-items:center;
  padding:1.25rem;
  background:rgba(22,17,12,0.76);
}
.how-to-play-modal[hidden]{ display:none; }
.how-to-play-dialog{
  position:relative;
  width:min(42rem, 100%);
  max-height:min(82vh, 48rem);
  overflow:auto;
  padding:2.2rem;
  border:2px solid var(--fashion-gold);
  border-radius:var(--radius);
  background:var(--fashion-night);
  color:var(--fashion-ivory);
  box-shadow:0 1.25rem 3rem rgba(0,0,0,0.42);
}
.how-to-play-dialog .eyebrow{ color:var(--fashion-gold); }
.how-to-play-dialog h3{ margin:0.2rem 2.5rem 1rem 0; color:var(--fashion-ivory); }
.how-to-play-dialog h4{ margin:1.5rem 0 0.6rem; color:var(--fashion-gold); }
.how-to-play-dialog h5{ margin:1rem 0 0.35rem; color:var(--fashion-ivory); font-family:var(--sans); font-size:1rem; }
.how-to-play-dialog p{ margin:0.55rem 0; color:var(--linen-2); }
.how-to-play-dialog.wood-story-dialog{ width:min(48rem, 100%); }
.wood-story-dialog .story-opening{
  margin-bottom:1.25rem;
  color:var(--fashion-ivory);
  font-size:1.08rem;
}
.wood-story-dialog .story-closing{
  margin-top:1.4rem;
  padding:1rem 1.1rem;
  border-left:4px solid var(--fashion-gold);
  background:rgba(212,154,49,0.1);
  color:var(--fashion-ivory);
}
.how-to-play-close{
  position:absolute;
  top:0.85rem;
  right:0.85rem;
  width:2.7rem;
  height:2.7rem;
  border:2px solid var(--fashion-gold);
  border-radius:50%;
  background:transparent;
  color:var(--fashion-gold);
  font-size:1.65rem;
  line-height:1;
  cursor:pointer;
}
.how-to-play-close:hover, .how-to-play-close:focus-visible{ background:var(--fashion-pink); border-color:var(--fashion-pink); color:var(--white); }
html.modal-open{ overflow:hidden; }
.listen-section{ background:var(--cream); padding:2.5rem 0; }
.listen-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:1.8rem 2rem;
  background:var(--fashion-night);
  border:1px solid rgba(226,163,58,0.72);
  border-radius:var(--radius);
  color:var(--fashion-ivory);
  box-shadow:var(--shadow);
}
.listen-card .eyebrow{ color:var(--fashion-gold); }
.listen-card h2{ margin:0.25rem 0 0.55rem; color:var(--fashion-ivory); }
.listen-card p{ margin:0; max-width:46rem; color:var(--linen-2); }
.listen-controls{ flex:none; min-width:13rem; }
.listen-button{ width:100%; background:var(--fashion-gold); color:var(--fashion-night); }
.listen-button:hover{ background:var(--fashion-pink); color:var(--white); }
.listen-status{ min-height:1.35em; margin-top:0.7rem !important; font-size:0.82rem; text-align:center; }
.section-title-with-audio{ display:flex; align-items:center; flex-wrap:wrap; gap:0.55rem; width:100%; }
.section-title-with-audio .section-listen-button{ margin-left:auto; }
.section-listen-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.45rem;
  min-width:8rem;
  min-height:3rem;
  padding:0.6rem 0.9rem;
  border:2px solid var(--fashion-gold);
  border-radius:999px;
  background:var(--fashion-gold);
  color:var(--fashion-night);
  font-family:var(--sans);
  font-size:1rem;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,0.18);
}
.section-listen-visible-label{ letter-spacing:0.01em; }
.section-listen-button:hover, .section-listen-button:focus-visible, .section-listen-button.is-speaking{ background:var(--fashion-pink); border-color:var(--fashion-pink); color:var(--white); }
.footer-association-link{
  display:inline-block;
  margin-top:0.7rem;
  color:var(--fashion-gold);
  font-weight:800;
  text-decoration-thickness:2px;
  text-underline-offset:0.18em;
}
.footer-association-link:hover, .footer-association-link:focus-visible{ color:var(--fashion-pink); }
@media (max-width:760px){
  .listen-card{ align-items:stretch; flex-direction:column; padding:1.5rem; gap:1.25rem; }
  .listen-controls{ min-width:0; }
}
/* Keep every gallery frame consistently dark, including photographs whose
   own composition leaves space around the creation. */
#laser-creations-slideshow,
#laser-creations-slideshow .slideshow-slide,
#laser-creations-slideshow .slideshow-slide img{
  background:var(--paper-dark);
}
#laser-creations-slideshow .slideshow-dots{
  gap:0.28rem;
  padding:0 3.75rem;
}
#laser-creations-slideshow .slideshow-dots .dot{
  width:8px;
  height:8px;
}

/* Complementary photography invitation on the home pages. The deep teal is a
   new colour in the page while remaining calm beside the site's warm woods. */
.photo-discovery{
  padding:3.8rem 0;
  background:
    radial-gradient(circle at 86% 18%, rgba(255,255,255,0.13), transparent 28%),
    linear-gradient(135deg, #174f58, #2b7374);
  color:#f8f3e8;
  border-top:2px solid #0e3b42;
  border-bottom:2px solid #0e3b42;
}
.photo-discovery-card{
  max-width:920px;
  padding:0.4rem 0;
}
.photo-discovery .eyebrow{ color:#ffd77c; }
.photo-discovery h2{
  max-width:760px;
  margin:0 0 1.2rem;
  color:#fff;
  font-size:clamp(1.8rem, 4vw, 2.7rem);
}
.photo-discovery p{
  max-width:850px;
  margin:0 0 0.9rem;
  color:#f8f3e8;
}
.photo-discovery p a{
  color:#ffe09a;
  font-weight:800;
  text-underline-offset:0.2em;
}
.photo-discovery-link{
  display:inline-flex;
  align-items:center;
  gap:0.55rem;
  min-height:48px;
  margin-top:0.65rem;
  padding:0.72rem 1.05rem;
  border:2px solid #71440c;
  border-radius:999px;
  background:#f2b64d;
  color:#171008;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 5px 16px rgba(0,0,0,0.2);
}
.photo-discovery-link:hover,
.photo-discovery-link:focus-visible{
  background:#ffd77c;
  transform:translateY(-1px);
}

/* On a full desktop screen, let the site's principal explanatory copy use the
   same available width as the gallery and slider panels. Compact headings,
   cards and hero text keep their deliberately shorter line lengths. */
@media (min-width:901px){
  .section-head,
  .laser-intro-copy,
  .research-copy,
  .research-weapons,
  .craft-wellbeing-copy,
  .ideas-copy,
  .fashion-copy,
  .cultural-copy,
  .recycle-copy,
  .gallery-uniqueness-note,
  .gallery-introduction,
  .photo-discovery-card{
    width:100%;
    max-width:none;
  }

  .laser-intro-copy p,
  .research-copy p,
  .research-weapons p,
  .craft-wellbeing-copy p,
  .ideas-copy p,
  .fashion-copy p,
  .cultural-copy p,
  .recycle-copy p,
  .gallery-uniqueness-note p,
  .gallery-introduction p,
  .photo-discovery p,
  .reimagined-copy p,
  .listen-card p,
  .bespoke-market-guide p,
  .section-head > p{
    max-width:none;
  }
}

.partner-banner{
  border-top:2px solid var(--bark);
  background:var(--linen);
  padding:2.5rem 0;
}
.partner-logos{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.65rem;
  flex-wrap:nowrap;
  overflow-x:auto;
  padding:0.2rem;
}
.partner-logos img{
  width:92px;
  height:48px;
  padding:0.25rem;
  flex:none;
  object-fit:contain;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.field input.error,.field textarea.error{ border-color:#b54532; box-shadow:0 0 0 2px rgba(181,69,50,.16); }
@media (max-width:560px){ .partner-logos{ justify-content:flex-start; }.partner-logos img{ width:76px; height:42px; } }
@media (max-width:560px){
  .photo-discovery{ padding:2.8rem 0; }
  #laser-creations-slideshow .slideshow-dots{
    gap:0.2rem;
    padding:0 3.2rem;
  }
  #laser-creations-slideshow .slideshow-dots .dot{
    width:6px;
    height:6px;
    border-width:1px;
  }
}
.slide-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:42px; height:42px;
  border-radius:50%;
  border:none;
  background:rgba(29,24,17,0.55);
  color:var(--cream);
  font-size:1.1rem;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s ease;
  z-index:3;
}
.slide-arrow:hover{ background:var(--walnut); }
.slide-prev{ left:14px; }
.slide-next{ right:14px; }
.slideshow-pause{
  position:absolute;
  top:0.8rem;
  right:0.8rem;
  z-index:6;
  min-height:44px;
  padding:0.5rem 0.8rem;
  border:1px solid rgba(250,246,234,0.85);
  border-radius:var(--radius);
  background:rgba(29,24,17,0.88);
  color:var(--cream);
  font-family:var(--sans);
  font-size:0.86rem;
  font-weight:600;
  cursor:pointer;
}
.slideshow-pause:hover, .slideshow-pause[aria-pressed="true"]{ background:var(--fashion-gold); border-color:var(--fashion-gold); color:var(--fashion-night); }
.slideshow-dots{
  position:absolute;
  bottom:0.9rem;
  left:0; right:0;
  z-index:3;
  display:flex;
  justify-content:center;
  gap:0.5rem;
}
.slideshow-dots .dot{
  width:9px; height:9px;
  border-radius:50%;
  border:1.5px solid var(--cream);
  background:transparent;
  padding:0;
  cursor:pointer;
  opacity:0.7;
  transition:background .2s ease, opacity .2s ease;
}
.slideshow-dots .dot.is-active{
  background:var(--ochre);
  border-color:var(--ochre);
  opacity:1;
}
.slideshow-thumbs{
  display:flex;
  gap:0.5rem;
  padding:0.6rem;
  background:var(--bark);
  overflow-x:auto;
}
.slideshow-thumbs button{
  flex:none;
  width:64px; height:48px;
  padding:0;
  border:2px solid transparent;
  border-radius:2px;
  overflow:hidden;
  cursor:pointer;
  opacity:0.6;
  transition:opacity .2s ease, border-color .2s ease;
}
.slideshow-thumbs button.is-active{ opacity:1; border-color:var(--ochre); }
.slideshow-thumbs img{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- site search ---------- */
.site-search{
  background:var(--linen);
  border-top:1px solid var(--line);
  padding:3.8rem 0;
}
.site-search-inner{ max-width:760px; }
.site-search h2{ margin:0.35rem 0 1.5rem; }
.site-search-form{
  display:flex;
  align-items:center;
  gap:0.8rem;
}
.site-search-form input{
  flex:1;
  min-width:0;
  padding:0.78rem 0.95rem;
  border:1px solid var(--line-dark);
  border-radius:var(--radius);
  background:var(--white);
  color:var(--bark);
  font-family:var(--sans);
  font-size:0.95rem;
}
.product-how-to-play-button[hidden]{ display:none; }
.site-search-form input:focus{ outline:2px solid var(--sage); outline-offset:2px; }
.site-search-results{ margin-top:1.25rem; color:var(--bark-soft); }
.site-search-results:empty{ display:none; }
.site-search-count{ margin:0 0 0.6rem; font-family:var(--mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.07em; }
.site-search-results ul{ margin:0; padding:0; list-style:none; display:grid; gap:0.45rem; }
.site-search-results a{ display:block; padding:0.7rem 0.85rem; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); color:var(--bark); text-decoration:none; }
.site-search-results a:hover{ border-color:var(--ochre); background:var(--cream); }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Long-form page copy keeps a useful five-line preview. */
.mobile-read-summary.is-collapsed{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:5;
  overflow:hidden;
}
/* Gallery information panels stay deliberately short: the reference, title,
   controls and closing line remain visible while details expand on request. */
.slideshow-product-description.is-collapsed{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.mobile-read-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  justify-self:start;
  min-height:2.75rem;
  margin:0.7rem 0 1.25rem;
  padding:0.55rem 1rem;
  border:2px solid var(--sage);
  border-radius:999px;
  background:var(--sage);
  color:var(--white);
  font-family:var(--sans);
  font-size:0.95rem;
  font-weight:800;
  cursor:pointer;
}
.mobile-read-toggle:hover,
.mobile-read-toggle:focus-visible{
  background:var(--fashion-pink);
  border-color:var(--fashion-pink);
  outline:none;
}
.slideshow-description-toggle{
  margin:0.45rem 0 0.8rem;
  border-color:var(--fashion-gold);
  background:transparent;
  color:var(--fashion-ivory);
}
.slideshow-description-toggle:hover,
.slideshow-description-toggle:focus-visible{
  background:var(--fashion-gold);
  border-color:var(--fashion-gold);
  color:var(--fashion-night);
}
.product-closing-statement{
  display:block;
  margin-top:0.55rem;
  padding-top:0.7rem;
  border-top:1px solid rgba(242,182,77,0.45);
  line-height:1.55;
}
.mobile-read-toggle[hidden]{ display:none; }

@media (max-width:560px){
  .mobile-read-summary.is-collapsed{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:5;
    overflow:hidden;
  }
  .mobile-read-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:2.75rem;
    margin:0.7rem 0 1.25rem;
    padding:0.55rem 1rem;
    border:2px solid var(--sage);
    border-radius:999px;
    background:var(--sage);
    color:var(--white);
    font-family:var(--sans);
    font-size:0.95rem;
    font-weight:800;
    cursor:pointer;
  }
  .mobile-read-toggle:hover,
  .mobile-read-toggle:focus-visible{
    background:var(--fashion-pink);
    border-color:var(--fashion-pink);
    outline:none;
  }
  .slideshow-viewport{ height:75vw; min-height:240px; max-height:480px; aspect-ratio:4/3; }
  .slideshow-thumbs button{ width:48px; height:36px; }
  .site-search{ padding:3rem 0; }
  .site-search-form{ align-items:stretch; flex-direction:column; }
  .site-search-form .cta-btn{ width:100%; }
}

/* ---------- under construction ---------- */
.construction{
  text-align:center;
  padding:4rem 2rem;
  background:var(--linen);
  border:2px dashed var(--line);
  border-radius:var(--radius);
}
.construction .icon{ font-size:2.4rem; margin-bottom:1rem; }
.construction h2{ margin-bottom:0.7rem; }
.construction p{ margin:0 auto; }

/* ---------- contact ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
}
.field{ margin-bottom:1.2rem; }
.field label{
  display:block;
  font-family:var(--mono);
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.07em;
  margin-bottom:0.4rem;
  color:var(--bark-soft);
}
.field input, .field textarea{
  width:100%;
  padding:0.75rem 0.9rem;
  border:1px solid var(--line);
  border-radius:var(--radius);
  font-family:var(--sans);
  font-size:0.95rem;
  background:var(--white);
  color:var(--bark);
}
.field input:focus, .field textarea:focus{
  outline:2px solid var(--sage);
  outline-offset:1px;
}
.field textarea{ min-height:140px; resize:vertical; }

.contact-info{ display:flex; flex-direction:column; gap:1.4rem; }
.contact-info .item{ display:flex; gap:0.9rem; align-items:flex-start; }
.contact-info .item .k{
  font-family:var(--mono);
  font-size:0.7rem;
  text-transform:uppercase;
  color:var(--ochre);
  letter-spacing:0.08em;
  display:block;
  margin-bottom:0.2rem;
}
.contact-info a{ text-decoration:none; color:var(--walnut); font-weight:600; }
.contact-info a:hover{ text-decoration:underline; }

/* ---------- footer ---------- */
footer.site{
  background:var(--bark);
  color:var(--linen-2);
  padding:3rem 0 1.6rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:2.5rem;
  margin-bottom:2.5rem;
}
.footer-heading{
  font-family:var(--mono);
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--ochre);
  margin-bottom:1rem;
}
.footer-grid ul{ list-style:none; display:flex; flex-direction:column; gap:0.55rem; }
.footer-grid a{ text-decoration:none; color:var(--linen-2); font-size:0.9rem; }
.footer-grid a:hover{ color:var(--cream); }
.footer-brand .plaque{ margin-bottom:1rem; }
.footer-brand p{ color:var(--linen-2); font-size:0.88rem; }
.footer-bottom{
  border-top:1px solid rgba(239,228,203,0.15);
  padding-top:1.4rem;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:0.6rem;
  font-size:0.78rem;
  font-family:var(--mono);
  color:var(--line);
}

/* ---------- utility ---------- */
.center-btn{ text-align:center; margin-top:2.5rem; }
.mt{ margin-top:2.5rem; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:920px){
  .pillars{ grid-template-columns:1fr; }
  .two-col{ grid-template-columns:1fr; gap:2rem; }
  .two-col .col-img{ order:-1 !important; }
  .feature-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; gap:2rem; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .footer-brand{ grid-column:span 2; }
  .gallery{ grid-template-columns:repeat(2, 1fr); }
}

/* Keep the brand clear on laptops and tablets. At these widths the compact
   menu is easier to use than squeezing the navigation alongside the logo. */
@media (min-width:761px) and (max-width:2400px){
  nav.primary{
    display:none;
    position:absolute;
    top:100%; left:0; right:0;
    max-height:calc(100vh - 5.5rem);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:var(--fashion-night);
    border-bottom:2px solid var(--fashion-gold);
    box-shadow:0 12px 20px rgba(0,0,0,0.12);
  }
  nav.primary.open{ display:block; }
  nav.primary ul{ flex-direction:column; padding:0.6rem; gap:0; }
  nav.primary > ul > li{ width:100%; }
  nav.primary a{ padding:0.85rem 0.9rem; }
  nav.primary .submenu{
    position:static;
    box-shadow:none;
    border:none;
    background:var(--fashion-navy);
    margin:0.2rem 0 0.3rem;
    display:none;
  }
  nav.primary .submenu a{ color:var(--fashion-ivory); }
  nav.primary .submenu a:hover{ background:rgba(226,163,58,0.17); color:var(--fashion-gold); }
  nav.primary li.expanded > .submenu{ display:block; }
  .menu-toggle{ display:block; }
  .cta-btn.header-cta{ display:none; }
  .menu-toggle, .text-size-toggle{
    min-height:56px;
    height:56px;
    position:relative;
  }
  .menu-toggle span{ top:17px; }
  .text-size-toggle{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 0 15px;
  }
  .menu-toggle::after, .text-size-toggle::after{
    content:attr(data-mobile-label);
    position:absolute;
    left:0;
    right:0;
    bottom:5px;
    color:var(--white);
    font-family:var(--mono);
    font-size:0.52rem;
    font-weight:500;
    letter-spacing:0.02em;
    line-height:1;
    text-align:center;
    white-space:nowrap;
  }
}

@media (max-width:760px){
  .nav-row{ padding:0.8rem 4vw; gap:0.65rem; }
  .brand{ font-size:1.18rem; gap:0.5rem; }
  .brand .mark{ width:40px; height:40px; }
  .nav-row > div:last-child{ gap:0.35rem !important; }
  nav.primary{
    display:none;
    position:absolute;
    top:100%; left:0; right:0;
    max-height:calc(100vh - 5rem);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:var(--fashion-night);
    border-bottom:2px solid var(--fashion-gold);
    box-shadow:0 12px 20px rgba(0,0,0,0.12);
  }
  nav.primary.open{ display:block; }
  nav.primary ul{ flex-direction:column; padding:0.6rem; gap:0; }
  nav.primary > ul > li{ width:100%; }
  nav.primary a{ padding:0.85rem 0.9rem; }
  nav.primary .submenu{
    position:static;
    box-shadow:none;
    border:none;
    background:var(--fashion-navy);
    margin:0.2rem 0 0.3rem;
    display:none;
  }
  nav.primary .submenu a{ color:var(--fashion-ivory); }
  nav.primary .submenu a:hover{ background:rgba(226,163,58,0.17); color:var(--fashion-gold); }
  nav.primary li.expanded > .submenu{ display:block; }
  .menu-toggle{ display:block; }
  .cta-btn.header-cta{ display:none; }
  .sms-contact-button{ right:0.8rem; bottom:0.8rem; }

  /* Product names and descriptions are already presented in the information
     panel beneath each gallery image. On phones, remove the duplicate caption
     from the photograph so it never obscures the creation. */
  #laser-slideshow .slideshow-caption,
  #bags-slideshow .slideshow-caption,
  #chess-slideshow .slideshow-caption,
  #clocks-slideshow .slideshow-caption,
  #lamps-slideshow .slideshow-caption{
    display:none;
  }
  /* On a narrow screen every overlaid caption can obscure important detail.
     Descriptions remain available below product galleries and through the
     accessible image text, so keep all photographs clear on phones. */
  .slideshow-caption{ display:none; }

  /* The symbols remain compact, but their meaning is always visible on touch
     screens where a hover description cannot be used. */
  .menu-toggle, .text-size-toggle{
    min-height:56px;
    height:56px;
    position:relative;
  }
  .menu-toggle span{ top:17px; }
  .text-size-toggle{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 0 15px;
  }
  .menu-toggle::after, .text-size-toggle::after{
    content:attr(data-mobile-label);
    position:absolute;
    left:0;
    right:0;
    bottom:5px;
    color:var(--white);
    font-family:var(--mono);
    font-size:0.52rem;
    font-weight:500;
    letter-spacing:0.02em;
    line-height:1;
    text-align:center;
    white-space:nowrap;
  }

  .hero{ min-height:80vh; }
  .hero-body{ width:100%; min-width:0; }
  .cta-btn{ max-width:100%; white-space:normal; text-align:center; }
  .fashion-market-plaque{ margin-top:1.6rem; padding:1.65rem 1.1rem 1.5rem; }
  .fashion-collection-nav{ display:block; padding:1rem; }
  .fashion-collection-nav > strong{ display:block; padding:0 0 0.75rem; }
  .fashion-collection-links{ gap:0.5rem; }
  .fashion-collection-links a{ min-height:44px; font-size:0.82rem; }
  .fashion-gallery-item{ scroll-margin-top:7rem; }
  .fashion-gallery-item:target{ outline-offset:5px; }
  .fashion-gallery-item:target::before{ border-radius:0.6rem; line-height:1.35; }
  .fashion-category-head{ width:100%; padding:0.9rem 1rem; }
  .future-gallery-frame{ min-height:220px; padding:1.5rem 1rem; }
  .association-story-grid{ grid-template-columns:1fr; gap:1rem; }
  .featured-news-inner{ align-items:flex-start; flex-direction:column; gap:1rem; }
  .schedule{ font-size:0.82rem; table-layout:fixed; }
  .schedule th, .schedule td{ padding:0.55rem 0.3rem; overflow-wrap:anywhere; }
  .schedule .time{ font-size:0.72rem; }
  .board-list li{ flex-direction:column; gap:0.2rem; }
  .board-list .when{ min-width:0; }
  .footer-grid{ grid-template-columns:1fr; }
  .footer-brand{ grid-column:span 1; }
}

@media (max-width:390px){
  .brand{ font-size:1.05rem; }
  .brand .mark{ width:35px; height:35px; }
  .language-switch{ padding-left:0.3rem; padding-right:0.3rem; font-size:0.7rem; }
}

@media (max-width:560px){
  .gallery{ grid-template-columns:repeat(2, 1fr); }
  .saturday-grid{ grid-template-columns:1fr; }
  .partner-logos{ justify-content:center; flex-wrap:wrap; overflow-x:visible; width:100%; max-width:100%; }
  section{ padding:3.6rem 0; }
}

/* ---------- accessibility ---------- */
a:focus-visible, button:focus-visible{
  outline:3px solid var(--fashion-gold);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
