/* Overrides for the "your logo" version only */
.own-lock{display:flex; align-items:center; gap:12px}
.own-lock img:first-child{height:50px; width:auto}
.own-lock img:last-child{height:19px; width:auto}
@media (max-width:820px){.own-lock img:first-child{height:42px} .own-lock img:last-child{height:16px}}
.intro__cal--own{width:auto; height:min(42vh,320px)}
.intro__word--own{height:28px; width:auto; padding:0; letter-spacing:0}
.complete__emblem{width:110px}
.why__cal--own{width:auto; height:78%; max-height:440px; margin:auto}
.why__art picture{position:relative; z-index:1; display:grid; place-items:center; height:100%; width:100%}
.foot__emblem{width:150px}
.foot__cols address{font-style:normal; color:rgb(243 236 220 / .8); font-size:15px; line-height:1.7; padding:4px 0}
@media (max-width:640px){.foot__cols{flex-direction:column; gap:32px; text-align:center}}

/* Contact & custom orders */
.contact{display:grid; grid-template-columns:1fr 1.15fr; gap:72px; align-items:start}
.contact__intro .h1{margin-bottom:18px}
.contact__facts{list-style:none; margin:36px 0 0; padding:0; display:grid; gap:0; border-top:1px solid var(--line)}
.contact__facts li{display:grid; grid-template-columns:110px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); color:var(--ink-2); font-size:15.5px}
.contact__facts b{font:700 11px/1.9 var(--f-body); letter-spacing:.18em; text-transform:uppercase; color:var(--ink)}
.contact__facts a{color:var(--ink); text-decoration-color:var(--gold); text-underline-offset:3px}
.cform{background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:36px; box-shadow:var(--sh-1); display:grid; gap:20px; position:relative}
.cform::before{content:""; position:absolute; inset:8px; border:1px solid color-mix(in srgb,var(--gold) 22%,transparent); border-radius:9px; pointer-events:none}
.cform__type{border:0; padding:0; margin:0; display:flex; gap:10px; flex-wrap:wrap}
.cform__type legend{font:700 12px var(--f-body); letter-spacing:.18em; text-transform:uppercase; color:var(--ink-2); margin-bottom:12px; padding:0}
.cform__type label{position:relative; cursor:pointer}
.cform__type input{position:absolute; opacity:0; inset:0; cursor:pointer}
.cform__type span{display:inline-flex; align-items:center; height:42px; padding:0 20px; border-radius:999px; border:1px solid var(--line); font:600 14px var(--f-body); transition:.3s}
.cform__type input:checked + span{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.cform__type input:focus-visible + span{outline:3px solid var(--gold); outline-offset:3px}
.cform__row{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.field{display:grid; gap:7px; position:relative; z-index:1}
.field label{font:600 14px var(--f-body); color:var(--ink)}
.field .opt{font-weight:400; color:var(--ink-2)}
.field input,.field textarea{width:100%; font:400 16px/1.5 var(--f-body); color:var(--ink); background:var(--paper-2); border:1px solid var(--line); border-radius:2px; padding:12px 14px; transition:border-color .3s, box-shadow .3s}
.field textarea{resize:vertical; min-height:130px}
.field input:focus,.field textarea:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 25%,transparent)}
.field [aria-invalid="true"]{border-color:var(--rose)}
.field__err{color:var(--rose); font-size:13.5px}
.cform .field--order{display:none}
.cform.is-order .field--order{display:grid}
.cform:not(.is-order) .cform__row:nth-of-type(2){grid-template-columns:1fr}
.cform__send{display:flex; gap:12px; flex-wrap:wrap; position:relative; z-index:1; margin-top:6px}
.cform__note{font-size:13.5px; color:var(--ink-2); position:relative; z-index:1}
.cform__note.is-err{color:var(--rose)}
@media (max-width:900px){.contact{grid-template-columns:1fr; gap:44px}}
@media (max-width:560px){.cform{padding:24px 20px} .cform__row{grid-template-columns:1fr} .cform__send .btn{flex:1 1 100%} .contact__facts li{grid-template-columns:1fr; gap:2px}}

