/* =====================================================================
   CIA - bazowe style komponentów (wspólne dla 3 konceptów).
   Wygląd sterowany zmiennymi --cia-* nadpisywanymi w plikach konceptów.
   ===================================================================== */
:root{
  --cia-navy:#14233f;
  --cia-navy-2:#1d3357;
  --cia-heading:var(--cia-navy);
  --cia-gold:#b88a3e;
  --cia-gold-2:#d8b25e;
  --cia-cream:#f6f2e9;
  --cia-ink:#1a2233;
  --cia-ink-soft:#5a6478;
  --cia-bg:#ffffff;
  --cia-bg-alt:#f4f1ea;
  --cia-surface:#ffffff;
  --cia-line:rgba(20,35,63,.12);
  --cia-radius:14px;
  --cia-shadow:0 18px 50px -24px rgba(16,28,52,.35);
  --cia-maxw:1200px;
  --cia-font-display:'Cinzel',Georgia,serif;
  --cia-font-body:'Inter',system-ui,Segoe UI,Roboto,sans-serif;
  /* mapa */
  --cia-map-land:rgba(20,35,63,.06);
  --cia-map-stroke:var(--cia-navy);
  --cia-dot:var(--cia-gold);
  --cia-dot-core:var(--cia-navy);
  --cia-dot-label:var(--cia-ink-soft);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  margin:0; font-family:var(--cia-font-body); color:var(--cia-ink);
  background:var(--cia-bg); line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
picture{ display:contents; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ margin:0; line-height:1.12; font-weight:600; }
p{ margin:0 0 1rem; }
.cia-wrap{ width:100%; max-width:var(--cia-maxw); margin:0 auto; padding:0 clamp(1.1rem,4vw,2.4rem); }
.cia-section{ padding:clamp(4rem,9vw,8rem) 0; position:relative; }
.cia-eyebrow{
  display:inline-flex; align-items:center; gap:.6rem; font-family:var(--cia-font-body);
  text-transform:uppercase; letter-spacing:.28em; font-size:.72rem; font-weight:700;
  color:var(--cia-gold); margin-bottom:1.1rem;
}
.cia-eyebrow::before{ content:""; width:34px; height:1px; background:var(--cia-gold); opacity:.8; }
.cia-h2{ font-family:var(--cia-font-display); font-size:clamp(1.9rem,4.2vw,3rem); color:var(--cia-heading); letter-spacing:.02em; }
.cia-lead{ font-size:clamp(1.02rem,1.6vw,1.18rem); color:var(--cia-ink-soft); max-width:62ch; }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:calc(var(--i,0) * 70ms); }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } .cia-nav__menu > li{ opacity:1 !important; transform:none !important; transition:none !important; } }

