
/* ==========================================================================
   IGNIS JEWELLERY — everything in one file, on purpose: open this .html
   directly (double-click) or upload it as-is to Netlify. No other files
   are required for the site to render and work.
   ========================================================================== */

:root{
  --ivory: #FBFAF6; --sand:#F2EDE3; --sand-deep:#E7DFCF;
  --ink:#2B2621; --ink-soft:#5C544C; --ink-faint:#948A7C;
  --gold:#93703A; --gold-soft:#C9AD79; --ember:#9A4A2C; --line:#E3DACB; --white:#FFFFFF;
  --serif:'Cormorant Garamond', serif; --sans:'Jost', sans-serif;
  --container:1240px; --ease:cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--ivory); color:var(--ink); font-family:var(--sans); font-weight:300; font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased; letter-spacing:.01em; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
::selection{ background:var(--gold-soft); color:var(--ink); }
:focus-visible{ outline:1.5px solid var(--ember); outline-offset:3px; }
.container{ max-width:var(--container); margin:0 auto; padding:0 40px; }
@media (max-width:720px){ .container{ padding:0 22px; } }

.eyebrow{ font-size:11px; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); font-weight:500; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:400; color:var(--ink); margin:0; letter-spacing:.01em; }
h1{ font-size:clamp(2.6rem,5vw,4.4rem); line-height:1.05; font-weight:300; }
h2{ font-size:clamp(1.9rem,3.2vw,2.7rem); font-weight:400; }
h3{ font-size:1.5rem; }
.lede{ font-family:var(--serif); font-size:1.3rem; font-style:italic; color:var(--ink-soft); font-weight:400; }
.muted{ color:var(--ink-soft); }
.small{ font-size:.84rem; }

.filigree{ display:block; margin:0 auto; stroke:var(--gold); fill:none; stroke-width:1; opacity:.85; width:148px; height:34px; }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 34px; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; font-weight:500; border:1px solid var(--ink); background:transparent; color:var(--ink); transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease); white-space:nowrap; }
.btn:hover{ background:var(--ink); color:var(--ivory); }
.btn--solid{ background:var(--ink); color:var(--ivory); border-color:var(--ink); }
.btn--solid:hover{ background:var(--ember); border-color:var(--ember); color:var(--white); }
.btn--gold{ border-color:var(--gold); color:var(--gold); }
.btn--gold:hover{ background:var(--gold); color:var(--white); border-color:var(--gold); }
.btn--full{ width:100%; }
.btn[disabled]{ opacity:.4; cursor:not-allowed; }

.announce{ background:var(--ink); color:var(--sand); text-align:center; font-size:11px; letter-spacing:.22em; text-transform:uppercase; padding:9px 0; }

header.site{ position:sticky; top:0; z-index:50; background:rgba(251,250,246,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.header-inner{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:30px; padding:20px 40px; max-width:var(--container); margin:0 auto; }
.logo{ font-family:var(--serif); font-style:italic; font-size:1.85rem; color:var(--ink); white-space:nowrap; cursor:pointer; display:inline-block; }
.logo small{ display:block; font-family:var(--sans); font-style:normal; font-size:9px; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-faint); margin-top:6px; text-align:center; }
.logo-img{ display:block; height:auto; }
.logo--header .logo-img{ height:30px; width:auto; }
.logo--footer{ margin-bottom:14px; }
.logo--footer .logo-img{ height:34px; width:auto; }
.mobile-nav-logo{ margin-bottom:8px; cursor:pointer; }
.mobile-nav-logo .logo-img{ height:32px; width:auto; }
@media (max-width:900px){ .logo--header .logo-img{ height:24px; } }
nav.primary{ display:flex; gap:34px; justify-content:center; }
nav.primary a{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); position:relative; padding-bottom:4px; cursor:pointer; }
nav.primary a::after{ content:''; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--gold); transition:right .3s var(--ease); }
nav.primary a:hover::after, nav.primary a.active::after{ right:0; }
nav.primary a.active{ color:var(--ink); }
.header-tools{ display:flex; align-items:center; justify-content:flex-end; gap:22px; }
.header-tools a, .header-tools button{ background:none; border:none; color:var(--ink); display:flex; align-items:center; cursor:pointer; }
.icon-btn{ position:relative; }
.icon-btn .badge{ position:absolute; top:-7px; right:-9px; background:var(--ember); color:#fff; font-size:9px; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.nav-toggle{ display:none; }
@media (max-width:900px){
  .header-inner{ grid-template-columns:auto 1fr auto; padding:18px 22px; }
  nav.primary{ display:none; }
  .logo{ font-size:1.5rem; }
  .nav-toggle{ display:flex; align-items:center; justify-content:center; width:26px; height:20px; flex-direction:column; justify-content:space-between; background:none; border:none; }
  .nav-toggle span{ height:1px; background:var(--ink); width:100%; }
}
.mobile-nav{ position:fixed; inset:0; background:var(--ivory); z-index:80; display:flex; flex-direction:column; padding:26px 30px; transform:translateX(-100%); transition:transform .4s var(--ease); }
.mobile-nav.open{ transform:translateX(0); }
.mobile-nav .close-x{ align-self:flex-end; background:none; border:none; font-size:1.6rem; color:var(--ink); }
.mobile-nav a{ font-family:var(--serif); font-size:1.7rem; padding:14px 0; border-bottom:1px solid var(--line); cursor:pointer; }

.hero{ position:relative; height:84vh; min-height:560px; display:flex; align-items:flex-end; overflow:hidden; background:linear-gradient(160deg,#EFE7D8 0%,#E4D8C2 45%,#D8C6A5 100%); }
.hero img.hero-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:70% 30%; }
.hero .scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,15,10,.55) 0%, rgba(20,15,10,.15) 45%, rgba(255,255,255,.06) 100%); }
.hero-content{ position:relative; z-index:2; padding:0 40px 76px; max-width:var(--container); margin:0 auto; width:100%; }
.hero .eyebrow{ margin-bottom:18px; color:var(--gold-soft); }
.hero h1{ max-width:640px; color:var(--white); }
.hero p.lede{ max-width:460px; margin-top:18px; color:rgba(255,255,255,.86); font-style:italic; }
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }
.hero-actions .btn{ border-color:var(--white); color:var(--white); }
.hero-actions .btn:hover{ background:var(--white); color:var(--ink); }
.hero-actions .btn--solid{ background:var(--white); color:var(--ink); }
.hero-actions .btn--solid:hover{ background:var(--ember); border-color:var(--ember); color:var(--white); }