/* ===== Shop ===== */
.shop .head--row{margin-bottom:48px}
.shop .head__sub{max-width:34em}
.band__link{text-decoration:none; color:inherit}
.band__link:hover{text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px}
.shop__grid{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:44px 28px}
.shop__grid li[hidden]{display:none}
.pc{--tx:0deg; --ty:0deg; display:flex; flex-direction:column; gap:16px; width:100%; padding:0; border:0; background:none; color:inherit; text-align:left; cursor:pointer; font:inherit}
.pc__stage{position:relative; display:grid; place-items:center; aspect-ratio:1; border-radius:14px; padding:12%;
  background:radial-gradient(90% 80% at 50% 30%, color-mix(in srgb,var(--paper) 70%,#fff), var(--paper-2)); border:1px solid var(--line);
  perspective:900px; overflow:hidden; transition:border-color .4s, box-shadow .6s var(--ease)}
.pc__stage::after{content:""; position:absolute; left:18%; right:18%; bottom:7%; height:16px; background:radial-gradient(closest-side, rgb(11 46 39 / .28), transparent); filter:blur(3px)}
.pc__stage img{position:relative; z-index:1; max-width:100%; max-height:100%; object-fit:contain; border-radius:3px;
  box-shadow:0 18px 30px -14px rgb(11 46 39 / .45), 0 2px 4px rgb(11 46 39 / .12);
  transform:rotateX(var(--tx)) rotateY(var(--ty)); transition:transform .7s var(--ease)}
.pc:hover .pc__stage,.pc:focus-visible .pc__stage{border-color:var(--gold); box-shadow:0 24px 50px -30px rgb(11 46 39 / .5)}
.pc:hover .pc__stage img{transition-duration:.2s; transform:rotateX(var(--tx)) rotateY(var(--ty)) translateY(-6px) scale(1.03)}
.pc:focus-visible{outline:none} .pc:focus-visible .pc__stage{outline:3px solid var(--gold); outline-offset:3px}
.pc__new{position:absolute; top:12px; left:12px; z-index:2; font:700 10.5px/1 var(--f-body); letter-spacing:.14em; text-transform:uppercase; background:var(--rose); color:#fff; padding:6px 9px; border-radius:999px}
.pc__meta{display:grid; gap:4px}
.pc__cat{font:700 10.5px/1.4 var(--f-body); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-2)}
.pc__title{font:600 20px/1.2 var(--f-display)}
.pc__price{font:600 19px/1.3 var(--f-display); color:var(--gold)}
.shop__note{margin-top:44px; color:var(--ink-2); font-size:14px}
@media (max-width:520px){.shop__grid{grid-template-columns:repeat(2,1fr); gap:30px 14px} .pc__title{font-size:17px}}

/* product dialog */
.pd{width:min(980px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--line); border-radius:16px; background:var(--paper); color:var(--ink); box-shadow:0 40px 100px -30px rgb(0 0 0 / .6); overflow:auto}
.pd::backdrop{background:rgb(7 31 26 / .7); backdrop-filter:blur(6px)}
.pd[open]{animation:pd-in .5s var(--ease)}
@keyframes pd-in{from{opacity:0; transform:translateY(20px) scale(.98)}}
.pd__in{display:grid; grid-template-columns:1fr 1fr}
.pd__img{display:grid; place-items:center; padding:48px; background:radial-gradient(90% 80% at 50% 30%, #134a3e, var(--emerald) 60%, var(--night)); min-height:420px}
.pd__img img{max-width:100%; max-height:58vh; object-fit:contain; border-radius:3px; box-shadow:0 30px 60px -20px rgb(0 0 0 / .6)}
.pd__body{padding:48px 44px 40px; display:flex; flex-direction:column; gap:14px}
.pd__body .eyebrow{margin-bottom:0}
.pd__title{font:600 34px/1.1 var(--f-display)}
.pd__price{font:600 30px/1 var(--f-display); color:var(--gold)}
.pd__desc{color:var(--ink-2); font-size:16.5px}
.pd__specs{font-size:14px; color:var(--ink-2); border-top:1px solid var(--line); padding-top:12px}
.pd__specs:empty{display:none}
.pd__opts{display:flex; flex-wrap:wrap; gap:8px}
.pd__opts[hidden]{display:none}
.pd__opts button{height:40px; padding:0 14px; border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--ink); font:600 13.5px var(--f-body); cursor:pointer}
.pd__opts button span{font-weight:400; color:var(--ink-2); margin-left:4px}
.pd__opts button[aria-checked="true"]{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.pd__opts button[aria-checked="true"] span{color:inherit; opacity:.8}
.pd__body .btn{align-self:flex-start; margin-top:8px}
.pd__pub{font-size:13px; color:var(--ink-2)}
.pd__close{position:absolute; top:12px; right:12px; z-index:3; margin:0}
.pd__close button{width:44px; height:44px; border-radius:50%; border:1px solid rgb(212 175 90 / .5); background:rgb(7 31 26 / .55); color:var(--cream); font-size:26px; line-height:1; cursor:pointer}
.pd__close button:hover{background:rgb(7 31 26 / .85)}
@media (max-width:760px){
  .pd__in{grid-template-columns:1fr} .pd__img{min-height:0; padding:44px 32px 28px} .pd__img img{max-height:38vh}
  .pd__body{padding:26px 22px 28px} .pd__title{font-size:28px} .pd__body .btn{align-self:stretch}
}
.pc__price,.pd__price,.pd__opts span,.bundle__price,.complete .price,.hero__price span{font-variant-numeric:lining-nums tabular-nums}

/* bundle cards in the grid */
.pc--bundle .pc__stage{padding:6%; background:radial-gradient(90% 80% at 50% 35%, #134a3e, var(--emerald) 60%, var(--night)); border-color:rgb(212 175 90 / .35)}
.pc--bundle .pc__stage img{box-shadow:none; border-radius:0; filter:drop-shadow(0 18px 24px rgb(0 0 0 / .35))}
.pc--bundle .pc__stage::after{display:none}

/* product dialog extras */
.pd--bundle .pd__img img{box-shadow:none; filter:drop-shadow(0 24px 30px rgb(0 0 0 / .45))}
.pd__inc{border-top:1px solid var(--line); padding-top:12px}
.pd__inc[hidden]{display:none}
.pd__inc-h{font:700 11px var(--f-body); letter-spacing:.16em; text-transform:uppercase; color:var(--ink-2); margin-bottom:10px}
.pd__inc ul{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px 14px; max-height:220px; overflow:auto}
.pd__inc li{display:flex; gap:10px; align-items:center; font-size:13.5px; line-height:1.3}
.pd__inc img{width:30px; height:auto; border-radius:2px; box-shadow:0 2px 6px rgb(0 0 0 / .2); flex:none}
.pd__buy{display:flex; gap:10px; flex-wrap:wrap; margin-top:8px}
.pd__body .pd__buy .btn{align-self:auto; margin-top:0}
@media (max-width:760px){.pd__buy .btn{flex:1 1 100%}}

/* basket button */
.bag-btn{position:relative}
.bag-btn__n{min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--emerald); color:var(--gold-hi); font:700 11.5px/20px var(--f-body); text-align:center}
.bag-btn__n[hidden]{display:none}
.bag-btn.is-bump{animation:bump .5s var(--ease)}
@keyframes bump{40%{transform:scale(1.12)}}

/* basket drawer */
.bag{margin:0 0 0 auto; height:100dvh; max-height:100dvh; width:min(440px,100vw); padding:0; border:0; border-left:1px solid var(--line); background:var(--paper); color:var(--ink); display:none; flex-direction:column; box-shadow:-30px 0 80px -20px rgb(0 0 0 / .5)}
.bag[open]{display:flex; animation:bag-in .5s var(--ease)}
.bag::backdrop{background:rgb(7 31 26 / .6); backdrop-filter:blur(4px)}
@keyframes bag-in{from{transform:translateX(40px); opacity:0}}
.bag__head{display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--line)}
.bag__head form{margin:0}
.bag__title{font:600 28px/1 var(--f-display)}
.bag__x{width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:transparent; color:var(--ink); font-size:24px; cursor:pointer}
.bag__body{flex:1; overflow:auto; padding:8px 24px}
.bag__empty{padding:28px 0; color:var(--ink-2)} .bag__empty[hidden]{display:none}
.bag__list{list-style:none; margin:0; padding:0}
.bag__list li{display:grid; grid-template-columns:56px 1fr auto; gap:14px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line)}
.bag__list img{width:56px; height:56px; object-fit:contain; background:var(--paper-2); border-radius:6px}
.bag__name{font:600 17px/1.25 var(--f-display); margin-bottom:8px} .bag__name small{font:500 12px var(--f-body); color:var(--ink-2)}
.qty{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px}
.qty button{width:32px; height:32px; border:0; background:none; color:var(--ink); font-size:18px; cursor:pointer; border-radius:50%}
.qty span{min-width:22px; text-align:center; font-weight:700; font-size:14px}
.bag__right{display:grid; justify-items:end; gap:6px}
.bag__right b{font:600 18px var(--f-display); font-variant-numeric:lining-nums}
.bag__rm{border:0; background:none; color:var(--ink-2); font-size:12.5px; text-decoration:underline; cursor:pointer; padding:4px 0}
.bag__foot{padding:18px 24px 24px; border-top:1px solid var(--line); display:grid; gap:10px; background:var(--paper-2)}
.bag__foot[hidden]{display:none}
.bag__sum{display:flex; justify-content:space-between; align-items:baseline; font-weight:600}
.bag__sum b{font:600 28px var(--f-display); color:var(--gold); font-variant-numeric:lining-nums}
.bag__ship,.bag__pay{font-size:13px; color:var(--ink-2)}
.bag__pay{text-align:center}
.bag__msg{font-size:13.5px} .bag__msg.is-err{color:var(--rose)} .bag__msg:empty{display:none}
.bag__wa{text-align:center; font-size:14px; color:var(--ink); text-decoration-color:var(--gold); text-underline-offset:3px}
.bag__foot .btn{width:100%}

/* toast */
.toast{position:fixed; left:50%; bottom:24px; z-index:160; translate:-50% 30px; opacity:0; pointer-events:none; display:flex; gap:16px; align-items:center; max-width:calc(100vw - 32px); padding:12px 12px 12px 20px; border-radius:999px; background:var(--emerald); color:var(--cream); box-shadow:0 20px 50px -15px rgb(0 0 0 / .5); border:1px solid rgb(212 175 90 / .4); font-size:14px; transition:.5s var(--ease)}
.toast.is-on{translate:-50% 0; opacity:1; pointer-events:auto}
.toast span{white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.toast__btn{flex:none; height:36px; padding:0 16px; border-radius:999px; border:0; background:linear-gradient(180deg,#E7CC85,#C9A24A); color:var(--emerald); font:700 13px var(--f-body); cursor:pointer}

.order__alt{margin-top:18px; color:rgb(243 236 220 / .75); font-size:15px}
.order__alt a{color:var(--gold-on-dark)}

/* thank-you page */
.thanks{background:radial-gradient(90% 90% at 50% 20%, #12463B, var(--emerald) 55%, var(--night)); color:var(--cream); min-height:100svh; display:grid; place-items:center}
.thanks__in{max-width:560px; padding:48px 20px; text-align:center; display:grid; justify-items:center; gap:18px}
.thanks__logo{width:120px; height:auto; margin-bottom:12px}
.thanks .eyebrow{justify-content:center; margin:0}
.thanks__lede{font-size:18px; color:rgb(243 236 220 / .85)}
.thanks__small{font-size:14px; color:rgb(243 236 220 / .65)} .thanks__small a{color:var(--gold-on-dark)}
.bag{max-width:100vw; inset:0 0 0 auto} @media (max-width:480px){.bag{width:100vw; border-left:0}}

/* ===== Product photo gallery ===== */
.pd__img{display:flex; flex-direction:column; gap:14px; padding:28px; justify-content:center}
.gal{position:relative; width:100%; flex:1; display:grid; place-items:center; min-height:0}
.gal__main{display:grid; place-items:center; width:100%; height:100%; padding:0; border:0; background:none; cursor:zoom-in; position:relative}
.gal__main img{max-width:100%; max-height:min(56vh,560px); object-fit:contain; border-radius:4px; opacity:0; transform:scale(.985); transition:opacity .45s var(--ease), transform .6s var(--ease)}
.gal__main img.is-in{opacity:1; transform:none}
.gal__hint{position:absolute; right:6px; bottom:6px; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:rgb(7 31 26 / .6); color:var(--cream); font-size:16px; opacity:0; transition:opacity .3s}
.gal__main:hover .gal__hint,.gal__main:focus-visible .gal__hint{opacity:1}
.gal__nav{position:absolute; top:50%; translate:0 -50%; width:42px; height:42px; border-radius:50%; border:1px solid rgb(212 175 90 / .5); background:rgb(7 31 26 / .55); color:var(--cream); font-size:26px; line-height:1; cursor:pointer; backdrop-filter:blur(4px); transition:background .3s}
.gal__nav:hover{background:rgb(7 31 26 / .85)}
.gal__nav[hidden]{display:none}
.gal__nav--prev{left:0} .gal__nav--next{right:0}
.gal__count{position:absolute; left:50%; bottom:-4px; translate:-50% 0; font:600 12px var(--f-body); letter-spacing:.1em; color:rgb(243 236 220 / .75)}
.gal__count:empty{display:none}
.gal__thumbs{list-style:none; margin:0; padding:4px 2px; display:flex; gap:8px; overflow-x:auto; scrollbar-width:thin; justify-content:safe center}
.gal__thumbs:empty{display:none}
.gal__thumbs button{display:block; width:58px; height:58px; padding:0; border-radius:6px; overflow:hidden; border:2px solid transparent; background:rgb(255 255 255 / .08); cursor:pointer; opacity:.6; transition:opacity .3s, border-color .3s}
.gal__thumbs button:hover{opacity:1}
.gal__thumbs button[aria-current="true"]{opacity:1; border-color:var(--gold-on-dark)}
.gal__thumbs img{width:100%; height:100%; object-fit:cover}
.pd--bundle .gal__main img{box-shadow:none}
.pd__img img{box-shadow:0 30px 60px -20px rgb(0 0 0 / .6)}
.gal__thumbs img{box-shadow:none}
@media (max-width:760px){.pd__img{padding:52px 16px 18px} .gal__main img{max-height:42vh} .gal__nav{width:38px; height:38px}}

/* full-screen viewer */
.lb{width:100vw; height:100dvh; max-width:100vw; max-height:100dvh; margin:0; padding:0; border:0; background:rgb(4 18 15 / .96); display:none; place-items:center}
.lb[open]{display:grid}
.lb::backdrop{background:rgb(4 18 15 / .9)}
.lb img{max-width:min(94vw,1800px); max-height:88dvh; object-fit:contain; border-radius:4px; box-shadow:0 40px 100px -30px #000}
.lb__x{position:fixed; top:16px; right:16px; width:48px; height:48px; border-radius:50%; border:1px solid rgb(212 175 90 / .5); background:rgb(7 31 26 / .7); color:var(--cream); font-size:28px; cursor:pointer}
.lb__nav{position:fixed; top:50%; translate:0 -50%; width:52px; height:52px; border-radius:50%; border:1px solid rgb(212 175 90 / .5); background:rgb(7 31 26 / .7); color:var(--cream); font-size:30px; cursor:pointer}
.lb__nav[hidden]{display:none}
.lb__nav--prev{left:16px} .lb__nav--next{right:16px}
.lb__count{position:fixed; bottom:18px; left:50%; translate:-50% 0; color:rgb(243 236 220 / .7); font:600 13px var(--f-body); letter-spacing:.1em}
