/* ============ design tokens ============ */
:root{
  --bg:#FFFFFF;
  --bg-2:#F5F5F3;
  --ink:#17181C;
  --dark:#121317;
  --dark-2:#1B1C21;
  --accent:#B4302F;
  --accent-deep:#8E2523;
  --steel:#5C626C;
  --line:#E6E5E2;
  --line-dark:rgba(255,255,255,0.12);
  --muted:#6B6E75;
  --muted-light:#A7A9AE;

  /* Tło sekcji hero (strona główna) — podmień plik/URL, aby zmienić zdjęcie */
  --hero-bg-image: url('photos/main_photo-optimized.jpg');
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; padding:0; background:var(--bg); color:var(--ink);
  font-family:'Inter', Arial, sans-serif; -webkit-font-smoothing:antialiased;
  font-size:16px; line-height:1.6; width:100%;
}
h1,h2,h3{font-family:'Manrope', sans-serif; font-weight:800; margin:0; letter-spacing:-0.02em; line-height:1.15;}
a{color:inherit;}
img{max-width:100%;}
.wrap{max-width:1160px; margin:0 auto; padding:0 24px;}

.eyebrow{
  font-family:'Manrope'; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--steel);
  font-weight:700; margin-bottom:14px; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--accent); display:inline-block; flex:none;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s cubic-bezier(.2,.6,.2,1), transform .6s cubic-bezier(.2,.6,.2,1);}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} }

