/* Al-Saeed Jewellers website. Images marked var(--…) are set from the admin (layouts/site.blade.php). */
:root{
  --gold-rgb:200,149,47;--gold-hi-rgb:241,210,122;--gold-lo-rgb:140,100,24;--shadow-rgb:80,55,10;--ink-rgb:21,18,14;--ivory-rgb:251,246,236;
  /* three brand colours, taken from the logo */
  --ivory:#FBF6EC;
  --gold:#C8952F;
  --ink:#15120E;
  /* tints of those three */
  --ivory-2:#F3EBDA;
  --sand:#F4E6C6;
  --gold-hi:#F1D27A;
  --gold-lo:#8C6418;
  --ink-60:rgba(var(--ink-rgb),.6);
  --ink-12:rgba(var(--ink-rgb),.12);
  --gold-20:rgba(var(--gold-rgb),.2);
  --gold-grad:linear-gradient(110deg,#8C6418 0%,#E9C46A 22%,#C8952F 40%,#FFF0B8 55%,#C8952F 70%,#8C6418 100%);

  --poster:"Anton", "Impact", "Arial Narrow", sans-serif;
  --serif:"Instrument Serif", "Georgia", serif;
  --body:"Jost", "Segoe UI", system-ui, sans-serif;

  --wrap:1320px;
  --gutter:clamp(16px,4vw,48px);
  --ease:cubic-bezier(.16,1,.3,1);
  /* gem-cut corners for product frames */
  --cut:12%;
  --gem:polygon(var(--cut) 0,calc(100% - var(--cut)) 0,100% var(--cut),100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,var(--cut) 100%,0 calc(100% - var(--cut)),0 var(--cut));
  --hex:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--body);font-weight:400;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.num{font-variant-numeric:tabular-nums lining-nums}
::selection{background:var(--gold);color:var(--ivory)}

/* ---------- shared type ---------- */
.eyebrow{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;font-weight:500;color:var(--gold-lo);display:inline-flex;align-items:center;gap:.7rem}
.eyebrow::before{content:"";width:7px;height:7px;background:currentColor;transform:rotate(45deg)}
.poster{font-family:var(--poster);font-weight:400;text-transform:uppercase;line-height:.95;letter-spacing:.005em;margin:0}
.serif{font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:0;font-weight:400}
.goldfill{background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 6s linear infinite}
@keyframes sheen{to{background-position:-220% 0}}
.h2{font-size:clamp(2rem,4.2vw,3.6rem)}
.h2 .serif{font-size:1.05em}
.lede{color:var(--ink-60);max-width:50ch;font-size:1.02rem}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.split .w > span{display:inline-block}

/* ---------- buttons ---------- */
.btn{
  --bg:var(--ink);--fg:var(--ivory);
  display:inline-flex;align-items:center;gap:.7rem;padding:1rem 1.7rem;border-radius:999px;border:0;cursor:pointer;
  background:var(--bg);color:var(--fg);font-size:.78rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  position:relative;overflow:hidden;isolation:isolate;transition:transform .4s var(--ease);
}
.btn::before{content:"";position:absolute;inset:0;background:var(--gold-grad);background-size:200% 100%;transform:translateY(101%);transition:transform .55s var(--ease);z-index:-1;border-radius:inherit}
.btn:hover::before{transform:none;animation:sheen 3s linear infinite}
.btn:hover{color:var(--ink)}
.btn svg{width:18px;height:18px;flex:none}
.btn-line{--bg:transparent;--fg:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn-gold{--bg:var(--gold);--fg:var(--ink)}
.btn-wa{--bg:#1F7A4D}
.btn-wa:hover{color:var(--ink)}

/* square-ish arrow buttons (collections + arrivals) */
.arrows{display:flex;gap:.6rem}
.arrows button{width:54px;height:54px;border-radius:16px;border:1px solid var(--ink-12);background:#fff;color:var(--ink);cursor:pointer;display:grid;place-items:center;position:relative;overflow:hidden;isolation:isolate;transition:transform .4s var(--ease),border-color .3s}
.arrows button::before{content:"";position:absolute;inset:0;background:var(--gold-grad);background-size:200% 100%;transform:scale(0) rotate(45deg);transition:transform .5s var(--ease);z-index:-1}
.arrows button:hover{border-color:var(--gold);transform:translateY(-3px)}
.arrows button:hover::before{transform:scale(1.5) rotate(45deg)}
.arrows svg{width:20px;height:20px}

/* marquee strip */
.mq{overflow:hidden;white-space:nowrap}
.mq-in{display:flex;width:max-content;align-items:center;animation:mq 34s linear infinite}
.mq-in span{padding-inline:1.4rem}
.mq-in em{font-style:normal;color:var(--gold)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- preloader ---------- */
.loader{position:fixed;inset:0;z-index:300;display:grid;place-items:center;pointer-events:none;animation:loaderOut 0s 4.5s forwards}
.loader .pane{position:absolute;left:0;right:0;height:50.5%;background:var(--ivory);transition:transform 1.1s var(--ease)}
.loader .pane.top{top:0;border-bottom:1px solid var(--gold-20)}.loader .pane.bot{bottom:0}
.loader .mid{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.4rem}
.coin{width:120px;height:120px;background:var(--logo) 0 50%/auto 100% no-repeat;border-radius:50%}
.loader .coin{animation:coinspin 1.6s var(--ease) infinite}
@keyframes coinspin{0%{transform:perspective(600px) rotateY(0)}100%{transform:perspective(600px) rotateY(360deg)}}
.loader .bar{width:180px;height:1px;background:var(--gold-20);overflow:hidden}
.loader .bar i{display:block;height:100%;background:var(--gold);transform-origin:left;animation:load 1.4s var(--ease) forwards}
@keyframes load{from{transform:scaleX(0)}}
.loader .cap{font-size:.7rem;letter-spacing:.5em;color:var(--gold-lo);text-transform:uppercase}
@keyframes loaderOut{to{visibility:hidden}}
.loader.done .pane.top{transform:translateY(-100%)}
.loader.done .pane.bot{transform:translateY(100%)}
.loader.done .mid{opacity:0;transform:scale(.9);transition:all .4s}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:80;padding-top:env(safe-area-inset-top,0px);transition:background .4s,box-shadow .4s}
.nav.scrolled{background:rgba(var(--ivory-rgb),.82);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:0 1px 0 var(--ink-12)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:.9rem}
.brand img{height:54px;width:auto}
.menu{display:flex;gap:2.2rem}
.menu a{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;position:relative;display:inline-block;overflow:hidden;height:1.5em;line-height:1.5}
.menu a span{display:block;transition:transform .5s var(--ease)}
.menu a span:last-child{color:var(--gold)}
.menu a:hover span{transform:translateY(-100%)}
.nav-cta{display:flex;align-items:center;gap:.6rem}
.nav-cta .btn{padding:.8rem 1.3rem}
.icon-btn{position:relative;width:46px;height:46px;border-radius:50%;border:1px solid var(--ink-12);background:none;cursor:pointer;display:grid;place-items:center;flex:none}
.icon-btn svg{width:20px;height:20px}
.icon-btn b{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--gold);color:var(--ink);font-size:.68rem;font-weight:600;display:grid;place-items:center}
.icon-btn b:empty{display:none}
.burger{display:none}
.burger i{display:block;width:18px;height:1.5px;background:var(--ink);position:relative;transition:transform .3s}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:var(--ink);transition:transform .3s}
.burger i::before{top:-6px}.burger i::after{top:6px}
.burger[aria-expanded=true] i{background:transparent}
.burger[aria-expanded=true] i::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded=true] i::after{transform:translateY(-6px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;width:min(110vw,1300px);aspect-ratio:1;right:-30%;top:-35%;z-index:-2;background:radial-gradient(closest-side,rgba(var(--gold-hi-rgb),.55),rgba(var(--gold-hi-rgb),.12) 55%,transparent 72%)}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:2rem;align-items:center;padding-block:clamp(.5rem,2vw,1.5rem) clamp(1.5rem,3vw,2.5rem)}
.hero-grid > *{min-width:0}
.hero h1{font-size:clamp(2.8rem,6.4vw,6rem);margin-block:1.2rem 1.4rem}
.hero h1 .row{display:flex;align-items:center;gap:.18em;flex-wrap:wrap}
.hero h1 .serif{font-size:.95em;color:var(--gold-lo)}
.hero .lede{margin-block:.4rem 2rem}
.ctas{display:flex;flex-wrap:wrap;gap:.8rem}

/* 3D carousel: gem-cut gold frames with a name plate */
.carousel{position:relative;aspect-ratio:1/.86;width:100%;max-width:720px;margin-inline:auto;perspective:1600px;cursor:grab;touch-action:pan-y;user-select:none}
.carousel:active{cursor:grabbing}
.spin{position:absolute;inset:0;transform-style:preserve-3d}
.slot{position:absolute;left:50%;top:46%;width:var(--cw,170px);aspect-ratio:3/4;transform-style:preserve-3d}
.slot .face{--cut:9%;position:absolute;inset:0;padding:2px;clip-path:var(--gem);background:var(--gold-grad);-webkit-box-reflect:below 12px linear-gradient(transparent 70%,rgba(255,255,255,.25))}
.slot .fc{height:100%;display:flex;flex-direction:column;clip-path:var(--gem);background:linear-gradient(180deg,#fff 60%,#FCF3DF)}
.slot .fi{--cut:7%;flex:1;min-height:0;margin:10px 10px 0;clip-path:var(--gem);overflow:hidden;background:#fff}
.slot .fi img{width:100%;height:100%;object-fit:cover}
.slot .cap{text-align:center;padding:.55rem .5rem .9rem;line-height:1.15}
.slot .cap small{display:block;font-size:.56rem;letter-spacing:.28em;text-transform:uppercase;font-weight:600;color:var(--gold-lo)}
.slot .cap small::before,.slot .cap small::after{content:"";display:inline-block;width:5px;height:5px;margin:0 .5em;background:var(--gold);transform:rotate(45deg);vertical-align:.15em}
.slot .cap b{display:block;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1rem,1.5vw,1.3rem);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.floor{position:absolute;left:14%;right:14%;bottom:2%;height:16%;border-radius:50%;background:radial-gradient(closest-side,rgba(var(--gold-lo-rgb),.28),transparent);filter:blur(4px)}
.live{width:8px;height:8px;border-radius:50%;background:#33c27a;box-shadow:0 0 0 0 rgba(51,194,122,.7);animation:ping 1.8s infinite;display:inline-block}
@keyframes ping{70%{box-shadow:0 0 0 9px rgba(51,194,122,0)}100%{box-shadow:0 0 0 0 rgba(51,194,122,0)}}
@keyframes spinR{to{transform:rotate(360deg)}}

/* ---------- section scaffold ---------- */
.sec{padding-block:clamp(4rem,8vw,7rem)}
.head{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:1.5rem 3rem;margin-bottom:clamp(2rem,4vw,3.2rem)}
.head > div{min-width:0}
.head h2{margin-top:.9rem}

/* ---------- collections slider: corner-bracket frames ---------- */
@property --b{syntax:'<length-percentage>';inherits:false;initial-value:28px}
.cs-track{--sk:0deg;display:flex;gap:clamp(1rem,2vw,1.6rem);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;
  padding:1rem max(var(--gutter),calc((100vw - var(--wrap))/2 + var(--gutter))) 1.5rem;scroll-padding-inline:max(var(--gutter),calc((100vw - var(--wrap))/2 + var(--gutter)))}
.cs-track::-webkit-scrollbar{display:none}
.cs-track.dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}
.cc{--c:var(--gold);--b:28px;--lift:0px;flex:none;width:clamp(240px,23vw,300px);scroll-snap-align:start;position:relative;display:flex;flex-direction:column;padding:14px;
  background:
    linear-gradient(var(--c),var(--c)) top left/var(--b) 1.5px,linear-gradient(var(--c),var(--c)) top left/1.5px var(--b),
    linear-gradient(var(--c),var(--c)) top right/var(--b) 1.5px,linear-gradient(var(--c),var(--c)) top right/1.5px var(--b),
    linear-gradient(var(--c),var(--c)) bottom left/var(--b) 1.5px,linear-gradient(var(--c),var(--c)) bottom left/1.5px var(--b),
    linear-gradient(var(--c),var(--c)) bottom right/var(--b) 1.5px,linear-gradient(var(--c),var(--c)) bottom right/1.5px var(--b),
    #fff;
  background-repeat:no-repeat;transform:skewX(var(--sk));translate:0 var(--lift);transition:--b .8s var(--ease),translate .5s var(--ease),box-shadow .5s}
.cc:hover{--b:100%;--lift:-10px;box-shadow:0 34px 50px -34px rgba(var(--shadow-rgb),.55)}
.cc-pic{position:relative;aspect-ratio:3/3.6;overflow:hidden;background:var(--ivory-2);clip-path:polygon(0 0,100% 0,100% 86%,86% 100%,0 100%)}
.cc-pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);pointer-events:none}
.cc:hover .cc-pic img{transform:scale(1.1) rotate(-2deg)}
.cc-v{position:absolute;left:0;bottom:0;writing-mode:vertical-rl;transform:rotate(180deg);background:#fff;padding:1rem .45rem;font-family:var(--poster);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-lo)}
.cc-meta{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding:1rem .3rem .2rem}
.cc h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.9rem;line-height:1;margin:0}
.cc small{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-60)}
.cc-no{font-family:var(--poster);font-size:2.6rem;line-height:.8;color:transparent;-webkit-text-stroke:1px var(--gold)}
.cc-go{display:flex;align-items:center;gap:.5rem;margin:.8rem .3rem 0;padding-top:.8rem;border-top:1px dashed var(--gold-20);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.cc-go svg{width:16px;height:16px;transition:transform .5s var(--ease)}
.cc:hover .cc-go svg{transform:translateX(8px)}
.cs-foot{display:flex;align-items:center;gap:1.2rem;margin-top:1rem}
.cs-count{font-family:var(--poster);font-size:1.1rem;letter-spacing:.08em}
.cs-prog{flex:1;height:2px;background:var(--ink-12);overflow:hidden}
.cs-prog i{display:block;height:100%;background:var(--gold-grad);transform-origin:left;transition:transform .3s}

/* ---------- banner 1: shutter slats ---------- */
.bn1-sec{padding-top:0}
.bn1{position:relative;display:grid;grid-template-columns:1fr 1.1fr;grid-template-rows:1fr auto;min-height:clamp(420px,44vw,560px);background:linear-gradient(115deg,#fff 0%,var(--ivory) 50%,var(--sand) 100%);box-shadow:0 0 0 1px var(--gold-20);overflow:hidden;isolation:isolate}
.bn1::before{content:"";position:absolute;width:480px;aspect-ratio:1;left:-160px;top:-200px;background:radial-gradient(closest-side,rgba(var(--gold-hi-rgb),.45),transparent);z-index:-1}
.bn1-txt{padding:clamp(1.6rem,4vw,3.6rem);align-self:center}
.bn1-txt h2{font-size:clamp(2.2rem,4.6vw,4rem);margin:1rem 0 1.1rem}
.bn1-txt .lede{margin:0 0 1.8rem}
.bn1-blinds{position:relative;display:flex;margin:clamp(12px,1.6vw,20px) clamp(12px,1.6vw,20px) clamp(12px,1.6vw,20px) 0;perspective:1200px;min-height:300px}
.slat{flex:1;position:relative;overflow:hidden;transition:translate .8s var(--ease);transition-delay:calc(var(--i) * 45ms)}
.slat i{position:absolute;top:0;bottom:0;background:var(--b1img) center/cover}
.slat + .slat::before{content:"";position:absolute;inset:0 auto 0 0;width:1px;background:rgba(255,255,255,.55);z-index:1}
.bn1:hover .slat:nth-child(odd){translate:0 -12px}
.bn1:hover .slat:nth-child(even){translate:0 12px}
.bn1-badge{position:absolute;right:-6px;top:-6px;z-index:3;width:104px;aspect-ratio:1;display:grid;place-content:center;text-align:center;clip-path:var(--gem);background:var(--gold-grad);background-size:200% 100%;animation:sheen 4s linear infinite;color:var(--ink)}
.bn1-badge b{font-family:var(--poster);font-weight:400;font-size:2rem;line-height:1}
.bn1-badge small{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.bn1-ticker{grid-column:1/-1;background:#fff;border-top:1px solid var(--gold-20);padding:.85rem 0;font-family:var(--poster);letter-spacing:.14em;text-transform:uppercase;font-size:.95rem}

/* ---------- our story ---------- */
.about{background:#fff;position:relative;overflow:hidden}
.about::after{content:"Legacy";position:absolute;right:-2rem;bottom:-3rem;font-family:var(--serif);font-style:italic;font-size:clamp(8rem,20vw,18rem);line-height:1;color:transparent;-webkit-text-stroke:1px var(--gold-20);pointer-events:none}
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.about-grid > *{min-width:0}
.about-big{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.2;margin:1.2rem 0 1.4rem}
.about-big em{color:var(--gold-lo)}
.stamps{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,2vw,1.4rem)}
.stamp:nth-child(even){transform:translateY(2.5rem)}
.stamp{aspect-ratio:1;padding:1.5px;clip-path:var(--gem);background:var(--gold-grad);background-size:200% 100%;animation:sheen 8s linear infinite}
.stamp .in{position:relative;height:100%;clip-path:var(--gem);background:radial-gradient(circle at 50% 30%,#fff,#FCF5E4);display:flex;flex-wrap:wrap;justify-content:center;align-content:center;text-align:center;overflow:hidden}
.stamp .in::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.9) 50%,transparent 65%);transform:translateX(-120%);transition:transform 1s var(--ease)}
.stamp:hover .in::after{transform:translateX(120%)}
.stamp b{font-family:var(--poster);font-weight:400;font-size:clamp(2rem,4vw,3.2rem);line-height:1;background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.stamp sup{font-family:var(--poster);color:var(--gold);font-size:1.2rem;top:-.2em;margin-left:.1rem}
.stamp span{flex-basis:100%;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;margin-top:.5rem;color:var(--ink-60)}
.promise{list-style:none;margin:clamp(4rem,7vw,6rem) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--gold-20)}
.promise li{padding:1.8rem 1.4rem 0;position:relative}
.promise li + li{border-left:1px solid var(--gold-20)}
.promise svg{width:34px;height:34px;color:var(--gold);transition:transform .6s var(--ease)}
.promise li:hover svg{transform:rotate(-12deg) scale(1.15)}
.promise h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.45rem;line-height:1.1;margin:.9rem 0 .3rem}
.promise p{margin:0;font-size:.9rem;color:var(--ink-60)}

/* ---------- catalogue ---------- */
.shop{background:linear-gradient(180deg,var(--ivory),var(--ivory-2))}
/* staircase: each row steps down left → right */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.8rem,2vw,1.6rem);align-items:start}
.grid .card:nth-child(4n+2){margin-top:2.5rem}
.grid .card:nth-child(4n+3){margin-top:5rem}
.grid .card:nth-child(4n){margin-top:7.5rem}
.card{--rx:0deg;--ry:0deg;position:relative;display:flex;flex-direction:column;min-width:0;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s var(--ease)}
.card .pic{position:relative;aspect-ratio:1/1;padding:1.5px;clip-path:var(--gem);background:var(--gold-20);transition:background .5s}
.card .pic .in{position:relative;width:100%;height:100%;clip-path:var(--gem);overflow:hidden;background:#fff}
.card:hover .pic{background:var(--gold-grad)}
.card .pic img{width:100%;height:100%;object-fit:cover;transform:scale(var(--z,1));transition:transform 1s var(--ease);mix-blend-mode:multiply}
.card:hover .pic img{transform:scale(calc(var(--z,1) * 1.08))}
.tone-silver img{filter:grayscale(1) brightness(1.08) contrast(1.05)}
.tone-art img{filter:hue-rotate(-12deg) saturate(1.25)}
.card .pic .in::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.7) 48%,transparent 62%);transform:translateX(-120%);transition:transform 1.1s var(--ease);pointer-events:none}
.card:hover .pic .in::after{transform:translateX(120%)}
.tag{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:2;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;padding:.28rem .7rem;border-radius:999px;background:var(--ink);color:var(--gold-hi);white-space:nowrap}
.card .info{padding:.95rem .25rem 0;display:grid;gap:.2rem}
.card h3{font-family:var(--serif);font-weight:400;font-size:1.4rem;margin:0;line-height:1.15}
.card .spec{font-size:.78rem;color:var(--ink-60)}
.card .acts{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.55rem}
.ask{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:#1F7A4D;border-bottom:1px solid currentColor;padding-bottom:.1rem}
.ask svg{width:15px;height:15px}
.heart{width:38px;height:38px;border-radius:50%;border:1px solid var(--ink-12);background:#fff;cursor:pointer;display:grid;place-items:center;flex:none;transition:transform .3s var(--ease),border-color .3s}
.heart svg{width:18px;height:18px;fill:none;stroke:var(--ink);stroke-width:1.6;transition:fill .3s,stroke .3s}
.heart:hover{border-color:var(--gold);transform:scale(1.08)}
.heart[aria-pressed=true]{border-color:var(--gold)}
.heart[aria-pressed=true] svg{fill:var(--gold);stroke:var(--gold)}
.more{display:flex;justify-content:center;margin-top:clamp(3rem,8vw,9rem)}

/* ---------- banner 2: diamond ribbons ---------- */
.bn2{--mx:70%;--my:50%;position:relative;overflow:hidden;isolation:isolate;background:#fff;padding-block:clamp(6.5rem,11vw,9rem)}
.bn2::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(520px circle at var(--mx) var(--my),rgba(var(--gold-hi-rgb),.42),transparent 62%),repeating-linear-gradient(45deg,transparent 0 38px,rgba(var(--gold-rgb),.06) 38px 39px),repeating-linear-gradient(-45deg,transparent 0 38px,rgba(var(--gold-rgb),.06) 38px 39px)}
.rib{position:absolute;left:-4%;right:-4%;padding:.85rem 0;font-family:var(--poster);font-size:clamp(.95rem,1.4vw,1.2rem);letter-spacing:.14em;text-transform:uppercase;z-index:3}
.rib.r1{top:1.6rem;transform:rotate(-2.2deg);background:var(--gold-grad);background-size:200% 100%;color:var(--ink)}
.rib.r1 em{color:#fff}
.rib.r2{bottom:1.6rem;transform:rotate(1.8deg);background:#fff;color:var(--gold-lo);border-block:1px solid var(--gold)}
.rib.r2 .mq-in{animation-direction:reverse;animation-duration:40s}
.bn2-in{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;position:relative;z-index:2}
.bn2-in > *{min-width:0}
.bn2-txt h2{font-size:clamp(2.2rem,4.8vw,4.2rem);margin:1rem 0 1.1rem}
.bn2-txt .lede{margin:0 0 1.8rem}
.gems{position:relative;height:clamp(320px,36vw,460px)}
.gem{position:absolute}
.gem.g1{width:52%;left:24%;top:16%;z-index:2}
.gem.g2{width:30%;right:2%;top:0}
.gem.g3{width:32%;left:0;bottom:2%}
.gem-f{animation:float 6s ease-in-out infinite alternate}
.g2 .gem-f{animation-delay:-2s;animation-duration:5s}
.g3 .gem-f{animation-delay:-4s;animation-duration:7s}
@keyframes float{from{transform:translateY(-10px)}to{transform:translateY(12px)}}
.gem-r{aspect-ratio:1;transform:rotate(45deg);overflow:hidden;background:#fff;box-shadow:0 0 0 1px var(--gold),0 0 0 7px #fff,0 0 0 8px var(--gold-20),0 30px 50px -20px rgba(var(--shadow-rgb),.45)}
.gem-r img{width:100%;height:100%;object-fit:cover;transform:rotate(-45deg) scale(1.45);transition:transform 1s var(--ease)}
.gem:hover .gem-r img{transform:rotate(-45deg) scale(1.65)}
.spark{position:absolute;width:22px;aspect-ratio:1;background:var(--gold);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);animation:twinkle 2.6s ease-in-out infinite}
.spark.s1{left:18%;top:8%}
.spark.s2{right:10%;top:52%;width:14px;animation-delay:-.8s}
.spark.s3{left:52%;bottom:0;width:18px;animation-delay:-1.6s}
.spark.s4{left:6%;top:48%;width:12px;animation-delay:-2.2s}
@keyframes twinkle{0%,100%{transform:scale(.3) rotate(0);opacity:.3}50%{transform:scale(1) rotate(90deg);opacity:1}}

/* ---------- bridal ---------- */
.bridal-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.bridal-grid > *{min-width:0}
.b-media{position:relative;aspect-ratio:4/5}
.b-main{position:absolute;inset:0 18% 8% 0;border-radius:999px 999px 28px 28px;overflow:hidden;background:var(--ivory-2)}
.b-main img,.b-sub img{width:100%;height:100%;object-fit:cover}
.b-sub{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:1;border-radius:28px;overflow:hidden;border:8px solid var(--ivory);box-shadow:0 30px 60px -30px rgba(var(--ink-rgb),.6);background:var(--ivory-2)}
.b-seal{position:absolute;left:-4%;top:6%;width:120px;height:120px;z-index:2;animation:spinR 18s linear infinite}
.b-seal text{font-size:10.5px;letter-spacing:3px;fill:var(--gold-lo);font-family:var(--body);font-weight:500}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.8rem 0 2.2rem}
.facts div{border-top:1px solid var(--gold);padding-top:.7rem}
.facts dt{font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.1}
.facts dd{margin:.25rem 0 0;font-size:.85rem;color:var(--ink-60)}

/* ---------- reviews: charms hanging on a gold necklace ---------- */
.rev{background:linear-gradient(180deg,var(--ivory) 0%,var(--ivory-2) 100%);position:relative;overflow:hidden}
.rev-score{display:flex;align-items:center;gap:1rem;margin:0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60);line-height:1.5}
.rev-score b{font-size:3.6rem;font-weight:400;color:var(--ink);line-height:1}
.stars{color:var(--gold);letter-spacing:.2em;font-size:1rem}
.rev-stage{display:flex;flex-direction:column-reverse;gap:clamp(1rem,3vw,2rem)}
.rev-quote{margin:0 auto;max-width:860px;text-align:center;position:relative;min-height:15rem}
.rev-mark{width:46px;fill:var(--gold);margin:0 auto 1.1rem;display:block}
.rev-quote blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.45rem,2.7vw,2.3rem);line-height:1.25}
.rev-quote blockquote span{display:inline-block;animation:wordIn .9s var(--ease) both;animation-delay:calc(var(--j) * 32ms)}
@keyframes wordIn{from{opacity:0;filter:blur(8px);transform:translateY(.5em) rotate(4deg)}}
.rev-quote figcaption{margin-top:1.4rem;display:flex;flex-direction:column;align-items:center;gap:.15rem}
.rev-quote figcaption b{font-family:var(--poster);font-weight:400;font-size:1.15rem;letter-spacing:.1em;text-transform:uppercase}
.rev-quote figcaption > span:last-child{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-lo)}
.rev-bar{display:block;width:140px;height:2px;margin:1.3rem auto 0;background:var(--ink-12);overflow:hidden}
.rev-bar i{display:block;height:100%;background:var(--gold);transform-origin:left;transform:scaleX(0)}
.rev-bar.run i{animation:revBar 6.5s linear forwards}
@keyframes revBar{to{transform:scaleX(1)}}
.rev-stage:hover .rev-bar i,.rev-stage:focus-within .rev-bar i{animation-play-state:paused}
.necklace{--sag:clamp(60px,9vw,120px);--cs:clamp(40px,6.4vw,74px);position:relative;height:calc(var(--sag) + var(--cs) * 2);margin-inline:clamp(0px,5vw,80px)}
.necklace svg{position:absolute;left:0;top:0;width:100%;height:var(--sag);overflow:visible}
.chain{fill:none;stroke:url(#chainG);stroke-width:3;stroke-dasharray:7 4;stroke-linecap:round;vector-effect:non-scaling-stroke}
.necklace::before,.necklace::after{content:"";position:absolute;top:-7px;width:14px;height:14px;border-radius:50%;border:2px solid var(--gold);background:var(--ivory)}
.necklace::before{left:-7px}.necklace::after{right:-7px}
.charm{position:absolute;left:var(--x);top:calc(var(--y) * var(--sag) - 3px);width:var(--cs);margin-left:calc(var(--cs) / -2);border:0;background:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center}
.charm .sw{display:block;width:100%;transform-origin:50% 0;animation:swing 3s ease-in-out infinite alternate;animation-delay:var(--d);transition:filter .5s}
.charm .sw::before{content:"";display:block;width:2px;height:calc(var(--cs) * .38);margin:0 auto -2px;background:var(--gold-grad)}
@keyframes swing{from{transform:rotate(-6deg)}to{transform:rotate(6deg)}}
.gemc{display:block;width:100%;aspect-ratio:1;padding:2px;clip-path:var(--hex);background:var(--gold-grad);background-size:200% 100%;transition:transform .6s var(--ease)}
.gemc b{width:100%;height:100%;display:grid;place-items:center;clip-path:var(--hex);background:#fff;font-family:var(--serif);font-style:italic;font-weight:400;font-size:calc(var(--cs) * .38);color:var(--gold-lo);transition:background .5s,color .5s}
.charm:hover .gemc{transform:scale(1.1)}
.charm[aria-pressed=true] .sw{filter:drop-shadow(0 10px 14px rgba(var(--gold-rgb),.55));animation-name:tug}
.charm[aria-pressed=true] .gemc{transform:scale(1.28);animation:sheen 3s linear infinite}
.charm[aria-pressed=true] .gemc b{background:var(--gold-grad);background-size:200% 100%;color:var(--ink)}
@keyframes tug{from{transform:rotate(-12deg)}to{transform:rotate(12deg)}}
.charm small{margin-top:.9rem;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-60);white-space:nowrap;transition:color .3s}
.charm[aria-pressed=true] small{color:var(--ink);font-weight:600}

/* ---------- just arrived: pinned polaroids on white ---------- */
.gal{background-color:#fff;background-image:radial-gradient(rgba(var(--gold-rgb),.22) 1px,transparent 1.3px);background-size:22px 22px;overflow:hidden;border-top:1px solid var(--gold-20)}
.gal-track{display:flex;gap:clamp(1.2rem,2.5vw,2rem);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-inline:max(var(--gutter),calc((100vw - var(--wrap))/2 + var(--gutter)));scroll-padding-inline:max(var(--gutter),calc((100vw - var(--wrap))/2 + var(--gutter)));padding-block:2rem 2.5rem}
.gal-track::-webkit-scrollbar{display:none}
.pola{--r:-3deg;flex:none;width:clamp(210px,21vw,270px);margin:0;scroll-snap-align:start;position:relative;background:#fff;padding:12px 12px 18px;box-shadow:0 0 0 1px var(--ink-12),0 24px 40px -24px rgba(var(--shadow-rgb),.5);rotate:var(--r);transition:rotate .7s var(--ease),translate .7s var(--ease),scale .7s var(--ease),box-shadow .7s}
.pola:nth-child(4n+2){--r:2deg}
.pola:nth-child(4n+3){--r:-1.5deg}
.pola:nth-child(4n){--r:3deg}
.pola::before{content:"";position:absolute;top:-11px;left:50%;width:76px;height:22px;transform:translateX(-50%) rotate(-4deg);background:linear-gradient(90deg,rgba(var(--gold-hi-rgb),.85),rgba(var(--gold-rgb),.7));box-shadow:0 2px 4px rgba(var(--shadow-rgb),.15);z-index:2}
.pola:hover{rotate:0deg;translate:0 -10px;scale:1.03;box-shadow:0 0 0 1px var(--gold),0 34px 50px -24px rgba(var(--shadow-rgb),.55)}
.pola .ph{aspect-ratio:1;overflow:hidden;background:var(--ivory)}
.pola .ph img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;transition:transform 1s var(--ease)}
.pola .new{position:absolute;right:20px;top:20px;z-index:2;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;background:var(--gold-grad);background-size:200% 100%;padding:.25rem .55rem;color:var(--ink)}
.pola figcaption{margin-top:.9rem;text-align:center}
.pola figcaption b{display:block;font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.35rem;line-height:1.1}
.pola figcaption span{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-lo)}

/* ---------- gold rate board (gold-rate.html) ---------- */
.board{background:var(--ink);color:var(--ivory);border-radius:clamp(22px,3vw,36px);padding:clamp(1.4rem,4vw,3.4rem);position:relative;overflow:hidden;isolation:isolate}
.board::before{content:"";position:absolute;width:700px;height:700px;right:-250px;top:-300px;background:radial-gradient(closest-side,rgba(var(--gold-rgb),.35),transparent);z-index:-1}
.board .eyebrow{color:var(--gold-hi)}
.board-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);margin-top:2rem}
.board-grid > *{min-width:0}
.board h1{color:var(--ivory)}
.rates{width:100%;border-collapse:collapse}
.rates th{font-weight:500;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);text-align:right;padding-bottom:.9rem}
.rates th:first-child,.rates td:first-child{text-align:left}
.rates td{padding:.85rem 0;border-top:1px solid rgba(var(--ivory-rgb),.1);text-align:right;white-space:nowrap}
.rates td:first-child{font-family:var(--poster);font-size:1.5rem;letter-spacing:.03em}
.rates td:first-child small{display:block;font-family:var(--body);font-size:.68rem;letter-spacing:.14em;color:rgba(var(--ivory-rgb),.5);text-transform:uppercase;margin-top:.15rem}
.odo{display:inline-flex;align-items:center;gap:2px;font-family:var(--poster);font-size:clamp(1.15rem,2.2vw,1.7rem);color:var(--gold-hi)}
.odo .d{position:relative;display:inline-block;height:1.25em;width:.78em;overflow:hidden;background:linear-gradient(#24201a,#1a1712);border-radius:4px;text-align:center;box-shadow:inset 0 -1px 0 rgba(255,255,255,.05)}
.odo .d::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.65)}
.odo .col{display:flex;flex-direction:column;transition:transform 1.6s var(--ease)}
.odo .col b{height:1.25em;line-height:1.25em;font-weight:400}
.odo .sep{opacity:.5;width:.25em;text-align:center}
.odo .rs{font-family:var(--body);font-size:.55em;color:rgba(var(--ivory-rgb),.5);margin-right:.35em}
.flash td{animation:flash 1.4s}
@keyframes flash{30%{background:rgba(var(--gold-rgb),.12)}}
.board-note{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.3rem;font-size:.75rem;color:rgba(var(--ivory-rgb),.55)}
.calc{background:rgba(var(--ivory-rgb),.05);border:1px solid rgba(var(--ivory-rgb),.1);border-radius:22px;padding:clamp(1.2rem,3vw,1.8rem)}
.calc h2{font-family:var(--serif);font-weight:400;font-style:italic;font-size:1.8rem;margin:.2rem 0 1.2rem;line-height:1.1}
.f{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem}
.f > label{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.in-f{width:100%;min-width:0;background:rgba(0,0,0,.35);border:1px solid rgba(var(--ivory-rgb),.14);border-radius:12px;padding:.8rem 1rem;color:var(--ivory)}
.in-f:focus{outline:none;border-color:var(--gold)}
select.in-f option{background:var(--ink)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.chips-k{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.chips-k input{position:absolute;opacity:0;pointer-events:none}
.chips-k label{text-align:center;padding:.6rem 0;border-radius:10px;border:1px solid rgba(var(--ivory-rgb),.14);cursor:pointer;font-size:.88rem;transition:all .3s;color:var(--ivory)}
.chips-k input:checked + label{background:var(--gold-grad);background-size:200% 100%;color:var(--ink);border-color:transparent;font-weight:500}
.chips-k input:focus-visible + label{outline:2px solid var(--gold-hi)}
input[type=range]{width:100%;accent-color:var(--gold)}
.total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px dashed rgba(var(--ivory-rgb),.2);margin-top:1rem;padding-top:1rem}
.total span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(var(--ivory-rgb),.6)}
.total strong{font-family:var(--poster);font-weight:400;font-size:2rem;color:var(--gold-hi)}
.breakdown{font-size:.8rem;color:rgba(var(--ivory-rgb),.55);margin-top:.3rem}

/* ---------- footer: warm sand with a gold rule ---------- */
footer{position:relative;background:linear-gradient(180deg,var(--ivory-2) 0%,var(--sand) 100%);color:var(--ink);padding-top:clamp(4rem,8vw,6rem);padding-bottom:calc(2rem + env(safe-area-inset-bottom,0px));overflow:hidden}
footer::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--gold-grad);background-size:200% 100%;animation:sheen 6s linear infinite}
/* visit the shop + newsletter share one row */
.f-cta{display:grid;grid-template-columns:1fr minmax(0,460px);align-items:end;gap:2rem clamp(2rem,5vw,5rem);padding-bottom:3rem;border-bottom:1px solid rgba(var(--gold-lo-rgb),.2)}
.f-visit{display:flex;flex-direction:column;align-items:flex-start;gap:1.4rem}
.f-cta h2{font-size:clamp(2rem,4.6vw,3.8rem)}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2rem;padding-block:3rem}
.f-grid h4{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-lo);font-weight:600;margin:0 0 1rem}
.f-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;color:var(--ink-60);font-size:.94rem}
.f-grid a{transition:color .3s}
.f-grid ul a:hover{color:var(--gold-lo)}
.f-about{color:var(--ink-60);max-width:34ch;margin:1.2rem 0 0}
.f-brand{display:flex;gap:1rem;align-items:center}
.f-brand .coin{width:70px;height:70px}
.f-brand b{font-family:var(--poster);font-weight:400;font-size:1.6rem;line-height:1.05;letter-spacing:.02em;display:block}
.socials{display:flex;flex-wrap:wrap;gap:.7rem}
.soc{position:relative;width:50px;height:50px;display:grid;place-items:center;border-radius:15px;background:#fff;color:var(--ink);box-shadow:0 0 0 1px rgba(var(--gold-lo-rgb),.22),0 10px 20px -14px rgba(var(--shadow-rgb),.6);overflow:hidden;isolation:isolate;transition:translate .45s var(--ease),rotate .45s var(--ease),box-shadow .45s}
.soc::before{content:"";position:absolute;inset:0;background:var(--gold-grad);background-size:200% 100%;transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1;animation:sheen 3s linear infinite}
.soc svg{width:22px;height:22px;transition:transform .45s var(--ease)}
.soc:hover{translate:0 -6px;rotate:-8deg;box-shadow:0 0 0 1px var(--gold),0 18px 26px -14px rgba(var(--shadow-rgb),.7)}
.soc:hover::before{transform:none}
.soc:hover svg{transform:scale(1.12) rotate(8deg)}
.giant{font-family:var(--poster);text-transform:uppercase;font-size:clamp(2.2rem,8.4vw,7.8rem);line-height:.9;text-align:center;margin:1rem 0 0;white-space:nowrap}
.copy{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.78rem;color:var(--ink-60);margin-top:2rem}

.wa-float{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:90;width:60px;height:60px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 14px 30px -8px rgba(0,0,0,.4);transition:transform .3s}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:30px;height:30px;fill:#fff}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .grid{grid-template-columns:repeat(3,1fr)}
  .grid .card:nth-child(n){margin-top:0}
  .grid .card:nth-child(3n+2){margin-top:2.5rem}
  .grid .card:nth-child(3n){margin-top:5rem}
  .f-grid{grid-template-columns:1fr 1fr}
  .promise{grid-template-columns:1fr 1fr}
  .promise li:nth-child(3){border-left:0}
}
@media (max-width:900px){
  .menu{display:none}
  .burger{display:grid}
  .menu.open{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;background:var(--ivory);padding:1rem var(--gutter) 1.6rem;box-shadow:0 20px 30px -20px rgba(0,0,0,.2)}
  .menu.open a{height:auto;padding-block:.9rem;border-bottom:1px solid var(--ink-12)}
  .menu.open a span:last-child{display:none}
  .nav-cta .btn span{display:none}
  .nav-cta .btn{padding:.8rem}
  .hero-grid,.board-grid,.bridal-grid,.about-grid,.bn1,.bn2-in{grid-template-columns:1fr}
  .carousel{max-width:520px}
  .bn1-blinds{margin:0 clamp(12px,3vw,20px) clamp(12px,3vw,20px);min-height:320px}
  .bn1-txt{padding-bottom:1.5rem}
  .gems{max-width:460px;width:100%;margin-inline:auto}
  .grid{grid-template-columns:repeat(2,1fr)}
  .grid .card:nth-child(n){margin-top:0}
  .grid .card:nth-child(even){margin-top:2.5rem}
  .charm small{display:none}
}
@media (max-width:560px){
  .brand img{height:42px}
  .nav-cta{gap:.4rem}
  .icon-btn{width:42px;height:42px}
  .card h3{font-size:1.15rem}
  .ask span{display:none}
  .facts{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr}
  .promise{grid-template-columns:1fr}
  .promise li + li{border-left:0;border-top:1px solid var(--gold-20)}
  .promise li{padding-inline:0;padding-bottom:1.4rem}
  .stamp:nth-child(even){transform:translateY(1.5rem)}
  .rev-quote{min-height:19rem}
  .rates td:first-child{font-size:1.05rem}
  .rates td:first-child small{display:none}
  .odo{font-size:.95rem;gap:1px}
  .odo .d{width:.72em}
  .odo .rs{display:none}
}

