:root{
  --white:#ffffff;
  --blush:#f8ecea;
  --rose:#ecd4d0;
  --red:#c8101d;
  --red-deep:#a10c17;
  --ink:#231719;
  --muted:#7a6669;
  --max:1200px;
  --serif:"Bodoni Moda",Didot,"Times New Roman",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--ink);font-family:Jost,system-ui,sans-serif;font-size:17px;line-height:1.6;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:500;line-height:1.05;letter-spacing:-.015em;font-optical-sizing:none;font-variation-settings:"opsz" 28}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.shell{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--red);color:#fff;padding:8px 14px}
.skip:focus{left:8px}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border:0;border-radius:999px;background:var(--red);color:#fff;font:inherit;font-weight:500;font-size:16px;text-decoration:none;cursor:pointer;transition:background .15s}
.btn:hover{background:var(--red-deep)}
.btn-sm{min-height:42px;padding:0 20px;font-size:15px}
.link{color:var(--red);font-weight:500;text-underline-offset:5px}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--rose)}
.nav{height:76px;display:flex;align-items:center;gap:36px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto;color:var(--ink)}
.brandmark{width:52px;height:42px}
.brandname{font-family:var(--serif);font-size:26px;font-weight:500}
.menu{display:flex;gap:30px;font-size:16px}
.menu a{text-decoration:none;color:#4a3b3e}
.menu a:hover{color:var(--red)}
.burger{display:none;width:44px;height:44px;border:1px solid var(--rose);border-radius:50%;background:none;cursor:pointer;padding:0}
.burger span{display:block;width:18px;height:1.5px;background:var(--ink);margin:5px auto;transition:transform .2s}
.burger[aria-expanded="true"] span:first-child{transform:translateY(3.25px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}

/* hero */
.hero{padding:56px 0 88px;background:linear-gradient(180deg,var(--blush),var(--white) 85%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:64px;align-items:center}
.hero h1{font-size:clamp(46px,6vw,88px);font-weight:400}
.hero-copy>p{max-width:42ch;color:var(--muted);margin:24px 0 32px;font-size:18px}
.hero-cta{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.hero-facts{list-style:none;padding:28px 0 0;margin:44px 0 0;border-top:1px solid var(--rose);display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.hero-facts li{font-size:14px;color:var(--muted);line-height:1.4}
.hero-facts b{display:block;font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink);margin-bottom:4px}
.hero-photo{margin:0;border-radius:240px 240px 8px 8px;overflow:hidden;aspect-ratio:4/5}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}

/* swatch picker — the signature */
.swatches{padding:104px 0;background:var(--white)}
.sw-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px;align-items:center}
.sw-preview{background:var(--blush);border-radius:8px;padding:56px 24px 40px;text-align:center}
.nail{width:min(160px,44%);height:auto;filter:drop-shadow(0 18px 24px rgba(35,23,25,.18));overflow:visible}
#nail-shape{stroke:rgba(35,23,25,.1);stroke-width:1}
#nail-paint{transform-box:fill-box;transform-origin:50% 100%}
#nail-paint.stroke{animation:nl-coat .75s cubic-bezier(.55,0,.25,1) both}
.sw-name{font-family:var(--serif);font-size:32px;margin:28px 0 2px}
.sw-desc{margin:0;color:var(--muted);font-size:15px}
.sw-controls h2{font-size:clamp(36px,4vw,56px)}
.sw-controls>p{color:var(--muted);max-width:46ch;margin:18px 0 32px}
.sw-set{border:0;padding:0;margin:0 0 28px}
.sw-set legend{font-size:14px;font-weight:500;color:var(--muted);margin-bottom:12px;padding:0}
.sw-row{display:flex;flex-wrap:wrap;gap:12px}
.sw{width:48px;height:48px;border-radius:50%;border:0;background:var(--c);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(35,23,25,.12);position:relative;transition:transform .15s}
.sw:hover{transform:scale(1.08)}
.sw[aria-pressed="true"]{box-shadow:inset 0 0 0 1px rgba(35,23,25,.12),0 0 0 3px #fff,0 0 0 5px var(--ink)}
.shape-row{display:flex;gap:8px;flex-wrap:wrap}
.shape-row button{font:inherit;font-size:15px;padding:10px 20px;border-radius:999px;border:1px solid var(--rose);background:#fff;color:var(--ink);cursor:pointer}
.shape-row button:hover{border-color:var(--ink)}
.shape-row button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}

/* pricing */
.pricing{padding:104px 0;background:var(--blush)}
.price-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px}
.price-head h2,.sec-head h2,.rev-title,.salon-copy h2,.contact-copy h2{font-size:clamp(38px,4.4vw,60px)}
.price-head p{color:var(--muted);max-width:36ch;margin:18px 0 0}
.price-list{margin:0;border-top:1px solid var(--rose)}
.price-list div{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:18px 0;border-bottom:1px solid var(--rose)}
.price-list dt{font-size:19px}
.price-list dt small{display:block;font-size:14px;color:var(--muted)}
.price-list dd{margin:0;font-family:var(--serif);font-size:24px;color:var(--red);white-space:nowrap}

/* gallery */
.gallery-sec{padding:104px 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap;margin-bottom:44px}
.sec-head p{margin:0;color:var(--muted);max-width:40ch;font-size:15px}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,240px);grid-template-areas:"r a a s1" "r f s2 s2" "g f b b";gap:14px}
.m-r{grid-area:r}.m-a{grid-area:a}.m-s1{grid-area:s1}.m-f{grid-area:f}.m-s2{grid-area:s2}.m-b{grid-area:b}.m-g{grid-area:g}
.mosaic figure{margin:0;position:relative;border-radius:6px;overflow:hidden}
.mosaic img{width:100%;height:100%;object-fit:cover}
.mosaic figcaption{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.92);border-radius:999px;padding:4px 12px;font-size:13px}

