/* =====================================================================
   Caffè Alverto — podstrony (O nas, Kontakt, Dla firm, Blog)
   Nagłówek i stopka są wspólne ze stroną główną; tu tylko to,
   czego strona główna nie potrzebuje.
   ===================================================================== */

/* ---------- nagłówek podstrony ---------- */
.alv-phero{
  position:relative; background:var(--alv-ink);
  padding-block:clamp(3rem,7vw,6rem) clamp(2rem,5vw,3.5rem);
  overflow:hidden;
}
.alv-phero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(70% 90% at 20% 0%, rgba(168,95,45,.22), transparent 65%);
}
.alv-phero > .alv-wrap{position:relative}
.alv-phero h1{font-size:clamp(2.2rem,1.5rem + 3.6vw,4rem); max-width:20ch;
  line-height:1.16; padding-bottom:.06em}
.alv-phero__lead{
  margin-top:clamp(1.5rem,2.5vw,2.2rem); max-width:52ch; color:rgba(245,234,216,.80);
  font-size:clamp(1rem,.95rem + .3vw,1.15rem);
}

/* ---------- treść z edytora ---------- */
.alv-main{padding-block:clamp(2.5rem,6vw,4.5rem) clamp(4rem,9vw,7rem)}
.alv-main > .alv-wrap{overflow-x:clip}   /* nic nie wystaje poza ekran */
.alv-prose{max-width:58ch; color:rgba(245,234,216,.86)}
/* strony budowane Elementorem mają własny układ — pełna szerokość kontenera */
.alv-prose--wide{max-width:none}
.alv-prose--article{max-width:55ch}
.alv-prose > *:first-child{margin-top:0}
.alv-prose h2,.alv-prose h3,.alv-prose h4{
  color:var(--alv-cream); margin:2.4rem 0 1rem; line-height:1.2; padding-bottom:.05em;
}
.alv-prose h2{font-size:clamp(1.6rem,1.3rem + 1.4vw,2.3rem)}
.alv-prose h3{font-size:clamp(1.25rem,1.1rem + .8vw,1.6rem)}
.alv-prose p{margin:0 0 1.3em; line-height:1.8}
.alv-prose a:not(.alv-btn){color:var(--alv-gold); text-decoration:underline;
  text-underline-offset:3px; text-decoration-thickness:1px}
.alv-prose a:not(.alv-btn):hover{color:var(--alv-cream)}
.alv-prose strong,.alv-prose b{color:var(--alv-cream); font-weight:500}
.alv-prose ul,.alv-prose ol{margin:0 0 1.4em; padding-left:0; list-style:none; display:grid; gap:.7rem}
.alv-prose ul li{display:grid; grid-template-columns:auto 1fr; gap:.9rem; align-items:start}
.alv-prose ul li::before{content:""; width:5px; height:5px; margin-top:.72em;
  background:var(--alv-gold); transform:rotate(45deg)}
.alv-prose ol{counter-reset:alv}
.alv-prose ol li{display:grid; grid-template-columns:auto 1fr; gap:.9rem; counter-increment:alv}
.alv-prose ol li::before{content:counter(alv) "."; color:var(--alv-gold); font-variant-numeric:tabular-nums}
.alv-prose img{margin:2rem 0; border:1px solid var(--alv-line)}
.alv-prose blockquote{
  margin:2rem 0; padding:1.4rem 1.6rem; border-left:2px solid var(--alv-gold);
  background:var(--alv-ink-2); font-family:var(--alv-display); font-size:1.15rem;
  color:var(--alv-cream);
}
.alv-prose blockquote p:last-child{margin-bottom:0}
.alv-prose hr{border:0; border-top:1px solid var(--alv-line); margin:2.6rem 0}
.alv-prose table{width:100%; border-collapse:collapse; margin:1.8rem 0}
.alv-prose th,.alv-prose td{padding:.8rem 1rem; border:1px solid var(--alv-line); text-align:left}
.alv-prose th{color:var(--alv-gold); font-weight:400; letter-spacing:.06em;
  text-transform:uppercase; font-size:.78rem}