section{ padding:108px 0; }
section.tight{ padding:72px 0; }
section.on-sand{ background:var(--sand); }
@media (max-width:720px){ section{ padding:66px 0; } }
.section-head{ text-align:center; max-width:640px; margin:0 auto 56px; }
.section-head .eyebrow{ display:block; margin-bottom:14px; }
.section-head p{ margin-top:16px; }

.statement{ text-align:center; max-width:760px; margin:0 auto; }
.statement p{ font-family:var(--serif); font-size:1.5rem; line-height:1.6; color:var(--ink-soft); font-weight:400; }
.statement p + p{ margin-top:22px; }

.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:4px; }
@media (max-width:860px){ .grid-3{ grid-template-columns:1fr; gap:18px; } }
.collection-card{ position:relative; overflow:hidden; aspect-ratio:3/4; background:var(--sand-deep); cursor:pointer; }
.collection-card .ph{ position:absolute; inset:0; }
.collection-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; transition:transform .8s var(--ease); }
.collection-card:hover img{ transform:scale(1.045); }
.collection-card .cap{ position:absolute; left:0; right:0; bottom:0; padding:26px 24px; background:linear-gradient(0deg, rgba(20,16,12,.55), transparent 70%); color:#fff; }
.collection-card .cap span{ font-family:var(--serif); font-style:italic; font-size:1.5rem; }
.collection-card .cap small{ display:block; margin-top:6px; font-size:10px; letter-spacing:.2em; text-transform:uppercase; opacity:.85; }

.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:34px 26px; }
@media (max-width:980px){ .grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .grid-4{ grid-template-columns:1fr 1fr; gap:22px 14px; } }
.card{ display:block; cursor:pointer; }
.card-media{ position:relative; aspect-ratio:4/5; background:var(--sand); overflow:hidden; margin-bottom:16px; }
.card-media .ph{ position:absolute; inset:0; }
.card-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 25%; transition:transform .7s var(--ease); }
.card:hover .card-media img{ transform:scale(1.05); }
.card-media .tag{ position:absolute; top:12px; left:12px; background:var(--ivory); color:var(--ink); font-size:9px; letter-spacing:.16em; text-transform:uppercase; padding:5px 10px; }
.card-media .quick{ position:absolute; left:12px; right:12px; bottom:12px; opacity:0; transform:translateY(6px); transition:all .3s var(--ease); }
.card:hover .card-media .quick{ opacity:1; transform:translateY(0); }
.card-title{ font-family:var(--serif); font-size:1.15rem; margin-bottom:4px; }
.card-price{ font-size:.84rem; color:var(--ink-soft); letter-spacing:.03em; }
.card-tagline{ font-size:.82rem; color:var(--ink-faint); margin-top:6px; line-height:1.5; }