/* ---------- Nav ---------- */
.cia-nav{ position:fixed; inset:0 0 auto 0; z-index:60; transition:top .4s cubic-bezier(.2,.7,.2,1), background .35s ease, box-shadow .35s ease, padding .35s ease, -webkit-backdrop-filter .35s ease, backdrop-filter .35s ease; padding:.9rem 0; }
.cia-nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.cia-nav__brand{ display:flex; align-items:center; gap:.7rem; }
.cia-nav__brand img{ height:48px; width:auto; transition:height .35s ease; }
/* nav jednolity: logo nie zmienia rozmiaru przy scrollu */
.cia-nav__name{ display:flex; flex-direction:column; line-height:1.08; }
.cia-nav__name strong{ font-family:var(--cia-font-display); font-size:.8rem; letter-spacing:.04em; font-weight:600; color:var(--cia-nav-brand,#fff); max-width:20ch; }
.cia-nav__name em{ font-style:normal; font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--cia-gold); margin-top:2px; }
/* Pełne logo na mobile jest widoczne u góry; chowane przy scrollu / otwartym menu - patrz @media (max-width:900px) niżej */
.cia-nav__menu{ display:flex; align-items:center; gap:.4rem; list-style:none; margin:0; padding:0; }
.cia-nav__menu a{ position:relative; padding:.55rem .9rem; font-size:.92rem; font-weight:600; letter-spacing:.02em; color:var(--cia-nav-link,#fff); border-radius:8px; transition:color .25s ease, background .25s ease; }
.cia-nav__menu a::after{ content:""; position:absolute; left:.9rem; right:.9rem; bottom:.32rem; height:2px; background:var(--cia-gold); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.cia-nav__menu a:hover::after, .cia-nav__menu a.is-active::after{ transform:scaleX(1); }
.cia-nav__cta{ position:relative; overflow:hidden; isolation:isolate; padding:.7rem 1.25rem !important; color:#1a1406 !important; border-radius:999px;
  background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%), linear-gradient(180deg,#e6c87b 0%,#c69a4a 46%,#a87d34 100%);
  background-size:220% 100%, 100% 100%; background-position:-60% 0, 0 0;
  box-shadow:0 0 0 4px rgba(184,138,62,.12), 0 10px 24px -12px rgba(120,90,40,.55), inset 0 2px 8px rgba(255,255,255,.4);
  transition:background-position .7s ease, box-shadow .3s ease, transform .3s ease; }
.cia-nav__cta::before{ content:""; position:absolute; inset:2px; border-radius:inherit; z-index:-1; pointer-events:none; background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,.05) 45%,rgba(255,255,255,0)); }
.cia-nav__cta::after{ display:none; }
.cia-nav__cta:hover{ background-position:175% 0, 0 0; }
.cia-nav__toggle{ display:none; flex-direction:column; gap:5px; width:46px; height:42px; border:1px solid currentColor; border-radius:10px; background:transparent; color:var(--cia-nav-link,#fff); cursor:pointer; align-items:center; justify-content:center; }
.cia-nav__toggle span{ width:20px; height:2px; background:currentColor; transition:.3s; }

@media (max-width:900px){
  .cia-nav__toggle{ display:flex; position:relative; z-index:80; }

  /* Scrim - pełnoekranowe przyciemnienie pod panelem (kryje wszelkie prześwity na krawędziach) */
  .cia-nav__scrim{ position:fixed; inset:0; z-index:58; background:rgba(8,14,26,.5); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); opacity:0; visibility:hidden; transition:opacity .42s cubic-bezier(.2,.7,.2,1), visibility .42s cubic-bezier(.2,.7,.2,1); }
  body.cia-nav-open .cia-nav__scrim{ opacity:1; visibility:visible; }

  /* Panel - premium: granat + delikatna złota siateczka */
  .cia-nav__menu{
    position:fixed; inset:0 0 0 auto; width:min(340px,86vw); flex-direction:column; align-items:stretch;
    gap:0; padding:5.4rem 1.6rem calc(2rem + env(safe-area-inset-bottom,0px));
    background:
      repeating-linear-gradient(45deg, rgba(216,178,94,.05) 0 1px, transparent 1px 9px),
      linear-gradient(165deg, #17294c 0%, #0e1a30 60%, #0a1424 100%);
    transform:translateX(100%); transition:transform .42s cubic-bezier(.2,.7,.2,1);
    overflow-y:auto; z-index:60;
  }
  .cia-nav__menu.is-open{ transform:none; box-shadow:-30px 0 80px -30px rgba(0,0,0,.7); }
  .cia-nav__menu li{ width:100%; }

  /* Wejście pozycji menu - delikatny stagger (płynne, „ładne" otwarcie) */
  .cia-nav__menu > li{ opacity:0; transform:translateX(16px); transition:opacity .35s ease, transform .35s ease; }
  .cia-nav__menu.is-open > li{ opacity:1; transform:none; }
  .cia-nav__menu.is-open > li:nth-child(1){ transition-delay:.08s; }
  .cia-nav__menu.is-open > li:nth-child(2){ transition-delay:.13s; }
  .cia-nav__menu.is-open > li:nth-child(3){ transition-delay:.18s; }
  .cia-nav__menu.is-open > li:nth-child(4){ transition-delay:.23s; }
  .cia-nav__menu.is-open > li:nth-child(5){ transition-delay:.28s; }
  .cia-nav__menu a{ display:block; width:100%; font-size:1.06rem; font-weight:600; padding:1rem .35rem; color:#fff !important; }
  .cia-nav__menu a::after{ display:none; }
  .cia-nav__menu > li > a{ border-bottom:1px solid rgba(216,178,94,.14); transition:color .2s ease, padding-left .2s ease; }
  .cia-nav__menu > li > a:hover, .cia-nav__menu > li > a:focus-visible{ color:var(--cia-gold-2) !important; padding-left:.55rem; }

  /* Rozwijane „Oferta" w panelu (akordeon) */
  .cia-nav__subtoggle{ display:flex !important; align-items:center; justify-content:space-between; }
  .cia-nav__subtoggle svg{ width:18px; height:18px; flex:0 0 auto; fill:none; stroke:var(--cia-gold-2); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s; }
  .cia-nav__item--has-sub.is-open .cia-nav__subtoggle svg{ transform:rotate(180deg); }
  .cia-nav__sub{ list-style:none; margin:0; padding:0; max-height:0; overflow:hidden; transition:max-height .35s ease; }
  .cia-nav__item--has-sub.is-open .cia-nav__sub{ max-height:340px; }
  .cia-nav__sub a{ font-size:.97rem; font-weight:500; padding:.7rem .35rem .7rem 1.25rem; color:rgba(255,255,255,.8) !important; border-bottom:1px solid rgba(255,255,255,.06); }
  .cia-nav__sub a:hover{ color:var(--cia-gold-2) !important; }
  .cia-nav__sub .cia-nav__sub-all{ color:var(--cia-gold-2) !important; font-weight:600; }

  /* CTA - osobny blok na dole. Pojedynczy odstęp (bez podwójnej kreski / pustego slotu);
     <a> jest inline, więc odstęp dajemy na <li>. Kreską oddzielającą jest border ostatniego linku „Co nas wyróżnia". */
  .cia-nav__menu > li:last-child{ margin-top:2.2rem; }
  .cia-nav__menu .cia-nav__cta{ display:block; text-align:center; }

  /* Logo na mobile: u góry SAMA TARCZA; po przewinięciu PEŁNE LOGO (nazwa wjeżdża płynnie - bez reflow) */
  .cia-nav__name{ overflow:hidden; transition:opacity .3s ease, max-width .4s cubic-bezier(.2,.7,.2,1); }
  .cia-nav:not(.is-scrolled) .cia-nav__name{ opacity:0; max-width:0; }
  .cia-nav.is-scrolled .cia-nav__name{ opacity:1; max-width:240px; }
  /* Przy otwartym menu chowamy CAŁE logo z fade - nie wisi nad szufladą (toggle/X zostaje) */
  .cia-nav__brand{ transition:opacity .3s ease, visibility .3s ease; }
  body.cia-nav-open .cia-nav__brand{ opacity:0; visibility:hidden; pointer-events:none; }

  /* Otwarta szuflada: nav bez białego paska / cienia / bluru (pod spodem jest scrim) - zostaje tylko X.
     Tło nav ma transition (background/box-shadow), więc pasek znika płynnie razem z otwieraniem. */
  body.cia-nav-open .cia-nav{ background:transparent !important; box-shadow:none !important; }
  body.cia-nav-open .cia-nav::before{ opacity:0 !important; }

  /* OTWARTE menu: pełna blokada scrolla tła (position:fixed - niezawodne na mobile; top ustawia JS).
     padding-right = szerokość scrollbara (--cia-sbw z JS) -> brak skoku w poziomie po zniknięciu paska. */
  body.cia-nav-open{ position:fixed; left:0; right:0; width:100%; overflow:hidden; padding-right:var(--cia-sbw,0px); }
  body.cia-nav-open .cia-nav{ padding-right:var(--cia-sbw,0px); }
  body.cia-nav-open .cia-nav__toggle{ color:#fff !important; border-color:rgba(255,255,255,.5); }
  body.cia-nav-open .cia-nav__toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  body.cia-nav-open .cia-nav__toggle span:nth-child(2){ opacity:0; }
  body.cia-nav-open .cia-nav__toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}

/* ---------- Stat ---------- */
.cia-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1rem,3vw,2rem); }
.cia-stat{ text-align:left; padding:1.4rem 0; border-top:2px solid var(--cia-gold); }
.cia-stat__n{ display:block; font-family:var(--cia-font-display); font-size:clamp(1.8rem,3.6vw,2.6rem); color:var(--cia-heading); }
.cia-stat__l{ display:block; font-size:.86rem; color:var(--cia-ink-soft); margin-top:.25rem; }
@media (max-width:680px){ .cia-stats{ grid-template-columns:repeat(2,1fr); } }

/* ---------- Oferta (karty kategorii) ---------- */
.cia-offers{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.4vw,1.8rem); }
.cia-offer__link{ display:flex; flex-direction:column; height:100%; background:var(--cia-surface); border:1px solid var(--cia-line); border-radius:var(--cia-radius); overflow:hidden; box-shadow:var(--cia-shadow); transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s; }
.cia-offer__link:hover{ transform:translateY(-8px); box-shadow:0 30px 60px -28px rgba(16,28,52,.5); }
.cia-offer__media{ position:relative; aspect-ratio:16/11; overflow:hidden; display:block; }
.cia-offer__media img{ width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); filter:saturate(.92); }
.cia-offer__link:hover .cia-offer__media img{ transform:scale(1.07); }
.cia-offer__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,35,63,0) 40%,rgba(20,35,63,.78)); }
.cia-offer__body{ display:flex; flex-direction:column; gap:.45rem; padding:1.5rem 1.5rem 1.7rem; flex:1; }
.cia-offer__kicker{ font-family:var(--cia-font-display); color:var(--cia-gold); font-size:.95rem; letter-spacing:.1em; }
.cia-offer__title{ font-family:var(--cia-font-display); font-size:1.4rem; color:var(--cia-heading); }
.cia-offer__tag{ color:var(--cia-ink-soft); font-size:.95rem; flex:1; }
.cia-offer__more{ display:inline-flex; align-items:center; gap:.5rem; margin-top:.6rem; font-weight:700; font-size:.86rem; text-transform:uppercase; letter-spacing:.12em; color:var(--cia-gold); }
.cia-offer__more svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s; }
.cia-offer__link:hover .cia-offer__more svg{ transform:translateX(5px); }
@media (max-width:900px){ .cia-offers{ grid-template-columns:1fr; max-width:460px; margin:0 auto; } }