/* formularze wewnątrz treści (np. Kontakt) */
.alv-prose input[type="text"],.alv-prose input[type="email"],
.alv-prose input[type="tel"],.alv-prose textarea{
  width:100%; padding:.9rem 1rem; background:var(--alv-ink-2);
  border:1px solid var(--alv-line); color:var(--alv-cream);
  font-family:var(--alv-body); font-size:1rem; border-radius:2px;
}
.alv-prose input:focus,.alv-prose textarea:focus{
  outline:none; border-color:var(--alv-gold); box-shadow:0 0 0 3px rgba(212,161,91,.15);
}
.alv-prose input::placeholder,.alv-prose textarea::placeholder{color:rgba(245,234,216,.35)}
.alv-prose input[type="submit"],.alv-prose button[type="submit"]{
  width:auto; background:var(--alv-gold); color:#090806; border:0; cursor:pointer;
  padding:1rem 2.1rem; font-size:.84rem; font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; transition:filter .25s;
}
.alv-prose input[type="submit"]:hover{filter:brightness(1.08)}

/* ---------- blog: lista wpisów ---------- */
.alv-posts{display:grid; gap:clamp(1.5rem,3vw,2.2rem); grid-template-columns:1fr}
@media(min-width:700px){ .alv-posts{grid-template-columns:1fr 1fr} }
@media(min-width:1080px){ .alv-posts{grid-template-columns:repeat(3,1fr)} }

.alv-post{border:1px solid var(--alv-line); background:var(--alv-ink-2); transition:border-color .3s}
.alv-post:hover{border-color:var(--alv-gold)}
.alv-post__link{display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit}
.alv-post__media{display:block; overflow:hidden; aspect-ratio:16/10}
.alv-post__media img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease}
.alv-post:hover .alv-post__media img{transform:scale(1.04)}
.alv-post__body{display:flex; flex-direction:column; gap:.7rem; padding:1.5rem; flex:1}
.alv-post__date{font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--alv-gold)}
.alv-post__title{font-family:var(--alv-display); font-size:1.35rem; line-height:1.2; color:var(--alv-cream)}
.alv-post__excerpt{font-size:.92rem; color:rgba(245,234,216,.74); line-height:1.65}
.alv-post__more{margin-top:auto; padding-top:.6rem; font-size:.78rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--alv-gold)}

.alv-article__cover{margin:0 0 2.4rem}
.alv-article__cover img{width:100%; height:auto; border:1px solid var(--alv-line)}
.alv-back{margin-top:3rem; font-size:.85rem; letter-spacing:.08em}
.alv-back a{color:rgba(245,234,216,.7); text-decoration:none; transition:color .3s}
.alv-back a:hover{color:var(--alv-gold)}

