:root {
  --ds-ink: #2b2b33;
  --ds-muted: #6b6b76;
  --ds-cream: #faf7f2;
  --ds-sand: #f0e9df;
  --ds-accent: #a4653f;
  --ds-accent-dark: #7e4c2e;
  --ds-white: #ffffff;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; color: var(--ds-ink); background: var(--ds-white); line-height: 1.6; }
h1, h2, h3 { font-weight: 700; line-height: 1.2; margin: 0 0 0.6em; }
h2 { font-size: 2rem; }
a { color: var(--ds-accent); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--ds-accent); outline-offset: 2px; }

.ds-demo-banner { background: #1f2937; color: #fef3c7; text-align: center; padding: 10px 16px; font-size: 0.95rem; }

.ds-nav { position: sticky; top: 0; z-index: 50; background: var(--ds-white); box-shadow: 0 1px 6px rgba(0,0,0,0.08); }
.ds-nav-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; }
.ds-brand { font-size: 1.3rem; font-weight: 800; text-decoration: none; color: var(--ds-ink); letter-spacing: 0.02em; }
.ds-brand span { color: var(--ds-accent); }
.ds-nav-links a { margin-left: 22px; text-decoration: none; color: var(--ds-ink); font-weight: 500; }
.ds-nav-links a:hover { color: var(--ds-accent); }

.ds-hero { position: relative; min-height: 420px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ds-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ds-hero-overlay { position: relative; z-index: 2; text-align: center; color: #fff; background: rgba(30, 25, 20, 0.55); padding: 40px 28px; border-radius: 14px; max-width: 640px; margin: 60px 20px; }
.ds-hero-overlay h1 { font-size: 2.4rem; }
.ds-hero-overlay p { font-size: 1.15rem; margin-bottom: 1.4em; }

.ds-btn { display: inline-block; padding: 13px 30px; border-radius: 999px; text-decoration: none; font-weight: 700; transition: background 0.15s ease, transform 0.15s ease; }
.ds-btn-primary { background: var(--ds-accent); color: #fff; }
.ds-btn-primary:hover { background: var(--ds-accent-dark); transform: translateY(-1px); }

.ds-section { padding: 64px 20px; scroll-margin-top: 80px; }
.ds-section-alt { background: var(--ds-cream); }
.ds-container { max-width: 1100px; margin: 0 auto; }
.ds-lead { font-size: 1.12rem; color: var(--ds-muted); max-width: 760px; }

.ds-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 28px; }
.ds-card { position: relative; background: var(--ds-white); border: 1px solid var(--ds-sand); border-radius: 14px; padding: 26px 24px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); transition: transform 0.15s ease, box-shadow 0.15s ease; }
.ds-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(0,0,0,0.10); }
.ds-card-featured { border: 2px solid var(--ds-accent); }
.ds-badge { position: absolute; top: -13px; left: 22px; background: var(--ds-accent); color: #fff; font-size: 0.78rem; font-weight: 700; padding: 4px 14px; border-radius: 999px; }
.ds-card-meta { color: var(--ds-accent-dark); font-weight: 700; margin: 0 0 0.7em; }

.ds-contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 20px; }