/* ---------- buttons ---------- */
.btn-primary{
  background:var(--accent); color:#fff !important; text-decoration:none; padding:14px 26px;
  font-size:0.88rem; font-weight:700; letter-spacing:0.01em; transition:background .15s ease; border-radius:3px;
  border:none; cursor:pointer; display:inline-block;
}
.btn-primary:hover{background:var(--accent-deep); color:#fff;}
.btn-ghost{
  color:#fff; text-decoration:none; padding:14px 4px; font-size:0.88rem; font-weight:600;
  border-bottom:1px solid rgba(255,255,255,0.4); display:inline-flex; align-items:center; gap:8px;
}
.btn-ghost svg{flex:none;}
.btn-ghost:hover{border-color:#fff; color:#fff;}

/* ============ header ============ */
.site-header{
  background:rgba(255,255,255,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:80; transition:box-shadow .25s ease;
}
.site-header.scrolled{box-shadow:0 4px 20px rgba(0,0,0,0.06);}
.header-bar{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding-top:14px; padding-bottom:14px; transition:padding .25s ease;
}
.site-header.scrolled .header-bar{padding-top:8px; padding-bottom:8px;}
.brand{display:flex; align-items:center; flex:0 1 auto; min-width:0;}
.logo-mark{height:50px; width:auto; max-width:100%; transition:height .25s ease; flex:none;}
.site-header.scrolled .logo-mark{height:38px;}

.desktop-nav{display:flex; align-items:center; gap:32px; flex:none;}
.desktop-nav a{
  text-decoration:none; font-size:0.85rem; color:var(--muted); font-weight:600; letter-spacing:0.02em;
  padding:6px 0; position:relative; white-space:nowrap;
}
.desktop-nav a.active{color:var(--ink);}
.desktop-nav a.active::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--accent);}
.desktop-nav a:hover{color:var(--ink);}

.header-actions{display:flex; align-items:center; gap:10px; flex:none;}
.header-cta{
  font-size:0.85rem; padding:11px 20px; background:var(--accent); color:#fff; text-decoration:none; white-space:nowrap;
  transition:background .15s ease; font-weight:700; border-radius:3px;
}
.header-cta:hover{background:var(--accent-deep); color:#fff;}
.icon-call{
  display:none; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid var(--line);
  border-radius:50%; text-decoration:none; color:var(--ink); flex:none;
}
.icon-call svg{width:18px; height:18px;}
.nav-toggle{
  display:none; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid var(--line);
  border-radius:50%; background:none; cursor:pointer; flex:none; color:var(--ink); padding:0;
}
.nav-toggle svg{width:18px; height:18px;}

.mobile-nav{background:var(--dark); border-top:1px solid var(--line-dark);}
.mobile-nav-inner{padding:22px 24px 28px; display:flex; flex-direction:column;}
.mobile-nav-inner a{
  color:#fff; text-decoration:none; font-family:'Manrope'; font-weight:700; font-size:1.3rem;
  padding:12px 0; border-bottom:1px solid var(--line-dark);
}
.mobile-nav-inner a.active{color:var(--accent);}
.mobile-nav-foot{margin-top:20px; display:flex; flex-direction:column; gap:12px;}
.mobile-nav-foot a{
  border:none; font-family:'Inter'; font-weight:600; font-size:0.95rem; color:#fff; display:flex; align-items:center; gap:10px; padding:0;
}
.mobile-nav-foot a svg{width:16px; height:16px; color:var(--accent); flex:none;}

@media(max-width:900px){
  .desktop-nav{display:none;}
  .header-cta{display:none;}
  .icon-call{display:flex;}
  .nav-toggle{display:flex;}
}

/* ============ hero ============ */
.hero{position:relative; color:#F1F1EF; overflow:hidden; border-bottom:1px solid var(--line); background:#15161B;}
.hero-bg{position:absolute; inset:0; z-index:0; overflow:hidden; background:#15161B;}
.hero-bg-photo{
  position:absolute; inset:0; z-index:1;
  background-image: var(--hero-bg-image);
  background-size:cover; background-position:center;
  transform:scaleX(-1); /* lustrzane odbicie, żeby twarz na zdjęciu wypadła po prawej stronie */
}
.hero-bg::after{
  content:""; position:absolute; inset:0; z-index:2;
  background-image:
    radial-gradient(130% 90% at 8% 112%, rgba(180,48,47,0.32) 0%, rgba(180,48,47,0) 55%),
    radial-gradient(80% 60% at 102% -6%, rgba(96,106,122,0.22) 0%, rgba(96,106,122,0) 58%),
    linear-gradient(0deg, rgba(18,19,23,0.88), rgba(18,19,23,0.62));
}
.hero-bg::before{
  content:""; position:absolute; inset:0; z-index:3; opacity:0.5;
  background-image:repeating-linear-gradient(118deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 26px);
}
.hero-bg .bolt{position:absolute; z-index:4; right:-40px; top:-30px; width:420px; height:420px; opacity:0.05; color:#fff;}
.hero-bg .bolt svg{width:100%; height:100%;}
@media(max-width:700px){ .hero-bg .bolt{width:260px; height:260px; right:-60px; top:auto; bottom:100px; opacity:0.045;} }

.hero-wrap{position:relative; z-index:2; padding-top:40px; padding-bottom:0;}
.hero-inner{max-width:660px; padding-bottom:64px;}
.hero .eyebrow{color:var(--muted-light); margin-bottom:12px;}
.hero h1{font-size:clamp(2rem, 4.6vw, 3.2rem); line-height:1.15;}
.hero-actions{margin-top:40px; display:flex; gap:18px; flex-wrap:wrap; align-items:center;}

/* owner trust chip */
.owner-chip{display:flex; align-items:center; gap:14px; margin-top:44px;}
.owner-avatar{
  width:54px; height:54px; border-radius:50%; overflow:hidden; flex:none;
  border:2px solid rgba(255,255,255,0.5);
}
.owner-avatar img{width:100%; height:100%; object-fit:cover; display:block;}
.owner-chip .oc-text b{font-family:'Manrope'; font-weight:800; font-size:0.98rem; color:#fff; display:block; line-height:1.2;}
.owner-chip .oc-text span{font-size:0.83rem; color:var(--muted-light);}

/* stats band inside hero bottom */
.hero-stats{
  position:relative; z-index:2; border-top:1px solid rgba(255,255,255,0.14);
  display:grid; grid-template-columns:repeat(4,1fr);
}
.hstat{padding:28px 8px 34px 0; border-left:1px solid rgba(255,255,255,0.14); padding-left:24px;}
.hstat:first-child{border-left:none; padding-left:0;}
.hstat b{font-family:'Manrope'; font-weight:800; font-size:1.9rem; display:block; color:#fff; line-height:1;}
.hstat span{font-size:0.78rem; color:var(--muted-light); display:block; margin-top:6px; line-height:1.35;}
@media(max-width:700px){
  .hero-wrap{padding-top:28px;}
  .hero-inner{padding-bottom:44px;}
  .hero-stats{grid-template-columns:1fr 1fr;}
  .hstat{border-left:none; padding-left:0; padding-top:20px; padding-bottom:20px;}
  .hstat:nth-child(2n){padding-left:20px; border-left:1px solid rgba(255,255,255,0.14);}
}

/* ============ generic sections ============ */
section.block{padding:88px 0;}
section.block.tight{padding:60px 0;}
section.block.alt{background:var(--bg-2);}
section.block.dark{background:var(--dark); color:#fff;}
.section-head{margin-bottom:40px;}
.section-head p.service-title-text{
  font-family:'Manrope'; font-size:1.6rem; font-weight:800; letter-spacing:-0.01em;
}
@media(max-width:700px){ section.block{padding:56px 0;} }

/* ============ services ============ */
.services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.service-card{background:var(--bg); padding:32px 26px; transition:background .2s ease;}
.service-card:hover{background:var(--bg-2);}
.service-card-top{display:flex; align-items:center; gap:14px; margin-bottom:14px;}
.service-num{font-family:'Manrope'; font-size:0.75rem; letter-spacing:0.06em; color:var(--accent); font-weight:800;}
.service-icon{width:36px; height:36px; display:flex; align-items:center; justify-content:center; flex:none;}
.service-icon img{width:30px; height:30px; object-fit:contain;}
.service-card h3{font-size:1.08rem; font-weight:800;}
.service-card ul{list-style:none; margin:14px 0 0; padding:0;}
.service-card li{font-size:0.9rem; color:var(--muted); padding:9px 0; border-top:1px solid var(--line); line-height:1.5;}
.service-card li:first-child{border-top:none;}
@media(max-width:900px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.services-grid{grid-template-columns:1fr;}}

.cta-band{text-align:center;}
.cta-band h2{font-size:clamp(1.5rem,2.4vw,1.95rem); max-width:26ch; margin:0 auto;}
.cta-band .btn-primary{margin-top:26px;}

/* ============ about ============ */
.about-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:56px; align-items:start;}
.about-photo{position:relative; border:1px solid var(--line); border-radius:8px; overflow:hidden; aspect-ratio:4/5; background:var(--dark-2);}
.about-photo img{width:100%; height:100%; object-fit:cover; display:block; filter:brightness(0.72) saturate(1.03);}
.about-photo .cap{
  position:absolute; left:0; bottom:0; right:0; padding:18px 20px;
  background:linear-gradient(0deg, rgba(15,16,20,0.85), transparent);
  color:#fff; font-family:'Manrope'; font-weight:700; font-size:0.95rem;
}
.about-photo .cap span{display:block; font-family:'Inter'; font-weight:400; font-size:0.78rem; color:var(--muted-light); margin-top:3px;}
.about-text p{color:var(--ink); font-size:1.02rem; line-height:1.75; margin:0 0 26px;}

.timeline{margin-top:2px;}
.t-row{display:grid; grid-template-columns:70px 1fr; gap:20px; padding:22px 0; border-top:1px solid var(--line);}
.t-row:first-child{border-top:none; padding-top:0;}
.t-year{font-family:'Manrope'; font-size:0.9rem; color:var(--accent); font-weight:800; padding-top:2px;}
.t-row h3{font-size:1.04rem; font-weight:800;}
.t-row p{margin:6px 0 0; color:var(--muted); font-size:0.95rem; line-height:1.6;}
.pull-quote{
  margin-top:36px; padding:26px 0 0; border-top:1px solid var(--line);
  font-family:'Manrope'; font-size:1.2rem; font-weight:700; line-height:1.5; max-width:42ch; color:var(--ink);
}
@media(max-width:820px){.about-grid{grid-template-columns:1fr; gap:32px;} .about-photo{aspect-ratio:16/10; max-height:380px;}}

/* ============ faq ============ */
.faq-list{max-width:820px; margin:0 auto;}
.faq-item{padding:22px 0; border-top:1px solid var(--line);}
.faq-item:first-child{border-top:none; padding-top:0;}
.faq-item h3{font-size:1.04rem; font-weight:800;}
.faq-item p{margin:8px 0 0; color:var(--muted); font-size:0.95rem; line-height:1.6;}

/* ============ reviews ============ */
.opinion-section{background:var(--dark); padding:88px 0; color:#fff;}
.review-title-text{
  font-family:'Manrope'; font-size:1.6rem; font-weight:800; letter-spacing:-0.01em; color:#fff; margin-bottom:36px;
}
.opinion-box{
  background:var(--dark-2); border:1px solid var(--line-dark); border-radius:3px;
  padding:32px 28px; margin:10px; color:#fff; font-family:'Inter'; text-align:center;
  display:grid; grid-template-columns:1fr; row-gap:4px;
  grid-template-areas:
    "quote"
    "text"
    "name"
    "date"
    "stars";
}
.opinion-box::before{
  content:'"'; grid-area:quote; font-family:'Manrope'; font-size:2.2rem; font-weight:800; color:var(--accent);
  line-height:0.6; margin-bottom:10px;
}
.opinion-box .review-text{
  grid-area:text; color:#D5D6D9; font-size:0.96rem; line-height:1.6;
  margin:0 0 16px; padding-bottom:16px; border-bottom:1px solid var(--line-dark);
}
.opinion-box .name{grid-area:name; font-weight:700; font-size:0.95rem; font-family:'Manrope'; color:#fff;}
.opinion-box .date{grid-area:date; color:var(--muted-light); font-size:0.8rem; margin-top:2px;}
.opinion-box .stars{grid-area:stars; margin-top:6px;}
.opinion-box .stars svg{width:14px; height:14px;}
.carousel-item{display:flex; justify-content:center; padding:0 12px;}
.carousel-inner{padding:0 26px;}
.carousel-control-prev,.carousel-control-next{width:5%; z-index:1;}
.carousel-control-prev{left:0;}
.carousel-control-next{right:0;}
@media(min-width:992px){
  .carousel-item{padding:0 40px;}
  .carousel-inner{padding:0 70px;}
}

/* ============ contact ============ */
.contact-form-section{background:var(--bg);}
.form-title-red{font-family:'Manrope'; font-weight:800; color:var(--accent); font-size:1.1rem; letter-spacing:0.04em; text-transform:uppercase;}
.form-title-black{font-family:'Manrope'; font-weight:800; font-size:1.8rem; margin-bottom:36px !important;}
.contact-grid{display:grid; grid-template-columns:1.2fr 0.8fr; gap:52px; align-items:flex-start;}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr; gap:36px;}}

.form-box{background:none; border:none; padding:0 !important;}
.hp-field{position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; opacity:0;}

.recaptcha-error{
  display:none; color:var(--accent-deep); font-size:0.85rem; font-weight:600;
  margin:-6px 0 16px;
}
.recaptcha-error.show{display:block;}

.field{margin-bottom:22px;}
.field label{display:block; font-size:0.78rem; color:var(--muted); margin-bottom:8px; letter-spacing:0.02em; font-weight:600;}
.field .form-control{
  width:100%; border:1px solid var(--line); background:var(--bg-2); padding:12px 14px;
  font-family:'Inter'; font-size:1rem; color:var(--ink); border-radius:3px; box-shadow:none;
}
.field .form-control:focus{outline:none; border-color:var(--accent); background:#fff; box-shadow:none;}
.field textarea.form-control{min-height:110px; resize:vertical;}
.field .invalid-feedback{font-size:0.76rem;}
.form-row-2{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media(max-width:520px){.form-row-2{grid-template-columns:1fr;}}
.submit-row{display:flex; align-items:center; gap:24px; margin-top:8px; flex-wrap:wrap;}
.submit-row .call-note{font-size:1rem; color:var(--ink); font-weight:600;}
.submit-row .call-note a{color:var(--accent); text-decoration:none; font-weight:800; font-family:'Manrope'; font-size:1.15rem; white-space:nowrap;}
.submit-row .call-note a:hover{color:var(--accent-deep);}

.contact-side{background:var(--dark); color:#fff; padding:34px 28px; border-radius:3px;}
.contact-side .eyebrow{color:var(--muted-light);}
.contact-side .phone-big{
  font-family:'Manrope'; font-weight:800; font-size:1.4rem; color:#fff; text-decoration:none; display:flex;
  align-items:center; gap:10px; margin:8px 0 10px;
}
.contact-side .phone-big img{width:20px; height:20px; filter:brightness(0) invert(1);}
.contact-side .phone-big:hover{color:var(--accent);}
.contact-side p{color:var(--muted-light); font-size:0.92rem; margin:0;}
.contact-side .divider{height:1px; background:var(--line-dark); margin:22px 0;}
.contact-side a.mail{text-decoration:none; color:#fff; font-size:0.95rem; font-weight:600; word-break:break-all;}
.contact-side a.mail:hover{color:var(--accent);}

/* ============ flash message ============ */
.flash-wrap{padding-top:18px;}
.alert-flash{
  position:relative; padding:14px 44px 14px 18px; border-radius:3px; font-size:0.92rem; font-weight:600;
  margin-bottom:0;
}
.alert-flash.is-success{background:#EAF6EC; color:#256029; border:1px solid #BEE3C1;}
.alert-flash.is-error{background:#FBECEC; color:var(--accent-deep); border:1px solid #F1C6C5;}
.alert-flash-close{
  position:absolute; top:8px; right:10px; background:none; border:none; font-size:1.2rem; line-height:1;
  cursor:pointer; color:inherit; opacity:0.6;
}
.alert-flash-close:hover{opacity:1;}

/* ============ footer ============ */
.site-footer{background:var(--bg-2); border-top:1px solid var(--line); padding:44px 0 24px;}
.footer-top{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; padding-bottom:24px; border-bottom:1px solid var(--line);}
.footer-logo{height:44px; width:auto;}
.footer-contact{display:flex; gap:22px; flex-wrap:wrap;}
.footer-contact a{text-decoration:none; color:var(--muted); font-weight:600; font-size:0.88rem; display:flex; align-items:center; gap:8px;}
.footer-contact a img{width:16px; height:16px;}
.footer-contact a:hover{color:var(--ink);}
.footer-bottom{padding-top:18px; font-size:0.76rem; color:var(--muted); letter-spacing:0.01em;}
@media(max-width:600px){.footer-top{flex-direction:column; align-items:flex-start;}}
