/* =====================================================
   VUYO — GŁÓWNY ARKUSZ STYLÓW (style.css)
   Wygenerowany z konsolidacji stylów inline ze wszystkich podstron.
   ===================================================== */


/* ----------------------------------------------------------------------
   WSPÓLNE STYLE — RESET, ZMIENNE, NAGŁÓWEK, STOPKA, PRZYCISKI, ANIMACJE, KOMPONENTY WSPÓLNE (baza z index.html)
   ---------------------------------------------------------------------- */

:root{
    --cream:#F1EADB;
    --beige-light:#F8EFDC;
    --brown-bg:#EBDCCA;
    --paper:#FFFDF8;
    --beige:#E4D5B7;
    --beige-dark:#D3BF98;
    --brown-mid:#8B6544;
    --brown-dark:#43301F;
    --rust:#483B5E;
    --rust-dark:#352B47;
    --shadow: rgba(67,48,31,0.18);
  }

*{box-sizing:border-box; margin:0; padding:0;}

/* ---------- NIESTANDARDOWY PASEK PRZEWIJANIA ---------- */
  html{ scrollbar-width:auto; scrollbar-color:var(--rust) #FFFDF8; overflow-y:scroll; overflow-anchor:none; }

::-webkit-scrollbar{ width:28px; height:28px; }

::-webkit-scrollbar-track{ background:#FFFDF8; }

::-webkit-scrollbar-thumb{
    background-color:var(--rust);
    border-radius:20px;
    border:1px solid #FFFDF8;
  }

::-webkit-scrollbar-thumb:hover{ background-color:var(--rust-dark); }

html{scroll-behavior:smooth; color-scheme:light !important; background-color:#F1EADB !important; min-height:100%; overflow-x:clip; max-width:100%;}

body{
    background-color: var(--cream) !important;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    overflow-x:clip;
    max-width:100%;
    touch-action:pan-y;
    color: var(--brown-dark);
    font-family:'Poppins', sans-serif;
    font-size:17px;
    line-height:1.7;
    overflow-wrap: break-word;
    background-image:
      radial-gradient(circle at 20% 20%, rgba(139,101,68,0.05) 0%, transparent 40%),
      radial-gradient(circle at 80% 60%, rgba(139,101,68,0.05) 0%, transparent 40%);
  }

main{ flex:1 0 auto; }

a{color:inherit; text-decoration:none;}

img{max-width:100%; display:block;}

h1,h2,h3{font-family:'Oswald', sans-serif; text-transform:uppercase; letter-spacing:0.04em; color:var(--brown-dark);}

h3{
    font-family:'Quicksand', sans-serif;
    text-transform:none;
    letter-spacing:0.01em;
    font-weight:600;
  }

h2{
    font-family:'Pacifico', cursive;
    text-transform:none;
    letter-spacing:0.01em;
    font-weight:400;
    color:var(--rust-dark);
  }

.eyebrow{
    font-family:'Poppins', sans-serif;
    font-size:0.75rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--rust-dark);
    font-weight:600;
  }

.eyebrow-link{
    text-decoration:none;
    cursor:pointer;
    transition: color 0.2s ease, letter-spacing 0.2s ease;
  }

.eyebrow-link:hover{
    color:var(--rust);
    letter-spacing:0.34em;
  }

.btn{
    display:inline-block;
    font-family:'Poppins', sans-serif;
    font-weight:600;
    font-size:0.78rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    padding:0.55rem 1.4rem;
    border-radius:50px;
    border:1.5px solid var(--brown-dark);
    background:transparent;
    color:var(--brown-dark);
    cursor:pointer;
    transition: all 0.25s ease;
  }

.btn:hover{ background:var(--brown-dark); color:var(--paper); }

.btn-solid{
    background:var(--rust);
    border-color:var(--rust);
    color:var(--paper);
  }

.btn-solid:hover{ background:var(--rust-dark); border-color:var(--rust-dark); }

/* ---------- STITCHED BORDER (signature motif) ---------- */
  .stitched{
    position:relative;
    border:1.5px dashed var(--brown-mid);
    border-radius:50px;
  }

/* ---------- HEADER ---------- */
  header{
    position:sticky;
    top:0;
    z-index:100;
    padding:1rem 1.2rem 0;
    background:transparent;
    transition: transform 0.35s ease;
  }

header.header-hidden{ transform:translateY(-130%); }

.nav-wrap{
    max-width:1200px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    height:76px;
    padding:0 1.6rem;
    gap:1.5rem;
    background:#FFFDF8;
    border-radius:50px;
    box-shadow:0 10px 30px rgba(67,48,31,0.14);
    backdrop-filter: blur(8px);
    border:1px solid rgba(255,255,255,0.6);
    box-sizing:border-box;
  }

.icon-btn{
    width:38px; height:38px;
    display:flex; align-items:center; justify-content:center;
    background:none;
    border:none;
    cursor:pointer;
    color:var(--brown-dark);
    padding:0;
    transition: color 0.2s ease;
  }

.icon-btn:hover{ color:var(--rust); }

.icon-btn svg{ width:20px; height:20px; }

.header-icons a.icon-btn[href*="facebook"],
  .header-icons a.icon-btn[href*="instagram"]{
    background:var(--rust);
    border:1.5px solid var(--rust);
    border-radius:50%;
    color:#EBDCCA;
    transition: all 0.25s ease;
  }

.header-icons a.icon-btn[href*="facebook"]:hover,
  .header-icons a.icon-btn[href*="instagram"]:hover{
    background:#EBDCCA;
    border-color:#EBDCCA;
    color:var(--rust-dark);
  }

#searchBtn{
    background:#EBDCCA;
    border:1.5px solid #EBDCCA;
    border-radius:50%;
    color:#352B47;
    transition: all 0.25s ease;
  }

#searchBtn:hover{
    background:#F7EEDB;
    border-color:#F7EEDB;
    color:#483B5E;
  }

.header-icons{
    grid-column:3;
    justify-self:end;
    display:flex;
    align-items:center;
    gap:1.1rem;
  }

.main-nav a.nav-blog-highlight{
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    background:var(--rust);
    color:var(--paper);
    padding:0.45rem 1.1rem;
    border-radius:50px;
    transition: background 0.25s ease, transform 0.2s ease;
  }

.main-nav a.nav-blog-highlight svg{ width:15px; height:15px; flex-shrink:0; }

.main-nav a.nav-blog-highlight::after{ content:none !important; display:none !important; }

.main-nav a.nav-blog-highlight:hover{
    background:var(--rust-dark);
    transform:scale(1.05);
  }

.logo-center{
    grid-column:1;
    justify-self:start;
    text-align:center;
    font-family:'Oswald', sans-serif;
    font-size:1.7rem;
    font-weight:700;
    letter-spacing:0.2em;
    color:var(--brown-dark);
    white-space:nowrap;
    display:inline-block;
  }

.logo-center:hover{ transform: scale(1.08); transition: transform 0.25s ease; }

.logo-center span{ color:var(--rust); }

.logo-img{
    height:51px;
    width:auto;
    display:block;
  }

footer .logo-img{
    height:61px;
    margin:0 auto 0.7rem;
  }

.main-nav{
    grid-column:2;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:2.2rem;
    font-family:'Poppins', sans-serif;
    font-size:0.88rem;
    font-weight:600;
    letter-spacing:0.01em;
    white-space:nowrap;
  }

.main-nav a{ position:relative; padding-bottom:6px; line-height:1; color:var(--rust); }

.main-nav a.active{ color:var(--rust-dark); font-weight:700; }

.main-nav a::after{
    content:"";
    position:absolute; left:0; bottom:0;
    width:0%; height:2px; background:var(--rust-dark);
    transition:width 0.25s ease;
  }

.main-nav a:hover::after, .main-nav a.active::after{ width:100%; }

.burger{
    display:none;
    grid-column:1;
    justify-self:start;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    cursor:pointer;
    width:38px; height:38px;
  }

.burger span{
    display:block;
    width:22px; height:2px;
    background:var(--brown-dark);
    transition: all 0.3s ease;
  }

.burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }

.burger.open span:nth-child(2){ opacity:0; }

.burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width: 1255px){
    .nav-wrap{ position:relative; }
    .burger{ display:flex; }
    .logo-center{
      position:absolute;
      left:50%; top:50%;
      transform:translate(-50%,-50%);
      grid-column:unset;
      justify-self:unset;
      transition:none;
    }
    .logo-center:hover{ transform:translate(-50%,-50%) scale(1.08); transition:transform 0.25s ease; }
    .main-nav{ display:none; }
  }

/* ---------- DRAWER MENU ---------- */
  .drawer-overlay{
    position:fixed; inset:0;
    background:rgba(67,48,31,0.45);
    opacity:0;
    pointer-events:none;
    transition: opacity 0.3s ease;
    z-index:190;
  }

.drawer-overlay.open{ opacity:1; pointer-events:auto; }

.drawer{
    position:fixed;
    top:1rem; left:1rem;
    width:320px;
    max-width:85vw;
    height:calc(100vh - 2rem);
    height:calc(100dvh - 2rem);
    height:calc(var(--vh100, 100vh) - 2rem);
    background:#FFFDF8;
    border-radius:40px;
    box-shadow:10px 10px 30px rgba(67,48,31,0.25);
    transform:translateX(-120%);
    transition: transform 0.35s ease;
    z-index:200;
    padding:2rem 1.8rem;
    display:flex;
    flex-direction:column;
    overflow-y:auto;
  }

.drawer.open{ transform:translateX(0); }

.drawer-close{
    align-self:flex-end;
    width:34px; height:34px;
    border:none;
    background:none;
    cursor:pointer;
    color:var(--brown-dark);
    margin-bottom:1.4rem;
    transform:rotate(-90deg) scale(0.4);
    opacity:0;
    transition: transform 0.35s ease, opacity 0.3s ease, color 0.2s ease;
  }

.drawer-close svg{ width:20px; height:20px; }

.drawer.open .drawer-close{
    transform:rotate(0deg) scale(1);
    opacity:1;
    transition-delay: 0.15s;
  }

.drawer.open .drawer-close:hover{
    transform:rotate(90deg) scale(1);
    color:var(--rust);
  }

.drawer-menu{
    display:flex;
    flex-direction:column;
    gap:1.7rem;
    font-family:'Poppins', sans-serif;
    font-size:1.05rem;
    font-weight:600;
    color:var(--brown-dark);
  }

.drawer-menu a{ position:relative; display:inline-block; align-self:flex-start; line-height:1; padding-bottom:6px; color:var(--rust); }

.drawer-menu a.active{ color:var(--rust-dark); font-weight:700; }

.drawer-menu a::after{
    content:"";
    position:absolute; left:0; bottom:0;
    width:0%; height:2px; background:var(--rust-dark);
    transition:width 0.25s ease;
  }

.drawer-menu a:hover{ color:var(--rust-dark); }

.drawer-menu a:hover::after, .drawer-menu a.active::after{ width:100%; }

.drawer-menu a.blog-highlight{
    display:inline-flex;
    align-items:center;
    gap:0.55rem;
    background:var(--rust);
    color:var(--paper);
    padding:0.6rem 1.4rem;
    border-radius:50px;
    font-weight:700;
    align-self:flex-start;
    transition: background 0.25s ease, transform 0.2s ease;
  }

.drawer-menu a.blog-highlight svg{ width:18px; height:18px; flex-shrink:0; }

.drawer-menu a.blog-highlight:hover{
    background:var(--rust-dark);
    color:var(--paper);
    transform:scale(1.05);
  }

.drawer-menu a.blog-highlight::after{ content:none !important; display:none !important; }

.drawer-socials{
    display:none;
    gap:0.9rem;
    margin-top:auto;
    padding-top:1.6rem;
    border-top:1px solid var(--beige-dark);
  }

.drawer-socials a{
    width:36px; height:36px;
    display:flex; align-items:center; justify-content:center;
    border:1.5px solid var(--rust);
    border-radius:50%;
    background:var(--rust);
    color:#EBDCCA;
    transition: all 0.25s ease;
  }

.drawer-socials a:hover{ background:#EBDCCA; color:var(--rust-dark); border-color:#EBDCCA; }

.drawer-socials svg{ width:16px; height:16px; }

@media (max-width: 534px){
    .header-icons a.icon-btn[href*="facebook"],
    .header-icons a.icon-btn[href*="instagram"]{
      display:none;
    }
    .drawer-socials{ display:flex; }
  }

/* ---------- WYSZUKIWARKA ---------- */
  .search-overlay{
    position:fixed; inset:0;
    background:rgba(67,48,31,0.5);
    opacity:0;
    pointer-events:none;
    transition: opacity 0.3s ease;
    z-index:210;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:8vh 25px 2rem;
    overflow-y:auto;
  }

.search-overlay.open{ opacity:1; pointer-events:auto; }

.search-panel{
    background:#FFFDF8;
    width:100%; max-width:560px;
    border-radius:28px;
    padding:1.8rem;
    box-shadow:0 20px 50px rgba(67,48,31,0.35);
    transform:translateY(-16px);
    transition: transform 0.3s ease;
  }

.search-overlay.open .search-panel{ transform:translateY(0); }

.search-top{
    display:flex;
    justify-content:flex-end;
    margin-bottom:0.4rem;
  }

.search-close{
    width:34px; height:34px;
    border:none;
    background:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    color:var(--brown-dark);
    transition: transform 0.3s ease, color 0.2s ease;
  }

.search-close svg{ width:20px; height:20px; }

.search-close:hover{
    transform:rotate(90deg);
    color:var(--rust);
  }

.search-input-wrap{
    display:flex;
    align-items:center;
    gap:0.7rem;
    border:1.5px solid var(--beige-dark);
    border-radius:50px;
    padding:0.75rem 1.3rem;
    margin-bottom:1.3rem;
  }

.search-input-wrap svg{ width:18px; height:18px; color:var(--brown-mid); flex-shrink:0; }

#searchInput{
    border:none;
    outline:none;
    background:none;
    font-family:'Poppins', sans-serif;
    font-size:1rem;
    color:var(--brown-dark);
    width:100%;
  }