/* =====================================================================
   Laravel website additions (menu, search, newsletter, shop, product,
   about, contact, legal). Same palette, type and motion as above.
   ===================================================================== */
.sr-only,.hp{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.about-big .em{color:var(--gold-lo);font-style:italic}
a.slot{display:block;color:inherit}

/* ---------- menu: current page + category dropdowns ---------- */
.menu{gap:1.15rem;align-items:center}
.menu a{letter-spacing:.1em;font-size:.74rem;white-space:nowrap}
.menu > a,.dd,.dd > a{flex:none}
@media (max-width:1480px){.nav-cta .btn span{display:none}.nav-cta .btn{padding:.8rem}}
.menu > a.is-current span:first-child,.menu .dd.is-current > a span:first-child{color:var(--gold-lo)}
.menu > a.is-current::after,.menu .dd.is-current > a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold)}
.dd{position:relative;display:flex;align-items:center;gap:.15rem}
.dd-btn{width:22px;height:22px;border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center;color:var(--ink-60)}
.dd-btn svg{width:14px;height:14px;transition:transform .4s var(--ease)}
.dd:hover .dd-btn svg,.dd.open .dd-btn svg{transform:rotate(180deg)}
.dd .sub{position:absolute;top:calc(100% + 18px);left:-1.2rem;min-width:230px;background:#fff;padding:.7rem;display:grid;gap:.1rem;box-shadow:0 0 0 1px var(--gold-20),0 30px 50px -24px rgba(var(--shadow-rgb),.45);clip-path:var(--gem);--cut:14px;opacity:0;visibility:hidden;translate:0 10px;transition:opacity .35s var(--ease),translate .45s var(--ease),visibility .35s;z-index:90}
.dd .sub::before{content:"";position:absolute;left:0;right:0;top:-20px;height:20px}
.dd:hover .sub,.dd:focus-within .sub,.dd.open .sub{opacity:1;visibility:visible;translate:0 0}
.menu .sub a{height:auto;overflow:visible;font-size:.84rem;letter-spacing:.04em;text-transform:none;font-weight:400;padding:.55rem .8rem;border-radius:10px;display:flex;align-items:center;gap:.6rem;transition:background .25s,color .25s,padding .35s var(--ease)}
.menu .sub a::before{content:"";width:6px;height:6px;background:var(--gold-20);transform:rotate(45deg);transition:background .25s}
.menu .sub a:hover{background:var(--ivory);color:var(--gold-lo);padding-left:1.1rem}
.menu .sub a:hover::before{background:var(--gold)}
.menu .sub .sub-all{font-weight:500;border-bottom:1px dashed var(--gold-20);border-radius:10px 10px 0 0;margin-bottom:.2rem}

/* ---------- search panel + suggestions ---------- */
.search-panel{position:absolute;left:0;right:0;top:100%;background:rgba(var(--ivory-rgb),.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--ink-12),0 30px 40px -30px rgba(0,0,0,.3);padding-block:1.1rem}
.search-form{position:relative;display:flex;align-items:center;gap:.8rem}
.search-form > svg{width:22px;height:22px;color:var(--gold-lo);flex:none}
.search-form input{flex:1;min-width:0;border:0;border-bottom:1px solid var(--gold);background:none;font-family:var(--serif);font-size:clamp(1.3rem,2.6vw,2rem);padding:.3rem 0;outline:none}
.search-form .btn{padding:.8rem 1.3rem}
.suggest{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:95;background:#fff;box-shadow:0 0 0 1px var(--gold-20),0 30px 50px -20px rgba(var(--shadow-rgb),.45);border-radius:18px;padding:.5rem;max-height:min(70vh,520px);overflow:auto}
.search-form .suggest{left:calc(22px + .8rem);right:auto;width:min(640px,100%)}
.suggest a{display:flex;align-items:center;gap:.8rem;padding:.55rem .7rem;border-radius:12px;outline:none}
.suggest a:hover,.suggest a.is-active,.suggest a:focus{background:var(--ivory)}
.sg-item img{width:52px;height:52px;object-fit:cover;border-radius:8px;background:var(--ivory);mix-blend-mode:multiply;flex:none}
.sg-item span{display:grid;min-width:0}
.sg-item b{font-family:var(--serif);font-weight:400;font-size:1.15rem;line-height:1.1}
.sg-item small{font-size:.72rem;letter-spacing:.08em;color:var(--ink-60);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-item em{margin-left:auto;font-style:normal;font-size:.8rem;color:var(--gold-lo);white-space:nowrap}
.sg-cat{font-size:.92rem}
.sg-cat small{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--gold);padding:.15rem .5rem;border-radius:99px}
.sg-all{justify-content:center;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--gold-lo);border-top:1px dashed var(--gold-20);border-radius:0!important;margin-top:.3rem}
.sg-empty{margin:0;padding:1rem;color:var(--ink-60);font-size:.92rem}

/* ---------- newsletter (footer) ---------- */
.nl{position:relative;margin:0}
.nl h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.1;margin:0}
.nl h3 .serif{color:var(--gold-lo)}
.nl p{margin:.35rem 0 1rem;color:var(--ink-60);font-size:.92rem}
.nl-row{display:flex;align-items:center;padding:5px;background:#fff;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(var(--gold-lo-rgb),.22);transition:box-shadow .3s}
.nl-row:focus-within{box-shadow:inset 0 0 0 1px var(--gold),0 0 0 4px var(--gold-20)}
.nl-row input{flex:1;min-width:0;border:0;background:none;padding:.7rem 1.1rem;outline:none}
.nl-row .btn{padding:.85rem 1.3rem}
.nl-msg{flex-basis:100%;margin:.2rem 0 0;font-size:.86rem}
.nl-msg.ok{color:#1F7A4D}.nl-msg.err{color:#B3261E}

/* ---------- shared page bits ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);margin-bottom:1.6rem}
.crumbs a:hover{color:var(--gold-lo)}
.crumbs span[aria-current]{color:var(--ink)}
.shop-head{padding-top:clamp(1.5rem,4vw,3rem);background:linear-gradient(180deg,var(--ivory),#fff)}
.shop-head .head{margin-bottom:0;padding-bottom:1rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.6rem}
.chips a{padding:.45rem 1rem;border-radius:999px;border:1px solid var(--gold-20);background:#fff;font-size:.82rem;transition:all .3s}
.chips a:hover{border-color:var(--gold);background:var(--ivory)}
.prose{max-width:70ch;color:var(--ink-60);font-size:1.02rem}
.prose h2{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.8rem;color:var(--ink);margin:2rem 0 .4rem}
.prose p{margin:0 0 1rem}
.legal .prose{margin-top:2rem}
.empty{text-align:center;padding:4rem 1rem;background:#fff;clip-path:var(--gem);--cut:24px}
.empty h2{font-size:clamp(2rem,4vw,3rem)}
.empty .lede{margin:1rem auto 2rem}
.empty .ctas{justify-content:center}

/* ---------- shop ---------- */
.shop-sec{background:#fff;background-image:radial-gradient(rgba(var(--gold-rgb),.16) 1px,transparent 1.3px);background-size:22px 22px;padding-top:2.4rem}
.shop-layout{display:grid;grid-template-columns:230px 1fr;gap:clamp(1.5rem,3vw,3rem);align-items:start}
.shop-layout > *{min-width:0}
.filters{position:sticky;top:96px;background:#fff;padding:1.3rem;box-shadow:0 0 0 1px var(--gold-20);clip-path:var(--gem);--cut:16px}
.f-title{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-lo);font-weight:600;margin:0 0 .8rem}
.f-cats,.f-cats ul{list-style:none;margin:0;padding:0}
.f-cats ul{padding-left:.9rem;margin:.1rem 0 .5rem;border-left:1px dashed var(--gold-20)}
.f-cats a{display:block;padding:.32rem .4rem;border-radius:8px;font-size:.92rem;transition:color .25s,background .25s}
.f-cats > li > a{font-weight:500}
.f-cats a:hover{color:var(--gold-lo)}
.f-cats a.on{background:var(--ivory);color:var(--gold-lo);font-weight:600}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:1.6rem}
.tb-search{position:relative;flex:1;min-width:220px}
.tb-search > svg{position:absolute;left:1.1rem;top:50%;translate:0 -50%;width:18px;height:18px;color:var(--gold-lo)}
.tb-search input{width:100%;border:1px solid var(--ink-12);background:#fff;border-radius:999px;padding:.9rem 1.2rem .9rem 2.9rem;outline:none;transition:border-color .3s,box-shadow .3s}
.tb-search input:focus{border-color:var(--gold);box-shadow:0 0 0 4px var(--gold-20)}
.tb-sort{display:flex;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-60)}
.tb-sort select{border:1px solid var(--ink-12);background:#fff;border-radius:999px;padding:.8rem 1rem;font-size:.9rem;letter-spacing:0;text-transform:none;color:var(--ink);cursor:pointer}
.tb-view{display:flex;gap:.3rem;padding:.25rem;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--ink-12)}
.tb-view a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--ink-60);transition:all .3s}
.tb-view a svg{width:18px;height:18px}
.tb-view a.on{background:var(--ink);color:var(--gold-hi)}
.p-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2.4rem 1.6rem;padding-top:1rem}
.p-grid .pola{width:auto}
.pola-link{display:block}
.pola figcaption a b{transition:color .3s}
.pola figcaption a:hover b{color:var(--gold-lo)}
.pola .pola-meta{display:block}
.pola .pola-spec{display:block;font-size:.74rem;letter-spacing:.06em;text-transform:none;color:var(--ink-60);margin-top:.15rem}
.pola .pola-sum{display:none}
.pola .pola-foot{display:flex;justify-content:center;align-items:center;gap:.9rem;margin-top:.55rem;letter-spacing:normal;text-transform:none}
.pola .price,.card .price{font-family:var(--poster);font-size:1.05rem;letter-spacing:.04em;color:var(--ink)}
.pola .ask{font-size:.62rem}
.pola .ask span{font-size:inherit;letter-spacing:.14em;color:inherit}
/* list view: wide polaroids with the description */
.p-grid.is-list{grid-template-columns:1fr;gap:1.4rem}
.p-grid.is-list .pola{--r:0deg!important;display:grid;grid-template-columns:200px 1fr;gap:1.6rem;align-items:center;padding:12px 24px 12px 12px}
.p-grid.is-list .pola::before{left:112px}
.p-grid.is-list .pola:hover{translate:6px 0;scale:1}
.p-grid.is-list figcaption{text-align:left;margin:0}
.p-grid.is-list figcaption b{font-size:1.7rem}
.p-grid.is-list .pola-sum{display:block;margin:.6rem 0 0;color:var(--ink-60);font-size:.92rem;max-width:60ch}
.p-grid.is-list .pola-foot{justify-content:flex-start}
.load-more{margin-top:3rem}
.load-more .btn.is-loading{opacity:.6;pointer-events:none}
.p-grid .is-added{animation:pAdd .8s var(--ease) both}
@keyframes pAdd{from{opacity:0;translate:0 40px}}
.card .info h3 a:hover{color:var(--gold-lo)}

