/* ============================================================
   KORAL — Premium Haircare, Greece
   Design language: utilitarian catalog typography, white base,
   category color system, pill navigation, gray product tiles.
   ============================================================ */

:root{
  --white:#ffffff;
  --black:#111111;
  --ink:#111111;
  --gray-tile:#f1f2f4;
  --gray-line:#d9d9d9;
  --gray-mid:#8a8f98;

  /* Category colors */
  --c-shampoo:#2f6bff;
  --c-condition:#ff4d26;
  --c-style:#ffcd01;
  --c-treat:#b980ff;
  --c-all:#00b241;

  /* Pastel tints (hover overlays / cards) */
  --p-shampoo:#cce0ff;
  --p-condition:#ffddd1;
  --p-style:#fff3b8;
  --p-treat:#eeddff;
  --p-all:#c9f5d6;

  --font:'Commissioner',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,Arial,sans-serif;

  --ease-out-quart:cubic-bezier(.165,.84,.44,1);
  --ease-in-out-quart:cubic-bezier(.77,0,.175,1);

  --header-h:64px;
  --pad:16px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--font);
  font-size:14px;
  line-height:1.15;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit;font-size:inherit;background:none;border:none;cursor:pointer;color:inherit}
input{font-family:inherit}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--black);color:#fff;padding:10px 16px;z-index:99}
.skip-link:focus{left:0}

/* ---------- typography helpers ---------- */
.t-caption{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.t-label{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.t-body{font-size:14px;font-weight:400;line-height:1.45}
.t-title{font-size:clamp(26px,4vw,44px);font-weight:700;letter-spacing:-.01em;line-height:1.02}
.t-display{font-size:clamp(34px,6vw,72px);font-weight:700;letter-spacing:-.02em;line-height:.98}

/* ============================================================
   HEADER
   ============================================================ */
.header{
  position:sticky;top:0;z-index:9;
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;height:var(--header-h);
  padding:0 var(--pad);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);
}
.header__logo{display:flex;align-items:center;gap:5px;flex-shrink:0}
.header__logo svg{height:26px;width:auto}
.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 18px;border-radius:999px;
  font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--black);transition:transform .3s var(--ease-out-quart),opacity .3s;
  white-space:nowrap;
}
.pill:hover{transform:scale(1.05)}
.pill--shampoo{background:var(--c-shampoo);color:#fff}
.pill--condition{background:var(--c-condition);color:#fff}
.pill--style{background:var(--c-style)}
.pill--treat{background:var(--c-treat)}
.pill--all{background:var(--c-all);color:#fff}
.pill--black{background:var(--black);color:#fff}
.pill--outline{border:1px solid var(--black)}
.header__right{display:flex;align-items:center;gap:14px;flex-shrink:0}
.header__lang{
  font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  border:1px solid var(--black);border-radius:999px;padding:6px 12px;
  transition:background .25s,color .25s;
}
.header__lang:hover{background:var(--black);color:#fff}
.header__cart{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;flex-shrink:0}
.header__cart:hover{opacity:.6}

@media(max-width:820px){
  .header{flex-wrap:wrap;height:auto;padding:10px var(--pad)}
  .nav{order:3;width:100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}
  .nav::-webkit-scrollbar{display:none}
}

/* ============================================================
   HERO (split)
   ============================================================ */
.hero{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - var(--header-h))}
.hero__panel{position:relative;overflow:hidden;background:var(--gray-tile)}
.hero__panel img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.hero__copy{
  position:absolute;left:20px;bottom:20px;z-index:2;color:#fff;max-width:360px;
}
.hero__copy h1{font-size:15px;font-weight:700;letter-spacing:.02em;margin-bottom:10px}
.hero__copy p{font-size:13px;line-height:1.45;font-weight:400}
@media(max-width:820px){
  .hero{grid-template-columns:1fr}
  .hero__panel{min-height:62vh}
  .hero__panel--secondary{min-height:48vh}
}

/* ============================================================
   SECTION SHELL
   ============================================================ */
.section{padding:72px var(--pad)}
.section__head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;margin-bottom:22px;
}
.section__head h2{font-size:15px;font-weight:700;letter-spacing:.02em;margin-bottom:6px}
.section__head p{font-size:13px;color:var(--ink)}
@media(max-width:600px){.section{padding:48px var(--pad)}}

/* ============================================================
   PRODUCT GRID + CARD
   ============================================================ */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 10px}
@media(max-width:1100px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.grid{grid-template-columns:1fr}}

.card{display:block}
.card__tile{
  position:relative;aspect-ratio:3/3.6;background:var(--gray-tile);
  border-radius:6px;overflow:hidden;
}
.card__tile img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease-out-quart);
}
.card:hover .card__tile img{transform:scale(1.05)}
.card__overlay{
  position:absolute;inset:0;padding:14px;
  display:flex;flex-direction:column;justify-content:flex-start;gap:8px;
  opacity:0;transition:opacity .35s var(--ease-out-quart);
  z-index:2;
}
.card:hover .card__overlay{opacity:1}
.card--shampoo .card__overlay{background:color-mix(in srgb,var(--p-shampoo) 88%,transparent)}
.card--condition .card__overlay{background:color-mix(in srgb,var(--p-condition) 88%,transparent)}
.card--style .card__overlay{background:color-mix(in srgb,var(--p-style) 88%,transparent)}
.card--treat .card__overlay{background:color-mix(in srgb,var(--p-treat) 88%,transparent)}
.card__overlay .tag{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.card__overlay .desc{font-size:13px;line-height:1.4;max-width:26ch}
.card__meta{
  display:flex;align-items:baseline;gap:8px;padding:10px 2px 0;
}
.card__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;align-self:center}
.dot--shampoo{background:var(--c-shampoo)}
.dot--condition{background:var(--c-condition)}
.dot--style{background:var(--c-style)}
.dot--treat{background:var(--c-treat)}
.card__name{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;flex:1}
.card__price{font-size:12px;font-weight:500}

