[x-cloak]{ display:none !important; }

html{ scroll-behavior:smooth; }
body{ -webkit-font-smoothing:antialiased; }

:focus-visible{ outline:2px solid #2BA89F; outline-offset:2px; border-radius:4px; }

::selection{ background:#F4B6C0; color:#262A2E; }

.line-clamp-2{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tabular-nums{ font-variant-numeric:tabular-nums; }

/* Cart badge pulse */
@keyframes cartPulse{ 0%{transform:scale(1)} 40%{transform:scale(1.5)} 100%{transform:scale(1)} }
.cart-pulse{ animation:cartPulse .4s ease; }

/* Color swatch palette */
.swatch{ width:1.6rem; height:1.6rem; border-radius:9999px; border:2px solid #fff; box-shadow:0 0 0 1px #E7E0D6; cursor:pointer; transition:transform .15s; }
.swatch:hover{ transform:scale(1.1); }
.swatch[aria-pressed="true"]{ box-shadow:0 0 0 2px #E8718B; }
.sw-turquoise{ background:#2BA89F; }
.sw-corail{ background:#E8718B; }
.sw-blanc{ background:#fff; }
.sw-naturel{ background:#D8C3A5; }
.sw-noir{ background:#1E2A32; }
.sw-indigo{ background:#3A4A8C; }
.sw-dore{ background:#D4AF37; }
.sw-multicolore{ background:conic-gradient(#FF6B5E,#F6A623,#3CA66E,#1FB7B0,#3A4A8C,#FF6B5E); }

/* Skeleton */
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.5} }
.skeleton{ background:#EFE9E0; border-radius:.75rem; animation:pulse 1.4s ease-in-out infinite; }

/* GSAP reveal initial state */
.reveal{ opacity:0; transform:translateY(24px); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1 !important; transform:none !important; }
  [data-hero-img]{ transform:none !important; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* Hero gradient — frangipani palette: deep ink base, lagoon & petal accents */
.hero-overlay{
  background:
    linear-gradient(180deg, rgba(20,22,24,.20) 0%, rgba(20,22,24,.10) 35%, rgba(27,30,34,.78) 100%),
    linear-gradient(115deg, rgba(27,126,118,.42) 0%, rgba(38,42,46,.30) 55%, rgba(232,113,139,.30) 100%);
}

/* Subtle film grain over hero */
.hero-grain{
  opacity:.06; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Elegant link underline for nav (optional accent) */
.nxt-underline{ position:relative; }
.nxt-underline::after{ content:''; position:absolute; left:0; bottom:-3px; height:1.5px; width:0; background:#E8718B; transition:width .3s ease; }
.nxt-underline:hover::after{ width:100%; }

/* Leaflet container fix */
.leaflet-container{ font-family:inherit; }
