/* Czcionki na własnym serwerze (bez Google Fonts). Licencja SIL Open Font License. */
@font-face{font-family:'Cormorant Garamond'; font-style:italic; font-weight:500; font-display:swap; src:url(fonts/cormorant-garamond-latin-ext-co3smX5s.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond'; font-style:italic; font-weight:500; font-display:swap; src:url(fonts/cormorant-garamond-latin-co3smX5s.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cormorant Garamond'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/cormorant-garamond-latin-ext-co3bmX5s.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/cormorant-garamond-latin-co3bmX5s.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cormorant Garamond'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/cormorant-garamond-latin-ext-co3bmX5s.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/cormorant-garamond-latin-co3bmX5s.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/montserrat-latin-ext-JTUSjIg1.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/montserrat-latin-JTUSjIg1.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/montserrat-latin-ext-JTUSjIg1.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/montserrat-latin-JTUSjIg1.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/montserrat-latin-ext-JTUSjIg1.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/montserrat-latin-JTUSjIg1.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Kolory marki z logo; role kolorów i styl „Soft UI Evolution” z ui-ux-pro-max */
:root{
  --bg:#faf6f3;
  --surface:#ffffff;
  --blush:#f3dcd5;
  --blush-soft:#f8ece7;
  --rose:#c98f83;          /* tylko ozdoby, nie tekst */
  --primary:#8f5245;       /* tekst i przyciski: 5.6:1 na tle, biały na przycisku 6.1:1 */
  --primary-hover:#7a4438;
  --ink:#3d3230;
  --muted:#6b5b55;         /* tekst pomocniczy: 6.0:1 na tle */
  --border:#ead8d0;
  --plum:#3d3230;
  --on-plum:#faf6f3;
  --on-plum-muted:#dccbc5;
  --shadow-sm:0 1px 2px rgba(61,50,48,.06), 0 4px 14px -6px rgba(90,60,50,.16);
  --shadow-md:0 1px 2px rgba(61,50,48,.05), 0 18px 40px -18px rgba(90,60,50,.32);
  --r-sm:14px;
  --r-md:22px;
  --r-lg:32px;
  --ease:cubic-bezier(.22,1,.36,1);
  --dur:240ms;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Montserrat', system-ui, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:88px;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--serif); font-weight:600; margin:0; color:var(--ink); line-height:1.12; text-wrap:balance;}
p{margin:0; color:var(--muted);}
a{color:inherit; text-decoration:none;}
img,svg{display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

:focus-visible{outline:2px solid var(--primary); outline-offset:3px; border-radius:6px;}
.on-dark :focus-visible{outline-color:var(--blush);}
.skip-link{position:absolute; left:16px; top:-60px; z-index:100; background:var(--plum); color:var(--on-plum); padding:12px 20px; border-radius:999px; font-weight:500;}
.skip-link:focus{top:12px;}

.eyebrow{display:inline-flex; align-items:center; gap:10px; font-size:13px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--primary);}
.eyebrow::before{content:""; width:28px; height:1px; background:var(--rose);}

/* ===== przyciski ===== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:48px; padding:12px 28px; border-radius:999px; border:1px solid transparent;
  font:500 15px/1.2 var(--sans); letter-spacing:.2px; cursor:pointer; text-align:center;
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.btn svg{width:16px; height:16px; flex:none;}
.btn-primary{background:var(--primary); color:#fff; box-shadow:0 10px 24px -12px rgba(143,82,69,.7);}
.btn-primary:hover{background:var(--primary-hover); transform:translateY(-1px);}
.btn-ghost{background:var(--surface); color:var(--ink); border-color:var(--border); box-shadow:var(--shadow-sm);}
.btn-ghost:hover{border-color:var(--rose); transform:translateY(-1px);}
.btn-light{background:var(--on-plum); color:var(--plum);}
.btn-light:hover{background:#fff; transform:translateY(-1px);}
.btn-line-light{color:var(--on-plum); border-color:rgba(243,220,213,.4);}
.btn-line-light:hover{border-color:var(--blush); background:rgba(243,220,213,.08);}

/* ===== nagłówek ===== */
header{position:sticky; top:0; z-index:50; background:rgba(250,246,243,.9); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border-bottom:1px solid rgba(234,216,208,.7);}
nav{max-width:1180px; margin:0 auto; padding:12px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px;}
.brand{display:flex; align-items:center; gap:12px; flex:none;}
.brand svg{width:30px; height:46px; color:var(--primary);}
.brand-name{font-family:var(--serif); font-size:25px; font-weight:600; letter-spacing:2.5px; line-height:1; text-transform:uppercase;}
.brand-name small{display:block; margin-top:5px; font-family:var(--sans); font-size:10.5px; font-weight:500; letter-spacing:2px; color:var(--muted);}
.nav-panel{display:flex; align-items:center; gap:32px;}
.nav-links{display:flex; gap:28px; list-style:none; margin:0; padding:0;}
.nav-links a{display:inline-block; padding:10px 0; font-size:15px; font-weight:500; position:relative; white-space:nowrap;}
.nav-links a::after{content:""; position:absolute; left:0; right:0; bottom:6px; height:1px; background:var(--primary); transform:scaleX(0); transform-origin:left; transition:transform var(--dur) var(--ease);}
.nav-links a:hover::after{transform:scaleX(1);}
.nav-actions{display:flex; gap:10px;}
.nav-actions .btn{min-height:44px; padding:10px 22px;}
.burger{display:none; width:44px; height:44px; border:0; background:none; cursor:pointer; flex-direction:column; align-items:center; justify-content:center;}
.burger span{display:block; width:22px; height:1.5px; background:var(--ink); margin:3.5px 0; transition:transform var(--dur), opacity var(--dur);}
header.open .burger span:nth-child(1){transform:translateY(5px) rotate(45deg);}
header.open .burger span:nth-child(2){opacity:0;}
header.open .burger span:nth-child(3){transform:translateY(-5px) rotate(-45deg);}

/* ===== hero ===== */
.hero{padding:72px 0 64px; overflow:hidden;}
.hero .wrap{display:grid; grid-template-columns:1.08fr .92fr; gap:64px; align-items:center;}
.hero h1{font-size:clamp(40px,5vw,66px); font-weight:500; letter-spacing:-.3px; margin-top:18px;}
.hero h1 em{font-style:italic; color:var(--primary);}
.hero .lead{margin-top:22px; font-size:17px; max-width:520px;}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px;}
.hero-note{margin-top:18px; font-size:14px; display:flex; align-items:center; gap:8px;}
.hero-note svg{width:16px; height:16px; color:var(--primary);}

.hero-art{position:relative; justify-self:center; width:min(100%,440px);}
.arch{
  aspect-ratio:4/5; border-radius:999px 999px var(--r-lg) var(--r-lg);
  background:radial-gradient(120% 80% at 50% 20%, #fff 0%, var(--blush-soft) 45%, var(--blush) 100%);
  box-shadow:var(--shadow-md), inset 0 0 0 1px rgba(255,255,255,.7);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px 24px 110px;
}
.arch .rose-big{width:120px; height:190px; color:var(--primary);}
.arch .rose-big path{animation:draw 2.4s var(--ease) backwards;}
.arch .rose-big path:nth-child(2){animation-delay:.12s;}
.arch .rose-big path:nth-child(3){animation-delay:.24s;}
.arch .rose-big path:nth-child(4){animation-delay:.36s;}
.arch .rose-big path:nth-child(5){animation-delay:.48s;}
.arch .rose-big path:nth-child(6){animation-delay:.6s;}
.arch .rose-big path:nth-child(n+7){animation-delay:.9s;}
@keyframes draw{from{stroke-dasharray:1; stroke-dashoffset:1;} to{stroke-dasharray:1; stroke-dashoffset:0;}}
.arch-word{margin-top:22px; font-family:var(--serif); font-size:24px; font-weight:600; letter-spacing:5px; text-transform:uppercase;}
.arch-sub{margin-top:8px; padding-top:10px; border-top:1px solid var(--rose); font-size:11px; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; color:var(--muted);}

.float-card{
  position:absolute; display:flex; align-items:center; gap:12px;
  background:rgba(255,255,255,.94); border:1px solid rgba(234,216,208,.8); border-radius:var(--r-sm);
  padding:12px 16px; box-shadow:var(--shadow-md);
}
.float-card .ic{width:40px; height:40px; border-radius:50%; background:var(--blush-soft); display:grid; place-items:center; flex:none;}
.float-card .ic svg{width:22px; height:22px; color:var(--primary);}
.float-card b{display:block; font-family:var(--serif); font-size:20px; line-height:1.1; color:var(--ink);}
.float-card span{display:block; font-size:12.5px; line-height:1.35; color:var(--muted);}
.fc-1{left:-44px; bottom:6%;}
.fc-2{right:-28px; top:12%;}

/* ===== pasek zaufania ===== */
.trust{padding:0 0 24px;}
.trust ul{
  list-style:none; margin:0; padding:22px 12px; display:grid; grid-template-columns:repeat(4,1fr);
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--shadow-sm);
}
.trust li{text-align:center; padding:4px 16px;}
.trust li + li{border-left:1px solid var(--border);}
.trust strong{display:block; font-family:var(--serif); font-size:34px; font-weight:600; line-height:1.1; color:var(--primary);}
.trust span{font-size:14px; color:var(--muted);}

/* ===== nagłówki sekcji ===== */
.sec{padding:96px 0;}
.sec-head{max-width:640px; margin-bottom:48px;}
.sec-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.sec-head h2{margin-top:14px; font-size:clamp(32px,3.8vw,48px); font-weight:500;}
.sec-head p{margin-top:14px; font-size:17px;}

/* ===== oferta ===== */
.offer-grid{display:grid; grid-template-columns:1.15fr 1fr 1fr; grid-template-rows:auto auto; gap:20px;}
.offer-grid .card-wide{grid-column:1 / -1;}
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md);
  padding:28px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column;
  transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.card:hover{box-shadow:var(--shadow-md); transform:translateY(-2px); border-color:#e2c7bd;}
.card .ic{width:52px; height:52px; border-radius:50%; background:var(--blush-soft); display:grid; place-items:center; margin-bottom:20px;}
.card .ic svg{width:28px; height:28px; color:var(--primary);}
.card h3{font-size:26px;}
.card p{margin-top:10px; font-size:15px;}
.card .price-row{margin-top:24px; padding-top:20px; display:flex; align-items:baseline; justify-content:space-between; gap:12px; border-top:1px solid var(--border);}
.card .body{flex:1;}
.price{font-family:var(--serif); font-size:28px; font-weight:600; color:var(--primary); white-space:nowrap; line-height:1.1;}
.price.small{font-family:var(--sans); font-size:15px; font-weight:500;}
.price-label{font-size:13px; color:var(--muted);}

.card.featured{
  grid-row:span 2; padding:36px;
  background:linear-gradient(165deg, #fff 0%, var(--blush-soft) 100%);
}
.featured .tag{align-self:flex-start; font-size:12px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--primary); background:#fff; border:1px solid var(--border); padding:6px 12px; border-radius:999px; margin-bottom:22px;}
.featured h3{font-size:36px;}
.featured p{font-size:16px;}
.featured ul{list-style:none; margin:20px 0 0; padding:0; display:grid; gap:10px;}
.featured li{display:flex; gap:10px; font-size:15px; color:var(--ink);}
.featured li svg{width:18px; height:18px; color:var(--primary); margin-top:4px; flex:none;}
.featured .price{font-size:40px;}
.featured .btn{margin-top:24px; align-self:flex-start;}
.offer-foot{margin-top:36px; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 20px; text-align:center;}
.offer-foot p{font-size:15px;}

/* ===== jak przebiega wizyta ===== */
.steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; counter-reset:step;}
.step{position:relative; padding:28px 28px 30px; border-radius:var(--r-md); background:var(--blush-soft); border:1px solid rgba(234,216,208,.9);}
.step::before{counter-increment:step; content:"0" counter(step); font-family:var(--serif); font-size:44px; font-weight:500; color:var(--rose); line-height:1; display:block; margin-bottom:18px;}
.step h3{font-size:24px;}
.step p{margin-top:8px; font-size:15px;}

/* ===== o nas ===== */
.about{background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
.about .wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; align-items:start;}
.about .sec-head{margin-bottom:0; position:sticky; top:120px;}
.about-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.about-list li{padding:26px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--bg);}
.about-list svg{width:20px; height:32px; color:var(--primary); margin-bottom:14px;}
.about-list h3{font-size:22px;}
.about-list p{margin-top:8px; font-size:15px;}

/* ===== zespół ===== */
.team{display:grid; grid-template-columns:minmax(0,320px); justify-content:center; gap:24px;}
.person{text-align:center; padding:36px 24px 30px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--shadow-sm);}
.avatar{width:132px; height:132px; margin:0 auto 20px; border-radius:50%; display:grid; place-items:center; background:radial-gradient(circle at 35% 30%, #fff, var(--blush)); border:1px solid var(--border); font-family:var(--serif); font-size:48px; font-weight:500; color:var(--primary);}
.person h3{font-size:26px;}
.person p{margin-top:4px; font-size:14px;}
.person.has-photo{padding:0; overflow:hidden; text-align:left;}
.person-photo{display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:50% 20%; background:var(--blush-soft);}
.person-body{padding:22px 24px 26px;}
.person-body p{font-size:15px;}

/* ===== opinie ===== */
.reviews{padding:0 0 96px;}
.reviews-box{
  display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center;
  padding:48px; border-radius:var(--r-lg); background:var(--plum); color:var(--on-plum);
  box-shadow:var(--shadow-md); position:relative; overflow:hidden;
}
.reviews-box .bg-rose{position:absolute; right:-40px; bottom:-90px; width:260px; height:410px; color:rgba(243,220,213,.08); pointer-events:none;}
.reviews-box .eyebrow{color:var(--blush);}
.reviews-box .eyebrow::before{background:var(--rose);}
.reviews-box h2{margin-top:14px; color:var(--on-plum); font-size:clamp(30px,3.4vw,42px); font-weight:500;}
.reviews-box p{margin-top:14px; color:var(--on-plum-muted); font-size:16px;}
.reviews-links{display:grid; gap:12px; position:relative;}
.review-link{
  display:flex; align-items:center; gap:16px; padding:18px 20px; min-height:64px;
  border:1px solid rgba(243,220,213,.25); border-radius:var(--r-sm); background:rgba(255,255,255,.04);
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.review-link:hover{background:rgba(255,255,255,.09); border-color:rgba(243,220,213,.5);}
.review-link svg{width:22px; height:22px; color:var(--blush); flex:none;}
.review-link b{display:block; font-weight:600; font-size:15px; color:var(--on-plum);}
.review-link span{display:block; font-size:13px; color:var(--on-plum-muted);}
.review-link .arrow{margin-left:auto; width:18px; height:18px;}

/* ===== kontakt ===== */
.contact{padding:0 0 110px;}
.contact-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:20px;}
.contact-info{padding:40px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-sm);}
.contact-info h2{font-size:clamp(30px,3.4vw,42px); font-weight:500; margin-top:14px;}
.contact-rows{list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:24px 28px;}
.contact-rows li{display:flex; gap:14px;}
.contact-rows .ic{width:40px; height:40px; border-radius:50%; background:var(--blush-soft); display:grid; place-items:center; flex:none;}
.contact-rows .ic svg{width:20px; height:20px; color:var(--primary);}
.contact-rows h3{font-family:var(--sans); font-size:13px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--muted);}
.contact-rows p, .contact-rows a{font-size:16px; color:var(--ink);}
.contact-rows a{display:inline-block; padding:4px 0; text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:4px;}
.contact-rows a:hover{text-decoration-color:var(--primary);}
.socials{display:flex; gap:10px; margin-top:30px;}
.socials a{width:44px; height:44px; border-radius:50%; border:1px solid var(--border); display:grid; place-items:center; transition:background var(--dur), border-color var(--dur);}
.socials a:hover{background:var(--blush-soft); border-color:var(--rose);}
.socials svg{width:18px; height:18px; color:var(--primary);}