.ph{ background:radial-gradient(circle at 30% 25%, rgba(255,255,255,.55), transparent 42%), linear-gradient(150deg,#EFE7D8,#DCC9A8 60%,#C9AD79 120%); display:flex; align-items:center; justify-content:center; }
.ph svg{ width:38%; opacity:.5; stroke:var(--ink); }
.ph.ph--dark{ background:linear-gradient(150deg,#46362A,#241C16 75%); }
.ph.ph--dark svg{ stroke:var(--sand); opacity:.35; }

.teaser{ display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:70px; }
@media (max-width:900px){ .teaser{ grid-template-columns:1fr; gap:40px; } }
.teaser-copy p{ margin:18px 0 30px; color:var(--ink-soft); max-width:460px; }
.teaser-copy ul{ margin-bottom:30px; }
.teaser-copy li{ padding-left:26px; position:relative; margin-bottom:10px; color:var(--ink-soft); font-size:.95rem; }
.teaser-copy li::before{ content:''; position:absolute; left:0; top:10px; width:14px; height:1px; background:var(--gold); }
.teaser-media{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.teaser-media .ph{ aspect-ratio:3/4; }
.teaser-media .ph:nth-child(2), .teaser-media img:nth-child(2){ margin-top:36px; }
.teaser-media img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }

.values{ display:flex; justify-content:center; flex-wrap:wrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.values .val{ flex:1; min-width:150px; text-align:center; padding:30px 18px; border-left:1px solid var(--line); font-family:var(--serif); font-style:italic; font-size:1.15rem; color:var(--ink-soft); }
.values .val:first-child{ border-left:none; }
@media (max-width:720px){ .values .val{ border-left:none; border-top:1px solid var(--line); flex:1 1 50%; } }

.how-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:44px; max-width:960px; margin:0 auto; }
@media (max-width:820px){ .how-grid{ grid-template-columns:1fr; gap:34px; max-width:440px; } }
.how-item{ text-align:center; }
.how-icon{
  width:60px; height:60px; margin:0 auto 20px; border-radius:50%;
  border:1px solid var(--line); background:var(--ivory);
  display:flex; align-items:center; justify-content:center;
}
.how-icon svg{ width:24px; height:24px; stroke:var(--gold); fill:var(--gold); }
.how-item h4{ font-family:var(--serif); font-weight:400; font-size:1.2rem; margin-bottom:10px; }
.how-item p{ color:var(--ink-soft); font-size:.9rem; margin:0; }

.atelier-line{ text-align:center; font-size:.92rem; color:var(--ink-soft); }
.atelier-line strong{ display:block; font-family:var(--serif); font-size:1.2rem; color:var(--ink); font-weight:400; margin-bottom:4px; }

.reviews-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:40px; flex-wrap:wrap; gap:14px; }
.stars{ color:var(--gold); letter-spacing:3px; font-size:1rem; }
.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
@media (max-width:900px){ .review-grid{ grid-template-columns:1fr; } }
.review-card{ border:1px solid var(--line); padding:30px 28px; background:var(--ivory); }
.review-card .stars{ margin-bottom:14px; display:block; }
.review-card p{ color:var(--ink-soft); font-size:.95rem; }
.review-card .who{ margin-top:18px; font-family:var(--serif); font-style:italic; font-size:1rem; }

.newsletter{ text-align:center; max-width:520px; margin:0 auto; }
.newsletter form{ display:flex; margin-top:26px; border-bottom:1px solid var(--ink); }
.newsletter input{ flex:1; border:none; background:none; padding:12px 4px; font-family:var(--sans); font-size:.95rem; color:var(--ink); }
.newsletter input:focus{ outline:none; }
.newsletter button{ background:none; border:none; font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--gold); padding:0 6px; }

footer.site{ border-top:1px solid var(--line); padding:70px 0 30px; background:var(--sand); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:50px; border-bottom:1px solid var(--line); margin-bottom:26px; }
@media (max-width:800px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
.footer-grid .logo{ text-align:left; margin-bottom:14px; cursor:pointer; }
.footer-grid p{ color:var(--ink-soft); font-size:.88rem; max-width:280px; }
.footer-col h4{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); margin-bottom:18px; font-weight:500; }
.footer-col li{ margin-bottom:10px; }
.footer-col a{ color:var(--ink-soft); font-size:.9rem; transition:color .25s; cursor:pointer; }
.footer-col a:hover{ color:var(--ember); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-size:.8rem; color:var(--ink-faint); }
.footer-bottom .pay{ display:flex; gap:8px; }
.footer-bottom .pay span{ border:1px solid var(--line); padding:3px 8px; font-size:10px; letter-spacing:.05em; }

.page-head{ padding:150px 0 50px; text-align:center; }
.page-head .crumb{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:18px; }
.page-head .crumb a{ cursor:pointer; }
.page-head .crumb a:hover{ color:var(--ember); }
.page-head p{ max-width:560px; margin:16px auto 0; color:var(--ink-soft); }

.toolbar{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:46px; }
.filters{ display:flex; gap:10px; flex-wrap:wrap; }
.filters button{ background:none; border:1px solid var(--line); padding:9px 20px; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); transition:all .25s; }
.filters button.active, .filters button:hover{ border-color:var(--ink); color:var(--ink); }
.count{ font-size:.85rem; color:var(--ink-faint); }

.product-detail{ display:grid; grid-template-columns:1.1fr 1fr; gap:70px; }
@media (max-width:900px){ .product-detail{ grid-template-columns:1fr; gap:34px; } }
.product-gallery .ph{ aspect-ratio:1/1; margin-bottom:10px; }
.product-gallery img.main{ width:100%; aspect-ratio:1/1; object-fit:cover; margin-bottom:10px; display:block; }
.thumbs{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.thumbs .ph{ aspect-ratio:1/1; cursor:pointer; opacity:.65; }
.thumbs img{ aspect-ratio:1/1; object-fit:cover; cursor:pointer; opacity:.65; transition:opacity .25s; width:100%; }
.thumbs img:hover, .thumbs img.active{ opacity:1; }
.product-info .eyebrow{ margin-bottom:10px; }
.product-info h1{ font-size:2.3rem; margin-bottom:14px; }
.product-info .price{ font-size:1.3rem; color:var(--gold); font-family:var(--serif); margin-bottom:4px; }
.product-info .tax{ font-size:.8rem; color:var(--ink-faint); margin-bottom:30px; }
.product-info .desc{ color:var(--ink-soft); margin-bottom:30px; }
.qty{ display:inline-flex; align-items:center; border:1px solid var(--line); margin-bottom:22px; }
.qty button{ background:none; border:none; width:40px; height:44px; font-size:1rem; }
.qty input{ width:44px; text-align:center; border:none; border-left:1px solid var(--line); border-right:1px solid var(--line); height:44px; background:none; }
.product-actions{ display:flex; flex-direction:column; gap:12px; max-width:380px; }
.accordion{ margin-top:40px; border-top:1px solid var(--line); }
.accordion-item{ border-bottom:1px solid var(--line); }
.accordion-item summary{ padding:18px 0; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; font-family:var(--serif); font-size:1.05rem; }
.accordion-item summary::-webkit-details-marker{ display:none; }
.accordion-item summary::after{ content:'+'; font-size:1.3rem; color:var(--gold); font-weight:300; }
.accordion-item[open] summary::after{ content:'–'; }
.accordion-item .panel{ padding:0 0 20px; color:var(--ink-soft); font-size:.92rem; }

.workshop-row{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; padding:70px 0; border-bottom:1px solid var(--line); }
.workshop-row:nth-child(even) .w-media{ order:2; }
@media (max-width:900px){ .workshop-row{ grid-template-columns:1fr; gap:26px; padding:46px 0; } .workshop-row:nth-child(even) .w-media{ order:0; } }
.w-media .ph{ aspect-ratio:4/3; }
.w-media img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.w-copy .eyebrow{ margin-bottom:12px; }
.w-copy p.lede{ margin:14px 0 20px; }
.w-copy p{ color:var(--ink-soft); margin-bottom:16px; }
.w-facts{ display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; margin:24px 0 30px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.w-facts div{ font-size:.86rem; color:var(--ink-soft); }
.w-facts strong{ display:block; color:var(--ink); font-family:var(--serif); font-size:1rem; font-weight:400; }
.w-price{ font-family:var(--serif); font-size:1.5rem; color:var(--gold); margin-bottom:20px; }

.booking-wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; }
@media (max-width:900px){ .booking-wrap{ grid-template-columns:1fr; gap:40px; } }
.booking-info h2{ margin-bottom:18px; }
.booking-info p{ color:var(--ink-soft); margin-bottom:26px; }
.booking-info .addr{ padding-top:26px; border-top:1px solid var(--line); font-size:.9rem; color:var(--ink-soft); }
.booking-info .addr strong{ display:block; color:var(--ink); font-family:var(--serif); font-size:1.1rem; margin-bottom:6px; }
.booking-form{ background:var(--white); border:1px solid var(--line); padding:42px; }
@media (max-width:560px){ .booking-form{ padding:26px; } }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.field{ margin-bottom:20px; }
.field label{ display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px; }
.field input, .field select, .field textarea{ width:100%; border:none; border-bottom:1px solid var(--line); padding:10px 2px; font-family:var(--sans); font-size:.95rem; color:var(--ink); background:transparent; }
.field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2393703A'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 4px center; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:80px; }
.field .hint{ font-size:.78rem; color:var(--ink-faint); margin-top:6px; }
.slot-picker{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:6px; }
.slot{ border:1px solid var(--line); padding:10px 6px; text-align:center; font-size:.85rem; color:var(--ink-soft); background:none; }
.slot.active{ border-color:var(--ink); color:var(--ink); background:var(--sand); }
.form-note{ display:none; margin-top:18px; padding:16px 18px; background:var(--sand); border-left:2px solid var(--gold); font-size:.88rem; color:var(--ink-soft); }
.form-note.show{ display:block; }

.contact-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:70px; }
@media (max-width:860px){ .contact-wrap{ grid-template-columns:1fr; gap:40px; } }
.contact-info li{ display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--line); }
.contact-info li strong{ display:block; font-family:var(--serif); font-size:1.05rem; margin-bottom:2px; }
.contact-info li span{ color:var(--ink-soft); font-size:.9rem; }

