:root {
    --paper:#cfe0d367;
    --ink:#20231f;
    --muted:#686a62;
    --wood:#527668;
    --dark:#282c26;
    --line:#ca931d;
    --white:#fffdf8;
    --sage:#e2e5da;
    --max:1200px
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:10px
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:Inter,Arial,sans-serif;
    line-height:2.5
}

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

.wrap {
    width:min(var(--max),calc(100% - 42px));
    margin:auto
}

.topline {
    background:var(--dark);
    color:#f5f5f5;
    font-size:.78rem;
    letter-spacing:.06em;
    padding:1px 0
}

.topline .wrap {
    display:flex;
    justify-content:space-between;
    gap:10px
}

.nav {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:26px;
    padding:19px 0
}

.brand {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.brand img {
  display: block;
  width: auto;
  height: 250px;
  max-width: 250px;
  object-fit: contain;
  background: transparent;
}

@media (max-width: 600px) {
  .brand img {
    height: px;
    max-width: 145px;
  }
}

.links {
    display:flex;
    gap:24px;
    font-size:.92rem
}

.links a:hover {
    color:var(--wood)
}

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--dark);
    border:1px solid var(--dark);
    color:white;
    padding:13px 19px;
    font-size:.91rem;
    font-weight:700;
    transition:.2s
}

.btn:hover {
    background:var(--wood);
    border-color:var(--wood)
}

.btn.outline {
    background:transparent;
    color:var(--ink);
    border-color:#aaa79d
}

.btn.outline:hover {
    background:var(--white)
}

.hero {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:42px;
    align-items:center;
    padding:35px 0 76px
}

.eyebrow {
    text-transform:uppercase;
    letter-spacing:.17em;
    font-size:.74rem;
    font-weight:800;
    color:#815a3d
}

.hero h1 {
    font-size:clamp(2.8rem,5.5vw,5.6rem);
    line-height:.99;
    letter-spacing:-.06em;
    margin:17px 0 22px
}

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

.hero p {
    font-size:1.08rem;
    color:var(--muted);
    max-width:520px
}

.actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:27px
}

.hero-image {
    height:570px;
    position:relative;
    overflow:hidden;
    background:#d6c5ad
}

.hero-image img.hero-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 45%;
    opacity: 0;
    transition: opacity 0.8s ease;
}

.hero-image img.hero-slide.active {
    opacity: 1;
}

.hero-image .image-tag {
    z-index: 2;
}

.image-tag {
    position:absolute;
    bottom:18px;
    left:18px;
    background:rgba(255,253,248,.94);
    padding:10px 14px;
    font-size:.85rem
}

.mini-line {
    margin-top:22px;
    color:var(--muted);
    font-size:.85rem
}

.section {
    padding:82px 0
}

.section-head {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:28px;
    margin-bottom:32px
}

.section h2 {
    font-size:clamp(2rem,3.5vw,3.4rem);
    line-height:1.08;
    letter-spacing:-.045em;
    margin:9px 0 0
}

.section-head>p {
    max-width:460px;
    color:var(--muted);
    margin:0
}

.services {
    background:var(--white)
}

.service-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:13px
}

.service {
    border:1px solid var(--line);
    padding:24px 21px;
    min-height:220px;
    display:flex;
    flex-direction:column
}

.num {
    font-size:.76rem;
    color:var(--wood);
    font-weight:800;
    letter-spacing:.12em
}

.service h3 {
    font-size:1.18rem;
    margin:25px 0 8px
}

.service p {
    font-size:.91rem;
    color:var(--muted);
    margin:0 0 16px
}

.service a {
    font-size:.88rem;
    font-weight:750;
    margin-top:auto
}

.gallery {
    background:#e9e5dc
}

.gallery-grid {
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr;
    grid-auto-rows:275px;
    gap:13px
}

.tile {
    position:relative;
    overflow:hidden;
    background:#c9b69e
}

.tile:first-child {
    grid-row:span 2
}

.tile img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .5s
}

.tile:hover img {
    transform:scale(1.035)
}

.tile span {
    position:absolute;
    left:13px;
    bottom:13px;
    background:rgba(255,253,248,.94);
    padding:8px 11px;
    font-size:.84rem
}

.gallery-note {
    font-size:.82rem;
    color:var(--muted);
    margin:17px 0 0
}

.process-grid {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:22px;
    margin-top:36px
}

.step {
    border-top:1px solid var(--wood);
    padding-top:14px
}

.step b {
    font-size:.76rem;
    color:var(--wood);
    letter-spacing:.12em
}

.step h3 {
    font-size:1rem;
    margin:12px 0 5px
}

.step p {
    font-size:.88rem;
    color:var(--muted);
    margin:0
}

.about {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:55px;
    align-items:stretch
}

.about-image {
    min-height:390px
}

.about-image img {
    width:100%;
    height:100%;
    object-fit:cover
}

.about-copy {
    align-self:center
}

.about-copy p {
    color:var(--muted)
}

.about-quote {
    background:var(--sage);
    padding:22px 25px;
    margin-top:24px;
    font-size:1.05rem;
    font-weight:700
}