/* ---------- product detail: gem-frame gallery + jeweller's tag ---------- */
.pdx{position:relative;padding-block:clamp(1.5rem,4vw,3rem) clamp(3rem,6vw,5rem);background:linear-gradient(180deg,var(--ivory) 0%,#fff 70%);overflow:hidden;isolation:isolate}
.pdx::before{content:"";position:absolute;width:min(90vw,900px);aspect-ratio:1;left:-20%;top:-10%;z-index:-1;background:radial-gradient(closest-side,rgba(var(--gold-hi-rgb),.42),transparent 70%)}
.pdx-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.pdx-grid > *{min-width:0}

/* gallery */
.pdx-gallery{display:grid;grid-template-columns:1fr;gap:1rem;position:sticky;top:96px}
.pdx-gallery.has-rail{grid-template-columns:84px 1fr}
.pdx-gallery > *{min-width:0}
.pdx-rail{display:flex;flex-direction:column;gap:.7rem;max-height:min(70vh,640px);overflow-y:auto;scrollbar-width:none;padding:2px}
.pdx-rail::-webkit-scrollbar{display:none}
.pdx-thumb{flex:none;width:80px;aspect-ratio:1;padding:2px;border:0;cursor:pointer;background:var(--gold-20);clip-path:var(--gem);--cut:16%;transition:background .4s,transform .4s var(--ease)}
.pdx-thumb img{width:100%;height:100%;object-fit:cover;clip-path:var(--gem);background:#fff}
.pdx-thumb:hover{transform:translateX(4px)}
.pdx-thumb[aria-selected=true]{background:var(--gold-grad);background-size:200% 100%;animation:sheen 4s linear infinite}
.pdx-stage{position:relative;min-width:0}
.pdx-frame{padding:2px;background:var(--gold-grad);background-size:200% 100%;clip-path:var(--gem);--cut:9%}
.pdx-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;aspect-ratio:1;clip-path:var(--gem);--cut:9%;outline:none;background:#fff}
.pdx-track::-webkit-scrollbar{display:none}
.pdx-track:focus-visible{box-shadow:inset 0 0 0 3px var(--ink)}
.pdx-slide{flex:none;width:100%;height:100%;margin:0;scroll-snap-align:start;overflow:hidden;clip-path:var(--gem);background:#fff}
.pdx-zoom{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.pdx-slide img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.pdx-slide.zoom img{transform:scale(1.8)}
.pdx-new{position:absolute;right:13%;top:4.5%;z-index:2;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;background:var(--ink);color:var(--gold-hi);padding:.35rem .7rem;pointer-events:none}
.pdx-nav{display:flex;align-items:center;gap:1.2rem;margin-top:1.2rem}
.pdx-count{font-family:var(--poster);letter-spacing:.08em;color:var(--ink-60);white-space:nowrap}
.pdx-count b{font-weight:400;color:var(--ink)}
.pdx-bar{flex:1;height:2px;background:var(--ink-12);overflow:hidden}
.pdx-bar i{display:block;height:100%;background:var(--gold-grad);transition:transform .6s var(--ease)}
.pdx-hint{margin:.9rem 0 0;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-60);text-align:center}

/* info: a jeweller's price tag hanging on a thread */
.pdx-tag{position:relative;background:#fff;padding:clamp(1.6rem,3vw,2.4rem);padding-top:clamp(2.4rem,4vw,3rem);clip-path:polygon(18% 0,82% 0,100% 7%,100% 100%,0 100%,0 7%);box-shadow:inset 0 0 0 1px var(--gold-20)}
.pdx-tag::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 40%,rgba(var(--gold-hi-rgb),.35) 50%,transparent 60%);background-size:250% 100%;animation:sheen 9s linear infinite}
.pdx-hole{position:absolute;top:14px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--ivory);box-shadow:inset 0 0 0 2px var(--gold)}
.pdx-tag .eyebrow{display:flex;justify-content:center}
.pdx-title{text-align:center;font-size:clamp(2.4rem,4.6vw,4rem);margin:.8rem 0 1.4rem}
.pdx-stamps{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.7rem;margin-bottom:1.4rem}
.pdx-stamp{padding:1.5px;background:var(--gold-grad);background-size:200% 100%;clip-path:var(--hex);aspect-ratio:1.15;animation:sheen 8s linear infinite}
.pdx-stamp .in{height:100%;clip-path:var(--hex);background:radial-gradient(circle at 50% 30%,#fff,#FCF5E4);display:grid;place-content:center;text-align:center;gap:.15rem}
.pdx-stamp small{font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-lo);font-weight:600}
.pdx-stamp b{font-family:var(--poster);font-weight:400;font-size:clamp(1.1rem,1.8vw,1.45rem);letter-spacing:.03em;line-height:1.05;word-break:break-all;padding-inline:.4rem}
.pdx-price{text-align:center;margin:0 0 1.2rem;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.2rem .8rem}
.pdx-price small{flex-basis:100%;font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-60)}
.pdx-price span{font-family:var(--poster);font-size:clamp(2rem,3.4vw,2.8rem);line-height:1;background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 6s linear infinite}
.pdx-price s{font-family:var(--poster);font-size:1.3rem;color:var(--ink-40)}
.pdx-save{flex-basis:100%;font-style:normal;font-size:.8rem;color:#B3261E;font-weight:500;letter-spacing:.04em}
.pdx-off{text-align:center;margin:0 0 1.2rem;font-size:.9rem;color:var(--ink-60)}
.pdx-off b{display:inline-block;margin-right:.4rem;padding:.25rem .7rem;border-radius:999px;background:#B3261E;color:#fff;font-weight:600;font-size:.78rem;letter-spacing:.06em}
.pdx-code{text-align:center;margin:-.6rem 0 1.2rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-60)}
.pdx-code b{color:var(--gold-lo);font-weight:600}
.pdx-count-pill{margin-left:.6rem;font-family:var(--body);font-style:normal;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-lo);background:var(--ivory);border:1px solid var(--gold-20);border-radius:999px;padding:.15rem .6rem;vertical-align:middle}
.pdx-acc summary{gap:.4rem}
.pdx-acc summary::after{margin-left:auto}
.pdx-table-wrap{overflow-x:auto}
.specs.stones{min-width:420px}
.specs.stones th{width:auto;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-lo);font-weight:600;padding-top:0}
.specs.stones td{font-size:1rem;padding-right:.6rem}
.specs.breakdown th{width:auto}
.specs.breakdown td{text-align:right;white-space:nowrap}
.specs.breakdown .total th,.specs.breakdown .total td{border-top:1px solid var(--gold);font-weight:600;color:var(--ink);font-size:1.05rem}
.pdx-note{margin:.6rem 0 0;font-size:.78rem;color:var(--ink-60)}
/* sale ribbon on photos */
.sale-tag{position:absolute;left:12px;top:12px;z-index:3;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#B3261E;color:#fff;text-align:center;line-height:1;box-shadow:0 0 0 3px #fff,0 10px 20px -8px rgba(179,38,30,.6);rotate:-12deg;pointer-events:none}
.sale-tag b{font-family:var(--poster);font-weight:400;font-size:.95rem;letter-spacing:.02em;align-self:end}
.sale-tag small{font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;align-self:start;margin-top:.15rem}
.pdx-sale{left:9%;top:5%;width:76px;height:76px}
.pdx-sale b{font-size:1.2rem}
.card .pic{position:relative}
.card .sale-tag{left:8px;top:8px;width:50px;height:50px}
.card .sale-tag b{font-size:.8rem}
.price-old{display:block;font-size:.8em;color:var(--ink-40)}
.price-sale{color:#B3261E}
.f-cats a.f-sale{color:#B3261E;display:flex;justify-content:space-between}
.f-cats a.f-sale span{font-size:.72rem;background:#B3261E;color:#fff;border-radius:999px;padding:0 .5rem}
.pdx-summary{text-align:center;color:var(--ink-60);margin:0 auto 1.6rem;max-width:46ch;font-family:var(--serif);font-size:1.25rem;line-height:1.35}
.pdx-actions{display:grid;gap:.6rem}
.pdx-actions > .btn{justify-content:center;padding-block:1.15rem}
.pdx-actions-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}
.pdx-actions-row .btn{justify-content:center}
.pdx-visit{display:flex;gap:.6rem;align-items:flex-start;margin:1.4rem 0 0;padding-top:1.2rem;border-top:1px dashed var(--gold-20);font-size:.84rem;color:var(--ink-60)}
.pdx-visit svg{width:18px;height:18px;flex:none;color:var(--gold);margin-top:.15rem}

/* details accordions */
.pdx-acc{margin-top:1.4rem;border-top:1px solid var(--gold-20)}
.pdx-acc details{border-bottom:1px solid var(--gold-20)}
.pdx-acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:1.1rem .2rem;font-family:var(--serif);font-style:italic;font-size:1.45rem}
.pdx-acc summary::-webkit-details-marker{display:none}
.pdx-acc summary::after{content:"";width:10px;height:10px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg) translateY(-3px);transition:transform .4s var(--ease)}
.pdx-acc details[open] summary::after{transform:rotate(-135deg)}
.pdx-acc summary:hover{color:var(--gold-lo)}
.pdx-acc details > *:not(summary){margin:0 .2rem 1.2rem}
.specs{width:100%;border-collapse:collapse}
.specs th,.specs td{padding:.7rem 0;border-top:1px dashed var(--gold-20);text-align:left;font-weight:400;vertical-align:top}
.specs tr:first-child th,.specs tr:first-child td{border-top:0}
.specs th{width:42%;color:var(--ink-60);font-size:.88rem}
.specs td{font-family:var(--serif);font-size:1.15rem}
/* description from the admin editor: always the website's own typography */
.pdx-desc{color:var(--ink-60);font-size:.95rem;line-height:1.7}
.pdx-desc p{margin:0 0 .9rem}
.pdx-desc h3,.pdx-desc h4{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--ink);line-height:1.15;margin:1.2rem 0 .4rem}
.pdx-desc h3{font-size:1.5rem}
.pdx-desc h4{font-size:1.25rem}
.pdx-desc b,.pdx-desc strong{color:var(--ink);font-weight:600}
.pdx-desc ul,.pdx-desc ol{margin:0 0 1rem;padding-left:1.2rem}
.pdx-desc ul{list-style:none;padding-left:0}
.pdx-desc ul li{position:relative;padding-left:1.2rem;margin-bottom:.3rem}
.pdx-desc ul li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}
.pdx-desc blockquote{margin:1rem 0;padding:.4rem 0 .4rem 1rem;border-left:2px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--ink)}
.pdx-desc a{color:var(--gold-lo);border-bottom:1px solid currentColor}
.pdx-desc table{width:100%;border-collapse:collapse;margin:0 0 1rem}
.pdx-desc th,.pdx-desc td{border-top:1px dashed var(--gold-20);padding:.5rem .3rem;text-align:left}
.pdx-desc hr{border:0;border-top:1px solid var(--gold-20);margin:1.2rem 0}
.pdx-promise{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.2rem}
.pdx-promise b{display:block;font-weight:500;font-size:.92rem}
.pdx-promise span{font-size:.82rem;color:var(--ink-60)}