.reveal{ opacity:0; transform:translateY(18px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ *{ transition-duration:.001ms !important; animation-duration:.001ms !important; scroll-behavior:auto !important; } }

.toast{ position:fixed; bottom:26px; right:26px; z-index:120; background:var(--ink); color:var(--ivory); padding:16px 24px; font-size:.88rem; letter-spacing:.02em; transform:translateY(20px); opacity:0; visibility:hidden; pointer-events:none; transition:transform .4s var(--ease), opacity .4s var(--ease), visibility 0s linear .4s; max-width: calc(100% - 52px); }
.toast.show{ transform:translateY(0); opacity:1; visibility:visible; pointer-events:auto; transition:transform .4s var(--ease), opacity .4s var(--ease), visibility 0s linear 0s; }

/* one-file router: only the active "page" is visible */
.page{ display:none; padding:0; }
.page.active{ display:block; }
.hero{ padding:0; }

/* Language Switcher */
.lang-switch{ display:flex; align-items:center; gap:6px; margin-left:16px; }
.lang-switch button{ background:none; border:1px solid var(--line); color:var(--ink-soft); font-family:var(--sans); font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:4px 8px; cursor:pointer; transition:all .3s var(--ease); border-radius:3px; }
.lang-switch button:hover, .lang-switch button.active{ background:var(--gold); color:#fff; border-color:var(--gold); }
@media (max-width:900px){ .lang-switch{ margin-left:0; margin-top:14px; justify-content:center; } }


/* Cart & Checkout */
.cart-wrap{ display:grid; grid-template-columns:1fr 360px; gap:60px; align-items:start; }
@media (max-width:900px){ .cart-wrap{ grid-template-columns:1fr; } }
.cart-empty{ text-align:center; padding:60px 20px; grid-column:1 / -1; }
.cart-empty p{ color:var(--ink-soft); margin-bottom:24px; }
.cart-lines{ display:flex; flex-direction:column; gap:0; }
.cart-line{ display:grid; grid-template-columns:96px 1fr auto auto; gap:20px; align-items:center; padding:24px 0; border-bottom:1px solid var(--line); }
@media (max-width:560px){ .cart-line{ grid-template-columns:72px 1fr; grid-template-areas:"media info" "media qty" "media total"; row-gap:10px; } }
.cart-line-media{ width:96px; height:96px; background:var(--sand); overflow:hidden; }
@media (max-width:560px){ .cart-line-media{ width:72px; height:72px; grid-area:media; } }
.cart-line-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.cart-line-media .ph{ width:100%; height:100%; }
.cart-line-info{ min-width:0; }
@media (max-width:560px){ .cart-line-info{ grid-area:info; } }
.cart-line-name{ font-family:var(--serif); font-size:1.15rem; margin-bottom:6px; }
.cart-line-price{ font-size:.85rem; color:var(--ink-faint); }
.qty-stepper{ display:flex; align-items:center; border:1px solid var(--line); width:fit-content; margin-top:10px; }
@media (max-width:560px){ .qty-stepper{ grid-area:qty; } }
.qty-stepper button{ width:30px; height:30px; background:none; border:none; cursor:pointer; font-size:1rem; color:var(--ink); }
.qty-stepper button:hover{ background:var(--sand); }
.qty-stepper input{ width:32px; text-align:center; border:none; background:none; font-family:var(--sans); font-size:.9rem; }
.cart-line-total{ font-family:var(--serif); font-size:1.1rem; text-align:right; min-width:90px; }
@media (max-width:560px){ .cart-line-total{ grid-area:total; text-align:left; } }
.cart-line-remove{ background:none; border:none; color:var(--ink-faint); font-size:1.3rem; cursor:pointer; line-height:1; padding:0 4px; }
.cart-line-remove:hover{ color:var(--ember); }
.cart-summary{ background:var(--sand); padding:32px; position:sticky; top:110px; }
.cart-summary-row{ display:flex; justify-content:space-between; align-items:baseline; font-size:1rem; }
.cart-summary-row strong{ font-family:var(--serif); font-size:1.4rem; }
.checkout-wrap{ display:grid; grid-template-columns:1fr 380px; gap:60px; align-items:start; }
@media (max-width:900px){ .checkout-wrap{ grid-template-columns:1fr; } }
.checkout-summary{ background:var(--sand); padding:32px; position:sticky; top:110px; }
.checkout-summary-line{ display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid var(--sand-deep); font-size:.88rem; }
.checkout-summary-line span:first-child{ color:var(--ink-soft); }
.checkout-total-row{ display:flex; justify-content:space-between; align-items:baseline; margin-top:18px; padding-top:18px; border-top:1px solid var(--ink); }
.checkout-total-row strong{ font-family:var(--serif); font-size:1.6rem; }
.pay-divider{ display:flex; align-items:center; gap:14px; margin:26px 0; color:var(--ink-faint); font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.pay-divider::before, .pay-divider::after{ content:''; flex:1; height:1px; background:var(--line); }
.pay-error{ display:none; margin-top:16px; padding:14px 18px; background:#F7E9E4; border-left:2px solid var(--ember); font-size:.85rem; color:var(--ember); }
.pay-error.show{ display:block; }
.checkout-success{ text-align:center; padding:100px 20px 120px; max-width:560px; margin:0 auto; }
.checkout-success .icon-ok{ width:64px; height:64px; margin:0 auto 26px; }
.checkout-success .icon-ok svg{ width:100%; height:100%; stroke:var(--gold); fill:none; stroke-width:1.2; }


/* ==========================================================================
   Multi-page additions (SEO structure)
   ========================================================================== */
.page{ display:block; }
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--ink); color:var(--ivory); padding:10px 16px; z-index:200; }
.skip-link:focus{ left:10px; top:10px; }
.lang-switch a{ border:1px solid var(--line); color:var(--ink-soft); font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:4px 8px; border-radius:3px; transition:all .3s var(--ease); }
.lang-switch a:hover, .lang-switch a.active{ background:var(--gold); color:#fff; border-color:var(--gold); }
.btn--sm{ padding:10px 18px; font-size:11px; letter-spacing:.14em; }
.header-tools .btn--sm{ color:var(--ivory); }
.header-tools .btn--sm:hover{ color:var(--white); }
@media (max-width:1080px){ nav.primary{ gap:22px; } }
@media (max-width:900px){ .header-tools .book-desk{ display:none; } .header-tools .lang-switch{ display:none; } }
.mobile-nav .lang-switch{ margin-top:22px; justify-content:flex-start; }
.mobile-nav .lang-switch a{ font-family:var(--sans); font-size:12px; padding:6px 12px; border-bottom:1px solid var(--line); }
.mobile-nav .btn{ margin-top:26px; font-family:var(--sans); font-size:12px; }

/* breadcrumbs */
.crumbs{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:18px; }
.crumbs ol{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; justify-content:inherit; }
.crumbs li + li::before{ content:'/'; margin-right:6px; color:var(--line); }
.crumbs a:hover{ color:var(--ember); }
.page-head .crumbs ol{ justify-content:center; }
.page-head{ padding:90px 0 40px; }
@media (max-width:720px){ .page-head{ padding:60px 0 30px; } }

/* value props band (home) */
.props{ display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); }
.prop{ padding:34px 30px; text-align:center; border-left:1px solid var(--line); }
.prop:first-child{ border-left:none; }
.prop h3{ font-size:1.25rem; margin-bottom:6px; }
.prop p{ margin:0; color:var(--ink-soft); font-size:.9rem; }
@media (max-width:760px){ .props{ grid-template-columns:1fr; } .prop{ border-left:none; border-top:1px solid var(--line); padding:24px 22px; } .prop:first-child{ border-top:none; } }

.badge-pop{ display:inline-block; background:var(--ember); color:#fff; font-size:10px; letter-spacing:.2em; text-transform:uppercase; padding:5px 10px; margin-bottom:16px; }
.price-line{ font-family:var(--serif); font-size:1.4rem; color:var(--gold); margin:0 0 26px; }
.price-line small{ font-family:var(--sans); font-size:.8rem; color:var(--ink-faint); letter-spacing:.04em; }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; }

/* workshop detail */
.w-hero{ position:relative; height:58vh; min-height:380px; overflow:hidden; background:var(--sand-deep); }
.w-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.w-hero .scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,15,10,.45), rgba(20,15,10,.05) 60%); }
.w-hero .back{ position:absolute; left:40px; top:28px; z-index:2; color:#fff; font-size:11px; letter-spacing:.18em; text-transform:uppercase; background:rgba(20,15,10,.35); padding:8px 14px; }
@media (max-width:720px){ .w-hero{ height:42vh; min-height:280px; } .w-hero .back{ left:22px; top:18px; } }
.w-layout{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:70px; align-items:start; padding-top:56px; }
@media (max-width:980px){ .w-layout{ grid-template-columns:1fr; gap:40px; } }
.w-main .kicker{ display:block; margin-bottom:12px; }
.w-main h1{ font-size:clamp(2.2rem,4.2vw,3.4rem); margin-bottom:20px; }
.w-main .lede{ margin:0 0 30px; }
.quick-facts{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:0 0 46px; }
.quick-facts div{ padding:18px 14px 18px 0; font-size:.82rem; color:var(--ink-faint); letter-spacing:.06em; text-transform:uppercase; }
.quick-facts strong{ display:block; font-family:var(--serif); font-size:1.08rem; color:var(--ink); text-transform:none; letter-spacing:0; font-weight:400; margin-top:4px; line-height:1.35; }
@media (max-width:720px){ .quick-facts{ grid-template-columns:1fr 1fr; } }
.w-sec{ padding:0 0 44px; }
.w-sec h2{ font-size:clamp(1.6rem,2.6vw,2.1rem); margin-bottom:18px; }
.w-sec p{ color:var(--ink-soft); margin:0 0 14px; }
.hl-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px 34px; }
@media (max-width:620px){ .hl-grid{ grid-template-columns:1fr; } }
.hl-grid div{ border-left:1px solid var(--gold-soft); padding-left:18px; }
.hl-grid strong{ display:block; font-family:var(--serif); font-size:1.15rem; font-weight:400; margin-bottom:4px; }
.hl-grid span{ color:var(--ink-soft); font-size:.92rem; }
.ticks li{ position:relative; padding-left:28px; margin-bottom:10px; color:var(--ink-soft); }
.ticks li::before{ content:''; position:absolute; left:0; top:11px; width:14px; height:1px; background:var(--gold); }
.ticks.x li::before{ background:var(--ink-faint); }
.timeline{ border-left:1px solid var(--line); margin-left:6px; }
.timeline li{ position:relative; padding:0 0 18px 26px; }
.timeline li::before{ content:''; position:absolute; left:-4px; top:9px; width:7px; height:7px; border-radius:50%; background:var(--gold); }
.timeline .t{ font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); display:block; }
.timeline .d{ color:var(--ink); }
.note{ font-size:.82rem; color:var(--ink-faint); margin-top:4px; }
.faq details{ border-bottom:1px solid var(--line); }
.faq details:first-child{ border-top:1px solid var(--line); }
.faq summary{ padding:18px 30px 18px 0; cursor:pointer; list-style:none; position:relative; font-family:var(--serif); font-size:1.12rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:'+'; position:absolute; right:0; top:16px; color:var(--gold); font-size:1.3rem; }
.faq details[open] summary::after{ content:'–'; }
.faq .a{ padding:0 0 20px; color:var(--ink-soft); }
.side-card{ position:sticky; top:110px; background:var(--white); border:1px solid var(--line); padding:32px 30px; }
.side-card .eyebrow{ display:block; margin-bottom:10px; }
.side-card .big{ font-family:var(--serif); font-size:2.3rem; color:var(--ink); line-height:1; }
.side-card .big small{ font-family:var(--sans); font-size:.8rem; color:var(--ink-faint); letter-spacing:.04em; }
.side-card ul{ margin:22px 0 26px; }
.side-card li{ font-size:.88rem; color:var(--ink-soft); padding:8px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:12px; }
.side-card li span:last-child{ color:var(--ink); text-align:right; }
.side-card .btn{ width:100%; }
.side-card .fine{ font-size:.78rem; color:var(--ink-faint); margin-top:14px; text-align:center; }
@media (max-width:980px){ .side-card{ position:static; } }
.journal-link{ background:var(--sand); padding:18px 22px; font-size:.92rem; color:var(--ink-soft); margin-bottom:44px; }
.journal-link a{ color:var(--ember); text-decoration:underline; }
.sticky-bar{ position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--ink); color:var(--ivory); display:none; align-items:center; justify-content:space-between; gap:14px; padding:12px 22px; }
.sticky-bar strong{ font-family:var(--serif); font-size:1.25rem; font-weight:400; }
.sticky-bar .btn{ background:var(--ivory); color:var(--ink); border-color:var(--ivory); padding:11px 20px; }
@media (max-width:980px){ .sticky-bar{ display:flex; } body.has-sticky footer.site{ padding-bottom:90px; } }