.contact {
    background:var(--dark);
    color:#faf7ef
}

.contact .eyebrow {
    color:#d7b18b
}

.contact .section-head>p {
    color:#c9c9c0
}

.contact-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px
}

.contact-card {
    border:1px solid #555a50;
    padding:27px
}

.contact-card h3 {
    margin-top:0;
    font-size:1.35rem
}

.contact-card p {
    color:#d2d0c8
}

.contact-cta {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:23px
}

.contact .btn {
    background:#f5f2eb;
    border-color:#f5f2eb;
    color:var(--dark)
}

.contact .btn:hover {
    background:#d7b18b;
    border-color:#d7b18b
}

.contact .btn.outline {
    background:transparent;
    color:#fff;
    border-color:#8a8b81
}

.contact .btn.outline:hover {
    background:#444940
}

.contact-note {
    font-size:.83rem;
    color:#bdbfb5;
    margin-top:18px
}

.inquiry-form {
    display: grid;
    gap: 9px;
    margin-top: 20px;
}

.inquiry-form label {
    margin-top: 7px;
    color: #f5f2eb;
    font-size: .92rem;
}

.inquiry-form input,
.inquiry-form select,
.inquiry-form textarea {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #77796f;
    border-radius: 2px;
    background: #faf7ef;
    color: #252821;
    font: inherit;
}

.inquiry-form textarea {
    resize: vertical;
    min-height: 120px;
}

.inquiry-form input:focus,
.inquiry-form select:focus,
.inquiry-form textarea:focus {
    outline: 2px solid #d7b18b;
    outline-offset: 2px;
}

.inquiry-form button {
    margin-top: 12px;
    cursor: pointer;
    font: inherit;
}

.form-note {
    font-size: .78rem;
    line-height: 1.5;
    color: #c9c9c0;
}

.contact-note a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.footer {
    padding:25px 0;
    color:var(--muted);
    font-size:.83rem
}

.footer .wrap {
    display:flex;
    justify-content:space-between;
    gap:18px;
    flex-wrap:wrap
}

.mobile-contact {
    display:none
}

@media(max-width:900px) {
    .links {
    gap:14px
}

.links a {
    font-size:.84rem
}

.hero {
    gap:25px
}

.hero-image {
    height:470px
}

.service-grid {
    grid-template-columns:repeat(2,1fr)
}

.gallery-grid {
    grid-template-columns:1fr 1fr;
    grid-auto-rows:260px
}

.tile:first-child {
    grid-row:span 1
}

.process-grid {
    grid-template-columns:repeat(3,1fr)
}

}

@media(max-width:650px) {
    .wrap {
    width:calc(100% - 28px)
}

.topline .wrap span:last-child {
    display:none
}

.nav {
    flex-wrap:wrap;
    gap:13px;
    padding:15px 0
}

.brand {
    font-size:1.3rem
}

.links {
    order:3;
    width:100%;
    overflow-x:auto;
    padding:2px 0 7px;
    gap:19px
}

.links a {
    white-space:nowrap
}

.nav>.btn {
    padding:10px 12px;
    font-size:.82rem
}

.hero {
    grid-template-columns:1fr;
    padding:25px 0 48px;
    gap:25px
}

.hero h1 {
    font-size:3.3rem
}

.hero-image {
    height:430px
}

.section {
    padding:57px 0
}

.section-head {
    display:block
}

.section-head>p {
    margin-top:15px
}

.service-grid {
    gap:9px
}

.service {
    padding:17px 14px;
    min-height:220px
}

.service h3 {
    font-size:1.03rem
}

.gallery-grid {
    grid-auto-rows:220px;
    gap:9px
}

.tile span {
    left:8px;
    bottom:8px;
    font-size:.76rem;
    padding:7px 8px
}

.process-grid {
    grid-template-columns:1fr 1fr;
    gap:24px 16px
}

.about {
    grid-template-columns:1fr;
    gap:26px
}

.about-image {
    height:350px;
    min-height:0
}

.contact-grid {
    grid-template-columns:1fr;
    gap:16px
}

.contact-card {
    padding:21px
}

.footer .wrap {
    display:block
}

.footer span {
    display:block;
    margin:5px 0
}

.inquiry-form input[type="file"] {
    width: 100%;
    padding: 12px;
    border: 1px dashed #77796f;
    background: #faf7ef;
    color: #252821;
    cursor: pointer;
}

.before-after {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #e9e5dc;
    user-select: none;
}

.before-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.after-image-wrap {
    position: absolute;
    inset: 0 auto 0 0;
    width: 50%;
    overflow: hidden;
    border-right: 2px solid white;
}

.after-image-wrap img {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--comparison-container-width, 100%);
    max-width: none;
    height: 100%;
    object-fit: cover;
}

.comparison-slider {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: ew-resize;
    z-index: 5;
}

.comparison-divider {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 0;
    pointer-events: none;
    z-index: 3;
}

.comparison-divider span {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: white;
    color: #20231f;
    box-shadow: 0 1px 6px #0003;
    font-size: 20px;
}