#searchInput::placeholder{ color:#9a8264; }

.search-results{
    display:flex;
    flex-direction:column;
    gap:0.3rem;
    max-height:50vh;
    overflow-y:auto;
  }

.search-result-item{
    display:flex;
    align-items:center;
    gap:1rem;
    padding:0.7rem 0.6rem;
    border-radius:16px;
    transition: background 0.2s ease;
  }

.search-result-item:hover{ background:var(--beige-light); }

.search-result-thumb{
    width:44px; height:44px;
    border-radius:50%;
    flex-shrink:0;
    object-fit:cover;
  }

.search-result-info h4{
    font-family:'Quicksand', sans-serif;
    font-weight:600;
    font-size:0.96rem;
    color:var(--brown-dark);
    margin-bottom:0.15rem;
  }

.search-result-info span{
    font-family:'Poppins', sans-serif;
    font-size:0.78rem;
    font-weight:600;
    color:var(--rust-dark);
  }

.search-result-category{
    display:block;
    font-family:'Oswald', sans-serif;
    font-size:0.66rem;
    font-weight:500;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--brown-mid);
    margin-bottom:0.15rem;
  }

.search-hint, .search-empty{
    text-align:center;
    color:#6b563c;
    font-size:0.9rem;
    padding:1rem 0.5rem;
  }

.handwritten{
    font-family:'Satisfy', cursive;
    text-transform:none;
    letter-spacing:0.01em;
    font-weight:400;
    color:var(--rust-dark);
  }

.hero-title{
    font-size:clamp(3rem, 7.5vw, 5.2rem);
    line-height:1.15;
  }

@media (max-width: 480px){
    .hero-title{
      font-size:8.5vw;
      white-space:nowrap;
    }
  }

.brand-quicksand{
    font-family:'Quicksand', sans-serif;
    font-weight:700;
    letter-spacing:0.02em;
  }

/* ---------- HERO ---------- */
  .hero{
    padding:calc(8.5rem + 110px) 25px 10rem;
    margin-top:-110px;
    text-align:center;
    position:relative;
    overflow:hidden;
  }

@media (max-width: 600px){
    .hero{ padding:calc(4.5rem + 110px) 1.2rem 4rem; }
  }

.hero-bg{
    position:absolute;
    top:-25%; left:0; right:0;
    height:150%;
    background-size:cover;
    background-position:center;
    z-index:0;
    will-change:transform;
  }

.hero-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(241,234,219,0.35), rgba(241,234,219,0.55) 65%, var(--cream) 100%);
    z-index:1;
  }

.hero-inner{
    max-width:1200px;
    margin:0 auto;
    position:relative;
    z-index:2;
  }

.hero .eyebrow{ display:block; margin-bottom:1.2rem; }

.hero h1{
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    line-height:1.05;
    margin-bottom:1.3rem;
  }

.hero h1 em{
    font-style:normal;
    color:var(--rust);
  }

.hero p.lead{
    max-width:560px;
    margin:0 auto 2.4rem;
    color:#5a4531;
    font-size:1.05rem;
  }