/* today's rate band */
.pdx-rate-sec{padding-bottom:clamp(3rem,6vw,5rem);background:#fff}
.pdx-rate{display:grid;grid-template-columns:1fr 1.3fr;gap:1.5rem 3rem;align-items:center}
.pdx-rate h2{font-size:clamp(1.8rem,3.4vw,2.8rem);color:var(--ivory);margin:.8rem 0 .6rem}
.pdx-rate-link{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-hi);border-bottom:1px solid currentColor}
.pdx-rate-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin:0}
.pdx-rate-nums div{padding:1rem 1.2rem;border:1px solid rgba(var(--ivory-rgb),.12);border-radius:16px;background:rgba(var(--ivory-rgb),.04)}
.pdx-rate-nums .is-est{border-color:var(--gold);background:rgba(var(--gold-rgb),.12)}
.pdx-rate-nums dt{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(var(--ivory-rgb),.6)}
.pdx-rate-nums dd{margin:.3rem 0 0;font-family:var(--poster);font-size:clamp(1.3rem,2.2vw,1.8rem);color:var(--gold-hi)}
.pdx-rate-note{grid-column:1/-1;margin:0;font-size:.78rem;color:rgba(var(--ivory-rgb),.55)}

/* sticky ask bar on phones */
.pdx-bar-mobile{display:none}