/* ---------- stronicowanie ---------- */
.alv-pagination{margin-top:clamp(2.5rem,5vw,4rem)}
.alv-pagination .page-numbers{
  display:inline-grid; place-items:center; min-width:44px; height:44px; padding:0 .6rem;
  margin-right:.4rem; border:1px solid var(--alv-line); text-decoration:none;
  color:rgba(245,234,216,.7); font-size:.9rem; transition:.3s;
}
.alv-pagination .page-numbers:hover{border-color:var(--alv-gold); color:var(--alv-gold)}
.alv-pagination .page-numbers.current{background:var(--alv-gold); border-color:var(--alv-gold); color:#090806}
.alv-pagination .page-numbers.dots{border-color:transparent}


/* ---------- sklep: pasek informacyjny pod kartami ---------- */
.alv-shopnote{
  display:grid; gap:clamp(1.5rem,3vw,2.5rem); grid-template-columns:1fr;
  margin-top:clamp(3rem,6vw,5rem); padding-top:clamp(2rem,4vw,3rem);
  border-top:1px solid var(--alv-line);
}
@media(min-width:820px){ .alv-shopnote{grid-template-columns:repeat(3,1fr)} }
.alv-shopnote__item h3{
  font-size:clamp(1.05rem,1rem + .35vw,1.25rem); margin:0 0 .7rem; color:var(--alv-cream);
}
.alv-shopnote__item p{margin:0; font-size:.94rem; line-height:1.7; color:rgba(245,234,216,.76)}
.alv-shopnote__item a{color:var(--alv-gold); text-decoration:none}
.alv-shopnote__item a:hover{color:var(--alv-cream)}


/* ---------- landing: tekst wąski i czytelny, karty kaw na pełną szerokość ---------- */
.alv-prose--landing{max-width:none}
.alv-prose--landing > *:not(.alv-embed){max-width:55ch}
.alv-prose .alv-embed{margin:clamp(2.5rem,5vw,4rem) 0; max-width:none}
.alv-prose .alv-embed__title{margin:0 0 1.6rem}

/* karty mają własne style — wyłączamy reguły treści, które by je psuły */
.alv-prose .alv-embed ul,
.alv-prose .alv-embed ol{display:flex; flex-wrap:wrap; gap:.5rem; margin:0; padding:0}
.alv-prose .alv-embed .alv-meters{display:grid; gap:.85rem; margin-top:1.6rem}
.alv-prose .alv-embed ul li{display:list-item; grid-template-columns:none}
.alv-prose .alv-embed .alv-meter{display:grid; grid-template-columns:1fr auto}
.alv-prose .alv-embed ul li::before,
.alv-prose .alv-embed ol li::before{content:none}
.alv-prose .alv-embed img{margin:0 auto; border:0}
.alv-prose .alv-embed p{margin:0}
.alv-prose .alv-embed h3{margin:0}
.alv-prose .alv-embed a:not(.alv-btn){text-decoration:none}


/* ---------- karty kaw pod wpisem blogowym ---------- */
.alv-postcards{
  margin-top:clamp(3rem,6vw,5rem);
  padding-top:clamp(2.5rem,5vw,4rem);
  border-top:1px solid var(--alv-line);
}
.alv-postcards .alv-head{margin-bottom:clamp(2rem,4vw,3rem)}
.alv-postcards .alv-lead{margin-top:1rem}


/* ---------- notka o weryfikacji opinii ---------- */
.alv-quotes__note{
  margin:clamp(1.5rem,3vw,2.2rem) 0 0; max-width:70ch;
  font-size:.82rem; line-height:1.6; color:rgba(245,234,216,.62);
}

/* =====================================================================
   STRONY PRAWNE: regulamin, polityka zwrotów, polityka prywatności
   Boczna kolumna ze spisem treści i listą dokumentów, tekst w wygodnej
   szerokości, mniejsze nagłówki (dokumenty mają ich dużo).
   ===================================================================== */
.alv-legal{display:grid; gap:2rem; grid-template-columns:minmax(0,1fr)}
@media(min-width:1000px){
  .alv-legal{grid-template-columns:250px minmax(0,1fr); gap:clamp(2.5rem,5vw,4.5rem)}
  .alv-legal__aside{position:sticky; top:6.5rem; align-self:start; max-height:calc(100vh - 8rem); overflow:auto}
}
.alv-legal__aside{display:grid; gap:1.5rem; align-content:start}
.alv-legal__toc,.alv-legal__docs{border:1px solid var(--alv-line); background:var(--alv-ink-2, #12100C); padding:1.1rem 1.2rem}
.alv-legal__toc summary{cursor:pointer; list-style:none; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--alv-gold)}
.alv-legal__toc summary::-webkit-details-marker{display:none}
.alv-legal__toc summary::after{content:"+"; float:right; color:var(--alv-gold)}
.alv-legal__toc[open] summary::after{content:"-"}
.alv-legal__toc ol{list-style:none; margin:.9rem 0 0; padding:0; display:grid; gap:.15rem; counter-reset:toc}
.alv-legal__toc li{counter-increment:toc; display:grid; grid-template-columns:1.6rem 1fr; font-size:.86rem; line-height:1.4}
.alv-legal__toc li::before{content:counter(toc) "."; color:rgba(212,161,91,.7); padding-top:.35rem}
.alv-legal__toc a{display:block; padding:.35rem 0; color:rgba(245,234,216,.75); text-decoration:none}
.alv-legal__toc a:hover,.alv-legal__toc a:focus-visible{color:var(--alv-gold)}
.alv-legal__docs p{margin:0 0 .7rem; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--alv-gold)}
.alv-legal__docs ul{list-style:none; margin:0; padding:0; display:grid; gap:.2rem}
.alv-legal__docs a{display:block; padding:.4rem 0 .4rem .8rem; border-left:1px solid var(--alv-line); color:rgba(245,234,216,.75); text-decoration:none; font-size:.9rem}
.alv-legal__docs a:hover{color:var(--alv-cream); border-left-color:var(--alv-gold)}
.alv-legal__docs .is-current a{color:var(--alv-gold); border-left:2px solid var(--alv-gold)}

.alv-prose--legal{max-width:74ch; font-size:.98rem}
.alv-prose--legal h2{font-size:clamp(1.3rem,1.15rem + .6vw,1.65rem); margin:2.6rem 0 .9rem; padding-top:1.6rem;
  border-top:1px solid var(--alv-line); scroll-margin-top:7rem}
.alv-prose--legal > h2:first-child,.alv-prose--legal > *:first-child h2:first-child{margin-top:0; padding-top:0; border-top:0}
.alv-prose--legal h3{font-size:1.15rem; margin:1.8rem 0 .7rem; scroll-margin-top:7rem}
.alv-prose--legal p{line-height:1.75}
.alv-prose--legal li{line-height:1.7}
.alv-prose--legal ol ol,.alv-prose--legal ul ul,.alv-prose--legal ol ul,.alv-prose--legal ul ol{margin:.6rem 0 0}
.alv-legal__contact{margin-top:3rem; padding:1.2rem 1.4rem; border:1px solid var(--alv-line); border-left:2px solid var(--alv-gold); background:rgba(212,161,91,.05)}
.alv-legal__contact p{margin:0 !important}
@media(max-width:999px){
  .alv-legal__toc:not([open]){padding-bottom:1.1rem}
}
/* nagłówki z własnymi numerami: spis bez dodatkowej numeracji */
.alv-legal__toc ol.is-numbered li{grid-template-columns:1fr}
.alv-legal__toc ol.is-numbered li::before{content:none; display:none}
.alv-prose--legal h2{scroll-margin-top:6rem}

/* =====================================================================
   LANDINGI: wstęp, liczby, tabele, FAQ, źródła
   ===================================================================== */
.alv-prose--landing > .alv-stats,
.alv-prose--landing > .wp-block-table,
.alv-prose--landing > .alv-faq,
.alv-prose--landing > .alv-sources{max-width:min(100%, 980px)}
.alv-prose .alv-lead{font-size:clamp(1.08rem,1rem + .4vw,1.25rem); line-height:1.7; color:var(--alv-cream); max-width:62ch}

.alv-stats{display:grid; gap:1px; margin:clamp(2rem,4vw,3rem) 0; background:var(--alv-line);
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); border:1px solid var(--alv-line)}
.alv-stat{background:var(--alv-ink-2); padding:1.4rem 1.3rem; display:flex; flex-direction:column; gap:.55rem}
.alv-stat__num{font-family:var(--alv-display); font-weight:400; font-size:clamp(1.9rem,1.5rem + 1.4vw,2.6rem); line-height:1; color:var(--alv-gold) !important}
.alv-stat__txt{font-size:.9rem; line-height:1.55; color:rgba(245,234,216,.78)}
.alv-prose .alv-stat__src{margin-top:auto; font-size:.72rem; letter-spacing:.08em; color:rgba(245,234,216,.45); text-decoration:none}
.alv-prose .alv-stat__src:hover{color:var(--alv-gold)}