/* ---------- Co nas wyróżnia ---------- */
.cia-edges{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.2vw,1.6rem); }
.cia-edge{ padding:1.8rem; background:var(--cia-surface); border:1px solid var(--cia-line); border-radius:var(--cia-radius); transition:transform .35s, border-color .35s, box-shadow .35s; }
.cia-edge:hover{ transform:translateY(-6px); border-color:var(--cia-gold); box-shadow:var(--cia-shadow); }
.cia-edge__icon{ display:inline-flex; width:54px; height:54px; align-items:center; justify-content:center; border-radius:12px; background:rgba(184,138,62,.12); margin-bottom:1.1rem; }
.cia-edge__icon svg{ width:28px; height:28px; fill:none; stroke:var(--cia-gold); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.cia-edge__title{ font-size:1.15rem; color:var(--cia-heading); margin-bottom:.5rem; font-weight:700; }
.cia-edge__desc{ color:var(--cia-ink-soft); font-size:.95rem; margin:0; }
@media (max-width:900px){ .cia-edges{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .cia-edges{ grid-template-columns:1fr; } }

/* ---------- Mapa ---------- */
.cia-map-wrap{ position:relative; }
.cia-map-svg{ width:100%; height:auto; overflow:visible; }
.cia-map-land path{ fill:var(--cia-map-land); stroke:var(--cia-map-stroke); stroke-width:3; vector-effect:non-scaling-stroke; opacity:.9; }
.cia-dot-core{ fill:var(--cia-dot-core); }
.cia-dot-pulse{ fill:var(--cia-dot); transform-box:fill-box; transform-origin:center; animation:ciaPulse 2.6s ease-out infinite; animation-delay:var(--d,0s); }
.cia-dot--hq .cia-dot-core{ fill:var(--cia-gold); }
.cia-dot--hq .cia-dot-pulse{ fill:var(--cia-gold); }
.cia-dot--resort .cia-dot-core{ fill:#2f8f6b; }
.cia-dot--resort .cia-dot-pulse{ fill:#2f8f6b; }
.cia-dot-label{ font-family:var(--cia-font-body); font-size:20px; font-weight:600; fill:var(--cia-dot-label); text-anchor:middle; paint-order:stroke; }
@keyframes ciaPulse{ 0%{ transform:scale(.35); opacity:.7; } 70%{ opacity:0; } 100%{ transform:scale(1.9); opacity:0; } }
@media (prefers-reduced-motion:reduce){ .cia-dot-pulse{ animation:none; opacity:.25; } }

/* ---------- Podstrona: usługi (akordeon Bootstrap 5.3, motyw przez zmienne) ---------- */
.cia-acc{
  max-width:920px; margin:0 auto;
  display:flex; flex-direction:column; gap:.85rem;
  --bs-accordion-bg:var(--cia-surface);
  --bs-accordion-color:var(--cia-ink-soft);
  --bs-accordion-border-color:var(--cia-line);
  --bs-accordion-border-radius:var(--cia-radius);
  --bs-accordion-inner-border-radius:var(--cia-radius);
  --bs-accordion-active-bg:var(--cia-surface);
  --bs-accordion-active-color:var(--cia-heading);
  --bs-accordion-btn-color:var(--cia-heading);
  --bs-accordion-btn-bg:var(--cia-surface);
  --bs-accordion-btn-padding-y:1.15rem;
  --bs-accordion-btn-padding-x:1.3rem;
  --bs-accordion-btn-focus-border-color:var(--cia-gold);
  --bs-accordion-btn-focus-box-shadow:0 0 0 3px rgba(184,138,62,.18);
  --bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23b88a3e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23b88a3e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e");
}
.cia-acc .accordion-item{ border:1px solid var(--cia-line); border-radius:var(--cia-radius)!important; overflow:hidden; transition:border-color .3s, box-shadow .3s; }
.cia-acc .accordion-item:has(.accordion-button:not(.collapsed)){ border-color:var(--cia-gold); box-shadow:var(--cia-shadow); }
.cia-acc .accordion-button{ display:flex; align-items:center; gap:1rem; font-family:var(--cia-font-body); font-size:1.08rem; font-weight:700; }
.cia-acc .accordion-button:not(.collapsed){ box-shadow:none; }
.cia-acc__icon{ width:42px; height:42px; object-fit:contain; flex:0 0 auto; }
.cia-acc__title{ flex:1; }
.cia-acc .accordion-body{ padding:0 1.3rem 1.4rem 4.3rem; }
@media (max-width:560px){ .cia-acc .accordion-body{ padding-left:1.3rem; } }

/* ---------- Kontakt + formularz ---------- */
.cia-contact__row{ display:flex; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--cia-line); }
.cia-contact__k{ flex:0 0 90px; text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; font-weight:700; color:var(--cia-gold); padding-top:.15rem; }
.cia-contact__v{ flex:1; color:var(--cia-ink); }
.cia-form{ display:grid; gap:1rem; }
.cia-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cia-field{ display:flex; flex-direction:column; gap:.4rem; }
.cia-field label{ font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; font-weight:700; color:var(--cia-ink-soft); }
.cia-field input, .cia-field textarea{ font-family:inherit; font-size:1rem; padding:.85rem 1rem; border:1px solid var(--cia-line); border-radius:10px; background:var(--cia-surface); color:var(--cia-ink); transition:border-color .25s, box-shadow .25s; }
.cia-field input:focus, .cia-field textarea:focus{ outline:none; border-color:var(--cia-gold); box-shadow:0 0 0 3px rgba(184,138,62,.18); }
.cia-form__check{ display:flex; gap:.6rem; align-items:flex-start; font-size:.82rem; color:var(--cia-ink-soft); }
.cia-form__ok{ background:rgba(47,143,107,.12); color:#1f6b4f; border:1px solid rgba(47,143,107,.35); padding:.8rem 1rem; border-radius:10px; font-size:.92rem; }
/* CTA - „żelowy" złoty przycisk (G1): wielowarstwowe tło (gradient + animowana smuga połysku),
   gloss przez ::before, poświata+ziarno przez ::after (z-index:-1 -> tekst zostaje na wierzchu). */
.cia-btn{ position:relative; overflow:hidden; isolation:isolate; display:inline-flex; align-items:center; justify-content:center; gap:.6rem; padding:1rem 2rem; font-family:var(--cia-font-body); font-weight:700; font-size:.9rem; letter-spacing:.08em; text-transform:uppercase; border:0; border-radius:999px; cursor:pointer; color:#1a1406;
  background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%), linear-gradient(180deg,#e6c87b 0%,#c69a4a 46%,#a87d34 100%);
  background-size:220% 100%, 100% 100%; background-position:-60% 0, 0 0;
  box-shadow:0 0 0 5px rgba(184,138,62,.14), 0 12px 30px -10px rgba(120,90,40,.55), inset 0 2px 10px rgba(255,255,255,.42);
  animation:cia-sheen 4.2s ease-in-out infinite; transition:transform .3s ease, box-shadow .3s ease; }
.cia-btn::before{ content:""; position:absolute; inset:2px; border-radius:inherit; z-index:-1; pointer-events:none; background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.06) 45%,rgba(255,255,255,0)); }
.cia-btn::after{ content:""; position:absolute; inset:0; border-radius:inherit; z-index:-1; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:radial-gradient(circle at bottom center,rgba(255,255,255,.4) 0%,rgba(255,255,255,.16) 18%,rgba(255,255,255,.05) 35%,transparent 65%),radial-gradient(rgba(255,255,255,.12) .8px,transparent .8px),radial-gradient(rgba(0,0,0,.06) .7px,transparent .7px);
  background-size:100% 100%,4px 4px,5px 5px; }
.cia-btn:hover{ transform:translateY(-2px) scale(1.02); box-shadow:0 0 0 9px rgba(184,138,62,.18), 0 18px 42px -10px rgba(120,90,40,.6), inset 0 2px 10px rgba(255,255,255,.5); }
.cia-btn:active{ transform:scale(.98); }
@keyframes cia-sheen{ 0%{ background-position:-60% 0, 0 0 } 55%,100%{ background-position:175% 0, 0 0 } }
@media (prefers-reduced-motion:reduce){ .cia-btn{ animation:none; } }
/* Wariant ghost (drugorzędny) - czysty obrys, bez żelu/animacji */
.cia-btn--ghost{ background:transparent; color:var(--cia-heading); border:1.5px solid currentColor; box-shadow:none; animation:none; }
.cia-btn--ghost::before, .cia-btn--ghost::after{ display:none; }
.cia-btn--ghost:hover{ background:var(--cia-heading); color:var(--cia-bg); transform:translateY(-2px); }
@media (max-width:600px){ .cia-form__row{ grid-template-columns:1fr; } }

/* ---------- Back to top ---------- */
.cia-top{ position:fixed; right:22px; bottom:22px; width:50px; height:50px; border-radius:50%; border:0; cursor:pointer; background:var(--cia-navy); color:#fff; display:grid; place-items:center; opacity:0; pointer-events:none; transform:translateY(14px); transition:.35s; z-index:55; box-shadow:var(--cia-shadow); }
.cia-top.is-show{ opacity:1; pointer-events:auto; transform:none; }
/* Przygaszenie „do góry" przy stopce - TYLKO mobile (reguły w @media max-width:900px niżej) */
.cia-top svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- Przełącznik trybu jasny/ciemny ---------- */
.cia-theme-toggle{ position:fixed; left:22px; bottom:22px; width:48px; height:48px; border-radius:50%; cursor:pointer; z-index:55; display:grid; place-items:center; background:var(--cia-surface); color:var(--cia-heading); border:1px solid var(--cia-line); box-shadow:var(--cia-shadow); transition:transform .3s ease, color .25s, border-color .25s, background .25s, opacity .3s ease; }
/* Chowany przy stopce (JS dodaje .is-hidden) - TYLKO mobile (reguły w @media max-width:900px niżej) */
.cia-theme-toggle:hover{ transform:translateY(-3px); color:var(--cia-gold); border-color:var(--cia-gold); }
.cia-theme-toggle svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.cia-theme-toggle .ico-sun{ display:none; }
body[data-theme="dark"] .cia-theme-toggle .ico-sun{ display:block; }
body[data-theme="dark"] .cia-theme-toggle .ico-moon{ display:none; }
@media (max-width:560px){ .cia-theme-toggle{ width:44px; height:44px; left:16px; bottom:16px; } }

/* Pływające przyciski przy stopce - chowanie/przygaszanie TYLKO na mobile (na desktopie zostają widoczne) */
@media (max-width:900px){
  .cia-theme-toggle.is-hidden{ opacity:0; transform:translateY(16px) scale(.92); pointer-events:none; }
  .cia-top.is-show.is-dim{ opacity:.35; }
  .cia-top.is-show.is-dim:hover{ opacity:1; }
}

/* Tryb zrzutu ekranu - ukryj pływające elementy UI */
.cia-static .cia-theme-toggle, .cia-static .cia-top{ display:none !important; }
.cia-static .reveal{ opacity:1 !important; transform:none !important; }
.cia-static .k3-hero{ min-height:680px !important; }

/* ---------- Pasek CTA na podstronach ---------- */
.cia-cta-band{ background:var(--cia-bg-alt); }
.cia-cta-band .cia-h2{ margin-bottom:1rem; }
.cia-cta-band__lead{ max-width:56ch; margin:0 auto 2rem; color:var(--cia-ink-soft); font-size:1.1rem; }

/* ---------- Footer ---------- */
.cia-footer{ background:var(--cia-navy); color:rgba(255,255,255,.7); padding:3rem 0 2rem; }
.cia-footer__inner{ display:flex; flex-wrap:wrap; gap:1.5rem; align-items:center; justify-content:space-between; }
.cia-footer__brand{ display:flex; align-items:center; gap:.9rem; }
.cia-footer__emblem{ height:64px; width:auto; }
.cia-footer__name{ display:flex; flex-direction:column; line-height:1.14; }
.cia-footer__name strong{ font-family:var(--cia-font-display); font-size:1.05rem; font-weight:600; letter-spacing:.04em; color:#fff; }
.cia-footer__name em{ font-style:normal; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--cia-gold-2,#d9b25e); margin-top:3px; }
.cia-footer__legal{ font-size:.82rem; opacity:.7; }

/* ---------- Subpage hero (wspólny układ) ---------- */
.cia-subhero{ position:relative; padding:9rem 0 3.5rem; color:#fff; overflow:hidden; }
.cia-subhero__bg{ position:absolute; inset:0; z-index:0; }
.cia-subhero__bg img{ width:100%; height:100%; object-fit:cover; }
.cia-subhero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(20,35,63,.92),rgba(20,35,63,.62)); }
.cia-subhero__inner{ position:relative; z-index:1; }
.cia-back{ display:flex; width:fit-content; align-items:center; gap:.5rem; font-size:.86rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.8); margin-bottom:1.4rem; }
.cia-back svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s; }
.cia-back:hover{ color:var(--cia-gold-2); }
.cia-back:hover svg{ transform:translateX(-4px); }
.cia-subhero h1{ font-family:var(--cia-font-display); font-size:clamp(2.1rem,5vw,3.4rem); letter-spacing:.02em; }
.cia-subhero p{ color:rgba(255,255,255,.82); max-width:60ch; margin-top:.9rem; font-size:1.08rem; }


/* ===================================================================
   DODATKI (runda poprawek): dropdown desktop, kontakt-maps, formularz,
   modal ratingu, strona 404
   =================================================================== */

/* Dropdown nawigacji (desktop >900px) */
.cia-nav__item--has-sub{ position:relative; }
.cia-nav__subtoggle{ cursor:pointer; }
.cia-nav__subtoggle svg{ margin-left:.3rem; }
@media (min-width:901px){
  .cia-nav__subtoggle svg{ width:15px; height:15px; vertical-align:-2px; fill:none; stroke:var(--cia-gold); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s; }
  .cia-nav__sub{ position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%) translateY(8px); min-width:236px; list-style:none; margin:0; padding:.5rem; background:var(--cia-surface); border:1px solid var(--cia-line); border-radius:14px; box-shadow:0 30px 60px -24px rgba(16,28,52,.45); opacity:0; visibility:hidden; transition:opacity .25s ease, transform .25s ease, visibility .25s; z-index:70; }
  .cia-nav__sub::before{ content:""; position:absolute; top:-6px; left:50%; transform:translateX(-50%) rotate(45deg); width:12px; height:12px; background:var(--cia-surface); border-left:1px solid var(--cia-line); border-top:1px solid var(--cia-line); }
  .cia-nav__item--has-sub:hover .cia-nav__sub, .cia-nav__item--has-sub.is-open .cia-nav__sub{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
  .cia-nav__item--has-sub:hover .cia-nav__subtoggle svg, .cia-nav__item--has-sub.is-open .cia-nav__subtoggle svg{ transform:rotate(180deg); }
  .cia-nav__sub a{ display:block; padding:.62rem .9rem; border-radius:9px; font-size:.92rem; font-weight:600; color:var(--cia-ink) !important; white-space:nowrap; }
  .cia-nav__sub a::after{ display:none; }
  .cia-nav__sub a:hover{ background:rgba(184,138,62,.10); color:var(--cia-gold) !important; }
  .cia-nav__sub-all{ margin-top:.3rem; border-top:1px solid var(--cia-line); color:var(--cia-gold) !important; }
}

/* Przycisk „Jak dojechać" w karcie kontaktu */
.cia-contact__maps{ display:inline-flex; align-items:center; gap:.55rem; margin-top:1.5rem; padding:.72rem 1.25rem; border-radius:999px; background:rgba(255,255,255,.08); border:1px solid var(--cia-gold-2); color:#fff !important; font-weight:600; font-size:.9rem; transition:background .25s, color .25s, transform .25s; }
.cia-contact__maps:hover{ background:var(--cia-gold-2); color:#1a1406 !important; transform:translateY(-2px); }
.cia-contact__maps svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* Formularz - rozszerzenia */
.cia-form{ position:relative; }
.cia-form__hp{ position:absolute; left:-9999px; top:0; width:1px; height:1px; overflow:hidden; }
/* Tytuł nad formularzem - tylko na mobile (na desktopie rolę nagłówka pełni „Porozmawiajmy" w lewej kolumnie) */
.cia-form__title{ display:none; }
@media (max-width:880px){
  .cia-form__title{ display:block; font-family:var(--cia-font-display); font-size:1.5rem; letter-spacing:.02em; color:var(--cia-heading); margin:.4rem 0 1.2rem; }
}
.cia-form__counter{ text-align:right; font-size:.74rem; color:var(--cia-ink-soft); margin-top:.3rem; }
.cia-form__counter--warn{ color:#b8742e; }
.cia-form__counter--max{ color:#c0392b; }
.cia-field input.is-invalid, .cia-field textarea.is-invalid{ border-color:#cf5a5a; box-shadow:0 0 0 3px rgba(207,90,90,.15); }
.cia-form__check input.is-invalid{ outline:2px solid #cf5a5a; outline-offset:3px; border-radius:3px; }
.cia-form__status{ font-size:.92rem; max-height:0; padding:0 1rem; overflow:hidden; border-radius:10px; transition:max-height .3s ease, padding .3s ease; }
.cia-form__status.is-shown{ max-height:180px; padding:.85rem 1rem; }
.cia-form__status.success{ background:rgba(47,143,107,.14); color:#1f6b4f; border:1px solid rgba(47,143,107,.4); }
.cia-form__status.error{ background:rgba(203,80,80,.12); color:#b23b3b; border:1px solid rgba(203,80,80,.4); }
.cia-btn[disabled]{ opacity:.7; cursor:progress; transform:none; }
.cia-btn .cia-btn__load{ display:none; }
.cia-btn.is-busy .cia-btn__label{ display:none; }
.cia-btn.is-busy .cia-btn__load{ display:inline; }

/* Modal (rating / certyfikat) */
.cia-modal{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:1.2rem; opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s; }
.cia-modal.is-open{ opacity:1; visibility:visible; }
.cia-modal__backdrop{ position:absolute; inset:0; background:rgba(8,14,26,.66); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.cia-modal__box{ position:relative; max-width:560px; width:100%; max-height:90vh; overflow:auto; background:var(--cia-surface); border:1px solid var(--cia-line); border-radius:18px; box-shadow:0 50px 100px -40px rgba(0,0,0,.6); padding:clamp(1.7rem,4vw,2.6rem); transform:translateY(16px) scale(.98); transition:transform .3s ease; }
.cia-modal.is-open .cia-modal__box{ transform:none; }
.cia-modal__close{ position:absolute; top:1rem; right:1rem; width:40px; height:40px; border-radius:10px; border:1px solid var(--cia-line); background:transparent; color:var(--cia-ink-soft); cursor:pointer; display:grid; place-items:center; }
.cia-modal__close:hover{ color:var(--cia-gold); border-color:var(--cia-gold); }
.cia-modal__close svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.cia-modal__score{ font-family:var(--cia-font-display); font-size:clamp(2.4rem,7vw,3.4rem); color:var(--cia-gold); line-height:1; }
.cia-modal__box h3{ font-family:var(--cia-font-display); color:var(--cia-heading); font-size:1.5rem; margin:.3rem 0 .8rem; }
.cia-modal__box p{ color:var(--cia-ink-soft); }
.cia-modal__cert{ margin-top:1.4rem; border:1.5px dashed var(--cia-line); border-radius:12px; padding:2rem 1rem; text-align:center; color:var(--cia-ink-soft); background:var(--cia-bg-alt); font-size:.9rem; }
.cia-modal__cert svg{ width:38px; height:38px; fill:none; stroke:var(--cia-gold); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; margin-bottom:.6rem; }

/* Trigger ratingu w sekcji „Doświadczenie" */
.cia-rating-btn{ display:inline-flex; align-items:center; gap:.85rem; margin-top:1.6rem; padding:.75rem 1.2rem .75rem .9rem; border-radius:12px; border:1px solid var(--cia-line); background:var(--cia-surface); text-align:left; }
.cia-rating-btn > b{ font-family:var(--cia-font-display); color:var(--cia-gold); font-size:1.55rem; line-height:1; }
.cia-rating-btn > span{ display:flex; flex-direction:column; line-height:1.3; }
.cia-rating-btn > span em{ font-style:normal; color:var(--cia-heading); font-weight:700; font-size:.92rem; }
.cia-rating-btn > span small{ color:var(--cia-ink-soft); font-size:.78rem; }

/* Strona 404 */
.cia-404{ min-height:100vh; display:grid; place-items:center; padding:7rem 0 4rem; }
.cia-404__inner{ text-align:center; max-width:640px; }
.cia-404__emblem{ height:84px; width:auto; margin:0 auto 1.4rem; }
.cia-404__code{ font-family:var(--cia-font-display); font-size:clamp(5rem,18vw,9rem); line-height:.9; color:var(--cia-navy); letter-spacing:.04em; }
.cia-404__title{ font-family:var(--cia-font-display); font-size:clamp(1.6rem,4vw,2.4rem); color:var(--cia-heading); margin:.6rem 0 1rem; }
.cia-404__title em{ font-style:normal; color:var(--cia-gold); }
.cia-404__sub{ color:var(--cia-ink-soft); max-width:48ch; margin:0 auto 2rem; }
.cia-404__cta{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.cia-404 .cia-eyebrow{ justify-content:center; }

/* Akordeon usług - własna animacja wysokości (zamiast Bootstrap JS collapse) */
.cia-acc .accordion-collapse{ display:block; height:0; overflow:hidden; transition:height .4s ease; }
.cia-acc .accordion-collapse > .accordion-body{ overflow:hidden; }