.ds-footer { background: var(--ds-ink); color: #d8d8de; text-align: center; padding: 28px 20px; font-size: 0.92rem; }

@media (max-width: 800px) {
  .ds-cards, .ds-contact-grid { grid-template-columns: 1fr; }
  .ds-hero-overlay h1 { font-size: 1.8rem; }
  .ds-nav-links a { margin-left: 12px; font-size: 0.92rem; }
}
@media (max-width: 480px) {
  .ds-nav-inner { flex-direction: column; gap: 8px; }
  h2 { font-size: 1.6rem; }
}

/* ── Möt vårt team (stylist-grid) ───────────────────────────────── */
.ds-team{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px}
.ds-stylist{display:flex;flex-direction:column;background:var(--ds-white);border:1px solid var(--ds-sand);border-radius:16px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.05);transition:transform .15s ease,box-shadow .15s ease}
.ds-stylist:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.12)}
.ds-stylist-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;display:block}
.ds-stylist-body{padding:22px 22px 26px;display:flex;flex-direction:column;flex:1}
.ds-stylist-body h3{margin:0 0 .1em;font-size:1.25rem}
.ds-stylist-role{color:var(--ds-accent-dark);font-weight:700;margin:0 0 .85em;font-size:.95rem}
.ds-stylist-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:1em}
.ds-stylist-tags span{background:var(--ds-sand);color:var(--ds-accent-dark);font-size:.76rem;font-weight:600;padding:5px 11px;border-radius:999px;letter-spacing:.01em}
.ds-stylist-bio{color:var(--ds-muted);margin:0 0 1.5em;line-height:1.55;flex:1}
.ds-btn-outline{align-self:flex-start;background:transparent;color:var(--ds-accent-dark);border:1.5px solid var(--ds-accent);padding:11px 24px;border-radius:999px;font-weight:700;text-decoration:none;transition:background .15s ease,color .15s ease}
.ds-btn-outline:hover{background:var(--ds-accent);color:#fff}
@media (max-width:800px){.ds-team{grid-template-columns:1fr}}

/* demo: nav-runtime injicerar en föräldralös hamburger-<button> som dubblerar
   ds-nav-links (som alltid visas responsivt). Dölj den för ren mobilmeny. */
header.ds-nav .ds-nav-inner .ds-nav-links > button{display:none!important}
@media (max-width:800px){.ds-nav-links{flex-wrap:wrap;justify-content:center;gap:4px 14px}}


/* ── Quickbar (öppettider-rad) ─────────────────────────────── */
.ds-quickbar{background:var(--ds-ink);color:#fff}
.ds-quickbar-inner{max-width:1100px;margin:0 auto;padding:12px 20px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 32px;font-size:.9rem}
.ds-quickbar-inner span{opacity:.92}
.ds-quickbar-inner strong{color:#fff}
/* ── Recensioner ───────────────────────────────────────────── */
.ds-reviews-section{background:color-mix(in srgb,var(--ds-accent) 7%,#fff)}
.ds-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
.ds-review{margin:0;background:#fff;border:1px solid var(--ds-sand);border-radius:14px;padding:26px 24px;box-shadow:0 2px 10px rgba(0,0,0,.05);display:flex;flex-direction:column}
.ds-stars{color:var(--ds-accent);letter-spacing:2px;margin-bottom:.7em;font-size:1.05rem}
.ds-review p{color:var(--ds-ink);line-height:1.6;margin:0 0 1em;flex:1;font-size:1.02rem}
.ds-review cite{color:var(--ds-muted);font-style:normal;font-weight:600;font-size:.92rem}
/* ── Galleri ───────────────────────────────────────────────── */
.ds-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}
.ds-gallery-item{margin:0;position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1/1}
.ds-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.ds-gallery-item:hover img{transform:scale(1.05)}
.ds-gallery-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 14px 10px;color:#fff;font-size:.85rem;font-weight:600;background:linear-gradient(transparent,rgba(0,0,0,.6))}
/* ── Sticky boka-CTA ───────────────────────────────────────── */
.ds-sticky-cta{position:fixed;right:22px;bottom:22px;z-index:900;background:var(--ds-accent);color:#fff;font-weight:700;text-decoration:none;padding:14px 26px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:background .15s ease,transform .15s ease}
.ds-sticky-cta:hover{background:var(--ds-accent-dark);transform:translateY(-2px)}
@media (max-width:800px){
  .ds-reviews{grid-template-columns:1fr}
  .ds-gallery{grid-template-columns:repeat(2,1fr)}
  .ds-sticky-cta{left:16px;right:16px;bottom:14px;text-align:center;padding:15px}
}


/* ── Silversteel-länkar (banner + footer) ──────────────────── */
.ds-banner-link{color:#fff;text-decoration:underline;font-weight:700;white-space:nowrap}
.ds-footer-link{color:var(--ds-accent);text-decoration:underline;font-weight:600}
/* ── Team-kort: klickbar bild + profil-länk ────────────────── */
.ds-stylist-photo-link{display:block}
.ds-stylist-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start;margin-top:auto}
.ds-stylist-profile-link{color:var(--ds-accent-dark);font-weight:700;text-decoration:none;font-size:.95rem}
.ds-stylist-profile-link:hover{text-decoration:underline}
/* ── Frisör-undersida: profil-hero ─────────────────────────── */
.ds-profile-hero{display:grid;grid-template-columns:minmax(280px,400px) 1fr;gap:44px;align-items:center;max-width:1100px;margin:0 auto;padding:56px 20px}
.ds-profile-hero>img{width:100%;border-radius:18px;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;box-shadow:0 24px 44px -22px rgba(0,0,0,.35)}
.ds-profile-hero h1{font-size:clamp(2rem,4vw,2.8rem);color:var(--ds-ink);margin:0 0 .15em}
.ds-profile-role{color:var(--ds-accent-dark);font-weight:700;font-size:1.08rem;margin:0 0 1.1em}
.ds-profile-hero .ds-stylist-tags{margin-bottom:1.2em}
.ds-profile-bio{color:var(--ds-muted);font-size:1.1rem;line-height:1.65;margin:0 0 1.7em;max-width:560px}
.ds-gallery-2{grid-template-columns:repeat(2,1fr)}
.ds-gallery-2 .ds-gallery-item{aspect-ratio:4/3}
.ds-reviews-2{grid-template-columns:repeat(2,1fr)}
.ds-back-cta .ds-container{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:center}
.ds-back-link{color:var(--ds-muted);text-decoration:none;font-weight:600}
.ds-back-link:hover{color:var(--ds-accent-dark)}
/* ── Mobil: sticky boka-bar får ej täcka footer/innehåll ───── */
@media (max-width:800px){
  .ds-footer{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
  .ds-profile-hero{grid-template-columns:1fr;text-align:center;gap:26px;padding-top:40px}
  .ds-profile-hero>img{max-width:320px;margin:0 auto}
  .ds-profile-hero .ds-stylist-tags{justify-content:center}
  .ds-profile-bio{margin-left:auto;margin-right:auto}
  .ds-gallery-2,.ds-reviews-2{grid-template-columns:1fr}
  .ds-stylist-actions{align-items:stretch}
}