.booking{
  padding:40px; border-radius:var(--r-lg); display:flex; flex-direction:column; justify-content:space-between; gap:28px;
  background:radial-gradient(120% 90% at 80% 0%, #fff 0%, var(--blush-soft) 40%, var(--blush) 100%);
  border:1px solid var(--border); box-shadow:var(--shadow-sm);
}
.booking h3{font-size:32px; font-weight:500;}
.booking p{margin-top:10px; font-size:16px;}
.booking .stack{display:grid; gap:12px;}
.booking .btn{width:100%;}

/* ===== stopka ===== */
footer{background:var(--plum); color:var(--on-plum); padding:36px 0;}
footer .wrap{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px;}
footer .brand svg{color:var(--rose);}
footer .brand-name{color:var(--on-plum);}
footer p{font-size:14px; color:var(--on-plum-muted);}
.footer-links{display:flex; flex-wrap:wrap; gap:4px 24px;}
.footer-links a{display:inline-block; padding:10px 0; font-size:14px; color:var(--on-plum); text-decoration:underline; text-decoration-color:rgba(243,220,213,.35); text-underline-offset:4px;}
.footer-links a:hover{text-decoration-color:var(--blush);}

/* ===== subtelne pojawianie (tylko gdy działa JS) ===== */
.js .reveal{opacity:0; transform:translateY(12px); transition:opacity 380ms ease-out, transform 380ms ease-out;}
.js .reveal.in{opacity:1; transform:none;}

/* ===== pasek na telefonie ===== */
.mobile-bar{display:none;}

/* na komputerze telefon w menu to sama ikona; pełny numer jest w menu mobilnym i w pasku na dole */
.nav-actions .btn-call{width:44px; padding:0;}
.nav-actions .btn-call .label{display:none;}
@media (max-width:1180px) and (min-width:1101px){
  .nav-panel{gap:24px;}
  .nav-links{gap:22px;}
}
/* menu z ikoną od 1100 px, żeby pozycje się nie zawijały */
@media (max-width:1100px){
  nav{padding:10px 20px;}
  .burger{display:flex;}
  .nav-panel{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:18px;
    background:var(--bg); padding:16px 24px 26px; border-bottom:1px solid var(--border); box-shadow:0 16px 30px -20px rgba(90,60,50,.25);
  }
  header.open .nav-panel{display:flex;}
  .nav-links{flex-direction:column; gap:0;}
  .nav-links a{font-size:18px; padding:12px 0;}
  .nav-links a::after{display:none;}
  .nav-actions{flex-direction:column;}
  .nav-actions .btn{width:100%;}
  .nav-actions .btn-call{width:100%; padding:10px 22px;}
  .nav-actions .btn-call .label{display:inline;}
}
@media (max-width:1060px){
  .fc-1{left:-12px;}
  .fc-2{right:-8px;}
  .offer-grid{grid-template-columns:1fr 1fr;}
  .card.featured{grid-row:auto; grid-column:1 / -1;}
}
@media (max-width:960px){
  .hero{padding:40px 0 48px;}
  .hero .wrap{grid-template-columns:1fr; gap:48px;}
  .hero-art{width:min(100%,380px);}
  .trust ul{grid-template-columns:1fr 1fr; row-gap:18px;}
  .trust li:nth-child(3){border-left:0;}
  .steps{grid-template-columns:1fr;}
  .about .wrap{grid-template-columns:1fr; gap:36px;}
  .about .sec-head{position:static;}
  .reviews-box{grid-template-columns:1fr; padding:36px 28px;}
  .contact-grid{grid-template-columns:1fr;}

  body{padding-bottom:76px;}
  .mobile-bar{
    display:grid; grid-template-columns:1fr 1.4fr; gap:10px; position:fixed; left:0; right:0; bottom:0; z-index:60;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(250,246,243,.96);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-top:1px solid var(--border);
  }
  .mobile-bar .btn{width:100%; padding:10px 14px;}
}
@media (max-width:640px){
  .wrap{padding:0 20px;}
  .sec{padding:72px 0;}
  .hero-actions .btn{width:100%;}
  .float-card{padding:10px 12px;}
  .arch .rose-big{width:96px; height:152px;}
  .float-card .ic{width:34px; height:34px;}
  .float-card b{font-size:18px;}
  .fc-1{left:-4px; bottom:4%;}
  .fc-2{right:-4px; top:6%;}
  .offer-grid{grid-template-columns:1fr;}
  .card, .card.featured{padding:26px;}
  .featured h3{font-size:32px;}
  .about-list{grid-template-columns:1fr;}
  .team{grid-template-columns:1fr;}
  .contact-info, .booking{padding:28px 24px;}
  .contact-rows{grid-template-columns:1fr;}
  .brand-name{font-size:21px; letter-spacing:2px;}
  .brand-name small{font-size:9.5px; letter-spacing:1.5px;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .arch .rose-big path{animation:none;}
  .js .reveal{opacity:1; transform:none; transition:none;}
  .btn, .card{transition:none;}
  .btn:hover, .card:hover{transform:none;}
}

/* ===== podstrony zabiegów ===== */
.crumbs{font-size:14px; color:var(--muted); margin:0 0 22px;}
.crumbs ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px;}
.crumbs li + li::before{content:"/"; margin-right:6px; color:var(--rose);}
.crumbs a{text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:4px; display:inline-block; padding:4px 0;}
.crumbs a:hover{text-decoration-color:var(--primary);}

.page-hero{padding:48px 0 64px;}
.page-hero .wrap{display:grid; grid-template-columns:1.25fr .75fr; gap:56px; align-items:center;}
.page-hero h1{font-size:clamp(38px,4.6vw,60px); font-weight:500; margin-top:16px;}
.page-hero .lead{margin-top:20px; font-size:17px; max-width:600px;}

.facts-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg); box-shadow:var(--shadow-md); padding:32px;}
.facts-card .price{font-size:44px;}
.facts-card .price-label{display:block; margin-bottom:4px;}
.facts-card ul{list-style:none; margin:22px 0 0; padding:22px 0 0; border-top:1px solid var(--border); display:grid; gap:12px;}
.facts-card li{display:flex; gap:10px; font-size:15px; color:var(--ink); line-height:1.5;}
.facts-card li svg{width:18px; height:18px; color:var(--primary); flex:none; margin-top:2px;}
.facts-card .btn{width:100%; margin-top:24px;}
.facts-card .small-note{margin-top:12px; font-size:13px; text-align:center;}