.alv-prose .wp-block-table{margin:1.6rem 0 2rem; overflow-x:auto}
.alv-prose .wp-block-table table{margin:0; min-width:520px; font-size:.92rem}
.alv-prose .wp-block-table td{color:rgba(245,234,216,.82); vertical-align:top}

.alv-prose .alv-faq{margin:1rem 0 2.5rem}
.alv-prose .alv-faq summary{color:var(--alv-cream)}
.alv-prose .alv-faq p{margin:0 0 1.4rem}

.alv-prose .alv-author-note{margin-top:2.5rem; padding:1.1rem 1.3rem; border-left:2px solid var(--alv-gold);
  background:rgba(212,161,91,.05); font-size:.9rem; color:rgba(245,234,216,.75)}

.alv-sources{margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--alv-line); scroll-margin-top:7rem}
.alv-prose .alv-sources h2{font-size:.78rem !important; font-family:var(--alv-body); letter-spacing:.2em; text-transform:uppercase; color:var(--alv-gold); margin:0 0 1rem}
.alv-prose .alv-sources ol{gap:.5rem; font-size:.82rem}
.alv-prose .alv-sources ol li::before{font-size:.82rem}
.alv-prose .alv-sources a{color:rgba(245,234,216,.7); text-decoration:underline; text-decoration-color:rgba(212,161,91,.4); word-break:break-word}