/* full-screen photo viewer (native <dialog>) */
.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(var(--ink-rgb),.94);color:var(--ivory)}
.lightbox[open]{display:grid;place-items:center}
.lightbox::backdrop{background:transparent}
.lightbox img{max-width:min(92vw,92vh);max-height:86vh;object-fit:contain;background:#fff;clip-path:var(--gem);--cut:6%}
.lightbox button{position:absolute;width:54px;height:54px;border-radius:50%;border:1px solid rgba(var(--ivory-rgb),.25);background:rgba(var(--ivory-rgb),.06);color:var(--ivory);cursor:pointer;display:grid;place-items:center;font-size:1.8rem;line-height:1;transition:background .3s}
.lightbox button:hover{background:var(--gold);color:var(--ink)}
.lightbox button svg{width:22px;height:22px}
.lb-close{top:18px;right:18px}
.lb-prev{left:18px;top:50%;translate:0 -50%}
.lb-next{right:18px;top:50%;translate:0 -50%}
.lb-count{position:absolute;bottom:20px;left:50%;translate:-50% 0;font-family:var(--poster);letter-spacing:.1em}

/* second photo on hover in product cards */
.pola .ph,.card .pic .in{position:relative}
.ph-alt{position:absolute!important;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s var(--ease)!important}
.pola:hover .ph-alt,.card:hover .ph-alt{opacity:1}

/* ---------- about ---------- */
.ab-hero{padding-top:clamp(1.5rem,4vw,3rem);position:relative;overflow:hidden;isolation:isolate}
.ab-hero::before{content:"";position:absolute;width:min(110vw,1100px);aspect-ratio:1;right:-30%;top:-40%;z-index:-1;background:radial-gradient(closest-side,rgba(var(--gold-hi-rgb),.5),transparent 70%)}
.ab-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.ab-grid > *{min-width:0}
.ab-title{font-size:clamp(2.6rem,6vw,5.4rem);margin:1.1rem 0 1.3rem}
.ab-media{position:relative;max-width:480px;margin-inline:auto;width:100%}
.ab-media img{width:100%;aspect-ratio:9/11;object-fit:cover;border-radius:999px 999px 28px 28px;box-shadow:0 0 0 8px #fff,0 0 0 9px var(--gold-20),0 40px 60px -30px rgba(var(--shadow-rgb),.5)}
.ab-media .bn1-badge{right:-10px;top:12%}
.ab-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.8rem,2vw,1.4rem)}
.ab-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.6rem 1.4rem;background:#fff;clip-path:var(--gem);--cut:18px;box-shadow:inset 0 0 0 1px var(--gold-20);transition:translate .5s var(--ease),box-shadow .5s}
.ab-card:hover{translate:0 -8px;box-shadow:inset 0 0 0 1px var(--gold)}
.ab-card .cc-no{position:absolute;right:1.2rem;top:1rem}
.ab-card .eyebrow{font-size:.6rem}
.ab-card h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.6rem;line-height:1.1;margin:.4rem 0 0}
.ab-card p{margin:0;color:var(--ink-60);font-size:.92rem;flex:1}
.ab-card:hover .cc-go svg{transform:translateX(8px)}

