:root{
  /* Ciepła, przytulna paleta */
  --bg:#fffdf9;           /* jasne kremowe tło */
  --ink:#212224;          /* wyraźny kolor tekstu */
  --muted:#6e7179;        /* stonowany szary */
  --brand:#FF2A63;        /* AKCENT – kolor litery U z logo */
  --brand-2:#f6b6bc;      /* jaśniejszy odcień na elementy drugorzędne */
  --surface:#faf6f1;      /* delikatna powierzchnia sekcji */
  --shadow:0 6px 20px rgba(25,15,5,.08);
  --radius:14px;
  --nav-hover:#f9efef;    /* przytulny hover w nawigacji */
  --team-photo-h: clamp(220px, 28vw, 320px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-family:"Manrope", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  line-height:1.6;
  background:var(--bg);
}
.container{width:min(1220px, 92%); margin-inline:auto}
.skip-link{position:absolute; left:-999px; top:-999px}
.skip-link:focus{left:1rem; top:1rem; background:#000; color:#fff; padding:.5rem 1rem; border-radius:.5rem}

/* Header */
.site-header{position:sticky; top:0; z-index:50; background:rgba(255,253,249,.86); backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid #efeae3; box-shadow:0 2px 10px rgba(25,15,5,.05); transition:background-color .2s ease, box-shadow .2s ease, border-color .2s ease}
.site-header::after{content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--brand); opacity:.14; pointer-events:none}
.site-header.is-scrolled{background:rgba(255,253,249,.95); box-shadow:0 10px 24px rgba(25,15,5,.12); border-bottom-color:#e9e2d9}
.site-header.is-scrolled::after{opacity:.22}
.site-header.sleek .header-inner{padding:.6rem .2rem}
.site-header.sleek .logo{letter-spacing:.2px}
.site-header.sleek .site-nav a{border-radius:10px}
.site-header.sleek .site-nav a:hover{background:var(--nav-hover); box-shadow:0 2px 10px rgba(226,90,103,.12); color:var(--brand)}
.site-nav a:focus-visible{outline:2px solid color-mix(in srgb, var(--brand) 60%, #fff); outline-offset:2px}
.header-inner{display:flex; align-items:center; justify-content:flex-end; gap:.8rem; padding:.8rem 0}
.logo{display:none}
.site-nav ul{display:flex; gap:1.2rem; list-style:none; padding:0; margin:0}
.site-nav a{color:var(--ink); text-decoration:none; padding:.4rem .7rem; border-radius:.5rem; text-transform:uppercase; letter-spacing:.05em; font-family:"Manrope", system-ui, -apple-system, Segoe UI, Roboto, Arial; font-weight:600}
.site-nav a:hover{background:var(--nav-hover)}
.nav-toggle{display:none; border:0; background:transparent; font-size:1.3rem}
.nav-toggle:hover{color:var(--brand)}

/* Hero */
/* Intro (logo + mapa) */
.intro{min-height:100svh; display:flex; align-items:center; position:relative; padding:3.6rem 0}
.intro-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:3rem; align-items:center}
.intro-grid.single{grid-template-columns:1fr; text-align:center; justify-items:center}
.intro-left .big-logo{max-width:min(760px, 92%); width:100%; display:block; margin:0 auto 0}
.intro-left .eyebrow{
  display:inline-block;
  margin:0 0 2rem;
  font-family: "Lato", "Manrope", system-ui, -apple-system, Segoe UI, Roboto, Arial;
  font-weight:900;
  font-size:clamp(1.4rem, 2.1vw + .8rem, 2.4rem);
  line-height:1.02;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--brand);
  text-shadow:0 1px 0 rgba(255,255,255,.85);
  filter: drop-shadow(0 12px 26px color-mix(in srgb, var(--brand) 42%, transparent));
}
.intro-left .slogan{margin:.6rem 0 0; font-size:clamp(1.6rem, 3.5vw + .8rem, 3.2rem);}
.intro-left .slogan-sub{margin:.2rem 0 .4rem; font-size:clamp(1.2rem, 1.8vw + .8rem, 2rem); color:var(--muted)}
.intro .slogan, .intro .slogan-sub{
  font-family: "Manrope", system-ui, -apple-system, Segoe UI, Roboto, Arial;
  font-weight: 800;
}
.intro-left .tagline{margin:.6rem auto 0; font-size:1.1rem; max-width:800px}
.intro-right .map{width:100%; max-width:min(620px, 92%); border-radius:20px; box-shadow:var(--shadow)}
.hero-cta{margin-top:.8rem}
@media (max-width: 900px){.intro-grid{grid-template-columns:1fr}}

/* Wow-in subtle animation */
.wow-in{opacity:0; transform:translateY(10px); animation:fadeUp .7s ease .05s forwards}
.wow-in.delay{animation-delay:.18s}
@keyframes fadeUp{to{opacity:1; transform:none}}

/* Scroll cue */
.scroll-cue{position:absolute; left:50%; bottom:18px; transform:translateX(-50%); text-decoration:none; color:var(--brand); font-size:1.6rem; opacity:.8}
.scroll-cue:hover{opacity:1}

/* Sections */
.section{padding:3.2rem 0}
.section.alt{background:var(--surface)}
.two-col{display:grid; gap:2rem; grid-template-columns:1fr 1fr; align-items:center}
#about .two-col{grid-template-columns:.9fr 1.1fr; align-items:stretch}
#method .two-col{grid-template-columns:1.1fr .9fr; align-items:center}
@media (max-width: 920px){.two-col{grid-template-columns:1fr}}

/* On mobile, show text first and photo second in Method */
@media (max-width: 920px){
  #method .two-col{ grid-template-columns:1fr; grid-template-areas: "text" "photo" }
  #method .two-col > div{ grid-area: text }
  #method .two-col > .photo-card{ grid-area: photo }
}

/* On mobile, show text first and photo second in About */
@media (max-width: 920px){
  #about .two-col{ grid-template-columns:1fr; grid-template-areas: "text" "photo" }
  #about .two-col > div{ grid-area: text }
  #about .two-col > .photo-card{ grid-area: photo }
}

/* Also stack About on small tablets and ensure natural image height */
@media (max-width: 1100px){
  #about .two-col{ grid-template-columns:1fr; grid-template-areas: "text" "photo" }
  #about .two-col > div{ grid-area: text }
  #about .two-col > .photo-card{ grid-area: photo; margin-top:1rem }
  #about .photo-card{ height:auto }
  #about .photo-card img{ height:auto; width:100%; object-fit:cover }
}

/* Make About photo match text block height on desktop */
@media (min-width: 921px){
  #about .photo-card{height:100%}
  #about .photo-card img{height:100%; object-fit:cover}
}

/* Method image: size by width (no bars), center with text; no forced height */
@media (min-width: 921px){
  #method .photo-card{height:auto; display:block}
  #method .photo-card img{width:100%; height:auto; object-fit:cover; object-position:center}
}

/* Offset for sticky header when using in-page anchors */
section:target{scroll-margin-top:74px}

.tick-list{padding:0 0 0 1.2rem}
.tick-list li{margin:.35rem 0}

/* Method list: move non-bold text to a new line */
.method-list{ padding-left:1.2rem; margin-top:.1rem }
.method-list li{ margin:.35rem 0 }
.method-list li strong{ display:block; margin-bottom:0 }

/* Tighten space between paragraph and list in Method */
#method .two-col p:last-of-type{ margin-bottom:.35rem }

.photo-card{border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); margin:0; background:#fff}
.photo-card img{width:100%; height:auto; display:block}

/* Cards */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:1rem}
@media (max-width: 900px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width: 600px){.cards{grid-template-columns:1fr}}
.cards{grid-auto-rows:1fr}
@media (min-width: 1200px){
  #classes .cards{grid-template-columns:repeat(4,1fr)}
}
.card{background:#fff; border-radius:18px; padding:1.15rem 1.2rem; box-shadow:var(--shadow); border:1px solid #f0eae4; transition:transform .15s ease, box-shadow .15s ease}
.card h3, .card h4{margin:.2rem 0 .6rem; font-size:1.05rem}
.card:hover{transform:translateY(-3px); box-shadow:0 14px 32px rgba(25,15,5,.12)}
@media (max-width: 700px){
  .card h3, .card h4{display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
}
.meta{color:var(--muted); font-size:.95rem}

/* Gallery */
.gallery{display:grid; grid-template-columns:repeat(5, 1fr); gap:.6rem; margin-top:1rem}
@media (max-width: 1000px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media (max-width: 640px){.gallery{grid-template-columns:repeat(2,1fr)}}
.gallery figure{margin:0; overflow:hidden; border-radius:12px; box-shadow:var(--shadow)}
.gallery img{width:100%; height:220px; object-fit:cover; display:block; transition:transform .2s ease}
.gallery img:hover{transform:scale(1.03)}

/* Contact */
.contact{align-items:center}
.contact .contact-details{align-self:center}
.contact-form .grid{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
.contact-form label{display:flex; flex-direction:column; gap:.35rem}
.contact-form input, .contact-form textarea{border:1px solid #e5e7eb; padding:.7rem .8rem; border-radius:.6rem; font:inherit}
.contact-details{background:#fff; padding:1rem 1.1rem; border-radius:var(--radius); box-shadow:var(--shadow)}
@media (max-width: 800px){.contact-form .grid{grid-template-columns:1fr}}

/* Buttons */
.btn{display:inline-block; background:var(--brand); color:#fff; text-decoration:none; border:0; padding:.7rem 1rem; border-radius:.7rem; font-weight:700; box-shadow:var(--shadow)}
.btn:hover{filter:brightness(1.06)}
.btn-secondary{background:var(--brand); color:#fff}
.btn-sm{padding:.45rem .7rem}

.center{text-align:center}
.muted{color:var(--muted)}
.micro{font-size:.85rem}

/* Footer */
.site-footer{border-top:1px solid #efeae3; padding:1.2rem 0; background:#fff}
.footer-inner{display:flex; align-items:center; justify-content:space-between}
.site-footer nav{display:flex; gap:1rem}

/* Mobile nav */
@media (max-width: 760px){
  .nav-toggle{display:block}
  .site-nav{position:absolute; right:1rem; top:60px; background:#fff; border-radius:12px; box-shadow:var(--shadow); padding:.5rem; display:none}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column; gap:.2rem}
}

/* Utilities */
.section ul{padding-left:1.2rem; list-style: disc}
.section li{margin:.38rem 0; line-height:1.7}
.section p, .card p, .contact-details p{
  text-align: justify;
  text-justify: inter-word;
  hyphens: none;              /* do not split words */
  -webkit-hyphens: none;      /* Safari/iOS */
  overflow-wrap: normal;
  word-break: normal;
}

/* Lists remain clean and readable */
.section li, .card li{ text-align:left; text-justify:auto; hyphens:none; -webkit-hyphens:none }
.section li::marker, .card li::marker{ color:var(--brand) }

/* Slightly nicer heading wrap */
.section h1, .section h2, .section h3{ text-wrap: balance; font-family: "Manrope", system-ui, -apple-system, Segoe UI, Roboto, Arial; font-weight: 700 }

/* Don’t hyphenate headings or navigation */
.section h1, .section h2, .section h3, .section h4,
.site-header .logo, .site-nav a, .btn { hyphens: none }

/* Bigger text when there is room next to a photo (desktop two-column sections) */
@media (min-width: 921px){
  .two-col:not(.contact) p,
  .two-col:not(.contact) li{ font-size:1.125rem }
}

/* Team: show full photos without cropping */
#team .card .photo-card{ height:auto; max-width:100%; margin:.4rem 0 1rem; }
#team .card .photo-card img{ width:100%; height:auto; display:block; }
#team .card > img{ width:100%; height:auto; border-radius:12px; display:block; margin:.4rem 0 1rem; }

/* Pricing tables */
.price-tables{display:grid; grid-template-columns:1fr; gap:1rem; margin-top:.6rem}
@media (min-width: 900px){.price-tables{grid-template-columns:1fr}}
.table-card{background:#fff; border-radius:18px; box-shadow:var(--shadow); border:1px solid #f0eae4; overflow:hidden}
.pricing-table{width:100%; border-collapse:separate; border-spacing:0; font-size:1rem}
.pricing-table caption{padding:1rem 1.2rem; font-weight:800; text-align:center; color:var(--ink)}
.pricing-table thead th{background:color-mix(in srgb, var(--brand) 12%, #fff); color:#222; text-align:center; padding:.8rem 1rem; font-weight:800}
.pricing-table tbody td{padding:.7rem 1rem; border-top:1px solid #eee}
.pricing-table tbody tr:nth-child(odd) td{background:#faf9f7}
.pricing-table tbody tr:hover td{background:#fff7f9}
.pricing-table th, .pricing-table td{vertical-align:middle; text-align:center}
@media (min-width: 681px){
  .pricing-table th+th, .pricing-table td+td{ border-left:1px solid #eae6e0 }
}
@media (max-width: 680px){
  .pricing-table thead{display:none}
  .pricing-table tr{display:grid; grid-template-columns:1fr; padding:.2rem 0; border-top:1px solid #eee}
  .pricing-table td{display:block; padding:.5rem .9rem}
  .pricing-table td:first-child{font-weight:700}
}