/* listy w treści: punktor obok tekstu także wtedy, gdy punkt zaczyna się od pogrubienia
   (wcześniejsza siatka rozbijała <strong> i resztę tekstu na dwie kolumny) */
.alv-prose ul > li,
.alv-prose ol > li{display:block !important; position:relative; padding-left:1.7rem}
.alv-prose ul > li::before{position:absolute; left:.2rem; top:0}
.alv-prose ol > li::before{position:absolute; left:0; top:0}
.alv-prose .alv-embed ul > li{padding-left:0; position:static}
.alv-stat__num{font-size:clamp(1.6rem,1.3rem + 1.1vw,2.2rem); white-space:nowrap}

/* tabele w treści na telefonie: każdy wiersz jako karta, bez przewijania w bok */
@media(max-width:640px){
  .alv-prose .wp-block-table{overflow:visible}
  .alv-prose .wp-block-table table{min-width:0; border:0}
  .alv-prose .wp-block-table thead{display:none}
  .alv-prose .wp-block-table tr{display:block; border:1px solid var(--alv-line); margin:0 0 .8rem; padding:.3rem .9rem; background:var(--alv-ink-2)}
  .alv-prose .wp-block-table td{display:grid; grid-template-columns:minmax(0,40%) minmax(0,1fr); gap:.8rem; border:0; border-bottom:1px solid rgba(212,161,91,.12); padding:.6rem 0}
  .alv-prose .wp-block-table td:last-child{border-bottom:0}
  .alv-prose .wp-block-table td::before{content:attr(data-label); color:var(--alv-gold); font-size:.74rem; letter-spacing:.06em; text-transform:uppercase}
  .alv-prose .wp-block-table td:first-child{font-family:var(--alv-display); font-size:1.05rem; color:var(--alv-cream); grid-template-columns:1fr}
  .alv-prose .wp-block-table td:first-child::before{display:none}
  .alv-prose .wp-block-table td[data-label=""]::before{display:none}
}

/* grafiki w artykułach i landingach: szerzej niż tekst, z podpisem */
.alv-prose--landing > .wp-block-image,
.alv-prose--article > .wp-block-image{max-width:min(100%, 980px) !important}
.alv-prose .wp-block-image{margin:clamp(1.8rem,4vw,2.8rem) 0}
.alv-prose .wp-block-image img{display:block; width:100%; height:auto; margin:0; border:1px solid var(--alv-line)}
.alv-prose .wp-block-image figcaption{margin-top:.6rem; font-size:.8rem; color:rgba(245,234,216,.55); text-align:left}