.article{padding:24px 0 96px;}
.article .wrap{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:56px; align-items:start;}
.prose > section + section{margin-top:56px;}
.prose h2{font-size:clamp(28px,3vw,38px); font-weight:500; margin-bottom:16px;}
.prose h3{font-size:23px; margin:24px 0 6px;}
.prose p{font-size:16.5px; max-width:68ch;}
.prose p + p{margin-top:14px;}
.prose ul.dots{margin:14px 0 0; padding-left:22px; max-width:68ch;}
.prose ul.dots li{color:var(--muted); margin-bottom:8px; padding-left:4px;}
.prose ul.dots li::marker{color:var(--primary);}
.prose .note{margin-top:18px; padding:16px 20px; border-radius:var(--r-sm); background:var(--blush-soft); border:1px solid var(--border); font-size:15px; color:var(--ink);}
.prose .steps{margin-top:8px;}
.prose .step{padding:24px;}
.prose .step::before{font-size:36px; margin-bottom:12px;}
.prose .step h3{margin:0;}

.toc{position:sticky; top:110px; padding:26px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--shadow-sm);}
.toc h2{font-family:var(--sans); font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); margin-bottom:10px;}
.toc ol{list-style:none; margin:0; padding:0;}
.toc a{display:block; padding:8px 0; font-size:15px; border-bottom:1px solid var(--border);}
.toc li:last-child a{border-bottom:0;}
.toc a:hover{color:var(--primary);}
.toc .btn{width:100%; margin-top:16px;}