.comparison-label {
    position: absolute;
    top: 16px;
    z-index: 2;
    padding: 5px 12px;
    background: rgba(32, 35, 31, .8);
    color: white;
    font-size: 12px;
    pointer-events: none;
}

.label-before {
    left: 16px;
}

.label-after {
    right: 16px;
}

@media(max-width:650px) {
    .before-after {
        aspect-ratio: 4 / 3;
    }
}



}



/* METAMORFOZY: zdjęcia przed i po obok siebie */
.transformations { background: var(--white); }
.transformations-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.transformation-card { min-width:0; padding:16px; border:1px solid var(--line); background:#fff; }
.transformation-card h3 { margin:0 0 12px; font-size:1.05rem; }
.transformation-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.transformation-pair figure { position:relative; margin:0; min-width:0; }
.transformation-pair img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.transformation-pair figcaption { position:absolute; left:9px; top:9px; padding:5px 8px; background:rgba(32,35,31,.82); color:#fff; font-size:.68rem; font-weight:700; letter-spacing:.08em; }
.transformation-pair figure:nth-child(2) figcaption { background:#c9a75e; color:#20231f; }
@media(max-width:760px) { .transformations-grid { grid-template-columns:1fr; gap:16px; } }
@media(max-width:480px) { .transformation-card { padding:10px; } .transformation-pair { gap:7px; } .transformation-pair figcaption { left:6px; top:6px; padding:4px 6px; } }

/* Metamorfozy: dwa kompaktowe porównania obok siebie z suwakiem */
.transformations { background: var(--white); }
.transformations-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.transformation-card { min-width:0; padding:14px; border:1px solid var(--line); background:#fff; }
.transformation-card h3 { margin:0 0 12px; font-size:1.02rem; }
.before-after { position:relative; width:100%; aspect-ratio:4 / 3; overflow:hidden; isolation:isolate; background:#eee; }
.before-after > .before-image { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.after-image-wrap { position:absolute; inset:0 auto 0 0; width:50%; overflow:hidden; }
.after-image { position:absolute; top:0; left:0; display:block; width:calc(var(--comparison-width, 100%) * 2); max-width:none; height:100%; object-fit:cover; }
.comparison-divider { position:absolute; z-index:2; top:0; bottom:0; left:50%; width:2px; background:#fff; transform:translateX(-50%); pointer-events:none; box-shadow:0 0 4px #0005; }
.comparison-divider span { position:absolute; top:50%; left:50%; width:34px; height:34px; border:2px solid white; border-radius:50%; background:#252820; transform:translate(-50%,-50%); box-shadow:0 1px 5px #0005; }
.comparison-divider span:before,.comparison-divider span:after { content:""; position:absolute; top:50%; width:6px; height:6px; border-top:2px solid white; border-right:2px solid white; }
.comparison-divider span:before { left:7px; transform:translateY(-50%) rotate(-135deg); }
.comparison-divider span:after { right:7px; transform:translateY(-50%) rotate(45deg); }
.comparison-slider { position:absolute; z-index:3; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; }
.comparison-label { position:absolute; z-index:2; top:9px; padding:5px 8px; color:#fff; background:#252820d9; font-size:.67rem; font-weight:700; letter-spacing:.08em; pointer-events:none; }
.before-label { left:9px; }.after-label { right:9px; background:#c9a75e; color:#20231f; }
@media(max-width:760px) { .transformations-grid { grid-template-columns:1fr; gap:16px; } .transformation-card { max-width:520px; width:100%; margin-inline:auto; } }
@media(max-width:480px) { .transformation-card { padding:10px; } }

.social-links {
    display: flex;
    align-items: center;
    gap: 14px;
}

.social-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
}

.social-links img {
    display: block;
    width: 24px;
    height: 24px;
    object-fit: contain;
}


/* Dolny rząd: instrukcja i media społecznościowe */
.contact-bottom-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: stretch;
    margin-top: 40px;
}

/* Wyrównanie obu ramek */
.contact-bottom-grid > * {
    box-sizing: border-box;
    min-width: 0;
    min-height: 305px;
}

/* Ramka instrukcji */
.contact-bottom-grid .contact-card {
    height: 100%;
}

/* Ramka mediów społecznościowych */
.social-promo-box {
    border: 1px solid #555a50;
    padding: 27px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
}

/* Treść ramki */
.social-promo {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 18px;
    width: 100%;
}

.social-promo-title {
    font-size: 15px;
    font-weight: 500;
    color: #faf7ef;
}

/* Linki do profili */
.social-promo-links {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 22px;
}

.social-promo-links a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #faf7ef;
    text-decoration: none;
    font-size: 13px;
    transition: opacity 0.2s ease;
}

.social-promo-links a:hover {
    opacity: 0.65;
}

.social-promo-links img {
    display: block;
    width: 22px;
    height: 22px;
    object-fit: contain;
}

/* Układ mobilny */
@media (max-width: 650px) {
    .contact-bottom-grid {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 16px;
    }

    .contact-bottom-grid > * {
        min-height: 180px;
    }

    .social-promo-box {
        padding: 21px;
    }
}