/* cards with meta */
.card-meta{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-bottom:6px; }
.grid-4.workshops .card-media{ aspect-ratio:4/3; }
.grid-cols-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px 26px; }
@media (max-width:900px){ .grid-cols-3{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .grid-cols-3{ grid-template-columns:1fr; } }

/* collection filter links */
.filters a{ border:1px solid var(--line); padding:9px 20px; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); transition:all .25s; }
.filters a.active, .filters a:hover{ border-color:var(--ink); color:var(--ink); }

/* product extras */
.product-info .meta{ font-size:.85rem; color:var(--ink-faint); margin-bottom:18px; }
.cross{ display:grid; grid-template-columns:120px 1fr; gap:22px; align-items:center; margin-top:34px; padding:20px; background:var(--sand); }
.cross img{ width:120px; height:90px; object-fit:cover; }
.cross p{ margin:0 0 6px; font-size:.9rem; color:var(--ink-soft); }
.cross a.link{ color:var(--ember); font-size:.85rem; letter-spacing:.06em; text-decoration:underline; }

/* about */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:36px; } }
.split img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.split .copy p{ color:var(--ink-soft); margin:16px 0; }
.tech-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
@media (max-width:860px){ .tech-grid{ grid-template-columns:1fr; } }
.tech{ border-top:1px solid var(--gold-soft); padding-top:22px; }
.tech h3{ margin-bottom:10px; }
.tech p{ color:var(--ink-soft); font-size:.94rem; }
.tech a{ color:var(--ember); font-size:.85rem; text-decoration:underline; }

