/* Mirisna Pjena — natural soap shop
   Style: coastal "lodge" — layered hill/wave silhouettes, wood-tone badge seals,
   cosy artisan warmth, adapted to a fresh green/blue/cream soap-shop palette. */

:root{
  --cream:#faf6ee;
  --cream-dark:#f0e9d8;
  --sage:#7c9473;
  --sage-light:#aebd96;
  --sage-dark:#48603f;
  --blue:#bcd8df;
  --blue-dark:#5f8d96;
  --clay:#c08552;
  --clay-dark:#8a5a30;
  --espresso:#43352a;
  --ink:#2a2e27;
  --paper:#ffffff;
  --shadow: 0 18px 40px -20px rgba(42,46,39,.35);
  --radius: 1.1rem;
  --font-display: "Iowan Old Style","Palatino Linotype", Palatino, Georgia, "Noto Serif", serif;
  --font-body: "Avenir Next","Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", "Courier New", monospace;
  --ease: cubic-bezier(.22,.8,.3,1);
}

*,*::before,*::after{box-sizing:border-box;}
html,body{overflow-x:clip;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  margin:0 0 .5em;
  line-height:1.1;
  color:var(--espresso);
  font-weight:600;
}
p{margin:0 0 1em;}
a{color:var(--sage-dark);text-decoration:none;}
ul{padding-left:1.2em;}
.visually-hidden{
  position:absolute !important;
  width:1px;height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
input[type="checkbox"],input[type="radio"]{accent-color:var(--sage-dark);}

:focus-visible{
  outline:3px solid var(--clay);
  outline-offset:3px;
  border-radius:4px;
}

.container{
  width:100%;
  max-width:72rem;
  margin:0 auto;
  padding:0 1.25rem;
}

.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.5em;
  padding:.85em 1.6em;
  border-radius:999px;
  border:2px solid var(--sage-dark);
  background:transparent;
  color:var(--sage-dark);
  font-family:var(--font-body);
  font-weight:600;
  font-size:.95rem;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  min-height:44px;
  transition:color .35s var(--ease), border-color .35s var(--ease);
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  left:-100%;
  width:100%;
  background:var(--sage-dark);
  z-index:-1;
  transition:left .35s var(--ease);
}
.btn:hover::before,.btn:focus-visible::before{left:0;}
.btn:hover,.btn:focus-visible{color:#fff;}
.btn-primary{
  background:var(--sage-dark);
  color:#fff;
  border-color:var(--sage-dark);
}
.btn-primary::before{background:var(--espresso);}
.btn-primary:hover,.btn-primary:focus-visible{color:#fff;}
.btn-ghost{
  border-color:rgba(255,255,255,.6);
  color:#fff;
}
.btn-ghost::before{background:rgba(255,255,255,.22);}
.btn-ghost:hover,.btn-ghost:focus-visible{color:#fff;}
.btn[disabled]{opacity:.5;cursor:not-allowed;}
.btn-small{padding:.55em 1.1em;font-size:.85rem;}

/* ---------- Icon sprite ---------- */
.icon{width:1.3em;height:1.3em;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}

/* ---------- Header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(250,246,238,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(72,96,63,.12);
}
.site-header__bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.8rem 0;
}
.brand{
  display:flex;
  align-items:center;
  gap:.6rem;
  color:var(--espresso);
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.2rem;
}
.brand svg{width:2.4rem;height:2.4rem;flex-shrink:0;}
.brand__word{display:flex;flex-direction:column;line-height:1.1;}
.brand__word small{font-family:var(--font-body);font-weight:500;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-dark);}

.main-nav{display:flex;align-items:center;gap:1.6rem;}
.main-nav ul{
  display:flex;
  gap:1.4rem;
  margin:0;
  padding:0;
  list-style:none;
}
.main-nav a{
  color:var(--ink);
  font-weight:600;
  font-size:.95rem;
  position:relative;
  padding:.3em 0;
}
.main-nav a::after{
  content:"";
  position:absolute;
  left:0;bottom:-2px;
  width:100%;
  height:2px;
  background:var(--clay);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s var(--ease);
}
.main-nav a:hover::after,.main-nav a[aria-current="page"]::after{transform:scaleX(1);}
.main-nav a[aria-current="page"]{color:var(--sage-dark);}

.header-actions{display:flex;align-items:center;gap:.9rem;}
.cart-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;height:44px;
  border-radius:50%;
  color:var(--espresso);
  background:var(--cream-dark);
}
.cart-count{
  position:absolute;
  top:-4px;right:-4px;
  background:var(--clay-dark);
  color:#fff;
  font-size:.68rem;
  font-weight:700;
  width:1.25rem;height:1.25rem;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s var(--ease);
}
.cart-count.bump{animation:bump .4s var(--ease);}
@keyframes bump{0%{transform:scale(1);}40%{transform:scale(1.5);}100%{transform:scale(1);}}

.menu-toggle{
  display:none;
  width:44px;height:44px;
  border-radius:50%;
  border:1px solid rgba(72,96,63,.25);
  background:transparent;
  color:var(--espresso);
  align-items:center;justify-content:center;
}

@media (max-width: 860px){
  .main-nav{
    position:fixed;
    inset:0 0 0 auto;
    width:min(80vw,22rem);
    height:100vh;
    background:var(--cream);
    flex-direction:column;
    align-items:flex-start;
    padding:5.5rem 1.8rem 2rem;
    gap:2rem;
    transform:translateX(100%);
    visibility:hidden;
    transition:transform .4s var(--ease), visibility .4s;
    box-shadow:var(--shadow);
  }
  .main-nav.open{transform:translateX(0);visibility:visible;}
  .main-nav ul{flex-direction:column;gap:1.3rem;width:100%;}
  .main-nav a{font-size:1.1rem;}
  .menu-toggle{display:inline-flex;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  padding:3.5rem 0 7rem;
  background:linear-gradient(180deg,var(--cream) 0%, var(--cream-dark) 100%);
  clip-path:polygon(0 0,100% 0,100% 94%, 0 100%);
}
.hero__inner{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:2.5rem;
  align-items:center;
  position:relative;
  z-index:2;
}
.hero__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--sage-dark);
  font-weight:700;
  margin-bottom:1rem;
}
.hero h1{
  font-size:clamp(2.4rem, 5.4vw, 4rem);
  margin-bottom:.6rem;
}
.hero p.lead{font-size:1.15rem;max-width:34ch;color:var(--espresso);}
.hero__cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem;}
.hero__art{position:relative;isolation:isolate;}
.hero__blob{
  position:absolute;
  inset:-15% -10%;
  z-index:-1;
  color:var(--blue);
}
.hero__photo{
  position:relative;
  border-radius:2rem;
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--shadow);
  transform:rotate(-1.4deg);
}
.hero__photo img{width:100%;height:100%;object-fit:cover;}
.hero__badge{
  position:absolute;
  bottom:-1.6rem;
  left:-1.8rem;
  width:6.5rem;height:6.5rem;
  filter:drop-shadow(0 10px 18px rgba(42,46,39,.25));
}
@media (max-width:860px){
  .hero__inner{grid-template-columns:1fr;}
  .hero__art{order:-1;max-width:20rem;margin:0 auto;}
  .hero__badge{width:5rem;height:5rem;left:-1rem;}
}

/* grain overlay */
.grain{
  position:fixed;
  inset:0;
  width:100vw;height:100vh;
  pointer-events:none;
  opacity:.035;
  z-index:999;
  mix-blend-mode:multiply;
}

/* ---------- Diagonal sections ---------- */
.section{padding:5.5rem 0;position:relative;}
.section--sage{
  background:var(--sage-dark);
  color:#f3f1e6;
  clip-path:polygon(0 4%, 100% 0, 100% 100%, 0 96%);
  margin-top:-3rem;
  padding-top:7rem;
}
.section--sage h2,.section--sage h3{color:#fff;}
.section--cream-dark{
  background:var(--cream-dark);
  clip-path:polygon(0 0,100% 3%,100% 100%,0 97%);
  margin-top:-2.5rem;
  padding-top:7rem;
}
.section--blue{
  background:linear-gradient(135deg,var(--blue) 0%, #e4f0ee 100%);
  clip-path:polygon(0 3%,100% 0,100% 97%,0 100%);
  margin-top:-2.5rem;
  padding-top:7rem;
}
.section__head{max-width:40rem;margin-bottom:2.5rem;}
.section__head .kicker{
  display:inline-block;
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--clay-dark);
  margin-bottom:.5rem;
}
.section--sage .section__head .kicker{color:var(--blue);}

/* ---------- divider svg ---------- */
.divider{display:block;width:100%;height:auto;color:var(--cream-dark);}
.divider path{fill:currentColor;}

/* ---------- Cards / grids ---------- */
.grid-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  gap:1.8rem;
}
.card{
  background:var(--paper);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 10px 26px -18px rgba(42,46,39,.4);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  display:flex;
  flex-direction:column;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.card__media{aspect-ratio:4/3;overflow:hidden;}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.card:hover .card__media img{transform:scale(1.08);}
.card__body{padding:1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}
.card__cat{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--sage-dark);font-weight:700;}
.card__title{font-size:1.1rem;margin:0;}
.card__title a{color:var(--espresso);}
.card__price{font-family:var(--font-display);font-size:1.25rem;color:var(--clay-dark);margin-top:auto;}
.card__foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.4rem;}

/* ---------- Feature: Mirisna Kutija builder ---------- */
.kutija{
  background:var(--paper);
  border-radius:1.6rem;
  padding:2.2rem;
  box-shadow:var(--shadow);
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:2rem;
}
@media (max-width:760px){.kutija{grid-template-columns:1fr;}}
.kutija__items{display:grid;gap:.7rem;}
.kutija__item{
  display:flex;
  align-items:center;
  gap:.9rem;
  padding:.7rem .9rem;
  border:1.5px solid var(--cream-dark);
  border-radius:1rem;
  cursor:pointer;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.kutija__item:hover{border-color:var(--sage-light);}
.kutija__item.active{border-color:var(--sage-dark);background:#f4f8f0;}
.kutija__item img{width:3rem;height:3rem;border-radius:.6rem;object-fit:cover;flex-shrink:0;}
.kutija__item-name{font-weight:600;flex:1;color:var(--ink);}
.kutija__item-price{font-family:var(--font-mono);font-size:.85rem;color:var(--sage-dark);}
.kutija__box{
  background:var(--cream-dark);
  border-radius:1.3rem;
  padding:1.6rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
  position:relative;
}
.kutija__fill{
  height:.6rem;
  border-radius:999px;
  background:#e4ddc9;
  overflow:hidden;
}
.kutija__fill-bar{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,var(--sage) 0, var(--sage-dark) 100%);
  transition:width .4s var(--ease);
}
.kutija__total{font-family:var(--font-display);font-size:1.8rem;color:var(--espresso);}
.kutija__savings{font-size:.9rem;color:var(--clay-dark);font-weight:700;min-height:1.3em;}
.kutija__hint{font-size:.85rem;color:var(--ink);opacity:.75;}

/* ---------- Badge/seal ---------- */
.seal{width:6.5rem;height:6.5rem;color:var(--clay-dark);}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--espresso);
  color:#f3ede0;
  padding:4.5rem 0 2rem;
  position:relative;
  clip-path:polygon(0 4%,100% 0,100% 100%,0 100%);
  margin-top:-2rem;
}
.site-footer a{color:#f3ede0;}
.site-footer a:hover{color:var(--blue);}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:2rem;
  padding-bottom:2.5rem;
  border-bottom:1px solid rgba(243,237,224,.15);
}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;}}
.footer-grid h4{color:#fff;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem;}
.footer-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;font-size:.92rem;}
.footer-brand p{opacity:.8;max-width:26ch;}
.newsletter{display:flex;gap:.5rem;margin-top:.8rem;flex-wrap:wrap;}
.newsletter input[type="email"]{
  flex:1;
  min-width:10rem;
  padding:.7em 1em;
  border-radius:999px;
  border:1px solid rgba(243,237,224,.3);
  background:rgba(255,255,255,.06);
  color:#fff;
}
.newsletter input::placeholder{color:#cfc5b2;}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
  padding-top:1.6rem;
  font-size:.85rem;
  opacity:.85;
}
.footer-msg{font-size:.85rem;min-height:1.2em;}
.footer-msg.ok{color:#bfe3a8;}
.footer-msg.err{color:#e3a8a8;}

/* ---------- Reveal ---------- */
.reveal{opacity:1;}
.js .reveal{opacity:0;}
.js .reveal.in-view{
  opacity:1;
  transform:none !important;
  clip-path:none !important;
  transition:opacity .7s var(--ease), transform .7s var(--ease), clip-path .7s var(--ease);
}
.js .reveal[data-reveal="up"]{transform:translateY(2rem);}
.js .reveal[data-reveal="left"]{transform:translateX(-2rem);}
.js .reveal[data-reveal="right"]{transform:translateX(2rem);}
.js .reveal[data-reveal="clip"]{clip-path:inset(0 0 100% 0);}
@media (prefers-reduced-motion: reduce){
  .js .reveal{opacity:1 !important;transform:none !important;clip-path:none !important;transition:none !important;}
  .kutija__fill-bar,.cart-count.bump,.hero__blob *{transition:none !important;animation:none !important;}
}

/* ---------- Generic page sections ---------- */
.page-hero{
  padding:4.5rem 0 5rem;
  background:var(--cream-dark);
  clip-path:polygon(0 0,100% 0,100% 92%,0 100%);
  text-align:left;
}
.page-hero h1{font-size:clamp(2.1rem,4.4vw,3.1rem);}
.breadcrumb{font-size:.82rem;color:var(--sage-dark);margin-bottom:.8rem;}
.prose{max-width:46rem;}
.prose h2{margin-top:2rem;font-size:1.4rem;}
.prose ul{margin-bottom:1em;}

/* ---------- Contact / forms ---------- */
.form-grid{display:grid;gap:1.1rem;max-width:36rem;}
.field{display:grid;gap:.4rem;}
.field label{font-weight:600;font-size:.9rem;}
.field input,.field textarea,.field select{
  padding:.75em .9em;
  border-radius:.7rem;
  border:1.5px solid var(--cream-dark);
  background:#fff;
  font:inherit;
  color:var(--ink);
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--sage-dark);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media (max-width:540px){.field-row{grid-template-columns:1fr;}}
.form-msg{font-size:.9rem;font-weight:600;min-height:1.3em;}
.form-msg.ok{color:var(--sage-dark);}
.form-msg.err{color:#a3463a;}
.hp-field{position:absolute;left:-9999px;top:-9999px;opacity:0;height:0;width:0;}

/* ---------- Cart page ---------- */
.cart-table{width:100%;border-collapse:collapse;margin-bottom:2rem;}
.cart-table th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--sage-dark);padding-bottom:.8rem;border-bottom:1.5px solid var(--cream-dark);}
.cart-table td{padding:1rem 0;border-bottom:1px solid var(--cream-dark);vertical-align:middle;}
.cart-item{display:flex;align-items:center;gap:1rem;}
.cart-item img{width:4rem;height:4rem;border-radius:.6rem;object-fit:cover;}
.qty-ctrl{display:inline-flex;align-items:center;gap:.5rem;}
.qty-ctrl button{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--cream-dark);background:#fff;cursor:pointer;font-size:1rem;}
.cart-remove{color:#a3463a;font-size:.85rem;font-weight:600;background:none;border:none;cursor:pointer;padding:0;}
.cart-summary{
  max-width:24rem;
  margin-left:auto;
  background:var(--cream-dark);
  border-radius:1.2rem;
  padding:1.6rem;
  display:grid;
  gap:.6rem;
}
.cart-summary__row{display:flex;justify-content:space-between;font-size:.95rem;}
.cart-summary__row.total{font-size:1.3rem;font-family:var(--font-display);color:var(--espresso);border-top:1px solid #ddd3b8;padding-top:.6rem;margin-top:.3rem;}
.cart-empty{padding:3rem 0;text-align:center;color:var(--sage-dark);}

/* ---------- Product page ---------- */
.product-view{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}
@media (max-width:800px){.product-view{grid-template-columns:1fr;}}
.product-photo{border-radius:1.6rem;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow);}
.product-photo img{width:100%;height:100%;object-fit:cover;}
.product-info .cat{color:var(--sage-dark);font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em;}
.product-info h1{margin-top:.4rem;}
.product-price{font-family:var(--font-display);font-size:2rem;color:var(--clay-dark);margin:.6rem 0 1.2rem;}
.product-add{display:flex;gap:1rem;align-items:center;margin-top:1.4rem;flex-wrap:wrap;}
.product-meta{margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--cream-dark);font-size:.92rem;}
.product-meta dt{font-weight:700;color:var(--espresso);margin-top:.8rem;}

/* ---------- Catalog filters ---------- */
.filter-bar{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:2.2rem;}
.filter-chip{
  padding:.5em 1.1em;
  border-radius:999px;
  border:1.5px solid var(--cream-dark);
  background:#fff;
  font-size:.85rem;
  font-weight:600;
  cursor:pointer;
  color:var(--ink);
}
.filter-chip.active{background:var(--sage-dark);color:#fff;border-color:var(--sage-dark);}

/* ---------- FAQ accordion ---------- */
.faq-item{border-bottom:1px solid var(--cream-dark);padding:1.1rem 0;}
.faq-item summary{
  cursor:pointer;
  font-weight:700;
  font-family:var(--font-display);
  font-size:1.08rem;
  color:var(--espresso);
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:1.4rem;color:var(--sage-dark);transition:transform .3s var(--ease);}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{margin-top:.8rem;}

/* ---------- cookie banner ---------- */
.cookie-banner{
  position:fixed;
  left:1rem;right:1rem;bottom:1rem;
  max-width:46rem;
  margin:0 auto;
  background:var(--espresso);
  color:#f3ede0;
  border-radius:1.2rem;
  padding:1.3rem 1.5rem;
  display:flex;
  gap:1.2rem;
  align-items:center;
  flex-wrap:wrap;
  box-shadow:var(--shadow);
  z-index:200;
  transform:translateY(120%);
  transition:transform .5s var(--ease);
}
.cookie-banner.visible{transform:translateY(0);}
.cookie-banner p{margin:0;flex:1;min-width:14rem;font-size:.9rem;}
.cookie-banner a{text-decoration:underline;color:#fff;}
.cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap;}

/* ---------- 404 ---------- */
.page-404{text-align:center;padding:6rem 0;}
.page-404 svg{width:10rem;height:10rem;margin:0 auto 1.5rem;color:var(--sage-dark);}

/* ---------- Continuous subtle motion ---------- */
.float-slow{animation:floaty 7s ease-in-out infinite;}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@media (prefers-reduced-motion: reduce){.float-slow{animation:none;}}

.skip-link{
  position:absolute;left:-9999px;top:0;
  background:var(--espresso);color:#fff;padding:.7em 1.2em;z-index:999;border-radius:0 0 .6rem 0;
}
.skip-link:focus{left:0;}