/* ============================================================
   STATEMENT
   ============================================================ */
.statement{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
  padding:140px var(--pad);align-items:center;
}
.statement__body{max-width:420px}
.statement__body h2{font-size:15px;font-weight:700;margin-bottom:12px}
.statement__body p{font-size:13px;line-height:1.5}
@media(max-width:820px){.statement{grid-template-columns:1fr;padding:80px var(--pad)}}

/* ============================================================
   CATEGORY CARDS
   ============================================================ */
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:820px){.cats{grid-template-columns:repeat(2,1fr)}}
.cat-card{position:relative;aspect-ratio:3/4;border-radius:6px;overflow:hidden;background:var(--gray-tile);display:block}
.cat-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out-quart)}
.cat-card:hover img{transform:scale(1.05)}
.cat-card span{
  position:absolute;left:14px;bottom:12px;z-index:2;color:#fff;
  font-size:14px;font-weight:700;letter-spacing:.02em;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}

/* ============================================================
   COLLECTION PAGE
   ============================================================ */
.collection-hero{padding:88px var(--pad) 36px;max-width:760px}
.collection-hero h1{font-size:clamp(30px,5vw,54px);font-weight:700;letter-spacing:-.015em;line-height:1;margin-bottom:16px}
.collection-hero p{font-size:13px;line-height:1.5;max-width:52ch}
.breadcrumb{padding:0 var(--pad) 14px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.breadcrumb a:hover{opacity:.6}
.breadcrumb .sep{margin:0 2px;font-weight:400}
.collection-grid{padding:0 var(--pad) 88px}

/* ============================================================
   PRODUCT PAGE (PDP)
   ============================================================ */
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px var(--pad) 72px;align-items:start}
@media(max-width:900px){.pdp{grid-template-columns:1fr}}
.pdp__media{position:sticky;top:calc(var(--header-h) + 16px)}
@media(max-width:900px){.pdp__media{position:static}}
.pdp__tile{position:relative;aspect-ratio:3/3.4;background:var(--gray-tile);border-radius:6px;overflow:hidden}
.pdp__tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pdp__info{padding-top:26px;max-width:520px}
.pdp__info h1{font-size:clamp(28px,3.6vw,44px);font-weight:700;letter-spacing:-.015em;line-height:1;margin-bottom:12px}
.pdp__tag{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px}
.pdp__short{font-size:14px;line-height:1.5;margin-bottom:24px}
.pdp__buy{
  display:inline-flex;align-items:center;gap:18px;
  background:var(--black);color:#fff;border-radius:999px;
  padding:14px 26px;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  transition:transform .3s var(--ease-out-quart);
}
.pdp__buy:hover{transform:scale(1.04)}
.pdp__buy .price{font-weight:500}
.pdp__accordions{margin-top:36px;border-top:1px solid var(--gray-line)}

