/* ===================== Smartest Decor — "The Colour Story" ===================== */
@property --story {
  syntax: '<color>';
  inherits: true;
  initial-value: #5E97C4;
}

:root{
  --bg:        #F5F0EA;   /* soft oyster / warm stone */
  --bg-alt:    #EBE3D8;   /* deeper sand-stone */
  --ink:       #241C22;   /* warm near-black plum-brown */
  --ink-soft:  #5a4f56;
  --ink-mute:  #857a80;
  --line:      #ddd2c4;
  --accent:    #6E2233;   /* deep garnet — the one brand accent */
  --accent-deep:#571a28;
  --brass:     #B98C4E;   /* muted brass — labels / eyebrows only */
  --dark:      #1A151A;   /* nav + footer band */
  --whatsapp:  #25D366;
  --whatsapp-dark:#1DA851;
  --story:     #5E97C4;   /* transient — set per colour-story chip */
  --display: "Prata", Georgia, "Times New Roman", serif;
  --sans: "Familjen Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--sans);
  font-weight: 400;
  color: var(--ink-soft);
  background: var(--bg);
  font-size: 17px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
.wrap{ max-width: 1180px; margin: 0 auto; padding: 0 30px; }
h1,h2,h3{ font-family: var(--display); font-weight: 400; margin: 0 0 .5em; color: var(--ink); line-height: 1.2; }
h1{ font-size: clamp(34px, 6vw, 62px); letter-spacing: -.01em; }
h2{ font-size: clamp(27px, 3.6vw, 40px); letter-spacing: -.005em; }
h3{ font-size: 21px; }
p{ margin: 0 0 1em; }
.center{ text-align:center; }
.center p, .center h1, .center h2, .center h3{ margin-left:auto; margin-right:auto; }
section{ padding: 96px 0; }
.section-lead{ max-width: 580px; margin: 0 auto 46px; color: var(--ink-mute); }
.section-eyebrow{ text-transform:uppercase; letter-spacing:.22em; font-size:12px; color: var(--brass); font-weight:600; margin-bottom: 14px; }

/* ===================== buttons ===================== */
.btn{
  display:inline-block; padding: 15px 34px; font-family: var(--sans); font-size: 13px; font-weight:600;
  text-transform: uppercase; letter-spacing: .16em; border: 1.5px solid var(--ink);
  color: var(--ink); background: transparent; transition: background .2s ease, color .2s ease, border-color .2s ease;
  cursor:pointer;
}
.btn:hover{ background: var(--ink); color: var(--bg); }
.btn-solid{ background: var(--accent); border-color: var(--accent); color:#fff; }
.btn-solid:hover{ background: var(--accent-deep); border-color: var(--accent-deep); color:#fff; }
.btn-ghost-light{ border-color: rgba(255,255,255,.85); color:#fff; }
.btn-ghost-light:hover{ background:#fff; color: var(--ink); }

/* ===================== header ===================== */
.site-header{ position: sticky; top:0; z-index: 60; background: var(--dark); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding: 20px 0; }
.logo{ display:flex; align-items:center; gap: 11px; }
.logo img{ height: 50px; width: 50px; display:block; }
.logo-word{
  font-family: var(--sans); font-size: 12px; letter-spacing: .14em; text-transform:uppercase;
  color:#efe9e0; font-weight:600; white-space:nowrap;
}
.logo-footer img{ height: 84px; width: 84px; }
@media (max-width: 600px){ .logo-word{ display:none; } .logo img{ height: 42px; width: 42px; } }
.site-nav{ display:flex; gap: 32px; }
.site-nav a{ font-family: var(--sans); font-size: 12.5px; text-transform:uppercase; letter-spacing:.14em; color:#e7e2e6; font-weight:500; }
.site-nav a:hover{ color: var(--brass); }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding: 6px; width:44px; height:44px; align-items:center; justify-content:center; }
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:24px; height:2px; background:#fff; position:relative; transition: all .2s;
}
.nav-toggle span::before{ position:absolute; top:-8px; }
.nav-toggle span::after{ position:absolute; top:8px; }
@media (max-width: 860px){
  .site-nav{
    position:absolute; top:100%; left:0; right:0; background: var(--dark);
    flex-direction:column; gap:0; max-height:0; overflow:hidden; transition: max-height .25s ease;
  }
  .site-nav.is-open{ max-height: 320px; }
  .site-nav a{ padding: 16px 30px; border-top: 1px solid rgba(255,255,255,.08); }
  .nav-toggle{ display:flex; }
}
@media (max-width: 480px){
  .header-inner{ padding: 16px 2px; }
  .logo{ font-size: 16px; letter-spacing:.16em; gap: 4px; }
  .logo small{ font-size: 9.5px; letter-spacing:.2em; }
}

/* ===================== hero — colour story ===================== */
.hero{ position: relative; padding: 0; background: var(--dark); overflow:hidden; }
.hero-stage{ position:absolute; inset:0; }
.hero-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transition: opacity 1.1s ease;
}
.hero-slide.is-active{ opacity:1; }
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(20,16,20,.72) 0%, rgba(20,16,20,.34) 42%, rgba(20,16,20,.06) 78%),
    linear-gradient(0deg, rgba(20,16,20,.34) 0%, rgba(20,16,20,0) 34%);
}
.hero-content{
  position:relative; z-index:2; padding-top: 84px; padding-bottom: 118px; max-width: 1180px;
}
.hero-eyebrow{
  text-transform:uppercase; letter-spacing:.22em; font-size:12px; font-weight:600;
  color:#fff; margin-bottom: 22px; padding-left: 2px;
  border-left: 3px solid var(--story); padding-left: 12px;
  transition: border-color .5s ease;
}
.hero-content h1{ color:#fff; max-width: 14ch; margin-bottom: 20px; }
.hero-sub{ color: rgba(255,255,255,.9); max-width: 44ch; font-size: 18px; margin-bottom: 34px; }

.story-strip{
  position:absolute; left:0; right:0; bottom:0; z-index:3;
  display:flex; gap: 0; background: rgba(20,16,20,.55); backdrop-filter: blur(2px);
  border-top: 1px solid rgba(255,255,255,.14);
}
.story-chip{
  flex:1; display:flex; flex-direction:column; align-items:center; gap: 7px;
  padding: 16px 8px 15px; background:transparent; border:0; border-right: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.72); font-family: var(--sans); font-size: 11.5px; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em; cursor:pointer; transition: color .2s, background .2s;
}
.story-chip:last-child{ border-right:0; }
.story-chip .dots{ display:flex; gap: 4px; }
.story-chip .dots i{ width:9px; height:9px; border-radius:50%; display:block; box-shadow: 0 0 0 1px rgba(255,255,255,.25); }
.story-chip:hover{ color:#fff; background: rgba(255,255,255,.06); }
.story-chip.is-active{ color:#fff; background: rgba(255,255,255,.12); box-shadow: inset 0 3px 0 var(--story); }
@media (max-width: 820px){
  .hero-content{ padding-top: 66px; padding-bottom: 108px; }
  .story-strip{ overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
  .story-chip{ flex: 0 0 44%; scroll-snap-align:start; }
}
@media (max-width: 480px){
  .hero-content{ padding-top: 54px; padding-bottom: 100px; }
  .hero-sub{ font-size: 16px; }
  .story-chip{ flex: 0 0 58%; font-size: 10.5px; }
}

/* ===================== quote intro ===================== */
.intro{ padding: 104px 0; background: var(--bg); }
.intro-grid{ display:grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items:center; }
.intro-photo img{ width:100%; height:100%; object-fit:cover; aspect-ratio: 4/5; }
.intro-copy h2{ font-size: clamp(24px, 3vw, 33px); line-height:1.35; font-style: italic; margin-bottom: 24px; }
.intro-copy p{ max-width: 46ch; }
@media (max-width: 860px){ .intro-grid{ grid-template-columns: 1fr; gap: 36px; } .intro-copy{ text-align:center; } .intro-copy p{ margin-left:auto; margin-right:auto; } }

/* ===================== services ===================== */
.services{ background: var(--bg-alt); }
.service-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 48px; }
.service-card{ position:relative; aspect-ratio: 3/4; overflow:hidden; }
.service-card img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.service-card:hover img{ transform: scale(1.06); }
.service-overlay{
  position:absolute; inset:0; background: linear-gradient(180deg, rgba(26,21,26,.05) 30%, rgba(26,21,26,.7) 100%);
  display:flex; align-items:flex-end; justify-content:center; padding: 22px 12px;
}
.svc-label{
  color:#fff; font-family: var(--sans); font-weight:600; font-size: 13px;
  text-transform:uppercase; letter-spacing:.16em; white-space:nowrap;
}
@media (max-width: 900px){ .service-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 480px){ .svc-label{ font-size: 11px; letter-spacing:.1em; } }

/* ===================== why ===================== */
.why{ padding: 104px 0; background: var(--bg); }
.why-copy{ max-width: 640px; margin: 0 auto 36px; color: var(--ink-mute); }

/* ===================== trust band ===================== */
.trust{ background: var(--dark); color:#fff; padding: 62px 0; }
.trust-row{ display:flex; justify-content:center; gap: 64px; flex-wrap:wrap; }
.trust-item{ text-align:center; }
.trust-item strong{ display:block; font-family: var(--display); font-size: 30px; color: var(--brass); margin-bottom: 6px; }
.trust-item span{ font-size: 12px; text-transform:uppercase; letter-spacing:.12em; color:#c9bfc6; }
@media (max-width: 560px){
  .trust{ padding: 46px 0; }
  .trust-row{ display:grid; grid-template-columns: repeat(2,1fr); gap: 26px 16px; max-width: 340px; margin: 0 auto; }
  .trust-item strong{ font-size: 24px; }
  .trust-item span{ font-size: 10.5px; }
}

/* ===================== signature work ===================== */
.latest{ background: var(--bg-alt); }
.sig-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 42px 32px; margin: 52px 0 20px; }
.sig-item{ margin:0; }
.sig-item img{ width:100%; aspect-ratio: 4/3; object-fit:cover; }
.sig-item figcaption{ padding-top: 16px; text-align:center; }
.sig-loc{ display:block; font-size:11px; text-transform:uppercase; letter-spacing:.16em; color: var(--brass); font-weight:600; margin-bottom: 6px; }
.sig-title{ display:block; font-family: var(--display); font-size: 18px; color: var(--ink); }
@media (max-width: 900px){ .sig-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px){ .sig-grid{ grid-template-columns: 1fr; } }

.gallery-anchor{ position:relative; top:-90px; }
.gallery-title{ margin-top: 78px; font-size: clamp(24px,3vw,32px); }

/* ===================== colour-story filter + gallery ===================== */
.filter-pills{ display:flex; flex-wrap:wrap; gap: 10px; justify-content:center; margin: 26px 0 42px; }
.pill{
  display:flex; align-items:center; gap: 9px;
  font-family: var(--sans); font-weight:600; font-size: 12px; cursor:pointer;
  text-transform:uppercase; letter-spacing:.09em;
  padding: 10px 18px; border: 1.5px solid var(--line);
  background: var(--bg); color: var(--ink-mute); transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.pill .dots{ display:flex; gap: 4px; }
.pill .dots i{ width:9px; height:9px; border-radius:50%; display:block; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.pill:hover{ border-color: var(--ink); color: var(--ink); }
.pill.is-active{ background: var(--ink); border-color: var(--ink); color:#fff; box-shadow: inset 0 -3px 0 var(--story); }
.setup-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.setup-item{ margin:0; position:relative; overflow:hidden; aspect-ratio: 1/1; background: var(--bg-alt); }
.setup-item img{ width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }
.setup-item:hover img{ transform: scale(1.05); }
.setup-item[hidden]{ display:none; }
.filter-pills[hidden], .setup-grid[hidden]{ display:none; }
@media (max-width: 900px){ .setup-grid{ grid-template-columns: repeat(3,1fr); } }
@media (max-width: 560px){
  .setup-grid{ grid-template-columns: repeat(2,1fr); }
  .filter-pills{ display:grid; grid-template-columns: 1fr 1fr; gap: 8px; max-width: 380px; margin-left:auto; margin-right:auto; }
  .pill{ font-size: 10px; padding: 9px 8px; letter-spacing:.04em; justify-content:center; }
}

/* ===================== packages ===================== */
.packages{ background: var(--bg); }
.pkg-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 22px; margin-top: 48px; }
.pkg-card{ background: var(--bg-alt); border: 1px solid var(--line); padding: 30px 26px; }
.pkg-card h3{ font-family: var(--display); color: var(--accent); margin-bottom: 12px; }
.pkg-card p{ font-size: 14.5px; margin: 0; }
.pkg-cta{ margin-top: 48px; }
@media (max-width: 900px){ .pkg-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px){ .pkg-grid{ grid-template-columns: 1fr; } }

/* ===================== booking ===================== */
.booking{ background: var(--bg-alt); }
.steps{ display:grid; grid-template-columns: repeat(3,1fr); gap: 34px; margin-top: 46px; }
.step{ text-align:center; }
.step-n{
  display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px;
  border: 1.5px solid var(--accent); color: var(--accent); font-family: var(--display); font-size: 22px;
  border-radius:50%; margin-bottom: 16px;
}
.step h3{ margin-bottom: 8px; }
.step p{ font-size: 14.5px; color: var(--ink-mute); max-width: 30ch; margin: 0 auto; }
@media (max-width: 760px){ .steps{ grid-template-columns: 1fr; gap: 30px; } }

/* ===================== CTA band ===================== */
.cta-band{ background: var(--dark); color:#fff; padding: 92px 0; }
.cta-band h2{ color:#fff; white-space:nowrap; }
.cta-band p{ margin: 0 auto 30px; color: rgba(255,255,255,.85); }
@media (max-width: 640px){
  .cta-band h2{ white-space:normal; }
  .cta-band p{ max-width: 34ch; }
}
.cta-band .btn-ghost{ border-color:#fff; color:#fff; }
.cta-band .btn-ghost:hover{ background:#fff; color: var(--ink); }
.cta-actions{ display:flex; gap: 16px; justify-content:center; flex-wrap:wrap; }

/* ===================== footer ===================== */
.site-footer{ background: var(--dark); color: #c9bfc6; padding-top: 60px; }
.footer-inner{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 30px; padding-bottom: 40px; }
.footer-label{ text-transform:uppercase; letter-spacing:.14em; font-size:11px; color: var(--brass); font-weight:600; margin-bottom: 10px; }
.footer-col a:hover{ color: var(--brass); }
.footer-col-brand .logo{ color:#fff; margin-bottom: 14px; display:inline-flex; }
.footer-col-brand p{ font-size: 14px; line-height:1.6; max-width: 36ch; }
.footer-col-center{ text-align:center; }
.footer-col-right{ display:flex; flex-direction:column; align-items:flex-end; }
.footer-social{ display:flex; gap: 14px; }
.footer-social a{
  width:44px; height:44px; border:1px solid rgba(255,255,255,.22); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:#c9bfc6;
}
.footer-social a svg{ width:18px; height:18px; }
.footer-social a:hover{ border-color: var(--brass); color: var(--brass); }
.footer-bottom{ border-top: 1px solid rgba(255,255,255,.12); padding: 18px 0; text-align:center; font-size: 12.5px; }
.footer-bottom a{ color: var(--brass); }
@media (max-width: 780px){
  .footer-inner{ grid-template-columns: 1fr; text-align:center; }
  .footer-col-right{ align-items:center; }
  .footer-col-brand .logo{ justify-content:center; }
  .footer-col-brand p{ margin-left:auto; margin-right:auto; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .hero-slide, .hero-eyebrow, .service-card img, .setup-item img{ transition:none; }
}
