/* ==========================================================
   HODOWLA KOTÓW — GŁÓWNY ARKUSZ STYLÓW
   Struktura: 1. Zmienne, 2. Podstawy, 3. Nagłówek, 4. Sekcje,
   5. Galeria/lightbox, 6. Stopka, 7. Responsywność
   ========================================================== */

/* 1. Kolory i motywy */
:root {
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;
  --font-heading: 'Sora', system-ui, -apple-system, sans-serif;
  --accent: #d97706;
  --accent-strong: #b45309;
  --accent-soft: #fffbeb;
  --accent-line: #fcd34d;
  --page: #fafaf9;
  --surface: #ffffff;
  --surface-soft: #f5f5f4;
  --text: #292524;
  --text-muted: #78716c;
  --border: #e7e5e4;
  --header-bg: rgba(250, 250, 249, .94);
  --shadow: 0 12px 35px rgba(28, 25, 23, .09);
  color-scheme: light;
}
html[data-accent="purple"] { --accent:#9333ea; --accent-strong:#7e22ce; --accent-soft:#faf5ff; --accent-line:#d8b4fe; }
html[data-accent="green"]  { --accent:#16a34a; --accent-strong:#166534; --accent-soft:#f0fdf4; --accent-line:#86efac; }
html[data-accent="blue"]   { --accent:#0284c7; --accent-strong:#075985; --accent-soft:#f0f9ff; --accent-line:#7dd3fc; }
html[data-theme="dark"] {
  --page:#0c0a09; --surface:#1c1917; --surface-soft:#292524; --text:#e7e5e4;
  --text-muted:#a8a29e; --border:#44403c; --header-bg:rgba(12,10,9,.94);
  --shadow:0 12px 35px rgba(0,0,0,.28); color-scheme:dark;
}
html[data-theme="dark"][data-accent="purple"] { --accent-soft:#2e1065; }
html[data-theme="dark"][data-accent="green"] { --accent-soft:#052e16; }
html[data-theme="dark"][data-accent="blue"] { --accent-soft:#082f49; }

/* 2. Podstawy i wspólne elementy */
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:86px; }
body { margin:0; font-family:var(--font-body); color:var(--text); background:var(--page); line-height:1.65; -webkit-font-smoothing:antialiased; transition:background-color .25s,color .25s; }
body, button, a { -webkit-tap-highlight-color:transparent; }
button, input { font:inherit; }
button, a { touch-action:manipulation; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
h1,h2,h3,p,figure { margin-top:0; }
h1,h2,h3 { font-family:var(--font-heading); letter-spacing:-.035em; line-height:1.18; }
h2 { margin-bottom:0; font-size:clamp(2rem,4vw,2.7rem); }
p { margin-bottom:0; }
.wrap { width:min(100% - 40px, 1200px); margin-inline:auto; }
.section { padding:88px 0; }
.section-soft { background:var(--page); }
.eyebrow { margin-bottom:12px; color:var(--accent-strong); font-size:.82rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
html[data-theme="dark"] .eyebrow { color:var(--accent-line); }
.section-heading { max-width:720px; margin:0 auto 52px; text-align:center; }
.section-heading > p:last-child { margin:17px auto 0; max-width:660px; color:var(--text-muted); font-size:1.08rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:12px 24px; border:1px solid transparent; border-radius:12px; font-size:.96rem; font-weight:700; transition:transform .2s,background-color .2s,border-color .2s; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--accent); color:#fff; box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 24%,transparent); }
.button-primary:hover { background:var(--accent-strong); }
.button-outline { color:#fff; border-color:rgba(255,255,255,.24); background:rgba(255,255,255,.05); }
.button-outline:hover { background:rgba(255,255,255,.12); }
:focus-visible { outline:3px solid var(--accent-line); outline-offset:3px; }

/* 3. Nagłówek i nawigacja */
.site-header { position:fixed; z-index:50; inset:0 0 auto; background:var(--header-bg); border-bottom:1px solid transparent; backdrop-filter:blur(14px); transition:box-shadow .2s,border-color .2s; }
.site-header.is-scrolled { border-color:var(--border); box-shadow:0 4px 20px rgba(0,0,0,.05); }
.header-inner { display:flex; align-items:center; justify-content:space-between; min-height:76px; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; font-family:var(--font-heading); font-size:1.2rem; font-weight:800; }
.brand-mark { display:grid; width:38px; height:38px; place-items:center; border-radius:12px; background:linear-gradient(135deg,var(--accent-strong),var(--accent)); color:#fff; font-size:1.15rem; }
.main-nav { display:flex; align-items:center; gap:3px; }
.main-nav a,.footer-nav a { padding:9px 12px; border-radius:9px; color:var(--text-muted); font-size:.9rem; font-weight:600; transition:background .2s,color .2s; }
.main-nav a:hover,.main-nav a.active,.footer-nav a:hover { color:var(--accent-strong); background:var(--accent-soft); }
html[data-theme="dark"] .main-nav a:hover,html[data-theme="dark"] .main-nav a.active,html[data-theme="dark"] .footer-nav a:hover { color:var(--accent-line); }
.header-tools { display:flex; align-items:center; gap:10px; }
.accent-picker { display:flex; align-items:center; gap:5px; padding:5px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.swatch { width:23px; height:23px; padding:0; border:2px solid transparent; border-radius:7px; cursor:pointer; }
.swatch-amber { background:#f59e0b; }.swatch-purple { background:#a855f7; }.swatch-green { background:#22c55e; }.swatch-blue { background:#0ea5e9; }
.swatch[aria-pressed="true"] { outline:2px solid var(--text-muted); outline-offset:2px; }
.theme-toggle,.menu-toggle { display:grid; width:42px; height:42px; place-items:center; border:0; border-radius:11px; background:transparent; color:var(--text); font-size:1.4rem; cursor:pointer; }
.theme-toggle:hover,.menu-toggle:hover { background:var(--surface-soft); }
.menu-toggle { display:none; }

/* 4. Sekcja główna */
.hero { position:relative; overflow:hidden; padding:150px 0 100px; background:linear-gradient(125deg,#1c1917 0%,#292524 55%,#422006 100%); color:#fff; }
html[data-theme="dark"] .hero { background:linear-gradient(125deg,#0c0a09 0%,#1c1917 55%,#292016 100%); }
.hero-glow { position:absolute; pointer-events:none; width:380px; height:380px; border-radius:50%; filter:blur(90px); opacity:.22; background:var(--accent); }
.hero-glow-one { top:-150px; right:-80px; }.hero-glow-two { bottom:-230px; left:-80px; opacity:.12; }
.hero-grid { position:relative; display:grid; grid-template-columns:1.03fr .97fr; align-items:center; gap:64px; }
.availability { display:inline-flex; align-items:center; gap:9px; padding:7px 14px; border:1px solid rgba(255,255,255,.16); border-radius:999px; background:rgba(255,255,255,.06); color:#d6d3d1; font-size:.88rem; }
.hero h1 { max-width:680px; margin:24px 0 22px; font-size:clamp(2.65rem,5vw,4.3rem); font-weight:800; line-height:1.09; }
.hero h1 span { color:var(--accent-line); }
.hero-description { max-width:610px; color:#d6d3d1; font-size:1.1rem; line-height:1.85; }
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:30px; }
.hero-highlights { display:flex; flex-wrap:wrap; gap:12px 20px; margin:28px 0 0; padding:0; list-style:none; color:#d6d3d1; font-size:.83rem; }
.hero-highlights li::first-letter { color:#86efac; }
.hero-photo-wrap { position:relative; min-width:0; }
.hero-photo { width:100%; height:490px; object-fit:cover; border:1px solid rgba(255,255,255,.14); border-radius:22px; box-shadow:0 24px 70px rgba(0,0,0,.28); }
.photo-badge,.about-badge { position:absolute; bottom:-20px; left:-20px; display:flex; flex-direction:column; padding:17px 22px; border:1px solid var(--border); border-radius:13px; background:var(--surface); box-shadow:var(--shadow); color:var(--text); }
.photo-badge strong,.about-badge strong { font-family:var(--font-heading); font-size:1.7rem; line-height:1.25; }.photo-badge span,.about-badge span { color:var(--text-muted); font-size:.85rem; }

/* 5. Karty oferty */
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.service-card { padding:27px; border:1px solid var(--border); border-radius:18px; background:var(--surface); box-shadow:0 4px 14px rgba(28,25,23,.025); transition:transform .25s,box-shadow .25s,border-color .25s; }
.service-card:hover { transform:translateY(-4px); border-color:var(--accent-line); box-shadow:var(--shadow); }
.service-icon { display:grid; width:49px; height:49px; place-items:center; border-radius:13px; background:var(--accent-soft); color:var(--accent-strong); font-size:1.55rem; font-weight:700; }
.service-card h3 { margin:20px 0 12px; font-size:1.2rem; letter-spacing:-.025em; }
.service-card p { color:var(--text-muted); line-height:1.8; }

/* 6. O hodowli i statystyki */
.section-about { background:var(--surface); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:70px; }
.about-photo-wrap { position:relative; padding:0 12px 18px 0; }
.about-photo { width:100%; height:430px; object-fit:cover; border-radius:20px; box-shadow:var(--shadow); }
.about-badge { right:-8px; left:auto; bottom:-8px; padding:18px 22px; }
.about-copy h2 { margin-bottom:22px; }
.about-copy > p:not(.eyebrow) { margin-top:15px; color:var(--text-muted); line-height:1.9; }
.stats-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 22px; margin-top:32px; }
.stat { padding-left:15px; border-left:3px solid var(--accent-line); }
.stat strong { display:block; font-family:var(--font-heading); font-size:1.55rem; }.stat span { display:block; margin-top:4px; color:var(--text-muted); font-size:.84rem; }

/* 7. Galeria i powiększenie zdjęć */
.gallery-section { background:#1c1917; color:#fff; }
html[data-theme="dark"] .gallery-section { background:#000; }
.section-heading-dark .eyebrow { color:var(--accent-line); }.section-heading-dark > p:last-child { color:#a8a29e; }
.gallery-grid { columns:3; column-gap:20px; }
.gallery-item { position:relative; display:block; width:100%; margin:0 0 20px; padding:0; overflow:hidden; break-inside:avoid; border:1px solid rgba(255,255,255,.1); border-radius:15px; background:rgba(255,255,255,.04); cursor:zoom-in; text-align:left; }
.gallery-item img { width:100%; height:auto; min-height:150px; object-fit:cover; transition:transform .45s; }
.gallery-item:hover img { transform:scale(1.045); }
.gallery-overlay { position:absolute; inset:0; display:flex; align-items:flex-end; padding:18px; background:linear-gradient(transparent 45%,rgba(12,10,9,.82)); opacity:0; transition:opacity .25s; }
.gallery-item:hover .gallery-overlay,.gallery-item:focus-visible .gallery-overlay { opacity:1; }
.gallery-name { color:#fff; font-weight:700; }.gallery-status { padding:20px; color:#d6d3d1; text-align:center; }
.lightbox { position:fixed; z-index:100; inset:0; display:flex; align-items:center; justify-content:center; padding:60px 90px; background:rgba(0,0,0,.94); backdrop-filter:blur(8px); }
.lightbox[hidden] { display:none; }
.lightbox-figure { display:flex; flex-direction:column; align-items:center; max-width:100%; max-height:100%; margin:0; }
.lightbox-figure img { max-width:min(100%,1100px); max-height:78vh; width:auto; object-fit:contain; border-radius:12px; }
.lightbox-figure figcaption { margin-top:15px; color:#e7e5e4; font-size:.92rem; text-align:center; }
.lightbox-close,.lightbox-prev,.lightbox-next { position:absolute; display:grid; width:48px; height:48px; place-items:center; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; font-size:2rem; cursor:pointer; }
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover { background:rgba(255,255,255,.24); }
.lightbox-close { top:20px; right:20px; }.lightbox-prev { left:22px; }.lightbox-next { right:22px; }

/* 8. Kontakt i stopka */
.contact-list { max-width:720px; margin:0 auto; display:grid; gap:14px; }
.contact-card { display:flex; align-items:center; gap:17px; padding:18px; border:1px solid var(--border); border-radius:14px; background:var(--surface); }
.contact-icon { display:grid; flex:0 0 48px; height:48px; place-items:center; border-radius:12px; background:var(--accent-soft); color:var(--accent-strong); font-size:1.5rem; }
.contact-label { display:block; color:var(--text-muted); font-size:.84rem; }.contact-card a,.contact-card p { font-size:1.05rem; font-weight:600; }.contact-card a:hover { color:var(--accent-strong); }
.contact-note { padding:18px; border:1px solid var(--accent-line); border-radius:14px; background:var(--accent-soft); color:var(--accent-strong); font-size:.93rem; }
.site-footer { border-top:1px solid var(--border); background:var(--surface); }
.footer-main { display:flex; align-items:flex-start; justify-content:space-between; gap:35px; padding:48px 0 40px; }
.footer-brand { max-width:310px; }.footer-brand p { margin-top:14px; color:var(--text-muted); font-size:.88rem; }
.footer-nav { display:flex; flex-wrap:wrap; gap:3px; }.footer-nav a { font-size:.85rem; }
.footer-button { min-height:42px; padding:10px 17px; background:var(--text); color:var(--page); font-size:.87rem; }.footer-button:hover { background:var(--accent-strong); color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; gap:15px; padding:20px 0; border-top:1px solid var(--border); color:var(--text-muted); font-size:.8rem; }

/* 9. Układ tabletowy i mobilny */
@media (max-width:1050px) {
  .header-inner { gap:12px; }.main-nav a { padding-inline:8px; font-size:.82rem; }.brand { font-size:1.05rem; }
  .hero-grid { gap:35px; }.hero-photo { height:430px; }.hero h1 { font-size:clamp(2.5rem,5vw,3.6rem); }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.about-grid { gap:45px; }
}
@media (max-width:800px) {
  .wrap { width:min(100% - 32px, 650px); }.section { padding:70px 0; }
  .header-inner { min-height:70px; flex-wrap:wrap; }.menu-toggle { display:grid; margin-left:auto; }
  .header-tools { order:2; }.main-nav { display:none; order:3; width:100%; flex-direction:column; align-items:stretch; padding:0 0 14px; }
  .main-nav.is-open { display:flex; }.main-nav a { padding:11px 12px; font-size:.95rem; }
  .header-inner.menu-open { padding-bottom:5px; }.hero { padding:125px 0 75px; }.hero-grid { grid-template-columns:1fr; gap:45px; }.hero h1 { max-width:650px; font-size:clamp(2.7rem,9vw,4rem); }.hero-photo-wrap { max-width:590px; margin:0 auto; }.hero-photo { height:390px; }
  .about-grid { grid-template-columns:1fr; gap:50px; }.about-photo-wrap { max-width:600px; width:100%; margin:0 auto; }.about-photo { height:390px; }.gallery-grid { columns:2; }
  .footer-main { flex-wrap:wrap; }.footer-brand { flex-basis:100%; }.footer-nav { flex:1; }
}
@media (max-width:520px) {
  .wrap { width:calc(100% - 30px); }.section { padding:60px 0; }.section-heading { margin-bottom:36px; }
  .brand { font-size:1rem; }.brand-mark { width:34px; height:34px; }.header-tools { gap:6px; }.accent-picker { gap:4px; padding:4px; }.swatch { width:19px; height:19px; }.theme-toggle,.menu-toggle { width:37px; height:37px; }
  .hero { padding-top:116px; }.hero h1 { font-size:2.55rem; }.hero-description { font-size:1rem; }.hero-actions { flex-direction:column; align-items:stretch; }.hero-highlights { flex-direction:column; gap:8px; }.hero-photo { height:300px; }.photo-badge { left:8px; bottom:-15px; padding:12px 16px; }
  .service-grid { grid-template-columns:1fr; gap:15px; }.service-card { padding:23px; }.about-photo { height:310px; }.stats-grid { gap:20px 12px; }.stat strong { font-size:1.3rem; }.stat span { font-size:.78rem; }
  .gallery-grid { columns:1; }.gallery-item { margin-bottom:14px; }.gallery-overlay { opacity:1; }.gallery-item img { max-height:450px; object-fit:cover; }
  .lightbox { padding:60px 15px; }.lightbox-prev { left:8px; }.lightbox-next { right:8px; }.lightbox-close { top:10px; right:10px; }.lightbox-prev,.lightbox-next,.lightbox-close { width:40px; height:40px; }
  .contact-card { padding:14px; }.contact-card a,.contact-card p { font-size:.94rem; }.footer-main { padding:36px 0 28px; }.footer-nav { flex-basis:100%; }.footer-bottom { flex-direction:column; gap:6px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; } }