/* journal */
.j-card{ display:block; border-top:1px solid var(--line); padding-top:18px; }
.j-card .card-media{ aspect-ratio:3/2; }
.j-card h3{ font-size:1.35rem; margin:6px 0 8px; line-height:1.25; }
.j-card p{ color:var(--ink-soft); font-size:.92rem; margin:0 0 10px; }
.j-card .more{ color:var(--ember); font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; }
.article{ max-width:740px; margin:0 auto; }
.article-head{ text-align:center; padding:80px 0 30px; }
.article-head h1{ font-size:clamp(2.1rem,4vw,3.2rem); margin:10px 0 16px; }
.article-head .by{ font-size:.85rem; color:var(--ink-faint); }
.article-hero{ max-width:1000px; margin:0 auto 50px; }
.article-hero img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.prose{ font-size:1.05rem; }
.prose p, .prose li{ color:var(--ink-soft); }
.prose h2{ font-size:clamp(1.5rem,2.6vw,2rem); margin:40px 0 14px; }
.prose ul{ margin:0 0 18px; }
.prose li{ position:relative; padding-left:26px; margin-bottom:10px; }
.prose li::before{ content:''; position:absolute; left:0; top:13px; width:14px; height:1px; background:var(--gold); }
.prose a{ color:var(--ember); text-decoration:underline; text-underline-offset:3px; }
.prose strong{ color:var(--ink); font-weight:500; }
.cta-box{ display:grid; grid-template-columns:200px 1fr; gap:28px; align-items:center; background:var(--sand); padding:26px; margin:50px 0 10px; }
.cta-box img{ width:200px; height:150px; object-fit:cover; }
.cta-box h3{ margin:4px 0 8px; }
.cta-box p{ color:var(--ink-soft); font-size:.92rem; margin:0 0 16px; }
@media (max-width:620px){ .cta-box{ grid-template-columns:1fr; } .cta-box img{ width:100%; height:180px; } }