/* reviews */
.reviews{padding:104px 0;background:var(--ink);color:#fff}
.rev-title{color:#fff;margin-bottom:48px}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.rev-grid figure{margin:0}
.rev-grid blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.35}
.rev-grid blockquote:before{content:"";display:block;width:32px;height:2px;background:var(--red);margin-bottom:22px}
.rev-grid figcaption{margin-top:16px;color:#c4b3b5;font-size:15px}
.rev-note{margin:40px 0 0;font-size:13px;color:#a0898c}

/* salon */
.salon{padding:104px 0}
.salon-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:72px;align-items:center}
.salon-photo{margin:0;border-radius:8px;overflow:hidden;aspect-ratio:16/11}
.salon-photo img{width:100%;height:100%;object-fit:cover}
.salon-copy>p{color:var(--muted);margin:18px 0 28px;max-width:44ch}
.benefits{list-style:none;padding:0;margin:0;border-top:1px solid var(--rose)}
.benefits li{padding:14px 0 14px 28px;border-bottom:1px solid var(--rose);position:relative}
.benefits li:before{content:"";position:absolute;left:4px;top:22px;width:10px;height:10px;border-radius:50%;background:var(--red)}

/* contact */
.contact{padding:104px 0;background:var(--blush)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.details{margin:28px 0 0;border-top:1px solid var(--rose)}
.details div{padding:16px 0;border-bottom:1px solid var(--rose)}
.details dt{font-size:14px;color:var(--muted)}
.details dd{margin:2px 0 0;font-size:19px}
.details a{text-decoration:none}
.details a:hover{color:var(--red)}
.booking{background:#fff;border-radius:8px;padding:40px;box-shadow:0 30px 60px -30px rgba(161,12,23,.25)}
.booking h3{font-size:32px;margin-bottom:24px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:block;font-size:15px;font-weight:500;margin-bottom:18px}
input,select{display:block;width:100%;margin-top:6px;padding:13px 16px;border:1px solid var(--rose);border-radius:6px;background:#fff;color:var(--ink);font:inherit;font-size:16px}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23c8101d' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px;padding-right:40px}
input:focus,select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,29,.15)}
input[aria-invalid="true"]{border-color:var(--red)}
.form-note{font-size:13px;color:var(--muted);margin:14px 0 0}

.site-footer{padding:32px 0;border-top:1px solid var(--rose)}
.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.footer p{margin:0;font-size:14px;color:var(--muted)}

#toast{position:fixed;left:50%;bottom:24px;z-index:100;transform:translate(-50%,140%);opacity:0;transition:transform .25s,opacity .25s;background:var(--ink);color:#fff;border-radius:999px;padding:13px 22px;font-size:15px;max-width:calc(100% - 32px);pointer-events:none;text-align:center}
#toast.show{transform:translate(-50%,0);opacity:1}

@media (max-width:960px){
  .shell{width:min(calc(100% - 32px),var(--max))}
  .burger{display:block}
  .head-cta{display:none}
  .menu{display:none;position:absolute;top:76px;left:0;right:0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--rose);padding:8px 16px 16px}
  .menu.open{display:flex}
  .menu a{padding:14px 0;border-bottom:1px solid var(--rose);font-size:18px}
  .hero{padding:32px 0 72px}
  .hero-grid,.sw-grid,.price-grid,.salon-grid,.contact-grid{grid-template-columns:1fr;gap:48px}
  .hero-photo{order:-1;aspect-ratio:5/4;border-radius:200px 200px 8px 8px}
  .rev-grid{grid-template-columns:1fr;gap:40px}
  .swatches,.pricing,.gallery-sec,.reviews,.salon,.contact{padding:80px 0}
}
@media (max-width:600px){
  body{font-size:16px}
  .brandname{font-size:22px}
  .brandmark{width:44px}
  .hero h1{font-size:44px}
  .hero-facts{grid-template-columns:1fr;gap:14px}
  .hero-photo{border-radius:140px 140px 8px 8px}
  .sw-preview{padding:40px 16px 32px}
  .sw{width:42px;height:42px}
  .mosaic{grid-template-columns:1fr 1fr;grid-template-rows:repeat(7,160px);grid-template-areas:"r s1" "r s2" "a a" "f g" "f g" "b b" "b b";gap:10px}
  .mosaic figcaption{font-size:12px;left:6px;bottom:6px;padding:3px 9px}
  .price-list dt{font-size:17px}
  .price-list dd{font-size:21px}
  .rev-grid blockquote{font-size:21px}
  .booking{padding:26px 18px}
  .row2{grid-template-columns:1fr;gap:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}

/* === SPD web demo badge — standard dla wszystkich dem SPD web (nie usuwać) === */
.spd-demo-badge{position:fixed;z-index:80;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:rgba(216,22,32,.94);color:#fff;font:600 11px/1 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.08em;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.25);transition:background .15s}
.spd-demo-badge b{font-weight:800;letter-spacing:.02em}
.spd-demo-badge:hover{background:#b8101a}
.spd-demo-badge:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media print{.spd-demo-badge{display:none}}

/* === Motion: polish stroke + arch reveal (2026-10-16) === */
@keyframes nl-coat{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion:no-preference){
  .hero-photo{animation:nl-arch 1.4s .1s cubic-bezier(.65,0,.2,1) both}
  .hero-photo img{animation:nl-zoom 2.4s .1s cubic-bezier(.2,.7,.2,1) both}
  .hero h1{animation:nl-up 1s .5s cubic-bezier(.2,.7,.2,1) both}
  .hero-copy>p,.hero-cta{animation:nl-up .9s .8s cubic-bezier(.2,.7,.2,1) both}
  .hero-facts{animation:nl-up .9s 1s cubic-bezier(.2,.7,.2,1) both}
}
@keyframes nl-arch{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes nl-zoom{from{transform:scale(1.18)}to{transform:none}}
@keyframes nl-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