/* ---------- accordion ---------- */
.acc{border-bottom:1px solid var(--gray-line)}
.acc__btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:16px 2px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  text-align:left;
}
.acc__btn::after{content:'+';font-size:16px;font-weight:400;transition:transform .35s var(--ease-in-out-quart)}
.acc.open .acc__btn::after{transform:rotate(45deg)}
.acc__panel{max-height:0;overflow:hidden;transition:max-height .375s var(--ease-in-out-quart)}
.acc__inner{padding:2px 2px 20px;font-size:13px;line-height:1.55;color:#222}
.acc__inner ul{list-style:disc;padding-left:18px}
.acc__inner li{margin-bottom:6px}

/* ---------- cross-sell ---------- */
.pairs{padding:40px var(--pad) 96px}
.pairs h2{font-size:15px;font-weight:700;margin-bottom:18px}
.pairs__row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:1100px){.pairs__row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.pairs__row{grid-template-columns:1fr}}
.pair{background:var(--gray-tile);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:10px}
.pair__img{aspect-ratio:1/1;border-radius:4px;overflow:hidden;background:#e8eaee;position:relative}
.pair__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pair h3{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.pair .tag{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#333}
.pair__add{
  align-self:flex-start;margin-top:auto;
  font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  border:1px solid var(--black);border-radius:999px;padding:7px 14px;
  transition:background .25s,color .25s;
}
.pair__add:hover{background:var(--black);color:#fff}

/* ============================================================
   CONTENT PAGES (FAQ, Ingredients, simple)
   ============================================================ */
.page{padding:88px var(--pad) 96px;max-width:820px}
.page h1{font-size:clamp(28px,4.5vw,50px);font-weight:700;letter-spacing:-.015em;line-height:1;margin-bottom:18px;text-transform:uppercase}
.page .lede{font-size:14px;line-height:1.5;margin-bottom:44px;max-width:56ch}
.page h2.group{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin:44px 0 6px;padding-bottom:10px;border-bottom:1px solid var(--black)}
.page .prose p{font-size:13px;line-height:1.6;margin-bottom:14px;max-width:64ch}
.page .prose h2{font-size:14px;font-weight:700;margin:28px 0 8px}
.page a.inline{text-decoration:underline}

/* ============================================================
   NEWSLETTER + FOOTER
   ============================================================ */
.footer{padding:72px var(--pad) 26px;border-top:1px solid var(--gray-line)}
.footer__top{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:24px;margin-bottom:80px}
@media(max-width:900px){.footer__top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer__top{grid-template-columns:1fr}}
.footer__brand svg{height:24px;width:auto;margin-bottom:18px}
.footer h3{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:12px}
.footer li{margin-bottom:8px}
.footer li a{font-size:13px}
.footer li a:hover{opacity:.6}
.newsletter{display:flex;align-items:center;border-bottom:1px solid var(--black);max-width:300px}
.newsletter input{
  flex:1;border:none;outline:none;padding:10px 0;font-size:13px;background:transparent;
}
.newsletter button{font-size:16px;padding:6px 2px;transition:transform .3s}
.newsletter button:hover{transform:translateX(4px)}
.newsletter-msg{font-size:12px;margin-top:8px;color:var(--c-all);min-height:16px}
.footer__wordmark{margin:0 -4px}
.footer__wordmark svg{width:100%;height:auto;display:block}
.footer__legal{display:flex;justify-content:space-between;gap:12px;padding-top:18px;font-size:11px;color:var(--gray-mid)}

/* ============================================================
   CART DRAWER
   ============================================================ */
.cart-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:10;
  opacity:0;pointer-events:none;transition:opacity .35s;
}
.cart-overlay.open{opacity:1;pointer-events:auto}
.cart{
  position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);z-index:11;
  background:#fff;display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .4s var(--ease-in-out-quart);
}
.cart.open{transform:translateX(0)}
.cart__head{display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad);border-bottom:1px solid var(--gray-line)}
.cart__head h2{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.cart__close{font-size:20px;line-height:1}
.cart__items{flex:1;overflow-y:auto;padding:8px var(--pad)}
.cart__empty{padding:40px 0;font-size:13px;color:var(--gray-mid);text-align:center}
.cart-item{display:grid;grid-template-columns:64px 1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--gray-tile)}
.cart-item__img{width:64px;height:64px;background:var(--gray-tile);border-radius:4px;overflow:hidden}
.cart-item__img img{width:100%;height:100%;object-fit:cover}
.cart-item h4{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}
.cart-item .qty{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--gray-line);border-radius:999px;padding:3px 10px;font-size:12px}
.cart-item .qty button{font-size:14px;padding:0 4px}
.cart-item__right{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between}
.cart-item__price{font-size:12px;font-weight:500}
.cart-item__rm{font-size:11px;color:var(--gray-mid);text-decoration:underline}
.cart__foot{padding:16px var(--pad) 22px;border-top:1px solid var(--gray-line)}
.cart__ship{font-size:11px;color:var(--gray-mid);margin-bottom:10px}
.cart__total{display:flex;justify-content:space-between;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px}
.cart__checkout{
  display:block;width:100%;text-align:center;background:var(--black);color:#fff;
  border-radius:999px;padding:15px;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
}
.cart__checkout:hover{opacity:.85}

/* toast */
.toast{
  position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);
  background:var(--black);color:#fff;border-radius:999px;padding:12px 22px;
  font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:12;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease-out-quart),transform .7s var(--ease-out-quart)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  *{scroll-behavior:auto!important}
}
