*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:oklch(97% 0.012 80);}
a{text-decoration:none;}
img{display:block;max-width:100%;}
button{font:inherit;}

/* responsive grid utility classes (desktop columns match the source design 1:1) */
.cols-2{display:grid;grid-template-columns:repeat(2,1fr);}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);}
.cols-4{display:grid;grid-template-columns:repeat(4,1fr);}
.cols-6{display:grid;grid-template-columns:repeat(6,1fr);}
.cols-split{display:grid;grid-template-columns:0.9fr 1.1fr;}
.cols-split-even{display:grid;grid-template-columns:1fr 1fr;}

@media (max-width:900px){
  .cols-3,.cols-4,.cols-6{grid-template-columns:repeat(2,1fr);}
  .cols-split,.cols-split-even{grid-template-columns:1fr;}
  h1{font-size:40px !important;}
  section{padding-left:20px !important;padding-right:20px !important;}
}
@media (max-width:560px){
  .cols-2,.cols-3,.cols-4,.cols-6{grid-template-columns:1fr;}
}

/* header / nav */
.site-header{position:sticky;top:0;z-index:100;background:oklch(98% 0.008 80 / 0.92);backdrop-filter:blur(8px);border-bottom:1px solid oklch(88% 0.015 75);font-family:'Jost',sans-serif;}
.site-header .bar{max-width:1320px;margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.logo{font-family:'Cormorant Garamond',serif;font-size:26px;letter-spacing:3px;color:oklch(25% 0.02 50);font-weight:600;}
.main-nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.main-nav a{font-size:14px;letter-spacing:0.5px;color:oklch(30% 0.02 50);}
.nav-cta{font-size:13.5px !important;letter-spacing:0.5px;color:oklch(99% 0.005 80) !important;background:oklch(25% 0.02 50);padding:10px 22px;border-radius:1px;}
.nav-dropdown{position:relative;}
.nav-dropdown>span{font-size:14px;letter-spacing:0.5px;color:oklch(30% 0.02 50);cursor:pointer;}
.nav-dropdown-menu{position:absolute;top:24px;left:-16px;background:oklch(99% 0.005 80);border:1px solid oklch(88% 0.015 75);border-radius:2px;box-shadow:0 12px 28px oklch(20% 0.02 60 / 0.12);padding:8px 0;min-width:230px;display:none;}
.nav-dropdown.is-open .nav-dropdown-menu,
.nav-dropdown:hover .nav-dropdown-menu{display:block;}
.nav-dropdown-menu a{display:block;padding:10px 20px;font-size:13.5px;color:oklch(30% 0.02 50);}
.nav-dropdown-menu a:hover{background:oklch(94% 0.02 75);}
.main-nav>a:not(.nav-cta):hover,.nav-dropdown>span:hover{color:oklch(55% 0.1 80);}
.nav-cta:hover{background:oklch(35% 0.03 50) !important;}
.cart-badge{background:oklch(68% 0.11 80);color:oklch(99% 0.005 80);font-size:11px;border-radius:10px;padding:1px 7px;display:none;}
.cart-link{display:flex;align-items:center;gap:6px;}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;}
.menu-toggle span{display:block;width:22px;height:2px;background:oklch(25% 0.02 50);margin:5px 0;}
@media (max-width:860px){
  .menu-toggle{display:block;}
  .main-nav{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:2px;background:oklch(98% 0.008 80);border-top:1px solid oklch(88% 0.015 75);padding-top:14px;}
  .main-nav.is-open{display:flex;}
  .main-nav a{padding:10px 4px;width:100%;}
  .nav-dropdown{width:100%;}
  .nav-dropdown-menu{position:static;box-shadow:none;border:none;min-width:0;padding-left:12px;}
  .nav-cta{width:100%;text-align:center;}
}

/* footer */
.site-footer{background:oklch(22% 0.02 50);color:oklch(90% 0.015 75);font-family:'Jost',sans-serif;}
.footer-grid{max-width:1320px;margin:0 auto;padding:64px 32px 32px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.footer-bottom-inner{max-width:1320px;margin:0 auto;padding:20px 32px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;}
.footer-legal-links{display:flex;gap:20px;flex-wrap:wrap;}
.footer-social a:hover{border-color:oklch(68% 0.11 80);color:oklch(68% 0.11 80);}
.footer-col a:hover{color:oklch(99% 0.005 80);}
.footer-legal-links a:hover{color:oklch(90% 0.015 75);}
.footer-contact a:hover{color:oklch(99% 0.005 80);}

/* cookie banner */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:200;background:oklch(22% 0.02 50);color:oklch(92% 0.015 75);box-shadow:0 -8px 24px oklch(20% 0.02 60 / 0.2);font-family:'Jost',sans-serif;}
.cookie-banner-inner{max-width:1320px;margin:0 auto;padding:20px 32px;display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;}
.cookie-banner[hidden]{display:none;}

/* forms */
input[type=text],input[type=email],input:not([type]),select,textarea{width:100%;box-sizing:border-box;font-family:'Jost',sans-serif;font-size:14px;padding:12px 14px;border:1px solid oklch(80% 0.02 70);background:oklch(99% 0.005 80);}
textarea{resize:vertical;}
input:focus,select:focus,textarea:focus,button:focus{outline:2px solid oklch(68% 0.11 80);outline-offset:1px;}

/* faq accordion (native <details>) */
.faq-item{border-bottom:1px solid oklch(88% 0.015 75);}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:24px 0;cursor:pointer;gap:20px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary h3{font-family:'Cormorant Garamond',serif;font-size:20px;color:oklch(25% 0.02 50);margin:0;}
.faq-item summary::after{content:'+';font-family:'Jost',sans-serif;font-size:20px;color:oklch(60% 0.1 80);flex-shrink:0;}
.faq-item[open] summary::after{content:'\2212';}
.faq-item p{font-family:'Jost',sans-serif;font-size:14.5px;line-height:1.85;color:oklch(40% 0.02 55);font-weight:300;margin:0 0 26px;}

/* gallery filters */
.gallery-filter-btn{background:transparent;color:oklch(35% 0.02 55);border:1px solid oklch(80% 0.02 70);font-family:'Jost',sans-serif;font-size:13px;padding:9px 20px;border-radius:20px;cursor:pointer;}
.gallery-filter-btn.is-active{background:oklch(25% 0.02 50);color:oklch(99% 0.005 80);border-color:oklch(25% 0.02 50);}
.gallery-item[hidden]{display:none;}

/* shop */
.qty-btn{width:24px;height:24px;border:1px solid oklch(80% 0.02 70);background:transparent;cursor:pointer;font-size:14px;}

/* misc */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.skip-link{position:absolute;left:-9999px;top:0;background:oklch(25% 0.02 50);color:oklch(99% 0.005 80);padding:12px 20px;z-index:1000;font-family:'Jost',sans-serif;font-size:14px;}
.skip-link:focus{left:8px;top:8px;}