.hero-cta{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* wax seal badge — signature element */
  .seal{
    width:128px; height:128px;
    border-radius:50%;
    margin:3rem auto 0;
    background: radial-gradient(circle at 35% 30%, #C27A46, var(--rust-dark) 75%);
    display:flex; align-items:center; justify-content:center;
    flex-direction:column;
    color:var(--paper);
    box-shadow: 0 10px 24px var(--shadow), inset 0 0 0 3px rgba(255,253,248,0.15);
    transform:rotate(-6deg);
    font-family:'Oswald', sans-serif;
  }

.seal strong{ font-size:1.5rem; letter-spacing:0.12em; }

.seal small{ font-family:'Poppins', sans-serif; font-size:0.55rem; letter-spacing:0.2em; text-transform:uppercase; margin-top:2px; }

/* ---------- HOME SUBSECTIONS ---------- */
  .home-block{
    padding:4.5rem 25px;
    border-top:1px solid var(--beige-dark);
  }

.home-block .section-inner{ max-width:1200px; margin:0 auto; }

.welcome-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3rem;
    align-items:center;
  }

.welcome-frame{
    aspect-ratio:5/4;
    border-radius:50px;
    background:linear-gradient(155deg,#EADFC7,#A9805A);
    position:relative;
    box-shadow:0 12px 30px var(--shadow);
  }

.welcome-frame::before{
    content:"";
    position:absolute; inset:12px;
    border:1.5px dashed rgba(255,253,248,0.55);
    border-radius:50px;
  }

.welcome-text h2{ text-align:left; font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:1rem; }

.welcome-text p{ color:#5a4531; margin-bottom:0.9rem; }

.home-products-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:1rem;
    margin-bottom:2.4rem;
    flex-wrap:wrap;
  }

.home-products-head h2{ font-size:clamp(1.7rem,3vw,2.3rem); margin-top:0.4rem; }

.home-products-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
    gap:1.6rem;
  }

.collab-box{
    background:linear-gradient(135deg, var(--brown-dark), #5a4128);
    color:var(--beige);
    border-radius:50px;
    padding:3.2rem 2.2rem;
    text-align:center;
  }

.collab-box .eyebrow{ color:#E4C79A; }

.collab-box h2{ color:var(--paper); margin-bottom:1rem; }

.collab-box p{ max-width:560px; margin:0 auto 1.8rem; color:#DCCBAE; }

.collab-points{
    display:flex; justify-content:center; gap:2.4rem; flex-wrap:wrap;
    margin-bottom:2.2rem;
    font-family:'Poppins', sans-serif;
    font-size:0.85rem;
    letter-spacing:0.03em;
  }

.collab-points span{ color:#F0E3C8; }

.collab-box .btn{ border-color:var(--beige); color:var(--paper); }

.collab-box .btn:hover{ background:var(--beige); color:var(--brown-dark); }

@media (max-width: 860px){
    .welcome-layout{ grid-template-columns:1fr; }
    .welcome-frame{ order:-1; max-width:380px; margin:0 auto; }
  }

/* ---------- SECTION SHELL ---------- */
  section{ padding:5rem 25px; }

.section-inner{ max-width:1200px; margin:0 auto; }

.section-head{ text-align:center; max-width:620px; margin:0 auto 3.2rem; }

.section-head .eyebrow{ display:block; margin-bottom:0.7rem; }

.section-head h2{ font-size:clamp(2rem, 3.8vw, 2.9rem); margin-bottom:0.9rem; }

.section-head p{ color:#5a4531; }

.alt-bg{ background:var(--brown-bg); }

/* ---------- NOWOŚCI (rozwijające się paski) ---------- */
  .expand-row{
    display:flex;
    gap:0.8rem;
    height:420px;
    max-width:800px;
    margin:0 auto;
    border-radius:32px;
    overflow:hidden;
  }

.expand-panel{
    position:relative;
    display:block;
    flex:1;
    min-width:0;
    border-radius:24px;
    overflow:hidden;
    cursor:pointer;
    transition: flex 0.5s ease;
  }

.expand-panel:hover{ flex:5; }

.expand-badge{
    position:absolute;
    top:0.9rem; left:0.9rem;
    background:var(--rust);
    color:var(--paper);
    font-family:'Poppins', sans-serif;
    font-size:0.65rem;
    font-weight:700;
    letter-spacing:0.05em;
    text-transform:uppercase;
    padding:0.32rem 0.75rem;
    border-radius:50px;
    z-index:2;
    white-space:nowrap;
  }

.expand-caption{
    position:absolute;
    left:0; right:0; bottom:0;
    padding:1.2rem 1rem;
    background:linear-gradient(to top, rgba(43,31,20,0.78), transparent);
    color:#FFFDF8;
    display:flex;
    flex-direction:column;
    gap:0.2rem;
    white-space:nowrap;
    overflow:hidden;
  }

.expand-title{
    font-family:'Poppins', sans-serif;
    font-weight:700;
    font-size:0.95rem;
  }

.expand-price{
    font-family:'Poppins', sans-serif;
    font-size:0.85rem;
    opacity:0.9;
  }

.expand-title-l2{ margin-left:0.3em; }

@media (max-width: 860px){
    .expand-caption{ white-space:normal; }
    .expand-title{ line-height:1.25; }
    .expand-title-l1,
    .expand-title-l2{
      display:block;
      margin-left:0;
    }
  }

@media (max-width: 700px){
    .expand-row{ height:340px; }
  }

@media (max-width: 610px){
    .expand-title{ font-size:0.8rem; }
    .expand-price{ font-size:0.75rem; }
  }

@media (max-width: 480px){
    .expand-row{ flex-direction:column; height:auto; gap:1rem; }
    .expand-panel{ height:150px; flex:none !important; }
    .expand-panel:hover{ height:150px; }
    .expand-caption{ white-space:normal; }
  }

/* ---------- PRODUCT CAROUSEL ---------- */
  .carousel-wrap{
    display:flex;
    align-items:center;
    gap:1rem;
  }

.reviews-carousel-wrap{
    max-width:1160px;
    margin:0 auto;
  }

.shop-carousel-wrap{
    max-width:1160px;
    margin:0 auto;
  }

.gallery-viewport{
    overflow:hidden;
    flex:1;
    min-width:0;
  }

.carousel-track{
    position:relative;
    display:flex;
    align-items:stretch;
    gap:1.6rem;
    padding:1rem 0.3rem 1.3rem;
    transition: transform 0.4s ease;
  }

.carousel-card{
    flex:0 0 calc((100% - 3.2rem) / 3);
    text-align:center;
    align-items:center;
  }

.product-card.carousel-card:hover{
    transform:none !important;
    box-shadow:0 4px 12px var(--shadow) !important;
  }

.carousel-card .product-thumb{ width:100%; }

.carousel-arrow{
    width:46px; height:46px;
    border-radius:50%;
    border:none;
    background:var(--paper);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    flex-shrink:0;
    font-size:1.3rem;
    color:var(--brown-dark);
    box-shadow:0 2px 8px var(--shadow);
    transition: all 0.25s ease;
  }

@media (hover: hover){
    .carousel-arrow:hover{ background:var(--brown-dark); color:var(--paper); }
  }

.review-slide{
    flex:0 0 calc((100% - 3.2rem) / 3);
  }

@media (max-width: 900px){
    .review-slide{ flex:0 0 calc((100% - 1.6rem) / 2); }
  }

@media (max-width: 600px){
    .review-slide{ flex:0 0 100%; }
  }

.candle-desc{
    font-size:0.85rem;
    color:#5a4531;
    margin-bottom:1.1rem;
  }

@media (max-width: 899px){
    .carousel-card{ flex-basis: calc((100% - 1.6rem) / 2); }
  }

@media (max-width: 699px){
    .carousel-card{ flex-basis:100%; }
    .carousel-arrow{ width:38px; height:38px; font-size:1.1rem; }
  }

/* ---------- SHOP ---------- */
.product-card{
    background:var(--paper);
    padding:1.4rem;
    box-shadow:0 4px 12px var(--shadow);
    border-radius:50px;
    display:flex;
    flex-direction:column;
    cursor:pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
  }

.product-card:hover{
    transform:scale(1.025) !important;
    box-shadow:0 8px 22px var(--shadow);
  }

.thumb-link{
    display:block;
    transition: opacity 0.2s ease, transform 0.2s ease;
  }

.thumb-link:hover{
    opacity:0.88;
  }

.product-thumb{
    aspect-ratio:1/1;
    border-radius:50px;
    margin-bottom:2rem;
    display:flex; align-items:center; justify-content:center;
    font-family:'Oswald', sans-serif;
    font-size:0.75rem; letter-spacing:0.15em; text-transform:uppercase;
    color:var(--brown-mid);
    overflow:hidden;
  }

img.product-thumb{ object-fit:cover; width:100%; height:100%; }

.thumb-1{ background:linear-gradient(135deg,#E4D5B7,#C9A876); }

.thumb-2{ background:linear-gradient(135deg,#D8C39C,#A9805A); }

.thumb-3{ background:linear-gradient(135deg,#EADFC7,#B98955); }

.thumb-4{ background:linear-gradient(135deg,#DCC7A1,#8B6544); }

.thumb-5{ background:linear-gradient(135deg,#E9DCC0,#BE9868); }

.thumb-6{ background:linear-gradient(135deg,#D2BB90,#93683F); }

.thumb-7{ background:linear-gradient(135deg,#E4D5B7,#8B6544); }

.product-card h3{
    font-size:1.05rem;
    letter-spacing:0.02em;
    line-height:1.3;
    min-height:2.6em;
    margin-top:10px;
    margin-bottom:0.35rem;
    display:flex;
    align-items:center;
    justify-content:center;
  }

.product-title-link{ color:inherit; text-decoration:none; display:flex; flex-direction:column; align-items:center; }

.title-line1, .title-line2{ display:block; }

.product-title-link:hover{ color:var(--rust); }

.product-card .price{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    color:var(--rust-dark);
    margin-bottom:1rem;
  }

.product-card .btn{ align-self:center; text-align:center; font-size:0.68rem; padding:0.4rem 1.1rem; margin-top:auto; }

.product-card .btn:hover{ background:#483B5E; border-color:#483B5E; color:var(--paper); }

@media (max-width: 1020px){
    .product-card h3{ font-size:0.92rem; }
    .product-card .price{ font-size:0.92rem; }
    .product-card .btn{ font-size:0.62rem; padding:0.35rem 0.9rem; }
  }

.shop-note{
    text-align:center;
    margin-top:2.6rem;
    font-size:0.9rem;
    color:#6b563c;
  }

/* ---------- ABOUT ---------- */
  .about-layout{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:3.5rem;
    align-items:center;
  }

.about-frame{
    aspect-ratio:4/5;
    background:linear-gradient(160deg,#D3BF98,#8B6544);
    border-radius:50px;
    position:relative;
    box-shadow:0 12px 30px var(--shadow);
  }

.about-frame::before{
    content:"";
    position:absolute; inset:14px;
    border:1.5px dashed rgba(255,253,248,0.55);
    border-radius:50px;
  }

.about-text h2{ text-align:left; font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:1.2rem;}

.about-text p{ color:#5a4531; margin-bottom:1rem; }

.about-signature{
    margin-top:1.6rem;
    font-family:'Oswald', sans-serif;
    font-size:1.1rem;
    letter-spacing:0.08em;
    color:var(--rust-dark);
  }

/* ---------- PURCHASE INFO ---------- */
  .info-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap:1.6rem;
    align-items:stretch;
  }

@media (min-width: 560px){
    .info-grid{
      grid-template-columns: repeat(2, 1fr);
    }
  }

@media (min-width: 1080px){
    .info-grid{
      grid-template-columns: repeat(4, 1fr);
    }
  }

.info-icon{
    width:52px; height:52px;
    margin:0 auto 1.1rem;
    border-radius:50%;
    background:var(--beige);
    display:flex; align-items:center; justify-content:center;
    color:var(--rust-dark);
  }

@media (max-width: 480px){
    .info-icon{ width:44px; height:44px; margin-bottom:0.8rem; }
  }

/* ---------- WSPÓŁPRACA: KARTY ODWRACANE (FLIP) ---------- */
  .flip-card{
    perspective:1200px;
    min-width:0;
    height:100%;
  }

.flip-card-inner{
    position:relative;
    width:100%;
    height:100%;
    min-height:220px;
    transition: transform 0.6s ease;
    transform-style:preserve-3d;
  }

@media (max-width: 1079px){
    .flip-card-inner{ min-height:220px; }
  }

@media (hover: hover){
    .flip-card:hover .flip-card-inner{ transform:rotateY(180deg); }
  }

.flip-card-front, .flip-card-back{
    position:absolute;
    inset:0;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    border-radius:50px;
    background:var(--paper);
    box-shadow:0 0 22px var(--shadow);
    padding:2rem 1.6rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
  }

.flip-card-back{ transform:rotateY(180deg); }

.flip-card-front h3{
    font-size:0.95rem;
    line-height:1.3;
    min-height:2.6em;
    overflow-wrap:break-word;
    margin:0;
    display:flex;
    align-items:center;
    justify-content:center;
  }

.flip-card-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:1.1rem;
  }

.flip-card-arrow svg{
    width:23px;
    height:23px;
  }

.flip-card-back p{
    font-size:0.8rem;
    line-height:1.45;
    color:#5a4531;
    overflow-wrap:break-word;
    margin:0;
  }

/* Na ekranach dotykowych (brak hover) - bez odwracania, opis widoczny od razu pod tytułem */
  @media (max-width: 600px){
    .flip-card-inner{
      position:static;
      height:100%;
      min-height:0;
      transform:none !important;
      display:flex;
      flex-direction:column;
      box-shadow:0 0 22px var(--shadow);
      border-radius:32px;
      overflow:hidden;
    }
    .flip-card-front{
      position:static;
      border-radius:0;
      padding-bottom:0.8rem;
      flex-shrink:0;
      box-shadow:none;
    }
    .flip-card-back{
      position:static;
      transform:none;
      border-radius:0;
      padding-top:0.4rem;
      box-shadow:none;
      flex:1;
    }
    .flip-card-arrow{ display:none; }
  }

/* ---------- CONTACT ---------- */
  .contact-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3rem;
  }

.contact-details p{ margin-bottom:1.1rem; color:#5a4531; }

.contact-details .label{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    font-size:0.78rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--rust-dark);
    display:block;
    margin-bottom:0.2rem;
  }

form{ display:flex; flex-direction:column; gap:1rem; }

form input, form textarea{
    font-family:'Poppins', sans-serif;
    font-size:0.95rem;
    padding:0.9rem 1rem;
    border:1.5px solid var(--beige-dark);
    border-radius:50px;
    background:var(--paper);
    color:var(--brown-dark);
  }

form input:focus, form textarea:focus{
    outline:2px solid var(--rust);
    outline-offset:1px;
    border-color:var(--rust);
  }

/* ---------- FOOTER ---------- */
  .socials{
    display:flex;
    gap:0.9rem;
    align-items:center;
  }

.socials a{
    width:34px; height:34px;
    display:flex; align-items:center; justify-content:center;
    border:1.5px solid var(--brown-mid);
    border-radius:50%;
    color:var(--brown-dark);
    transition: all 0.25s ease;
  }

.socials a:hover{ background:var(--brown-dark); color:var(--paper); border-color:var(--brown-dark); }

.socials svg{ width:16px; height:16px; }

footer{
    background:#FFFDF8;
    color:var(--brown-dark);
    padding:1.5rem 25px 1rem;
    text-align:center;
  }

footer .logo-center{
    position:static;
    left:auto;
    top:auto;
    transform:none;
    grid-column:unset;
    justify-self:center;
    width:fit-content;
    color:var(--brown-dark);
    margin:0 auto 0.5rem;
    display:inline-flex;
    justify-content:center;
    align-items:center;
  }

footer .logo-center:hover{ transform:scale(1.08); }

footer small{ display:block; margin-top:0.8rem; color:var(--rust-dark); font-size:0.72rem; letter-spacing:0.03em; }

footer .footer-rating{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:0.5rem;
    margin-bottom:0.5rem;
    font-family:'Poppins', sans-serif;
    font-size:0.78rem;
    color:var(--brown-mid);
  }

footer .footer-rating .stars{
    color:var(--rust);
    letter-spacing:0.1em;
    font-size:0.85rem;
  }

footer .footer-rating a{
    display:inline-block;
    color:var(--rust);
    font-weight:600;
    transition: transform 0.2s ease;
  }

footer .footer-rating a:hover{ transform:scale(1.06); }

footer .footer-links{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:0.9rem;
    flex-wrap:wrap;
    margin-bottom:0.6rem;
  }

footer .footer-links a{
    display:inline-block;
    color:var(--rust);
    font-family:'Poppins', sans-serif;
    font-size:0.78rem;
    letter-spacing:0.03em;
    transition: transform 0.2s ease;
  }

footer .footer-links a:hover{
    transform:scale(1.08);
  }

footer .footer-links .sep{
    color:var(--beige-dark);
    font-size:0.78rem;
  }

@media (max-width: 1255px){
    footer .logo-center{
      position:static;
      left:auto;
      top:auto;
      transform:none;
    }
  }

/* ---------- EFEKT POJAWIANIA SIĘ PRZY SCROLLU ---------- */
  .reveal{
    opacity:0;
    transform:translateY(36px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }

.reveal.reveal-visible{
    opacity:1;
    transform:translateY(0);
  }

.reveal-left{ transform:translateX(-36px); }

.reveal-left.reveal-visible{ transform:translateX(0); }

.reveal-right{ transform:translateX(36px); }

.reveal-right.reveal-visible{ transform:translateX(0); }

/* ---------- RESPONSIVE ---------- */
  @media (max-width: 860px){
    .about-layout, .contact-layout{ grid-template-columns:1fr; }
    .about-frame{ order:-1; max-width:340px; margin:0 auto; }
  }

@media (max-width: 480px){
    .logo-center{ font-size:1.4rem; letter-spacing:0.14em; }
    header{ padding:0.7rem 0.7rem 0; }
    .nav-wrap{ padding:0 1.1rem; border-radius:32px; }
  }

/* ---------- PRZEJŚCIA MIĘDZY PODSTRONAMI ---------- */
  @keyframes pageFadeIn{
    from{ opacity:0; transform:translateY(18px); }
    to{ opacity:1; transform:translateY(0); }
  }

main > section, main > article, body > footer{ animation: pageFadeIn 0.7s cubic-bezier(0.16, 1, 0.3, 1); }

body.page-exit main > section, body.page-exit main > article, body.page-exit > footer{
    animation:none;
    opacity:0;
    transform:translateY(-18px);
    transition: opacity 0.4s cubic-bezier(0.4, 0, 1, 1), transform 0.4s cubic-bezier(0.4, 0, 1, 1);
  }

/* ---------- PRZYCISK POWROTU NA GÓRĘ ---------- */
  .back-to-top{
    position:fixed;
    right:1.5rem; bottom:1.5rem;
    width:48px; height:48px;
    border-radius:50%;
    background:var(--paper);
    border:none;
    color:var(--brown-dark);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    box-shadow:0 8px 20px var(--shadow);
    opacity:0;
    transform:translateY(16px);
    pointer-events:none;
    transition: opacity 0.3s ease, transform 0.3s ease, background 0.2s ease, color 0.2s ease;
    z-index:150;
  }

.back-to-top.visible{ opacity:1; transform:translateY(0); pointer-events:auto; }

.back-to-top:hover{ background:var(--brown-dark); color:var(--paper); }

.back-to-top svg{ width:20px; height:20px; }

@media (prefers-reduced-motion: reduce){
    *{ transition:none !important; scroll-behavior:auto !important; animation:none !important; }
    body{ opacity:1 !important; transform:none !important; }
  }

/* ---------- BANER COOKIES ---------- */
  .cookie-overlay{
    position:fixed;
    inset:0;
    z-index:850;
    background:rgba(43,31,20,0.45);
    opacity:0;
    visibility:hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
  }

.cookie-overlay.visible{ opacity:1; visibility:visible; }

.cookie-banner{
    position:fixed;
    left:50%;
    bottom:1.2rem;
    z-index:900;
    width:calc(100% - 2.4rem);
    max-width:480px;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:1.1rem;
    padding:2rem 2.2rem;
    background:#FFFDF8;
    border-radius:36px;
    box-shadow:0 10px 30px rgba(67,48,31,0.22);
    backdrop-filter: blur(8px);
    border:1px solid rgba(255,255,255,0.6);
    box-sizing:border-box;
    transform:translate(-50%, 140%);
    -webkit-transform:translate(-50%, 140%) translateZ(0);
    will-change: transform;
    transition: transform 0.45s ease;
  }

.cookie-banner.visible{ transform:translate(-50%, 0); -webkit-transform:translate(-50%, 0) translateZ(0); }

.cookie-banner p{
    margin:0;
    font-size:0.88rem;
    line-height:1.6;
    color:var(--brown-dark);
  }

.cookie-banner a{
    display:inline-block;
    color:var(--rust);
    font-weight:700;
    text-decoration:none;
    transition: transform 0.2s ease;
  }

.cookie-banner a:hover{ transform:scale(1.08); }

.cookie-banner-actions{
    display:flex;
    gap:0.7rem;
    flex-shrink:0;
  }

.cookie-banner-actions .btn{
    font-size:0.76rem;
    padding:0.6rem 1.3rem;
  }

@media (max-width: 480px){
    .cookie-banner{
      width:calc(100% - 1.6rem);
      bottom:0.8rem;
      padding:1.7rem 25px;
      border-radius:28px;
    }
  }

/* ---------- OPINIE KLIENTOW ---------- */
  .review-card{
    background:var(--paper);
    border-radius:28px;
    padding:1.5rem 25px;
    box-shadow:0 4px 12px var(--shadow);
    display:flex;
    flex-direction:column;
    gap:0.7rem;
    text-align:left;
  }

.review-platform{
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    font-family:'Poppins', sans-serif;
    font-size:0.66rem;
    font-weight:700;
    letter-spacing:0.06em;
    text-transform:uppercase;
    padding:0.32rem 0.75rem;
    border-radius:50px;
    color:var(--paper);
  }

.review-platform.etsy{ background:#F1641E; }

.review-platform.instagram{ background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af); }

.review-platform.facebook{ background:#1877F2; }

.review-stars{
    color:var(--rust);
    font-size:1.05rem;
    letter-spacing:0.12em;
  }

.review-quote{
    font-size:0.9rem;
    line-height:1.65;
    color:var(--brown-dark);
    font-style:italic;
  }

.review-author{
    margin-top:auto;
    padding-top:0.6rem;
    border-top:1px solid var(--beige-dark);
    font-family:'Poppins', sans-serif;
    font-weight:600;
    font-size:0.83rem;
    color:var(--brown-dark);
  }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — SKLEP
   ---------------------------------------------------------------------- */

/* ---------- SHOP HERO ---------- */
  .shop-hero{
    max-width:900px;
    margin:0 auto;
    padding:6.5rem 25px calc(1rem + 20px);
    text-align:center;
  }

.shop-hero .eyebrow{ display:block; margin-bottom:1rem; }

.shop-hero h1{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2.4rem, 5.5vw, 3.6rem);
    margin-bottom:1rem;
  }

.shop-hero p{ color:#5a4531; max-width:560px; margin:0 auto; }

/* ---------- CATEGORY TABS ---------- */
  .category-row{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:0.9rem;
    padding:0 25px 1.5rem;
    max-width:1000px;
    margin:0 auto;
  }

.category-tab{
    font-family:'Poppins', sans-serif;
    font-size:0.85rem;
    font-weight:700;
    letter-spacing:0.02em;
    padding:0.7rem 1.6rem;
    border-radius:50px;
    border:1.5px solid var(--rust);
    color:var(--rust);
    background:var(--paper);
    cursor:pointer;
    transition: all 0.2s ease;
  }

.category-tab.active, .category-tab:hover{
    background:var(--rust);
    border-color:var(--rust);
    color:var(--paper);
  }

/* ---------- SORTOWANIE ---------- */
  .sort-row{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:0.7rem;
    padding:0 25px 2.5rem;
    font-family:'Poppins', sans-serif;
  }

.sort-row label{
    font-size:0.78rem;
    font-weight:600;
    letter-spacing:0.03em;
    color:var(--brown-mid);
  }

.sort-row select{
    font-family:'Poppins', sans-serif;
    font-size:0.82rem;
    font-weight:600;
    color:var(--brown-dark);
    background-color:var(--paper);
    border:1.5px solid var(--beige-dark);
    border-radius:50px;
    padding:0.5rem 2.6rem 0.5rem 1.2rem;
    cursor:pointer;
    transition: border-color 0.2s ease;
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2343301F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position: right 1.3rem center;
    background-size:14px;
  }

.sort-row select:hover, .sort-row select:focus{
    border-color:var(--rust);
    outline:none;
  }

.shop-grid-section{ padding-top:0.5rem; }

/* ---------- SHOP GRID ---------- */
  .grid-shop{
    display:grid;
    grid-template-columns:1fr;
    justify-content:center;
    gap:1.6rem;
    max-width:1200px;
    margin:0 auto;
  }

@media (min-width: 560px){
    .grid-shop{ grid-template-columns:repeat(2, 250px); gap:1.8rem; }
  }

@media (min-width: 900px){
    .grid-shop{ grid-template-columns:repeat(3, 250px); gap:1.9rem; }
  }

@media (min-width: 1150px){
    .grid-shop{ grid-template-columns:repeat(4, 250px); gap:2rem; }
  }

.grid-shop .coming-soon-card{
    grid-column: 1 / -1;
    background:var(--paper);
    border:1.5px dashed var(--beige-dark);
    border-radius:35px;
    padding:3.5rem 2rem;
    text-align:center;
    max-width:480px;
    margin:0 auto;
    min-height:340px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
  }

.grid-shop .coming-soon-card.filter-in{
    animation: cardFilterIn 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) both;
  }

.coming-soon-icon{
    display:block;
    font-size:2.2rem;
    margin-bottom:1rem;
  }

.coming-soon-card h3{
    font-size:1.2rem;
    margin-bottom:0.7rem;
  }

.coming-soon-card p{
    font-size:0.92rem;
    color:var(--brown-mid);
    line-height:1.6;
    max-width:360px;
    margin:0 auto;
  }

.grid-shop .product-card{
    background:var(--paper);
    padding:1rem;
    box-shadow:0 4px 12px var(--shadow);
    border-radius:35px;
    display:flex;
    flex-direction:column;
    text-align:center;
    scroll-margin-top:110px;
    width:100%;
    max-width:250px;
    margin:0 auto;
    min-height:450px;
  }

@media (min-width: 900px){
    .grid-shop .product-card{ width:250px; flex:0 0 250px; }
  }

.grid-shop .product-card:target{
    box-shadow: 0 0 0 3px var(--rust), 0 10px 24px var(--shadow);
  }

@keyframes cardFilterIn{
    from{ opacity:0; transform:translateY(22px) scale(0.94); }
    to{ opacity:1; transform:translateY(0) scale(1); }
  }

.grid-shop .product-card.filter-in{
    animation: cardFilterIn 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) backwards;
  }

.grid-shop .thumb-link{
    display:block;
    transition: opacity 0.2s ease;
  }

.grid-shop .product-thumb{
    aspect-ratio:1/1;
    border-radius:35px;
    margin-bottom:1.4rem;
    display:flex; align-items:center; justify-content:center;
    font-family:'Oswald', sans-serif;
    font-size:0.75rem; letter-spacing:0.15em; text-transform:uppercase;
    color:var(--brown-mid);
    overflow:hidden;
  }

.grid-shop .thumb-8{ background:linear-gradient(135deg,#D8CBEA,#8B7BAE); }

.grid-shop .thumb-9{ background:linear-gradient(135deg,#C9B8DE,#6B5A94); }

.grid-shop .thumb-10{ background:linear-gradient(135deg,#E0D4EE,#584878); }

.grid-shop .thumb-11{ background:linear-gradient(135deg,#F0EAE0,#C9BCA8); }

.grid-shop .thumb-12{ background:linear-gradient(135deg,#E8DFCE,#B3A488); }

.grid-shop .thumb-13{ background:linear-gradient(135deg,#EFE7D8,#A79572); }

.grid-shop .product-card h3{
    font-size:1.05rem;
    letter-spacing:0.02em;
    line-height:1.3;
    min-height:2.6em;
    margin-top:10px;
    margin-bottom:0.35rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
  }

.grid-shop .title-line1, .grid-shop .title-line2{ display:block; }

.grid-shop .product-title-link{ color:inherit; text-decoration:none; display:flex; flex-direction:column; align-items:center; }

.grid-shop .product-card .candle-desc{
    font-size:0.85rem;
    line-height:1.5;
    color:#5a4531;
    margin-bottom:1.1rem;
  }

.grid-shop .product-card .price{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    color:var(--rust-dark);
    margin-top:auto;
    margin-bottom:1rem;
  }

.grid-shop .product-card .btn{ align-self:center; text-align:center; font-size:0.68rem; padding:0.4rem 1.1rem; }

@media (max-width: 1020px){
    .grid-shop .product-card h3{ font-size:0.92rem; }
    .grid-shop .product-card .candle-desc{ font-size:0.78rem; }
    .grid-shop .product-card .price{ font-size:0.92rem; }
    .grid-shop .product-card .btn{ font-size:0.62rem; padding:0.35rem 0.9rem; }
  }

.shop-note{
    text-align:center;
    margin-top:3rem;
    font-size:0.9rem;
    color:#6b563c;
  }

/* ---------- RESPONSIVE ---------- */
  @media (max-width: 480px){
    .logo-center{ font-size:1.4rem; letter-spacing:0.14em; }
    header{ padding:0.7rem 0.7rem 0; }
    .nav-wrap{ padding:0 1.1rem; border-radius:32px; }
  }

/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — KONTAKT
   ---------------------------------------------------------------------- */

/* ---------- INTRO ---------- */
  .contact-hero{
    max-width:900px;
    margin:0 auto;
    padding:6.5rem 25px 1rem;
    text-align:center;
  }

.contact-hero .eyebrow{ display:block; margin-bottom:1rem; }

.contact-hero h1{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2.4rem, 5.5vw, 3.6rem);
    margin-bottom:1rem;
  }

.contact-hero p{ color:#5a4531; max-width:560px; margin:0 auto; }

.section-inner{ max-width:1100px; margin:0 auto; }

/* ---------- KONTAKT ---------- */
  .contact-card{
    max-width:1000px;
    margin:0 auto;
    background:var(--paper);
    border-radius:32px;
    padding:2.6rem 2.2rem;
    box-shadow:0 6px 18px var(--shadow);
    display:grid;
    grid-template-columns:1fr 1.1fr;
    gap:2.5rem;
    align-items:stretch;
  }

.contact-details{
    padding:0;
    display:flex;
    flex-direction:column;
  }

.contact-details p{ margin-bottom:1.3rem; color:#5a4531; }

.contact-quote{
    margin-top:1.5rem;
    padding-top:calc(1.3rem + 40px);
    border-top:1px solid var(--beige-dark);
    font-family:'Pacifico', cursive;
    font-size:1.4rem;
    line-height:1.4;
    color:var(--rust-dark);
    text-align:center;
  }

.contact-quote-author{
    display:block;
    margin-top:0.4rem;
    font-family:'Poppins', sans-serif;
    font-size:0.72rem;
    font-weight:600;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--brown-mid);
  }

.quick-links{
    margin-top:auto;
    padding:1.4rem 1.3rem;
    background:linear-gradient(135deg, var(--beige-light), #F8EFDC);
    border-radius:20px;
    border:1px solid var(--beige-dark);
    display:flex;
    flex-direction:column;
    gap:0.9rem;
  }

.quick-links-title{
    font-family:'Poppins', sans-serif;
    font-size:0.7rem;
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--rust);
    margin-bottom:0.1rem;
  }

.contact-details a.quick-link{
    display:block;
    text-decoration:none;
    color:#5a4531;
    font-size:0.85rem;
    line-height:1.35;
    background:var(--paper);
    border-radius:50px;
    padding:0.75rem 1.2rem;
    opacity:0;
    transform:translateX(-10px);
    animation: quickLinkIn 0.5s ease forwards;
    animation-delay: calc(var(--qi) * 0.12s + 0.3s);
    transition: transform 0.2s ease, background 0.25s ease, color 0.2s ease, box-shadow 0.25s ease;
  }

@keyframes quickLinkIn{
    to{ opacity:1; transform:translateX(0); }
  }

.quick-link strong{ color:var(--rust-dark); font-weight:600; transition: color 0.25s ease; }

.quick-link:hover,
  .quick-link:hover strong{
    color:var(--paper) !important;
  }

.contact-details a.quick-link:hover{
    transform:translateX(3px);
    background:var(--rust);
    box-shadow:0 4px 14px rgba(72,59,94,0.3);
  }

.contact-details p:last-child{ margin-bottom:0; }

.contact-row{
    display:flex;
    align-items:center;
    gap:1.1rem;
  }

.contact-icon{
    flex-shrink:0;
    width:41px; height:41px;
    border-radius:50%;
    background:var(--beige-light);
    color:var(--rust-dark);
    display:flex;
    align-items:center;
    justify-content:center;
  }

.contact-icon svg{ width:20px; height:20px; }

.contact-details .label{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    font-size:0.78rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--rust-dark);
    display:block;
    margin-bottom:0.25rem;
  }

.contact-details a{
    color:var(--rust);
    font-weight:600;
    display:inline-block;
    transition: transform 0.2s ease;
  }

.contact-details a:hover{ transform:scale(1.06); }

form.contact-form-inner{
    display:flex;
    flex-direction:column;
    gap:0.7rem;
    background:#EFE7D8;
    border-radius:24px;
    padding:2rem 1.8rem;
  }

/* ---------- POLA Z PŁYWAJĄCĄ ETYKIETĄ ---------- */
  .field-group{
    padding-top:0.4rem;
    opacity:0;
    transform:translateY(14px);
    animation: fieldIn 0.5s ease forwards;
    animation-delay: calc(var(--i) * 0.09s);
  }

.field-input-wrap{ position:relative; }

.phone-field-row{
    display:flex;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:0.6rem;
  }

.phone-prefix-select{
    flex:0 0 auto !important;
    width:6.5rem !important;
    padding-left:0.9rem !important;
    padding-right:1.9rem !important;
    background-position:right 0.6rem center !important;
  }

@media (max-width: 600px){
    .phone-field-row{ gap:0.4rem; }
    .phone-prefix-select{ width:6.4rem !important; padding-right:1.6rem !important; font-size:16px !important; }
    /* Wszystkie pola formularza muszą mieć czcionkę co najmniej 16px na telefonach —
       inaczej iOS Safari automatycznie przybliża stronę przy dotknięciu pola,
       nawet z ustawieniami viewport blokującymi zoom gestem "pinch". Reguła
       !important jest tu potrzebna, bo dalej w pliku znajduje się bezwarunkowa
       reguła bazowa (.field-group select{font-size:0.9rem}), która inaczej
       nadpisałaby to (jest zdefiniowana PO tym miejscu, więc normalnie by wygrała). */
    .field-group input, .field-group textarea, .field-group select{ font-size:16px !important; }
  }

@keyframes fieldIn{
    to{ opacity:1; transform:translateY(0); }
  }

.field-group .field-icon{
    position:absolute;
    left:1rem; top:50%;
    transform:translateY(-50%);
    width:18px; height:18px;
    color:var(--brown-mid);
    transition: color 0.25s ease, transform 0.25s ease;
    pointer-events:none;
    z-index:1;
  }

.field-group textarea ~ .field-icon{ top:1.15rem; transform:none; }

.field-group input,
  .field-group textarea,
  .field-group select{
    width:100%;
    border:1.5px solid var(--beige-dark);
    background:#F2EFE8;
    border-radius:50px;
    padding:0.75rem 1rem 0.75rem 2.5rem;
    font-family:'Poppins', sans-serif;
    font-size:0.9rem;
    color:var(--brown-dark);
    transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  }

.field-group textarea{ resize:none; min-height:90px; border-radius:24px; padding-top:0.85rem; padding-bottom:1.2rem; }

.custom-resize-handle{
    position:absolute;
    right:0.6rem; bottom:0.5rem;
    width:26px; height:26px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--rust);
    opacity:0.6;
    cursor:ns-resize;
    touch-action:none;
    transition: opacity 0.2s ease, transform 0.2s ease;
    z-index:2;
  }

.custom-resize-handle svg{ width:15px; height:15px; }

.custom-resize-handle:hover,
  .custom-resize-handle.dragging{
    opacity:1;
    transform:scale(1.15);
  }

.field-group select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    cursor:pointer;
    padding-right:2.4rem;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2343301F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 1.1rem center;
    background-size:14px;
  }

.field-group input:focus,
  .field-group textarea:focus,
  .field-group select:focus{
    outline:none;
    background-color:var(--paper);
    border-color:var(--rust);
    box-shadow:0 0 0 4px rgba(72,59,94,0.12);
  }

.field-group label{
    position:absolute;
    left:2.5rem; top:50%;
    transform:translateY(-50%);
    font-family:'Poppins', sans-serif;
    font-size:0.9rem;
    line-height:1.2;
    white-space:nowrap;
    color:var(--brown-mid);
    pointer-events:none;
    transition: all 0.25s ease;
  }

.field-group textarea ~ label{ top:1.25rem; transform:none; }

.label-hint{ opacity:0; transition: opacity 0.2s ease; font-weight:400; }

.field-group input:focus + label,
  .field-group input:not(:placeholder-shown) + label,
  .field-group textarea:focus ~ label,
  .field-group textarea:not(:placeholder-shown) ~ label,
  .field-group select:focus + label,
  .field-group select:valid + label{
    top:0;
    left:1.1rem;
    transform:translateY(-50%);
    font-size:0.66rem;
    font-weight:600;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--rust);
    background:var(--paper);
    padding:0 0.5rem;
    border-radius:6px;
  }

.field-group input:focus + label .label-hint,
  .field-group textarea:focus ~ label .label-hint{ opacity:1; }

.field-group input:focus ~ .field-icon,
  .field-group input:not(:placeholder-shown) ~ .field-icon,
  .field-group textarea:focus ~ .field-icon,
  .field-group textarea:not(:placeholder-shown) ~ .field-icon,
  .field-group select:focus ~ .field-icon,
  .field-group select:valid ~ .field-icon{
    color:var(--rust);
    transform:scale(1.1);
  }

.field-error{
    display:block;
    min-height:2.1em;
    line-height:1.45;
    font-family:'Poppins', sans-serif;
    font-size:0.72rem;
    letter-spacing:0.01em;
    color:#B3452F;
    margin-top:0.3rem;
    opacity:0;
    transition: opacity 0.3s ease;
  }

.field-group.has-error input,
  .field-group.has-error textarea,
  .field-group.has-error select{
    border-color:#B3452F;
    animation: fieldShake 0.35s ease;
  }

/* Prefiks telefonu jest wewnątrz #phoneField, ale ma własną klasę —
   upewniamy się, że też się "potrząsa" razem z resztą tego pola. */
.field-group.has-error .phone-prefix-select{
    border-color:#B3452F;
    animation: fieldShake 0.35s ease;
  }

.field-group.has-error .field-icon{ color:#B3452F; }

.field-group.has-error .field-error{ opacity:1; }

@keyframes fieldShake{
    0%, 100% { transform:translateX(0); }
    25% { transform:translateX(-4px); }
    75% { transform:translateX(4px); }
  }

/* ---------- ZGODA RODO ---------- */
  .form-field{
    opacity:0;
    transform:translateY(14px);
    animation: fieldIn 0.5s ease forwards;
    animation-delay: calc(var(--i) * 0.09s);
  }

.consent-label{
    display:flex;
    align-items:flex-start;
    gap:0.6rem;
    cursor:pointer;
    width:100%;
  }

.consent-label input[type="checkbox"]{
    flex-shrink:0;
    width:18px; height:18px;
    margin-top:0.15rem;
    accent-color:var(--rust);
    cursor:pointer;
    outline:none;
  }

.consent-label span{
    font-size:0.78rem;
    line-height:1.5;
    color:var(--brown-mid);
    min-width:0;
    overflow-wrap:break-word;
  }

.consent-label a{ color:var(--rust); font-weight:600; }

#rodoField.has-error .consent-label span{ color:#B3452F; }

#rodoField.has-error .consent-label{ animation: fieldShake 0.35s ease; }

@media (max-width: 900px){
    .contact-card{ padding:2rem 25px; grid-template-columns:1fr; }
  }

@media (min-width: 901px) and (max-width: 1024px){
    .contact-card{ padding:2rem 1.6rem; gap:1.6rem; grid-template-columns:1fr 1.1fr; }
    .contact-row{ gap:0.7rem; }
    .contact-icon{ width:34px; height:34px; }
    .contact-icon svg{ width:16px; height:16px; }
    .contact-details p{ font-size:0.85rem; }
    .contact-details .label{ font-size:0.7rem; }
    .quick-links{ padding:1.1rem 1rem; }
    .quick-link{ font-size:0.78rem; }
    form.contact-form-inner{ padding:1.5rem 1.2rem; gap:0.6rem; }
    .field-group input, .field-group textarea, .field-group select{
      padding:0.65rem 0.9rem 0.65rem 2.2rem;
      font-size:0.82rem;
    }
    .field-group label{ left:2.2rem; font-size:0.82rem; }
    .field-group input:focus + label,
    .field-group input:not(:placeholder-shown) + label,
    .field-group textarea:focus ~ label,
    .field-group textarea:not(:placeholder-shown) ~ label,
    .field-group select:focus + label,
    .field-group select:valid + label{
      font-size:0.62rem;
    }
    .field-group .field-icon{ left:0.85rem; width:16px; height:16px; }
    .field-group textarea ~ .field-icon{ top:1rem; }
    .btn{ font-size:0.85rem; padding:0.7rem 25px; }
  }

/* ---------- MODAL PODZIĘKOWANIA ---------- */
  .modal-overlay{
    position:fixed;
    inset:0;
    background:rgba(67,48,31,0.55);
    opacity:0;
    pointer-events:none;
    transition: opacity 0.3s ease;
    z-index:200;
  }

.modal-overlay.open{
    opacity:1;
    pointer-events:auto;
  }

.modal-box{
    position:fixed;
    top:50%; left:50%;
    transform:translate(-50%, -50%) scale(0.92);
    width:calc(100% - 2.4rem);
    max-width:420px;
    background:var(--paper);
    border-radius:28px;
    padding:2.4rem 2rem;
    text-align:center;
    box-shadow:0 20px 50px rgba(67,48,31,0.35);
    opacity:0;
    pointer-events:none;
    transition: opacity 0.3s ease, transform 0.3s ease;
    z-index:201;
  }

.modal-box.open{
    opacity:1;
    transform:translate(-50%, -50%) scale(1);
    pointer-events:auto;
  }

.modal-close{
    position:absolute;
    top:1rem; right:1rem;
    width:34px; height:34px;
    border:none;
    background:none;
    color:var(--brown-dark);
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    transition: transform 0.3s ease, color 0.2s ease;
  }

.modal-close svg{ width:20px; height:20px; }

.modal-close:hover{
    transform:rotate(90deg);
    color:var(--rust);
  }

.thank-you-icon{
    width:60px; height:60px;
    margin:0 auto 1.2rem;
    border-radius:50%;
    background:var(--rust);
    color:var(--paper);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.6rem;
  }

.review-thank-you-icon{
    background:#4CAF50;
  }

.review-thank-you-icon svg{
    width:28px; height:28px;
  }

.thank-you-modal h3{
    font-family:'Pacifico', cursive;
    font-size:1.6rem;
    color:var(--rust-dark);
    margin-bottom:0.8rem;
  }

.thank-you-modal p{
    color:var(--brown-mid);
    line-height:1.6;
    margin-bottom:1.6rem;
  }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — FOTOGRAFIA
   ---------------------------------------------------------------------- */

html{scroll-behavior:smooth; color-scheme:light !important; background-color:#EFDCBA !important; min-height:100%; overflow-x:clip; max-width:100%;}

body{
    background-color: var(--page-bg, #F1EADB) !important;
    transition: background-color 0.6s ease;
    min-height:100vh;
    overflow-x:clip;
    max-width:100%;
    touch-action:pan-y;
    color: var(--brown-dark);
    font-family:'Poppins', sans-serif;
    font-size:17px;
    line-height:1.7;
    overflow-wrap: break-word;
    background-image:
      radial-gradient(circle at 20% 20%, rgba(89,61,33,0.07) 0%, transparent 40%),
      radial-gradient(circle at 80% 60%, rgba(89,61,33,0.07) 0%, transparent 40%);
  }

/* ---------- INTRO ---------- */
  .contact-hero{
    max-width:900px;
    margin:0 auto;
    padding:4.5rem 25px 2.5rem;
    text-align:center;
  }

@media (max-width: 600px){
    .contact-hero{ padding:3rem 1.2rem 1rem; }
    .contact-hero + main section{ padding-top:1.5rem; }
  }

/* ---------- KONTAKT ---------- */
  .contact-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3.5rem;
    align-items:start;
  }

form{ display:flex; flex-direction:column; gap:1.1rem; }

form input, form textarea{
    font-family:'Poppins', sans-serif;
    font-size:0.95rem;
    padding:0.9rem 1.1rem;
    border:1.5px solid var(--beige-dark);
    border-radius:20px;
    background:var(--paper);
    color:var(--brown-dark);
  }

form textarea{ resize:vertical; min-height:140px; }

@media (max-width: 860px){
    .contact-layout{ grid-template-columns:1fr; }
  }

/* ---------- POLITYKA PRYWATNOŚCI ---------- */
  .hero-fotografia-section{
    margin-top:-110px;
    padding-top:110px;
  }

@media (max-width: 600px){
    .hero-fotografia-section{ padding-bottom:1.5rem; }
    .hero-fotografia-section + section{ padding-top:1.5rem; }
  }

.policy-hero{
    max-width:760px;
    margin:0 auto;
    padding:calc(6.5rem) 25px 1rem;
    text-align:center;
  }

.policy-hero h1{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2.4rem, 5.5vw, 3.6rem);
    margin:0.6rem 0 0.8rem;
  }

.policy-hero h1 .brand-quicksand{
    font-family:'Quicksand', sans-serif;
    font-weight:700;
    letter-spacing:0.02em;
  }

.policy-hero p{ color:var(--brown-mid); }

.policy-updated{
    font-family:'Poppins', sans-serif;
    font-size:0.78rem;
    color:var(--brown-mid);
    letter-spacing:0.03em;
    margin-top:0.4rem;
  }

.page-fotografia .policy-content{
    max-width:1200px;
    margin:0 auto;
    padding:0 25px;
  }

.policy-content h2{
    font-family:'Oswald', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.03em;
    font-size:1.15rem;
    color:var(--brown-dark);
    margin:2.6rem 0 0.9rem;
  }

.policy-content h2:first-of-type{ margin-top:0.5rem; }

.policy-content p{ margin-bottom:1rem; color:var(--brown-dark); }

.policy-content ul{ margin:0 0 1.2rem 1.3rem; }

.policy-content li{ margin-bottom:0.5rem; }

.policy-content strong{ color:var(--brown-dark); }

.policy-content a:not(.btn):not(.blog-thumb-link):not(.product-title-link):not(.thumb-link):not(.modal-close){ color:var(--rust); text-decoration:none; text-underline-offset:2px; }

.policy-content a:hover:not(.btn):not(.blog-thumb-link):not(.thumb-link):not(.modal-close):not(.product-title-link){ color:var(--rust-dark); }

.policy-toc{
    background:var(--paper);
    border:1px solid var(--beige-dark);
    border-radius:14px;
    padding:1.3rem 25px;
    margin-bottom:1rem;
  }

.policy-toc p{ margin:0 0 0.6rem; font-weight:600; color:var(--brown-dark); }

.policy-toc ol{ margin:0 0 0 1.2rem; }

.policy-toc li{ margin-bottom:0.35rem; }

.policy-toc a{ color:var(--brown-mid); }

/* ---------- USŁUGI FOTOGRAFICZNE ---------- */
  .services-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap:2rem;
    max-width:1000px;
    margin:0 auto 3.5rem;
  }

@media (min-width: 600px){
    .services-grid{ grid-template-columns: repeat(2, 1fr); }
  }

@media (min-width: 1000px){
    .services-grid{ grid-template-columns: repeat(4, 1fr); }
  }

.service-card{
    background:var(--paper);
    border-radius:36px;
    padding:3rem 2.2rem;
    text-align:center;
    box-shadow:0 6px 18px var(--shadow);
    min-width:0;
  }

.service-icon{
    width:80px; height:80px;
    margin:0 auto 1.4rem;
    border-radius:50%;
    background:var(--beige);
    display:flex; align-items:center; justify-content:center;
    font-size:2.2rem;
  }

.service-card h3{
    font-size:1.3rem;
    line-height:1.3;
    min-height:2.6em;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:0.6rem;
  }

.service-card p{ font-size:0.92rem; color:var(--brown-mid); line-height:1.5; }

@media (max-width: 480px){
    .service-card{ padding:1.8rem 1.3rem; }
    .service-icon{ width:52px; height:52px; font-size:1.5rem; }
  }

/* ---------- PEŁNOSZEROKOŚCIOWE SEKCJE (ciemniejszy brąz) ---------- */
  .gallery-section{
    background:#E3CCA5;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:520px;
    padding:5rem 25px;
  }

.gallery-section .eyebrow{ color:var(--rust-dark); }

.gallery-section .gallery-head h2{ color:#352B47; }

.gallery-section .gallery-head p{ color:var(--brown-mid); }

.pricing-section{
    background:#E3CCA5;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:460px;
    padding:5rem 25px;
    scroll-margin-top:100px;
  }

.pricing-section .eyebrow{ color:var(--rust-dark); }

.pricing-section .pricing-cta h2{ color:var(--rust-dark); }

.pricing-section .pricing-cta p{ color:var(--brown-mid); }

/* ---------- GALERIA ZDJĘĆ ---------- */
  .gallery-head{
    text-align:center;
    max-width:560px;
    margin:0 auto 2rem;
  }

.gallery-head .eyebrow{ display:block; margin-bottom:1rem; }

.gallery-head h2{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2rem, 4.5vw, 2.8rem);
    margin:0 0 0.8rem;
  }

.gallery-head p{ color:var(--brown-mid); }

.gallery-section .policy-content{
    max-width:1300px !important;
    width:100%;
    padding:0 25px;
  }

.pricing-section .policy-content,
  .team-section .policy-content{
    width:100%;
    padding:0 25px;
  }

/* ---------- GALERIA ZDJĘĆ — STOS SESJI (rozciąga się ta, na której jest kursor) ---------- */
  .photo-gallery{
    display:flex;
    flex-direction:column;
    gap:0.9rem;
  }

@media (min-width: 700px){
    .photo-gallery{
      flex-direction:row;
      height:480px;
      gap:0.8rem;
      border-radius:36px;
    }
  }

.photo-item{
    position:relative;
    border-radius:28px;
    overflow:hidden;
    min-width:0;
    box-shadow:0 6px 18px var(--shadow);
    height:230px;
    transition: transform 0.25s ease;
  }

.photo-item:hover{ transform:translateY(-6px); }

@media (min-width: 700px){
    .photo-item{
      flex:1;
      height:100%;
      transition: flex 0.5s ease;
    }
    .photo-item:hover,
    .photo-item:focus-visible{ flex:3.4; transform:none; }
  }

.photo-thumb{
    height:100%;
    display:flex; align-items:center; justify-content:center;
    font-family:'Oswald', sans-serif;
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
    color:rgba(67,48,31,0.5);
  }

.photo-caption{
    position:absolute;
    left:0; right:0; bottom:0;
    padding:0.9rem 1.1rem;
    background:linear-gradient(to top, rgba(43,31,20,0.75), transparent);
    color:#FFFDF8;
    font-family:'Poppins', sans-serif;
    font-size:0.82rem;
    font-weight:600;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

@media (max-width: 699px){
    .photo-caption{ white-space:normal; }
  }

/* ---------- KAFELEK Z PRAWDZIWYMI ZDJĘCIAMI (np. "Sesje psów") ---------- */
  .photo-item-live{ cursor:pointer; }

.photo-thumb-live{
    position:relative;
    background:var(--beige);
  }

.photo-thumb-live img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    transition: transform 0.4s ease;
    -webkit-user-select:none; user-select:none;
    -webkit-user-drag:none;
  }

@media (max-width: 699px){
    .photo-item-live:hover .photo-thumb-live img{ transform:scale(1.06); }
  }

.photo-thumb-count{
    position:absolute;
    top:0.9rem; right:0.9rem;
    z-index:2;
    background:rgba(43,31,20,0.55);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    color:#FFFDF8;
    font-family:'Poppins', sans-serif;
    font-size:0.72rem;
    font-weight:600;
    padding:0.35rem 0.7rem;
    border-radius:50px;
    white-space:nowrap;
  }

/* ---------- LIGHTBOX: GALERIA ZDJĘĆ ---------- */
  .lightbox-overlay{
    position:fixed; inset:0;
    z-index:950;
    background:rgba(20,14,9,0.88);
    opacity:0;
    visibility:hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

.lightbox-overlay.open{ opacity:1; visibility:visible; }

.lightbox-box{
    position:fixed;
    inset:0;
    z-index:960;
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:0;
    visibility:hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    padding:1.2rem;
  }

.lightbox-box.open{ opacity:1; visibility:visible; }

.lightbox-stage{
    position:relative;
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
  }

.lightbox-stage img{
    max-width:100%;
    max-height:85vh;
    max-height:85dvh;
    border-radius:20px;
    box-shadow:0 20px 60px rgba(0,0,0,0.5);
    -webkit-user-select:none; user-select:none;
    -webkit-user-drag:none;
    -webkit-touch-callout:none;
    opacity:1;
    transform:scale(1);
    transition: opacity 0.22s ease, transform 0.22s ease;
  }

.lightbox-stage img.is-switching{
    opacity:0;
    transform:scale(0.97);
  }

.lightbox-dog-name{
    position:absolute;
    left:50%;
    bottom:2.6rem;
    transform:translateX(-50%);
    z-index:965;
    pointer-events:none;
    background:rgba(20,14,9,0.38);
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
    color:#FFFDF8;
    font-family:'Poppins', sans-serif;
    font-size:0.72rem;
    font-weight:500;
    letter-spacing:0.04em;
    padding:0.32rem 0.85rem;
    border-radius:50px;
    opacity:0.85;
    transition: opacity 0.22s ease;
  }

.lightbox-dog-name:empty{ display:none; }

.lightbox-dog-name.is-switching{ opacity:0; }

@media (max-width: 640px){
    .lightbox-dog-name{ bottom:2.9rem; font-size:0.68rem; }
  }

.lightbox-close{
    position:absolute;
    top:1.2rem; right:1.2rem;
    z-index:970;
    width:44px; height:44px;
    border-radius:50%;
    border:none;
    background:rgba(255,253,248,0.12);
    color:#FFFDF8;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    transition: background 0.2s ease, transform 0.2s ease;
  }

.lightbox-close svg{ width:20px; height:20px; }

.lightbox-close:hover{ background:rgba(255,253,248,0.22); transform:scale(1.06); }

.lightbox-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:970;
    width:48px; height:48px;
    border-radius:50%;
    border:none;
    background:rgba(255,253,248,0.12);
    color:#FFFDF8;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    transition: background 0.2s ease, transform 0.2s ease;
  }

.lightbox-nav svg{ width:24px; height:24px; }

.lightbox-nav:hover{ background:rgba(255,253,248,0.22); }

.lightbox-prev{ left:1.2rem; }

.lightbox-next{ right:1.2rem; }

.lightbox-counter{
    position:absolute;
    left:50%; bottom:1.4rem;
    transform:translateX(-50%);
    z-index:970;
    background:rgba(255,253,248,0.12);
    color:#FFFDF8;
    font-family:'Poppins', sans-serif;
    font-size:0.8rem;
    font-weight:600;
    padding:0.4rem 0.9rem;
    border-radius:50px;
  }

@media (max-width: 640px){
    .lightbox-nav{ width:40px; height:40px; }
    .lightbox-prev{ left:0.5rem; }
    .lightbox-next{ right:0.5rem; }
    .lightbox-close{ top:0.7rem; right:0.7rem; }
  }

/* ---------- FOTOGRAFOWIE ---------- */
  .team-section{
    background:#EFDCBA;
    padding:5rem 25px;
  }

.photographers-head{
    text-align:center;
    max-width:560px;
    margin:0 auto 2rem;
  }

.photographers-head .eyebrow{ display:block; margin-bottom:1rem; }

.photographers-head h2{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2rem, 4.5vw, 2.8rem);
    margin:0 0 0.8rem;
  }

.photographers-head p{ color:var(--brown-mid); }

.photographers-grid{
    display:grid;
    grid-template-columns: repeat(2, 1fr);
    gap:1.8rem;
    max-width:700px;
    margin:0 auto 3.5rem;
  }

@media (max-width: 600px){
    .photographers-grid{ grid-template-columns: 1fr; }
  }

.photographer-card{
    background:var(--paper);
    border-radius:32px;
    padding:2.2rem 1.8rem;
    text-align:center;
    min-width:0;
    box-shadow:0 6px 18px var(--shadow);
  }

.photographer-avatar{
    width:72px; height:72px;
    margin:0 auto 1.1rem;
    border-radius:50%;
    background:var(--beige);
    display:flex; align-items:center; justify-content:center;
    font-size:2rem;
  }

.photographer-card h3{ font-size:1.2rem; margin-bottom:0.6rem; }

.photographer-card p{ font-size:0.9rem; color:var(--brown-mid); margin-bottom:1.4rem; line-height:1.5; }

.photographer-card .btn{
    text-decoration:none;
    color:var(--brown-dark);
  }

.photographer-card .btn:hover{ color:var(--paper); }

.pricing-cta{
    text-align:center;
    max-width:560px;
    margin:0 auto;
  }

.pricing-cta .eyebrow{ display:block; margin-bottom:1rem; }

.pricing-cta h2{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2rem, 4.5vw, 2.8rem);
    margin:0 0 0.8rem;
  }

.pricing-cta p{ color:var(--brown-mid); margin-bottom:1.6rem; }

/* ---------- MODAL: CENNIK ---------- */
  .modal-overlay{
    position:fixed; inset:0;
    z-index:950;
    background:rgba(43,31,20,0.5);
    opacity:0;
    visibility:hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

.modal-overlay.open{ opacity:1; visibility:visible; }

.modal-box{
    position:fixed;
    top:50%; left:50%;
    transform:translate(-50%, -50%) scale(0.94);
    z-index:960;
    width:calc(100% - 2.4rem);
    max-width:480px;
    max-height:80vh;
    overflow-y:auto;
    background:#FFFDF8;
    border-radius:32px;
    padding:2.2rem 2rem;
    box-shadow:0 20px 50px rgba(67,48,31,0.3);
    opacity:0;
    visibility:hidden;
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
  }

.modal-box.open{
    opacity:1;
    visibility:visible;
    transform:translate(-50%, -50%) scale(1);
  }

.modal-close{
    position:absolute;
    top:1rem; right:1rem;
    width:36px; height:36px;
    border-radius:50%;
    border:none;
    background:none;
    color:var(--brown-dark);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    transition: transform 0.3s ease, background 0.2s ease, color 0.2s ease;
  }

.modal-box h3{ margin-bottom:1.3rem; font-size:1.25rem; text-align:center; }

.price-list{ list-style:none; margin:0 0 1.3rem; padding:0; }

.price-list li{
    display:flex; justify-content:space-between; align-items:baseline;
    gap:1rem;
    padding:0.7rem 0;
    border-bottom:1px solid var(--beige-dark);
    font-family:'Poppins', sans-serif;
    font-size:0.88rem;
    color:var(--brown-dark);
  }

.price-list li:last-child{ border-bottom:none; }

.price-list strong{ color:var(--rust-dark); font-weight:700; white-space:nowrap; }

.price-note{ font-size:0.8rem; color:var(--brown-mid); line-height:1.55; }

.price-note a{
    position:relative;
    display:inline-block;
    color:var(--rust);
    font-weight:600;
    padding-bottom:2px;
  }

.price-note a::after{
    content:"";
    position:absolute; left:0; bottom:0;
    width:0%; height:2px; background:var(--rust-dark);
    transition:width 0.25s ease;
  }

.price-note a:hover::after{ width:100%; }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — BLOG
   ---------------------------------------------------------------------- */

html{scroll-behavior:smooth; color-scheme:light !important; background-color:#F8EFDC !important; min-height:100%; overflow-x:clip; max-width:100%;}

body{
    background-color: var(--page-bg, #F1EADB) !important;
    transition: background-color 0.6s ease;
    min-height:100vh;
    overflow-x:clip;
    max-width:100%;
    touch-action:pan-y;
    color: var(--brown-dark);
    font-family:'Poppins', sans-serif;
    font-size:17px;
    line-height:1.7;
    overflow-wrap: break-word;
    background-image:
      radial-gradient(circle at 20% 20%, rgba(139,101,68,0.05) 0%, transparent 40%),
      radial-gradient(circle at 80% 60%, rgba(139,101,68,0.05) 0%, transparent 40%);
  }

/* ---------- POLITYKA PRYWATNOŚCI ---------- */
  .policy-hero{
    max-width:760px;
    margin:0 auto;
    padding:6.5rem 25px 1rem;
    text-align:center;
  }

@media (max-width: 600px){
    .policy-hero + main section:has(.faq-content){ padding-top:1.2rem; }
  }

.blog-section{ padding:5rem 25px; }

.policy-content{
    max-width:760px;
    margin:0 auto;
    padding:0 25px;
  }

/* ---------- BLOG ---------- */
  .blog-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap:1.1rem;
    justify-content:center;
    max-width:1200px;
    margin:0 auto;
  }

@media (min-width: 560px){
    .blog-grid{ grid-template-columns: repeat(2, 250px); gap:1.2rem; }
  }

@media (min-width: 1080px){
    .blog-grid{ grid-template-columns: repeat(4, 250px); gap:1.3rem; }
  }

.blog-card{
    background:var(--paper);
    padding:1rem 1rem 1.6rem;
    box-shadow:0 4px 12px var(--shadow);
    border-radius:35px;
    display:flex;
    flex-direction:column;
    text-align:center;
    width:100%;
    max-width:250px;
    margin:0 auto;
    cursor:pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    min-width:0;
  }

.blog-card:hover{
    transform:scale(1.025) !important;
    box-shadow:0 8px 22px var(--shadow);
  }

.blog-thumb{
    aspect-ratio:1/1;
    border-radius:35px;
    margin-bottom:1.4rem;
    display:flex; align-items:center; justify-content:center;
    font-family:'Oswald', sans-serif;
    font-size:0.75rem; letter-spacing:0.15em; text-transform:uppercase;
    color:var(--brown-mid);
    overflow:hidden;
  }

.bthumb-1{ background:linear-gradient(135deg,#E4D5B7,#C9A876); }

.bthumb-2{ background:linear-gradient(135deg,#E7D2AC,#A9814F); }

.bthumb-3{ background:linear-gradient(135deg,#D8CBEA,#8B7BAE); }

.bthumb-4{ background:linear-gradient(135deg,#E8DFCE,#B3A488); }

.blog-date{
    font-family:'Poppins', sans-serif;
    font-size:0.72rem;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--rust-dark);
    margin-bottom:0.5rem;
  }

.blog-card h3{
    font-size:1.05rem;
    letter-spacing:0.02em;
    line-height:1.3;
    min-height:2.6em;
    margin-bottom:0.9rem;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    text-align:center;
  }

.blog-thumb-link{ display:block; transition: opacity 0.2s ease; }

.blog-thumb-link:hover{ opacity:0.88; }

.blog-card p{
    font-size:0.85rem;
    color:#5a4531;
    line-height:1.55;
    margin-bottom:1.1rem;
    flex-grow:1;
    overflow-wrap:break-word;
  }

.blog-card .btn{
    align-self:center;
    text-decoration:none;
    color:var(--brown-dark);
    font-size:0.68rem;
    padding:0.4rem 1.1rem;
    margin-top:1rem;
  }

.blog-card .btn:hover{ color:var(--paper); }

/* ---------- CATEGORY TABS ---------- */
  .category-row{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:0.9rem;
    margin-bottom:0.8rem;
    padding-bottom:0;
  }

.subcategory-row{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:0.6rem;
    margin-bottom:2.2rem;
  }

.subcategory-tab{
    font-family:'Poppins', sans-serif;
    font-size:0.76rem;
    font-weight:600;
    letter-spacing:0.02em;
    padding:0.45rem 1.2rem;
    border-radius:50px;
    border:1.5px solid #43301F;
    color:var(--brown-mid);
    background:#FFFFFF;
    cursor:pointer;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  }

.subcategory-tab.active, .subcategory-tab:hover{
    background:var(--brown-dark);
    border-color:var(--brown-dark);
    color:var(--paper);
  }

.faq-item > .faq-answer{
    display:block !important;
    overflow:hidden;
    height:0;
  }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — FAQ
   ---------------------------------------------------------------------- */

html{scroll-behavior:smooth; color-scheme:light !important; background-color:#F1EADB !important; min-height:100%; overflow-x:clip; max-width:100%;}

body{
    background-color: var(--faq-bg, var(--cream)) !important;
    transition: background-color 0.4s ease;
    min-height:100vh;
    overflow-x:clip;
    max-width:100%;
    touch-action:pan-y;
    color: var(--brown-dark);
    font-family:'Poppins', sans-serif;
    font-size:17px;
    line-height:1.7;
    overflow-wrap: break-word;
    background-image:
      radial-gradient(circle at 20% 20%, rgba(139,101,68,0.05) 0%, transparent 40%),
      radial-gradient(circle at 80% 60%, rgba(139,101,68,0.05) 0%, transparent 40%);
  }

.policy-hero h1{ margin:0.6rem 0 0.8rem; }

.faq-list{
    display:flex;
    flex-direction:column;
    gap:1.4rem;
  }

.faq-item{
    background:var(--paper);
    border:1px solid var(--beige-dark);
    border-radius:50px;
    padding: calc(1.2rem + 10px) calc(25px + 10px);
    cursor:pointer;
  }

.faq-item .faq-answer{
    cursor:default;
  }

.faq-item summary{
    cursor:pointer;
    font-family:'Quicksand', sans-serif;
    font-weight:600;
    font-size:1rem;
    color:var(--brown-dark);
    list-style:none;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
  }

.faq-item summary::after{
    content:'';
    position:relative;
    width:16px; height:16px;
    flex-shrink:0;
    background:
      linear-gradient(var(--rust), var(--rust)) center / 100% 3px no-repeat,
      linear-gradient(var(--rust), var(--rust)) center / 3px 100% no-repeat;
    transition: transform 0.25s ease;
  }

.faq-item[open] summary::after{
    transform:rotate(45deg);
  }

.faq-item > .faq-answer{
    display:block !important;
    overflow:hidden;
    height:0;
  }

.faq-answer-inner{
    overflow:hidden;
    opacity:0;
    transform:translateY(-8px);
    transition: opacity 0.25s ease, transform 0.25s ease;
  }

.faq-answer-inner.answer-visible{
    opacity:1;
    transform:translateY(0);
  }

.faq-item .faq-answer-inner p{
    margin:0.1rem 0 0;
    padding-top:0.9rem;
    border-top:1px solid var(--beige-dark);
    color:var(--brown-dark);
    font-size:0.92rem;
    line-height:1.65;
  }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — O NAS
   ---------------------------------------------------------------------- */

/* ---------- INTRO ---------- */
  .about-hero{
    max-width:900px;
    margin:0 auto;
    padding:6.5rem 25px 1rem;
    text-align:center;
  }

.about-hero .eyebrow{ display:block; margin-bottom:1rem; }

.about-hero h1{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2.4rem, 5.5vw, 3.6rem);
    margin-bottom:1rem;
  }

.about-hero h1 .brand-quicksand{
    font-family:'Quicksand', sans-serif;
    font-weight:700;
    letter-spacing:0.02em;
  }

.about-hero p{ color:#5a4531; max-width:560px; margin:0 auto; }

.section-head{ text-align:center; max-width:620px; margin:0 auto 3rem; }

/* ---------- STORY ---------- */
  .about-layout{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:3.5rem;
    align-items:center;
  }

.about-frame::before{
    content:"";
    position:absolute; inset:14px;
    border:1.5px dashed rgba(255,253,248,0.55);
    border-radius:36px;
  }

.about-text h2{ text-align:left; font-size:clamp(1.8rem,3vw,2.4rem); margin-bottom:1.2rem; }

/* ---------- WARTOŚCI ---------- */
  .alt-bg{ background:var(--brown-bg); padding-top:5rem; padding-bottom:5rem; }

.values-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap:1.6rem;
  }

@media (min-width: 560px){
    .values-grid{ grid-template-columns: repeat(2, 1fr); }
  }

@media (min-width: 1080px){
    .values-grid{ grid-template-columns: repeat(4, 1fr); }
  }

.reviews-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    gap:1.8rem;
    max-width:900px;
    margin:0 auto;
  }

.info-card{
    background:var(--paper);
    padding:2rem 1.6rem;
    text-align:center;
    border-radius:28px;
    box-shadow:0 6px 18px var(--shadow);
  }

.info-icon{
    width:52px; height:52px;
    margin:0 auto 1.1rem;
    border-radius:50%;
    background:var(--beige);
    display:flex; align-items:center; justify-content:center;
    font-size:1.4rem;
  }

.info-card h3{ font-size:1.05rem; margin-bottom:0.6rem; }

.info-card p{ font-size:0.92rem; color:#5a4531; }

/* ---------- CTA ---------- */
  .about-cta{
    text-align:center;
    padding:5rem 25px;
    background:var(--beige-light);
  }

.about-cta h2{ margin-bottom:1rem; font-size:clamp(2rem, 4vw, 2.8rem); }

.about-cta p{ color:#5a4531; max-width:560px; margin:0 auto 2rem; }

.about-cta-buttons{
    display:flex;
    justify-content:center;
    gap:1rem;
    flex-wrap:wrap;
  }

/* ---------- RESPONSIVE ---------- */
  @media (max-width: 860px){
    .about-layout{ grid-template-columns:1fr; }
    .about-frame{ order:-1; max-width:340px; margin:0 auto; }
  }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — DOKUMENTY PRAWNE (polityka prywatności / regulamin)
   ---------------------------------------------------------------------- */

.pdf-download-btn{
    display:inline-flex;
    align-items:center;
    gap:0.5rem;
    margin-top:1.3rem;
    padding:0.65rem 1.4rem;
    background:var(--rust);
    color:var(--paper);
    border:none;
    border-radius:50px;
    font-family:'Poppins', sans-serif;
    font-weight:600;
    font-size:0.85rem;
    cursor:pointer;
    transition: background 0.2s ease, transform 0.2s ease;
  }

.pdf-download-btn:hover{ background:var(--rust-dark); transform:translateY(-1px); }

.pdf-download-btn svg{ width:17px; height:17px; flex-shrink:0; }

@media print{
    header, footer, .cookie-banner, .search-overlay, .back-to-top,
    .pdf-download-btn, .modal-overlay, .modal-box{
      display:none !important;
    }
    body{ background:#fff !important; color:#000; }
    .policy-hero, .policy-content{ max-width:100%; }
    a{ color:#000 !important; text-decoration:underline; }
    .policy-toc{ border:1px solid #ccc; }
  }

.policy-content a:not(.btn):not(.blog-thumb-link):not(.product-title-link):not(.thumb-link):not(.modal-close){
    position:relative;
    display:inline-block;
    color:var(--rust);
    text-decoration:none;
    padding-bottom:2px;
  }

.policy-content a:not(.btn):not(.blog-thumb-link):not(.product-title-link):not(.thumb-link):not(.modal-close)::after{
    content:"";
    position:absolute; left:0; bottom:0;
    width:0%; height:2px; background:var(--rust-dark);
    transition:width 0.25s ease;
  }

.policy-content a:hover:not(.btn):not(.blog-thumb-link):not(.product-title-link):not(.thumb-link):not(.modal-close)::after{ width:100%; }

.faq-content a:not(.btn):not(.blog-thumb-link):not(.product-title-link):not(.thumb-link):not(.modal-close){
    padding-bottom:0;
    transition: transform 0.2s ease;
  }

.faq-content a:not(.btn):not(.blog-thumb-link):not(.product-title-link):not(.thumb-link):not(.modal-close)::after{
    display:none;
  }

.faq-content a:hover:not(.btn):not(.blog-thumb-link):not(.product-title-link):not(.thumb-link):not(.modal-close){
    transform:scale(1.08);
  }

.policy-toc{
    background:var(--paper);
    border:1px solid var(--beige-dark);
    border-radius:28px;
    padding:1.3rem 25px;
    margin-bottom:1rem;
  }

.policy-toc a{
    position:relative;
    display:inline-block;
    color:var(--brown-mid);
    text-decoration:none;
    padding-bottom:2px;
  }

.policy-toc a::after{
    content:"";
    position:absolute; left:0; bottom:0;
    width:0%; height:2px; background:var(--rust-dark);
    transition:width 0.25s ease;
  }

.policy-toc a:hover::after{ width:100%; }

.cookie-banner a:hover{ transform:scale(1.03); }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — STRONY BŁĘDÓW (404, 403)
   ---------------------------------------------------------------------- */

/* ---------- 404 / 403 ---------- */
  .error-404, .error-403{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:200px 25px 5rem;
    text-align:center;
  }

.error-404-inner, .error-403-inner{
    max-width:620px;
    margin:0 auto;
  }

.error-404-icons, .error-403-icons{
    display:flex;
    justify-content:center;
    gap:0.9rem;
    font-size:2.4rem;
    margin-bottom:1.3rem;
    line-height:1;
  }

.error-404-inner .eyebrow, .error-403-inner .eyebrow{ display:block; margin-bottom:1rem; }

.error-404-inner h1, .error-403-inner h1{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2rem, 5vw, 3rem);
    margin-bottom:1rem;
    padding-bottom:50px;
    line-height:1.2;
  }

.error-404-inner > p, .error-403-inner > p{
    color:var(--brown-mid);
    margin-bottom:2rem;
    line-height:1.6;
  }

.error-404-actions, .error-403-actions{ margin-bottom:2.5rem; }

.error-404-links, .error-403-links{
    padding-top:2rem;
    border-top:1px solid var(--beige-dark);
  }

.error-404-links p, .error-403-links p{
    font-family:'Poppins', sans-serif;
    font-size:0.82rem;
    color:var(--brown-mid);
    margin-bottom:0.9rem;
  }

.error-404-links nav, .error-403-links nav{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:0.7rem;
    font-family:'Poppins', sans-serif;
    font-size:0.88rem;
    font-weight:600;
  }

.error-404-links nav a, .error-403-links nav a{
    position:relative;
    color:var(--rust);
    text-decoration:none;
    padding-bottom:4px;
  }

.error-404-links nav a::after, .error-403-links nav a::after{
    content:"";
    position:absolute; left:0; bottom:0;
    width:0%; height:2px; background:var(--rust-dark);
    transition:width 0.25s ease;
  }

.error-404-links nav a:hover::after, .error-403-links nav a:hover::after{ width:100%; }

.error-404-links .sep, .error-403-links .sep{ color:var(--beige-dark); }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — PODSTRONY PRODUKTÓW (współdzielone przez wszystkie 7 świec)
   ---------------------------------------------------------------------- */

/* ---------- SHOP HERO ---------- */
  .shop-hero{
    max-width:900px;
    margin:0 auto;
    padding:6.5rem 25px 1rem;
    text-align:center;
  }


/* ---------- POJEDYNCZY PRODUKT ---------- */
  .product-detail-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap:2.5rem;
    align-items:start;
  }

.product-detail-thumb-link{ display:block; position:relative; }

.product-gallery-wrap{ display:flex; flex-direction:column; position:relative; }

@media (min-width: 800px){
    .product-detail-grid{ grid-template-columns: 1fr 1fr; gap:3.5rem; }
    .product-gallery-wrap{ position:sticky; top:6rem; align-self:start; }
  }

.gallery-arrow{
    position:absolute;
    top:calc(50% - 23px);
    width:40px; height:40px;
    border-radius:50%;
    border:none;
    background:var(--paper);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    font-size:1.15rem;
    color:var(--brown-dark);
    box-shadow:0 4px 12px var(--shadow);
    z-index:5;
    transition: all 0.2s ease;
  }

@media (hover: hover){
    .gallery-arrow:hover{ background:var(--brown-dark); color:var(--paper); }
  }

.gallery-arrow-left{ left:1rem; }

.gallery-arrow-right{ right:1rem; }

@media (max-width: 480px){
    .gallery-arrow{ width:34px; height:34px; font-size:1rem; top:calc(50% - 20px); }
  }

.product-gallery{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    border-radius:40px;
    aspect-ratio:1/1;
    -ms-overflow-style:none;
    scrollbar-width:none;
  }

.product-gallery::-webkit-scrollbar{ display:none; }

.product-gallery-img{
    flex:0 0 100%;
    scroll-snap-align:start;
    width:100%;
    height:100%;
    object-fit:cover;
  }

.product-gallery-dots{
    display:flex;
    justify-content:center;
    gap:0.55rem;
    margin-top:1rem;
  }

.product-gallery-dot{
    width:9px; height:9px;
    border-radius:50%;
    background:var(--beige-dark);
    cursor:pointer;
    border:none;
    padding:0;
    transition: background 0.2s ease, transform 0.2s ease;
  }

.product-gallery-dot.active{ background:var(--rust); transform:scale(1.2); }

.product-detail-thumb{
    aspect-ratio:1/1;
    border-radius:40px;
    overflow:hidden;
  }

img.product-detail-thumb{ object-fit:cover; width:100%; height:100%; }

.product-detail-info .eyebrow{ display:block; margin-bottom:0.8rem; }

.product-detail-info h1{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(2rem, 4vw, 2.8rem);
    margin-bottom:0.6rem;
  }

.product-detail-info .review-stars{
    color:var(--rust);
    font-size:1rem;
    letter-spacing:0.1em;
    margin-bottom:1.2rem;
  }

.product-detail-desc{
    color:var(--brown-dark);
    line-height:1.7;
    margin-bottom:1.8rem;
  }

.product-detail-sizes h3{
    font-size:0.95rem;
    margin-bottom:0.9rem;
  }

.size-options{
    display:flex;
    flex-direction:column;
    gap:0.7rem;
    margin-bottom:1.8rem;
  }

.size-option{
    display:flex;
    align-items:center;
    gap:0.9rem;
    padding:0.9rem 1.2rem;
    border:1.5px solid var(--beige-dark);
    border-radius:50px;
    cursor:pointer;
    transition: border-color 0.2s ease, background 0.2s ease;
  }

.size-option:has(input:checked){
    border-color:var(--rust);
    background:var(--beige-light);
  }

.size-option input{ accent-color:var(--rust); width:16px; height:16px; flex-shrink:0; }

.size-option-main{
    display:flex;
    flex-direction:column;
    flex-grow:1;
  }

.size-option-label{
    font-family:'Poppins', sans-serif;
    font-weight:600;
    font-size:0.9rem;
    color:var(--brown-dark);
  }

.size-option-time{
    font-size:0.76rem;
    color:var(--brown-mid);
  }

.size-option strong{
    font-family:'Poppins', sans-serif;
    color:var(--rust-dark);
    font-size:0.95rem;
    white-space:nowrap;
  }

.product-detail-cta{ width:100%; text-align:center; margin-bottom:2rem; }

.product-detail-meta{
    padding-top:1.6rem;
    border-top:1px solid var(--beige-dark);
  }

.product-detail-meta p{
    font-size:0.85rem;
    color:var(--brown-mid);
    line-height:1.6;
    margin-bottom:0.7rem;
  }

.product-detail-meta p:last-child{ margin-bottom:0; }

.product-detail-meta strong{ color:var(--brown-dark); }

.product-back-link{
    display:inline-flex;
    align-items:center;
    gap:0.5rem;
    margin-bottom:20px;
    font-family:'Poppins', sans-serif;
    font-weight:700;
    font-size:0.9rem;
    color:var(--rust);
    text-decoration:none;
    transition: transform 0.2s ease, color 0.2s ease;
  }

.product-back-link:hover{ color:var(--rust-dark); transform:translateX(-4px); }


/* ----------------------------------------------------------------------
   STYLE SPECYFICZNE — WPIS BLOGOWY
   ---------------------------------------------------------------------- */

/* ---------- OKRUSZKI ---------- */
  /* ---------- WPIS BLOGOWY ---------- */
  .blog-post{ max-width:800px; }

.blog-post-section{ padding:5rem 25px; }

.blog-post-head{ text-align:center; margin-bottom:2rem; }

.blog-post-head .eyebrow{ display:block; margin-bottom:0.8rem; }

.blog-post-head h1{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(1.8rem, 4vw, 2.6rem);
    line-height:1.25;
    margin-bottom:0.8rem;
  }

.blog-post-head .blog-date{
    font-family:'Poppins', sans-serif;
    font-size:0.78rem;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--brown-mid);
  }

.blog-post-thumb{
    aspect-ratio:16/9;
    border-radius:32px;
    margin-bottom:2.5rem;
    display:flex; align-items:center; justify-content:center;
    font-family:'Oswald', sans-serif;
    font-size:0.8rem; letter-spacing:0.14em; text-transform:uppercase;
    color:rgba(67,48,31,0.5);
  }

.blog-post-body h2{
    font-family:'Oswald', sans-serif;
    text-transform:none;
    letter-spacing:0.01em;
    font-size:1.2rem;
    color:var(--brown-dark);
    margin:2.2rem 0 0.9rem;
  }

.blog-post-body h2:first-child{ margin-top:0; }

.blog-post-body p{
    color:var(--brown-dark);
    line-height:1.75;
    margin-bottom:1.2rem;
  }

.blog-post-back{
    margin-top:3rem;
    text-align:center;
    padding-top:2rem;
    border-top:1px solid var(--beige-dark);
  }

/* ============================================================
   OPINIE O PRODUKCIE (świece)
   ============================================================ */

.reviews-section{
    background:var(--beige-light);
  }

.reviews-header{
    text-align:center;
    max-width:640px;
    margin:0 auto 2.8rem;
  }

.reviews-header h2{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(1.8rem, 3.5vw, 2.4rem);
    margin-bottom:1rem;
  }

.reviews-summary{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:0.7rem;
    flex-wrap:wrap;
  }

.reviews-avg-stars{
    color:var(--rust);
    font-size:1.3rem;
    letter-spacing:0.08em;
  }

.reviews-avg-text{
    font-family:'Poppins', sans-serif;
    font-size:0.9rem;
    color:var(--brown-mid);
  }

.reviews-list{
    display:grid;
    gap:1.2rem;
    max-width:760px;
    margin:0 auto 3rem;
  }

.review-card{
    background:var(--paper);
    border-radius:28px;
    padding:1.6rem 1.8rem;
    box-shadow:0 4px 14px var(--shadow);
  }

.review-card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:0.5rem;
    flex-wrap:wrap;
  }

.review-card-name{
    font-family:'Quicksand', sans-serif;
    font-weight:600;
    color:var(--brown-dark);
    font-size:0.98rem;
  }

.review-card-stars{
    color:var(--rust);
    font-size:0.9rem;
    letter-spacing:0.06em;
    white-space:nowrap;
  }

.review-card-date{
    font-family:'Poppins', sans-serif;
    font-size:0.72rem;
    color:#9a8b76;
    display:block;
    margin-bottom:0.6rem;
  }

.review-card-text{
    font-family:'Poppins', sans-serif;
    font-size:0.92rem;
    line-height:1.6;
    color:var(--brown-mid);
  }

.reviews-empty{
    text-align:center;
    color:#8a7a63;
    font-size:0.92rem;
    padding:1rem 0 0.5rem;
  }

.reviews-loading{
    text-align:center;
    color:#9a8b76;
    font-size:0.88rem;
  }

/* ---------- FORMULARZ DODAWANIA OPINII ---------- */

.review-form-wrap{
    max-width:560px;
    margin:0 auto;
    background:var(--paper);
    border-radius:36px;
    padding:1.7rem 2.2rem;
    box-shadow:0 6px 20px var(--shadow);
  }

.review-form-wrap h3{
    font-family:'Quicksand', sans-serif;
    font-weight:600;
    text-align:center;
    color:var(--brown-dark);
    font-size:1.15rem;
    margin-bottom:0.9rem;
  }

.review-star-input{
    display:flex;
    justify-content:center;
    gap:0.4rem;
    margin:0;
  }

.review-star{
    background:none;
    border:none;
    cursor:pointer;
    font-size:2.1rem;
    line-height:1;
    color:var(--beige-dark);
    padding:0.15rem;
    transition: color 0.15s ease, transform 0.15s ease;
  }

.review-star:hover,
.review-star.is-hover{
    transform:scale(1.12);
  }

.review-star.is-filled{
    color:var(--rust);
  }

#reviewRatingError{
    display:block;
    text-align:center;
    margin-bottom:0.3rem;
  }

.review-form .field-group{
    margin-bottom:0.8rem;
  }

.review-form .field-error{
    min-height:0;
    margin-top:0.15rem;
  }

.review-form .btn{ width:100%; text-align:center; }

@media (max-width: 600px){
    .review-form-wrap{ padding:1.8rem 1.4rem; }
    .review-star{ font-size:1.8rem; }
    .review-card{ padding:1.3rem 1.4rem; }
  }

/* Ukryty znaczek reCAPTCHA — wymaga to umieszczenia poniższej informacji
   (patrz .recaptcha-disclaimer) zgodnie z zasadami Google. */
.grecaptcha-badge{
    visibility:hidden;
  }

.recaptcha-disclaimer{
    font-family:'Poppins', sans-serif;
    font-size:0.68rem;
    line-height:1.5;
    color:#a89a83;
    text-align:center;
    margin-top:1rem;
  }

.recaptcha-disclaimer a{
    color:#8a7a63;
    text-decoration:underline;
  }

/* ---------- WŁASNE OPINIE — edycja/usunięcie przez 5 minut ---------- */
.review-card-confirmed{
    display:flex;
    align-items:center;
    gap:0.4rem;
    margin-top:0.7rem;
    font-family:'Poppins', sans-serif;
    font-size:0.78rem;
    font-weight:600;
    color:#2C5F2D;
  }

.review-confirmed-icon{
    width:18px; height:18px;
    border-radius:50%;
    background:#4CAF50;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
  }

.review-confirmed-icon svg{ width:11px; height:11px; }

.review-card-own-actions{
    margin-top:0.8rem;
    padding-top:0.8rem;
    border-top:1px dashed var(--beige-dark);
    display:flex;
    align-items:center;
    gap:0.6rem;
    flex-wrap:wrap;
  }

.review-own-btn{
    font-family:'Poppins', sans-serif;
    font-size:0.74rem;
    font-weight:600;
    border-radius:16px;
    padding:0.35rem 0.8rem;
    cursor:pointer;
    border:1.5px solid transparent;
  }

.review-own-edit{ background:var(--beige-light); color:var(--brown-dark); }
.review-own-edit:hover{ background:var(--beige); }
.review-own-delete{ background:#F6E4DE; color:#B3452F; border-color:#F0C9BC; }
.review-own-delete:hover{ background:#F0C9BC; }
.review-own-save{ background:var(--rust); color:#fff; }
.review-own-save:hover{ background:var(--rust-dark); }
.review-own-cancel{ background:none; color:#8a7a63; text-decoration:underline; }

.review-own-hint{
    font-size:0.68rem;
    color:#a89a83;
  }

.review-own-edit-form{ margin-top:0.6rem; }
.review-own-edit-stars{ justify-content:flex-start; margin-bottom:0.6rem; }
.review-own-edit-stars .review-star{ font-size:1.4rem; }
.review-own-edit-textarea{
    width:100%;
    min-height:80px;
    resize:vertical;
    border:1.5px solid var(--beige-dark);
    background:#F2EFE8;
    border-radius:16px;
    padding:0.7rem 0.9rem;
    font-family:'Poppins', sans-serif;
    font-size:0.88rem;
    color:var(--brown-dark);
    margin-bottom:0.6rem;
  }
.review-own-edit-buttons{ display:flex; gap:0.5rem; }

/* ---------- „SPRAWDŹ TEŻ" — polecane inne świece na stronie produktu ---------- */
.related-products-section{
    background:var(--brown-bg);
    text-align:center;
  }

.related-products-section h2{
    font-family:'Pacifico', cursive;
    text-transform:none;
    font-weight:400;
    color:var(--rust-dark);
    font-size:clamp(1.8rem, 3.5vw, 2.4rem);
    margin-bottom:0.6rem;
  }

.related-products-subtitle{
    font-family:'Poppins', sans-serif;
    color:var(--brown-mid);
    margin-bottom:2.4rem;
  }

.related-products-grid{
    justify-content:center;
  }