/* contact block */
.contact-band{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
@media (max-width:860px){ .contact-band{ grid-template-columns:1fr; gap:30px; } }
.contact-band p{ color:var(--ink-soft); }
.contact-list li{ display:flex; justify-content:space-between; gap:20px; padding:14px 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.contact-list li span:first-child{ color:var(--ink-faint); letter-spacing:.1em; text-transform:uppercase; font-size:.75rem; padding-top:3px; }
.contact-list a{ text-decoration:underline; text-underline-offset:3px; }

/* legal */
.legal{ max-width:760px; margin:0 auto; }
.legal h2{ font-size:1.6rem; margin:36px 0 12px; }
.legal p, .legal li{ color:var(--ink-soft); }
.legal ul{ margin-bottom:16px; }
.legal li{ padding-left:22px; position:relative; margin-bottom:8px; }
.legal li::before{ content:''; position:absolute; left:0; top:12px; width:12px; height:1px; background:var(--gold); }

.footer-col p a{ color:var(--ink-soft); }
.footer-grid{ grid-template-columns:1.3fr 1fr 1fr 1fr 1.2fr; }
@media (max-width:1000px){ .footer-grid{ grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:640px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
.footer-bottom a{ text-decoration:underline; }

.grid-cols-3.workshops .card-media{ aspect-ratio:4/3; }
.footer-grid > *{ min-width:0; }
@media (max-width:720px){ .hide-sm{ display:none; } .announce{ letter-spacing:.14em; padding:9px 16px; } }

/* images kept close to their native size so they stay sharp */
.w-layout{ padding-top:40px; }
.w-back{ display:inline-block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:18px; }
.w-back:hover{ color:var(--ember); }
.w-photo{ margin:0 0 30px; max-width:720px; }
.w-photo img{ width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
.product-detail{ grid-template-columns:minmax(0,480px) 1fr; gap:80px; justify-content:center; }
@media (max-width:900px){ .product-detail{ grid-template-columns:1fr; } .product-gallery{ max-width:480px; } }
.thumbs{ grid-template-columns:repeat(4,1fr); }
.product-gallery img.main{ height:auto; aspect-ratio:4/5; object-fit:cover; }
.card-media img{ height:100%; }