/* ---------- contact ---------- */
.ct{background:linear-gradient(180deg,var(--ivory),var(--ivory-2));padding-top:clamp(1.5rem,4vw,3rem)}
.ct-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(1.2rem,3vw,2.4rem);align-items:start}
.ct-grid > *{min-width:0}
.ct-info{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.ct-card{background:#fff;padding:1.2rem 1.3rem;clip-path:var(--gem);--cut:14px;box-shadow:inset 0 0 0 1px var(--gold-20)}
.ct-card small{display:block;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-lo);font-weight:600;margin-bottom:.35rem}
.ct-card p,.ct-card a:not(.btn):not(.soc){margin:0;font-family:var(--serif);font-size:1.2rem;line-height:1.25;word-break:break-word}
.ct-card a:not(.btn):not(.soc):hover{color:var(--gold-lo)}
.ct-card:first-child,.ct-actions,.ct-info .ct-card:last-child{grid-column:1/-1}
.ct-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.ct-form{background:var(--ink);color:var(--ivory);padding:clamp(1.4rem,3vw,2.4rem);border-radius:clamp(22px,3vw,32px);position:relative;overflow:hidden;isolation:isolate}
.ct-form::before{content:"";position:absolute;width:520px;height:520px;right:-220px;top:-260px;background:radial-gradient(closest-side,rgba(var(--gold-rgb),.35),transparent);z-index:-1}
.ct-form h2{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:1.4rem}
.ct-form .two{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.fld{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.fld label{font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.fld input,.fld textarea{width:100%;background:rgba(0,0,0,.35);border:1px solid rgba(var(--ivory-rgb),.14);border-radius:12px;padding:.85rem 1rem;color:var(--ivory);font:inherit;outline:none;transition:border-color .3s}
.fld input:focus,.fld textarea:focus{border-color:var(--gold)}
.fld textarea{resize:vertical;min-height:130px}
.fld .err{font-size:.8rem;color:#F2B8B5}
.ct-form .btn{--bg:var(--gold);--fg:var(--ink)}
.form-ok{background:rgba(51,194,122,.15);border:1px solid rgba(51,194,122,.4);color:#BFF0D4;padding:.9rem 1rem;border-radius:12px;margin:0 0 1.2rem}
.ct-map{margin-top:clamp(1.5rem,3vw,2.4rem);clip-path:var(--gem);--cut:24px;background:var(--gold-grad);padding:2px}
.ct-map iframe{display:block;width:100%;height:clamp(280px,40vw,440px);border:0;clip-path:var(--gem);filter:sepia(.25) saturate(.9)}

/* ---------- rates board extras ---------- */
.board-grid.no-calc{grid-template-columns:1fr}

/* ---------- responsive for the additions ---------- */
@media (max-width:1200px){
  .menu{display:none}
  .burger{display:grid}
  .menu.open{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;top:100%;left:0;right:0;background:var(--ivory);padding:1rem var(--gutter) 1.6rem;box-shadow:0 20px 30px -20px rgba(0,0,0,.2);max-height:calc(100vh - 80px);overflow:auto}
  .menu.open > a,.menu.open .dd > a{height:auto;padding-block:.9rem;border-bottom:1px solid var(--ink-12);flex:1}
  .menu.open a span:last-child{display:none}
  .menu.open > a.is-current::after,.menu.open .dd.is-current > a::after{display:none}
  .menu.open .dd{flex-wrap:wrap;gap:0}
  .menu.open .dd-btn{width:46px;height:46px;border-bottom:1px solid var(--ink-12)}
  .menu.open .dd .sub{position:static;flex-basis:100%;display:none;opacity:1;visibility:visible;translate:none;clip-path:none;box-shadow:none;background:transparent;padding:.3rem 0 .6rem .8rem;min-width:0}
  .menu.open .dd.open .sub{display:grid}
  .nav-cta .btn span{display:none}
  .nav-cta .btn{padding:.8rem}
  .ab-cards{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .shop-layout,.pdx-grid,.ab-grid,.ct-grid,.f-cta,.pdx-rate{grid-template-columns:1fr}
  .filters{position:static;clip-path:none;border-radius:18px}
  .f-cats{display:flex;flex-wrap:wrap;gap:.3rem}
  .f-cats ul{display:none}
  .f-cats a{border:1px solid var(--gold-20);border-radius:999px;padding:.35rem .9rem;font-size:.84rem}
  .pdx-gallery{position:static}
  .pdx-gallery.has-rail{grid-template-columns:1fr}
  .pdx-rail{order:2;flex-direction:row;max-height:none;overflow-x:auto}
  .pdx-thumb{width:64px}
  .pdx-thumb:hover{transform:none}
  .pdx-hint{display:none}
  .pdx-bar-mobile{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:85;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom,0px));background:rgba(var(--ivory-rgb),.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 -1px 0 var(--ink-12)}
  .pdx-bar-mobile span{display:grid;min-width:0}
  .pdx-bar-mobile b{font-family:var(--serif);font-weight:400;font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pdx-bar-mobile small{font-size:.72rem;color:var(--gold-lo)}
  .pdx-bar-mobile .btn{padding:.8rem 1.2rem;flex:none}
  body:has(.pdx-bar-mobile) .wa-float{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  body:has(.pdx-bar-mobile) footer{padding-bottom:6rem}
}
@media (max-width:560px){
  .pdx-tag{padding:2.2rem 1.1rem 1.4rem}
  .pdx-stamps{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
  .pdx-stamp b{font-size:.95rem;padding-inline:.2rem}
  .pdx-stamp small{font-size:.5rem;letter-spacing:.16em}
  .pdx-summary{font-size:1.1rem}
  .pdx-actions-row .btn{padding-inline:.7rem;letter-spacing:.1em;white-space:nowrap}
  .pdx-promise{grid-template-columns:1fr}
  .p-grid{grid-template-columns:1fr 1fr;gap:1.6rem .9rem}
  .p-grid .pola{padding:8px 8px 12px}
  .pola figcaption b{font-size:1.1rem}
  .pola .pola-meta{font-size:.58rem}
  .p-grid.is-list .pola{grid-template-columns:110px 1fr;gap:.9rem;padding:8px 12px 8px 8px}
  .p-grid.is-list .pola::before{left:63px;width:50px}
  .p-grid.is-list figcaption b{font-size:1.2rem}
  .p-grid.is-list .pola-sum{display:none}
  .tb-sort span{display:none}
  .ct-info,.ct-form .two,.ab-cards,.pdx-promise{grid-template-columns:1fr}
  .search-form .btn{display:none}
  .search-form .suggest{left:0;width:100%}
  .nl-row .btn{padding:.85rem 1rem}
  .lb-prev,.lb-next{top:auto;bottom:14px;translate:none}
}

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