.faq{border-top:1px solid var(--border); max-width:760px;}
.faq details{border-bottom:1px solid var(--border);}
.faq summary{cursor:pointer; list-style:none; position:relative; padding:18px 44px 18px 0; min-height:44px; font-family:var(--serif); font-size:22px; font-weight:600; line-height:1.3; color:var(--ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; position:absolute; right:6px; top:14px; font-family:var(--sans); font-size:26px; font-weight:400; color:var(--primary);}
.faq details[open] summary::after{content:"\2212";}
.faq details p{padding:0 44px 20px 0;}

.more-link{display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding:8px 0; min-height:44px; font-weight:500; font-size:15px; color:var(--primary); text-decoration:underline; text-underline-offset:4px;}
.more-link svg{width:16px; height:16px;}
.card h3 a:hover, .featured h3 a:hover{color:var(--primary);}

.related{padding:0 0 96px;}
.related .offer-grid{grid-template-columns:repeat(3,1fr);}

@media (max-width:960px){
  .page-hero .wrap, .article .wrap{grid-template-columns:1fr; gap:32px;}
  .toc{position:static;}
  .related .offer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .page-hero{padding:28px 0 40px;}
  .facts-card{padding:26px 22px;}
  .related .offer-grid{grid-template-columns:1fr;}
  .faq summary{font-size:20px;}
}

/* 4 etapy zabiegu w dwóch kolumnach */
.prose .steps-4{grid-template-columns:repeat(2,1fr);}
@media (max-width:640px){ .prose .steps-4{grid-template-columns:1fr;} }

/* ocena z Booksy */
.trust-link{display:block; border-radius:var(--r-sm); transition:background var(--dur) var(--ease);}
.trust-link:hover{background:var(--blush-soft);}
.trust-link span{text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:4px;}
.trust strong .star{display:inline-block; width:24px; height:24px; vertical-align:-1px; color:var(--rose);}
.hero-note{flex-wrap:wrap; row-gap:6px;}
.hero-note a{text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:4px; padding:6px 0;}
.hero-note a:hover{text-decoration-color:var(--primary);}
.hero-note b{color:var(--ink);}
.hero-note{column-gap:20px;}
.hero-note .note-item{display:inline-flex; align-items:center; gap:8px; white-space:nowrap;}
.facts-card .rating{display:flex; align-items:center; justify-content:center; gap:6px; margin-top:14px; font-size:14px; color:var(--ink);}
.facts-card .rating svg{width:16px; height:16px; color:var(--rose);}
.facts-card .rating a{text-decoration:underline; text-decoration-color:var(--border); text-underline-offset:4px; padding:6px 0;}
.quals{list-style:none; margin:10px 0 12px; padding:0; display:grid; gap:6px;}
.quals li{position:relative; padding-left:18px; font-size:14.5px; color:var(--ink); line-height:1.45;}
.quals li::before{content:""; position:absolute; left:0; top:.55em; width:7px; height:7px; border-radius:50%; background:var(--rose);}
