/*
Theme Name: Granpar
Theme URI: https://granpar.pl
Author: Jrise
Author URI: https://jrise.pl
Description: Autorski, lekki motyw WordPress dla Zakładu Kamieniarskiego Granpar.
Version: 3.1.1
Text Domain: granpar
Requires at least: 6.4
Requires PHP: 7.4
*/

:root {
    --ink: #181a18;
    --ink-soft: #272a26;
    --muted: #676a64;
    --paper: #f4f3ef;
    --paper-2: #ebe9e4;
    --white: #ffffff;
    --gold: #9f8358;
    --gold-light: #d9c29d;
    --line: rgba(24, 26, 24, .15);
    --line-light: rgba(255, 255, 255, .18);
    --shadow: 0 24px 64px rgba(25, 25, 22, .12);
    --font: "Montserrat", Arial, Helvetica, sans-serif;
    --container: 1500px;
    --side: 34px;
    --header-height: 86px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
    margin: 0;
    min-width: 0;
    overflow-x: hidden;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font);
    font-size: 16px;
    font-weight: 400;
    font-style: normal;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    font-synthesis: none;
}
body.menu-open,
body.lightbox-open { overflow: hidden; }
main, section, header, footer, div, article, aside, nav { min-width: 0; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select, option {
    font-family: var(--font);
    font-size: inherit;
    font-style: normal;
    font-weight: inherit;
    line-height: inherit;
}
button { color: inherit; }
.button, .text-link, .menu a, .header-phone, .mobile-menu a, .footer-menu a {
    font-family: var(--font);
    font-style: normal;
}
p, li, a, span, strong, h1, h2, h3, h4 { overflow-wrap: break-word; }
::selection { background: #d7c6aa; color: #171817; }

.container,
.container-wide {
    width: calc(100% - (var(--side) * 2));
    max-width: var(--container);
    margin-left: auto;
    margin-right: auto;
}

.skip-link {
    position: fixed;
    z-index: 9999;
    top: -90px;
    left: 20px;
    padding: 11px 16px;
    background: #fff;
    color: #000;
    box-shadow: var(--shadow);
    font-size: 13px;
    font-weight: 600;
}
.skip-link:focus { top: 20px; }

h1, h2, h3, h4 {
    margin: 0;
    font-family: var(--font);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -.035em;
}
h1 { font-size: 70px; }
h2 { font-size: 48px; }
h3 { font-size: 27px; }
p { margin: 0 0 1em; font-weight: 500; }

.eyebrow {
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0 0 16px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .17em;
    line-height: 1.4;
    text-transform: uppercase;
}
.eyebrow--light { color: rgba(255, 255, 255, .76); }

.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.icon-arrow { width: 18px; height: 18px; flex: 0 0 18px; display: block; }
.page-numbers.prev, .page-numbers.next { gap: 7px; padding: 0 14px; }
.page-numbers.prev .icon-arrow, .page-numbers.next .icon-arrow { width: 15px; height: 15px; flex-basis: 15px; }

.button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 24px;
    border: 1px solid var(--ink);
    background: var(--ink);
    color: #fff;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .085em;
    line-height: 1.2;
    text-transform: uppercase;
    transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease;
}
.button svg,
.text-link svg,
.service-card__link svg,
.related-services__grid svg { width: 17px; height: 17px; flex: 0 0 auto; }
.button:hover,
.button:focus-visible { transform: translateY(-1px); }
.button--light { border-color: #fff; background: #fff; color: var(--ink); }
.button--light:hover,
.button--light:focus-visible { background: var(--gold-light); border-color: var(--gold-light); }
.button--dark:hover,
.button--dark:focus-visible { background: #30332f; border-color: #30332f; }
.button--outline-light { border-color: rgba(255,255,255,.88); background: rgba(10,11,10,.16); color: #fff; }
.button--outline-light:hover,
.button--outline-light:focus-visible { background: #fff; border-color: #fff; color: var(--ink); }

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    padding-bottom: 5px;
    border-bottom: 1px solid currentColor;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 3px;
}
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: none;
}

.section { padding: 88px 0; }
.section--paper { background: var(--paper); }
.section-heading { margin-bottom: 42px; }
.section-heading--split {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 70px;
}
.section-heading--split > div:first-child { flex: 1 1 58%; }
.section-heading--split > p,
.section-heading__side { flex: 0 1 38%; padding-top: 56px; }
.section-heading h2 { max-width: 880px; }
.section-heading__side,
.section-heading--split > p { color: var(--muted); }
.section-heading__side p { margin-bottom: 18px; font-weight: 500; }
.section-heading--split > p { font-weight: 500; }
.section-heading--light { color: #fff; }
.section-heading--light .eyebrow,
.section-heading--light > p { color: rgba(255,255,255,.66); }

/* Header */
.site-header {
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    right: 0;
    color: #fff;
    background: rgba(18, 19, 18, .76);
    border-bottom: 1px solid rgba(255,255,255,.18);
    backdrop-filter: blur(10px);
    transition: background .28s ease, border-color .28s ease, box-shadow .28s ease, transform .28s ease;
}
.site-header.is-scrolled,
body:not(.granpar-home) .site-header {
    background: rgba(18, 19, 18, .97);
    border-color: rgba(255,255,255,.10);
    box-shadow: 0 12px 32px rgba(0,0,0,.12);
    backdrop-filter: blur(12px);
}
.site-header.is-hidden { transform: translateY(-100%); }
.site-header__inner {
    position: relative;
    z-index: 2;
    height: var(--header-height);
    display: flex;
    align-items: center;
    gap: 34px;
}
.site-logo { flex: 0 0 auto; display: inline-flex; align-items: center; }
.site-logo__image { width: auto; max-width: 178px; max-height: 58px; object-fit: contain; }
.desktop-nav { margin-left: auto; }
.menu,
.footer-menu,
.mobile-menu__links { list-style: none; padding: 0; margin: 0; }
.menu { display: flex; align-items: center; gap: 31px; }
.menu li { position: relative; }
.menu a {
    display: inline-flex;
    padding: 12px 0;
    color: rgba(255,255,255,.92);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.menu > li > a::after {
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 5px;
    height: 1px;
    background: #fff;
    content: "";
    transition: right .22s ease;
}
.menu > li:hover > a::after,
.menu > li.current-menu-item > a::after,
.menu > li.current-menu-ancestor > a::after { right: 0; }
.menu .sub-menu {
    position: absolute;
    top: 100%;
    left: -20px;
    min-width: 270px;
    margin: 0;
    padding: 12px 20px;
    list-style: none;
    background: #181918;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
}
.menu li:hover > .sub-menu,
.menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.menu .sub-menu a { width: 100%; padding: 10px 0; color: rgba(255,255,255,.72); }
.header-actions { display: flex; align-items: center; gap: 7px; }
.header-phone {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 15px;
    border: 1px solid #fff;
    background: #fff;
    color: var(--ink);
    box-shadow: 0 8px 22px rgba(0,0,0,.12);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
}
.header-phone svg { width: 16px; height: 16px; }
.header-phone:hover, .header-phone:focus-visible { background: var(--gold-light); border-color: var(--gold-light); }
.menu-toggle {
    width: 48px;
    height: 44px;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
}
.menu-toggle span { width: 25px; height: 1px; background: currentColor; transition: transform .24s ease, opacity .24s ease; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-menu {
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: none;
    height: 100dvh;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: calc(var(--header-height) + 28px) var(--side) 36px;
    background: #171817;
    opacity: 0;
    visibility: hidden;
    transform: translateX(26px);
    transition: opacity .28s ease, visibility .28s ease, transform .28s ease;
}
.mobile-menu.is-open { opacity: 1; visibility: visible; transform: none; }
.mobile-menu__inner { width: 100%; max-width: 680px; margin: auto; }
.mobile-menu__links > li { border-bottom: 1px solid rgba(255,255,255,.12); }
.mobile-menu__links > li > a { display: block; padding: 16px 0; font-size: 30px; font-weight: 500; line-height: 1.12; }
.mobile-menu__links .sub-menu { margin: -4px 0 12px; padding: 0 0 0 14px; border-left: 1px solid rgba(255,255,255,.13); list-style: none; }
.mobile-menu__links .sub-menu a { display: block; padding: 7px 0; color: rgba(255,255,255,.64); font-size: 12px; }
.mobile-menu__contact { display: flex; flex-direction: column; gap: 10px; margin-top: 26px; }
.mobile-menu__contact a { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.72); font-size: 12px; overflow-wrap: anywhere; }
.mobile-menu__contact svg { width: 18px; }
body.menu-open .site-header { background: #171817; transform: none; }

/* Home */
.home-hero {
    position: relative;
    min-height: 690px;
    height: 82vh;
    max-height: 860px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: #1d1f1d;
    color: #fff;
}
.home-hero__media,
.home-hero__shade { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.home-hero__image { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-hero__shade { background: linear-gradient(90deg, rgba(11,12,11,.80) 0%, rgba(11,12,11,.52) 47%, rgba(11,12,11,.14) 78%), linear-gradient(0deg, rgba(11,12,11,.50), transparent 48%); }
.home-hero__content { position: relative; z-index: 2; padding-bottom: 74px; }
.home-hero h1 { max-width: 980px; margin-bottom: 24px; }
.home-hero__lead { max-width: 760px; margin-bottom: 28px; color: rgba(255,255,255,.84); font-size: 16px; line-height: 1.7; }
.hero-scroll {
    position: absolute;
    z-index: 3;
    right: 35px;
    bottom: 76px;
    display: flex;
    align-items: center;
    gap: 10px;
    writing-mode: vertical-rl;
    color: rgba(255,255,255,.62);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.hero-scroll span { width: 1px; height: 46px; background: rgba(255,255,255,.45); }

.trust-strip { background: #171817; color: #fff; }
.trust-strip__inner { display: flex; align-items: stretch; }
.trust-strip__item {
    width: 33.333%;
    min-height: 104px;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 32px;
    border-right: 1px solid rgba(255,255,255,.13);
}
.trust-strip__item:last-child { border-right: 0; }
.trust-strip__item strong { min-width: 64px; color: var(--gold-light); font-size: 31px; font-weight: 500; letter-spacing: -.04em; }
.trust-strip__item span { color: rgba(255,255,255,.70); font-size: 9px; font-weight: 700; letter-spacing: .11em; line-height: 1.55; text-transform: uppercase; }

.home-offer { padding-top: 84px; }
.service-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    background: transparent;
}
.service-card {
    position: relative;
    width: calc(33.333333% - 3.333333px);
    min-height: 430px;
    display: block;
    overflow: hidden;
    color: #fff;
    background: #20221f;
}
.service-card__media,
.service-card__overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.service-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.service-card__overlay { background: linear-gradient(0deg, rgba(10,11,10,.88) 0%, rgba(10,11,10,.42) 49%, rgba(10,11,10,.04) 80%); }
.service-card__content { position: absolute; z-index: 2; right: 28px; bottom: 27px; left: 28px; }
.service-card__number { display: block; margin-bottom: 9px; color: #dcc6a3; font-size: 9px; font-weight: 600; letter-spacing: .14em; }
.service-card strong { display: block; margin-bottom: 9px; font-size: 26px; font-weight: 500; line-height: 1.15; }
.service-card__desc { display: block; max-width: 390px; color: rgba(255,255,255,.74); font-size: 12px; line-height: 1.55; }
.service-card__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.service-card:hover .service-card__image { transform: scale(1.035); }

.about-showcase,
.granite-types {
    background-color: #f2f1ed;
    background-image: url("assets/images/home/background.webp");
    background-size: cover;
}
.about-showcase { padding: 86px 0; }
.about-showcase__inner { display: flex; align-items: center; }
.about-showcase__media { width: 62%; min-height: 500px; overflow: hidden; background: #ddd; }
.about-showcase__image { width: 100%; height: 500px; object-fit: cover; }
.about-showcase__card {
    position: relative;
    z-index: 2;
    width: 46%;
    margin-left: -8%;
    padding: 44px 48px;
    background: #fff;
    box-shadow: var(--shadow);
}
.about-showcase__card h2 { margin-bottom: 20px; font-size: 42px; }
.about-showcase__card > p { color: var(--muted); }
.about-showcase__facts { display: flex; gap: 18px; margin: 25px 0; }
.about-showcase__facts span { width: 50%; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.about-showcase__facts strong { display: block; margin-bottom: 4px; color: var(--ink); font-size: 16px; font-weight: 600; }
.about-showcase__actions { display: flex; flex-wrap: wrap; gap: 22px; }

.process-section { background: #1b1d1b; color: #fff; }
.process-list { display: flex; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.15); }
.process-list li { width: 25%; min-height: 220px; padding: 27px 26px 22px; border-right: 1px solid rgba(255,255,255,.13); }
.process-list li:last-child { border-right: 0; }
.process-list span { color: #c8a779; font-size: 29px; font-weight: 500; }
.process-list h3 { margin: 40px 0 11px; font-size: 22px; }
.process-list p { color: rgba(255,255,255,.64); font-size: 12px; line-height: 1.65; }

.gallery-preview { background: #fff; }
.masonry-preview { display: flex; flex-wrap: wrap; gap: 10px; }
.gallery-tile { position: relative; width: calc(25% - 7.5px); height: 310px; overflow: hidden; background: #e1dfda; }
.gallery-tile--large { width: calc(50% - 5px); }
.gallery-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.gallery-tile:hover img { transform: scale(1.025); }
.gallery-tile__zoom,
.realization-card__zoom {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.58);
    background: rgba(11,12,11,.22);
    color: #fff;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    opacity: 0;
    transition: opacity .22s ease, transform .22s ease;
}
.gallery-tile:hover .gallery-tile__zoom,
.realization-card:hover .realization-card__zoom,
.gallery-tile:focus-visible .gallery-tile__zoom,
.realization-card:focus-visible .realization-card__zoom { opacity: 1; transform: translateY(-1px); }

.faq-section { background: #fff; }
.faq-layout { display: flex; gap: 84px; align-items: flex-start; }
.faq-intro { width: 34%; }
.faq-intro h2 { margin-bottom: 18px; }
.faq-intro > p:last-child { max-width: 440px; color: var(--muted); }
.accordion { width: 66%; border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 0; border: 0; background: transparent; text-align: left; cursor: pointer; }
.faq-question > span:first-child { font-size: 14px; font-weight: 600; }
.faq-icon { width: 29px; height: 29px; flex: 0 0 29px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--line); font-size: 17px; transition: transform .22s ease; }
.faq-item.is-open .faq-icon { transform: rotate(45deg); }
.faq-answer { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .36s cubic-bezier(.22,.61,.36,1), opacity .24s ease; }
.faq-answer p { max-width: 760px; padding: 0 50px 22px 0; color: var(--muted); font-size: 13px; font-weight: 500; }
.faq-item.is-open .faq-answer { opacity: 1; }

/* Subpages */
.subhero { position: relative; min-height: 410px; display: flex; align-items: flex-end; overflow: hidden; padding-top: var(--header-height); }
.subhero--image { min-height: 610px; color: #fff; background: #1e201e; }
.subhero__media,
.subhero__shade { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.subhero__image { width: 100%; height: 100%; object-fit: cover; }
.subhero__shade { background: linear-gradient(90deg, rgba(10,11,10,.80), rgba(10,11,10,.30) 66%, rgba(10,11,10,.16)), linear-gradient(0deg, rgba(10,11,10,.38), transparent 55%); }
.subhero__content { position: relative; z-index: 2; padding-top: 105px; padding-bottom: 76px; }
.subhero__content h1 { max-width: 1050px; font-size: 62px; }
.subhero__lead { max-width: 820px; margin: 22px 0 0; color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.7; }
.service-hero .button-row { margin-top: 28px; }
.service-hero .subhero__content { padding-top: 118px; padding-bottom: 82px; }
.subhero__content--dark { color: var(--ink); }
.subhero__content--dark .subhero__lead { color: var(--muted); }
.subhero--about,
.subhero--stone,
.subhero--contact,
.subhero--gallery,
.subhero--single,
.subhero--plain { min-height: 390px; background: #eeece7; }
.subhero--about,
.subhero--stone,
.subhero--contact,
.subhero--gallery { background-image: url("assets/images/home/background.webp"); background-size: cover; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 18px; color: inherit; opacity: .62; font-size: 9px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.breadcrumbs a:hover { text-decoration: underline; }

.intro-copy { max-width: 920px; margin-bottom: 54px; }
.intro-copy h2 { margin-bottom: 20px; }
.intro-copy > p:last-child { color: var(--muted); }

.offer-list { display: flex; flex-direction: column; gap: 2px; }
.offer-row { height: 540px; min-height: 0; display: flex; background: #fff; }
.offer-row:nth-child(even) { flex-direction: row-reverse; }
.offer-row__media { width: 50%; height: 100%; min-height: 0; overflow: hidden; background: #ddd; }
.offer-row__image { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.offer-row__media:hover .offer-row__image { transform: scale(1.025); }
.offer-row__copy { width: 50%; display: flex; flex-direction: column; justify-content: center; padding: 48px 56px; }
.offer-row__number { margin-bottom: 14px; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.offer-row h2 { margin-bottom: 18px; font-size: 39px; }
.offer-row__copy > p { max-width: 660px; color: var(--muted); font-size: 14px; }
.check-list { display: flex; flex-direction: column; gap: 9px; margin: 20px 0 26px; padding: 0; list-style: none; }
.check-list li { display: flex; align-items: flex-start; gap: 10px; color: #4f524c; font-size: 12px; }
.check-list svg { width: 17px; height: 17px; flex: 0 0 17px; margin-top: 2px; color: var(--gold); }
.check-list--large { margin-top: 24px; }

.process-light { background: #ebe9e4; }
.numbered-cards { display: flex; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.numbered-cards li { width: 25%; min-height: 220px; padding: 26px; border-right: 1px solid var(--line); }
.numbered-cards li:last-child { border-right: 0; }
.numbered-cards span,
.value-grid span,
.benefit-cards span { color: var(--gold); font-size: 25px; font-weight: 500; }
.numbered-cards h3 { margin: 38px 0 10px; font-size: 20px; }
.numbered-cards p { color: var(--muted); font-size: 12px; }

.service-detail { display: flex; align-items: flex-start; gap: 70px; }
.service-detail__copy { width: 48%; }
.service-detail__copy h2 { margin-bottom: 19px; }
.service-detail__copy > p { color: var(--muted); }
.service-detail__note { margin-top: 25px; padding: 16px 18px; border-left: 2px solid var(--gold); background: #ebe9e4; font-size: 12px; }
.service-detail__gallery { width: 52%; display: flex; gap: 10px; }
.service-detail__gallery a { width: 50%; min-height: 440px; overflow: hidden; background: #ddd; }
.service-detail__gallery a:nth-child(2) { margin-top: 54px; }
.service-detail__gallery img { width: 100%; height: 100%; object-fit: cover; }

.service-benefits { background: #1b1d1b; color: #fff; }
.service-benefits .section-heading--split > p { color: rgba(255,255,255,.64); }
.service-benefits .eyebrow { color: rgba(255,255,255,.74); }
.benefit-cards { display: flex; border-top: 1px solid rgba(255,255,255,.14); }
.benefit-cards article { width: 33.333%; min-height: 210px; padding: 28px 28px 20px; border-right: 1px solid rgba(255,255,255,.14); }
.benefit-cards article:last-child { border-right: 0; }
.benefit-cards h3 { margin: 38px 0 10px; font-size: 21px; }
.benefit-cards p { color: rgba(255,255,255,.62); font-size: 12px; }

.related-services { background: #fff; }
.related-services__grid { display: flex; flex-wrap: wrap; border-top: 1px solid var(--line); }
.related-services__grid a { width: 50%; min-height: 86px; display: flex; align-items: center; gap: 15px; padding: 14px 24px 14px 0; border-bottom: 1px solid var(--line); }
.related-services__grid a:nth-child(odd) { border-right: 1px solid var(--line); }
.related-services__grid a:nth-child(even) { padding-left: 24px; }
.related-services__grid a > span { width: 42px; flex: 0 0 42px; color: var(--gold); font-size: 11px; font-weight: 700; }
.related-services__grid a strong { flex: 1 1 auto; font-size: 14px; font-weight: 600; }
.related-services__grid svg { margin-left: auto; }

.about-page__intro { display: flex; align-items: center; gap: 70px; }
.about-page__media { width: 55%; height: 500px; overflow: hidden; }
.about-page__image { width: 100%; height: 100%; object-fit: cover; }
.about-page__copy { width: 45%; }
.about-page__copy h2 { margin-bottom: 20px; font-size: 39px; }
.about-page__copy p { color: var(--muted); }
.values-section { background: #ebe9e4; }
.value-grid { display: flex; border-top: 1px solid #d4d1ca; border-bottom: 1px solid #d4d1ca; }
.value-grid article { width: 25%; min-height: 260px; padding: 27px; border-right: 1px solid #d4d1ca; background: #f8f7f3; }
.value-grid article:last-child { border-right: 0; }
.value-grid h3 { margin: 52px 0 12px; font-size: 21px; }
.value-grid p { color: var(--muted); font-size: 12px; }
.workshop-section { background: #fff; }
.workshop-section__grid { display: flex; align-items: center; gap: 70px; }
.workshop-section__copy { width: 42%; }
.workshop-section__copy h2 { margin-bottom: 18px; }
.workshop-section__copy p { color: var(--muted); }
.workshop-section__photo { width: 58%; height: 430px; overflow: hidden; }
.workshop-section__image { width: 100%; height: 100%; object-fit: cover; }

.materials-page__hero { display: flex; align-items: center; gap: 70px; }
.materials-page__copy { width: 54%; }
.materials-page__copy h2 { margin-bottom: 20px; }
.materials-page__copy p { color: var(--muted); }
.materials-page__visual { width: 46%; min-height: 400px; display: flex; align-items: center; justify-content: center; padding: 34px; background: #f3f1ec; }
.materials-page__image { width: 100%; max-height: 335px; object-fit: contain; }
.granite-grid { display: flex; flex-wrap: wrap; gap: 12px; }
.granite-card { width: calc(25% - 9px); min-height: 290px; padding: 24px; background: rgba(255,255,255,.82); border: 1px solid rgba(24,26,24,.08); }
.granite-swatch { display: block; width: 100%; height: 70px; margin-bottom: 24px; }
.granite-swatch--black { background: linear-gradient(135deg, #151616, #484a47); }
.granite-swatch--white { background: linear-gradient(135deg, #e7e6df, #b6b9b3); }
.granite-swatch--grey { background: linear-gradient(135deg, #70736f, #babbb7); }
.granite-swatch--warm { background: linear-gradient(135deg, #4c3028, #a47965); }
.granite-card h3 { margin-bottom: 10px; font-size: 20px; }
.granite-card p { min-height: 82px; color: var(--muted); font-size: 12px; }
.granite-card strong { font-size: 10px; font-weight: 700; letter-spacing: .05em; }
.care-section { background: #fff; }
.care-section__grid { display: flex; align-items: flex-start; gap: 80px; }
.care-section__grid > div { width: 50%; }
.care-section__grid > div:last-child { padding-top: 42px; color: var(--muted); }

.contact-page { background: #fff; }
.contact-page__grid { display: flex; align-items: flex-start; gap: 70px; }
.contact-sidebar { width: 36%; }
.contact-sidebar h2 { margin-bottom: 28px; font-size: 36px; }
.contact-info-list { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.contact-info-list > * { min-height: 82px; display: flex; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.contact-info-list svg { width: 24px; height: 24px; flex: 0 0 24px; color: var(--gold); }
.contact-info-list span { font-size: 17px; font-weight: 500; line-height: 1.55; overflow-wrap: anywhere; }
.contact-info-list small { display: block; margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-area { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.contact-area strong { font-size: 15px; font-weight: 700; }
.contact-area p { margin-top: 9px; color: var(--muted); font-size: 15px; line-height: 1.7; }
.contact-form-card { width: 64%; max-width: 790px; margin-left: auto; padding: 38px 42px 42px; background: var(--paper); }
.contact-form-card h2 { margin-bottom: 10px; font-size: 38px; }
.contact-form-card > p { max-width: 680px; color: var(--muted); font-size: 13px; }
.contact-form { margin-top: 24px; }
.form-notice { width: 100%; margin: 24px 0 0; padding: 11px 13px; border-left: 3px solid var(--gold); background: #fff; font-size: 12px; font-weight: 500; }
.form-notice--error { border-left-color: #9b3c37; }

/* Contact Form 7 - formularz produkcyjny */
.contact-form--cf7 .wpcf7 { width: 100%; }
.contact-form--cf7 .wpcf7-form { display: flex; flex-wrap: wrap; gap: 14px 16px; margin: 0; }
.contact-form--cf7 .wpcf7-form > p { width: 100%; margin: 0; }
.contact-form--cf7 .wpcf7-form > p.cf7-half { width: calc(50% - 8px); }
.contact-form--cf7 .wpcf7-form label { display: block; color: var(--ink); font-size: 13px; font-weight: 600; letter-spacing: .01em; line-height: 1.45; text-transform: none; }
.contact-form--cf7 .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.contact-form--cf7 input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.contact-form--cf7 select,
.contact-form--cf7 textarea { width: 100%; border: 1px solid #c9c6bd; border-radius: 0; background: #fff; color: var(--ink); box-shadow: none; transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.contact-form--cf7 input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.contact-form--cf7 select { min-height: 50px; padding: 11px 14px; font-size: 14px; }
.contact-form--cf7 textarea { min-height: 160px; max-height: 320px; resize: vertical; padding: 13px 14px; font-size: 14px; line-height: 1.6; }
.contact-form--cf7 input[type="file"] { height: auto; padding: 11px 13px; }
.contact-form--cf7 input:hover,
.contact-form--cf7 select:hover,
.contact-form--cf7 textarea:hover { border-color: #aaa69b; }
.contact-form--cf7 input:focus,
.contact-form--cf7 select:focus,
.contact-form--cf7 textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(159,131,88,.16); background: #fff; outline: 0; }
.contact-form--cf7 .wpcf7-not-valid-tip { margin-top: 5px; color: #8a302b; font-size: 11px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.contact-form--cf7 .wpcf7-response-output { width: 100%; margin: 4px 0 0; padding: 11px 13px; border: 0; border-left: 3px solid var(--gold); background: #fff; color: var(--ink); font-size: 12px; font-weight: 500; }
.contact-form--cf7 form.invalid .wpcf7-response-output,
.contact-form--cf7 form.failed .wpcf7-response-output,
.contact-form--cf7 form.unaccepted .wpcf7-response-output { border-left-color: #9b3c37; }
.contact-form--cf7 .wpcf7-list-item { margin: 0; }
.contact-form--cf7 .cf7-consent { margin-top: 2px; padding: 8px 0 2px; }
.contact-form--cf7 .wpcf7-acceptance label { position: relative; display: flex; align-items: flex-start; gap: 12px; color: var(--muted); font-size: 12.5px; font-weight: 500; letter-spacing: 0; line-height: 1.65; text-transform: none; cursor: pointer; }
.contact-form--cf7 .wpcf7-acceptance input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.contact-form--cf7 .wpcf7-acceptance .wpcf7-list-item-label { position: relative; display: block; padding-left: 34px; }
.contact-form--cf7 .wpcf7-acceptance .wpcf7-list-item-label::before { position: absolute; top: 1px; left: 0; width: 21px; height: 21px; border: 1px solid #aaa69b; background: #fff; content: ""; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.contact-form--cf7 .wpcf7-acceptance .wpcf7-list-item-label::after { position: absolute; top: 6px; left: 5px; width: 11px; height: 7px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; content: ""; opacity: 0; transform: rotate(-45deg) scale(.75); transition: opacity .18s ease, transform .18s ease; }
.contact-form--cf7 .wpcf7-acceptance input:checked + .wpcf7-list-item-label::before { border-color: var(--ink); background: var(--ink); }
.contact-form--cf7 .wpcf7-acceptance input:checked + .wpcf7-list-item-label::after { opacity: 1; transform: rotate(-45deg) scale(1); }
.contact-form--cf7 .wpcf7-acceptance input:focus-visible + .wpcf7-list-item-label::before { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(159,131,88,.18); }
.contact-form--cf7 .wpcf7-acceptance a { color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.contact-form--cf7 .wpcf7-acceptance a:hover { color: var(--gold); }
.contact-form--cf7 .cf7-submit-row { padding-top: 2px; }
.contact-form--cf7 input[type="submit"] { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: 0 24px; border: 1px solid var(--ink); border-radius: 0; background: var(--ink); color: #fff; cursor: pointer; font-size: 11.5px; font-weight: 700; letter-spacing: .085em; text-transform: uppercase; transition: background .22s ease, border-color .22s ease; }
.contact-form--cf7 input[type="submit"]:hover,
.contact-form--cf7 input[type="submit"]:focus-visible { background: #30332f; border-color: #30332f; }
.contact-form--cf7 .wpcf7-spinner { margin: 0 0 0 10px; vertical-align: middle; }

.featured-realizations { background: #fff; }
.post-realization-grid { display: flex; flex-wrap: wrap; gap: 20px; }
.post-realization-card { width: calc(33.333% - 14px); background: var(--paper); }
.post-realization-card__image { display: block; height: 280px; overflow: hidden; background: #ddd; }
.post-realization-card__image img { width: 100%; height: 100%; object-fit: cover; }
.post-realization-card__body { display: block; padding: 20px; }
.post-realization-card__body strong { display: block; margin-bottom: 7px; font-size: 16px; font-weight: 600; }
.post-realization-card__body span { color: var(--muted); font-size: 12px; }
.realization-gallery-section { background: #fff; }
.realization-gallery { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.realization-card { position: relative; width: calc(25% - 7.5px); height: 320px; overflow: hidden; background: #ddd; }
.realization-card--large { width: calc(50% - 5px); }
.realization-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.realization-card:hover img { transform: scale(1.022); }
.realization-card__index { position: absolute; left: 14px; bottom: 12px; z-index: 2; color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.navigation.pagination { margin-top: 34px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 7px; }
.page-numbers { min-width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid var(--line); font-size: 11px; font-weight: 600; }
.page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }

.realization-single { background: #fff; }
.realization-single__inner { max-width: 1080px; }
.realization-single__hero { margin: 0 0 36px; }
.realization-single__hero img { width: 100%; height: auto; }
.prose { max-width: 800px; color: #454842; }
.prose h2, .prose h3 { margin: 1.5em 0 .6em; }
.prose p { margin-bottom: 1.1em; }
.legal-page .legal-copy {
    width: calc(100% - (var(--side) * 2));
    max-width: var(--container);
    margin-left: auto;
    margin-right: auto;
}
.legal-copy__updated { margin-bottom: 54px; }
.legal-copy > p,
.legal-copy > ul { max-width: 1380px; }
.legal-copy > p { margin-bottom: 1.15em; line-height: 1.78; }
.legal-copy h2 { max-width: 1380px; margin-top: 2em; margin-bottom: .65em; font-size: 30px; line-height: 1.22; }
.legal-copy ul { margin: 0 0 1.5em 1.2em; padding: 0; }
.legal-copy li { margin-bottom: .55em; line-height: 1.75; }
.legal-copy a { text-decoration: underline; text-underline-offset: 3px; }
.realization-single__back { margin-top: 34px; }

.post-list { display: flex; flex-direction: column; gap: 1px; max-width: 900px; }
.post-list article { padding: 24px 0; border-bottom: 1px solid var(--line); }
.post-list h2 { font-size: 27px; }

/* CTA + footer */
.contact-cta { position: relative; overflow: hidden; background: #171817; color: #fff; }
.contact-cta__background { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.contact-cta__background::after { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(90deg, rgba(11,12,11,.86) 0%, rgba(11,12,11,.62) 54%, rgba(11,12,11,.20) 100%); content: ""; }
.contact-cta__image { width: 100%; height: 100%; object-fit: cover; object-position: center 48%; image-rendering: auto; }
.contact-cta__inner { position: relative; z-index: 2; min-height: 420px; display: flex; align-items: center; }
.contact-cta__copy { max-width: 760px; padding: 64px 0; }
.contact-cta h2 { margin-bottom: 18px; font-size: 46px; }
.contact-cta__copy > p { max-width: 650px; color: rgba(255,255,255,.76); }
.site-footer { background: #131513; color: #fff; }
.footer-main { display: flex; gap: 50px; padding: 58px 0 48px; }
.footer-brand { width: 34%; }
.footer-brand .site-logo__image { max-width: 190px; max-height: 82px; }
.footer-brand p { max-width: 500px; margin-top: 20px; color: rgba(255,255,255,.68); font-size: 12px; line-height: 1.7; }
.footer-column { width: 18%; }
.footer-column h3 { margin-bottom: 17px; color: rgba(255,255,255,.92); font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.footer-menu { display: flex; flex-direction: column; gap: 8px; }
.footer-menu a { color: rgba(255,255,255,.72); font-size: 11.5px; }
.footer-contact { display: flex; flex-direction: column; gap: 10px; }
.footer-contact a,
.footer-contact div { display: flex; align-items: flex-start; gap: 9px; color: rgba(255,255,255,.72); font-size: 11.5px; overflow-wrap: anywhere; }
.footer-contact svg { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 2px; }
.footer-bottom { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.10); color: rgba(255,255,255,.45); font-size: 9px; }
.footer-legal { display: flex; align-items: center; gap: 22px; }
.footer-legal a:hover { color: #fff; }

/* Generic */
.error-page { padding: 150px 0 100px; text-align: center; }
.error-page__number { color: var(--gold); font-size: 120px; font-weight: 500; line-height: 1; }
.error-page h1 { margin: 16px 0; font-size: 54px; }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1240px) {
    :root { --side: 28px; }
    .desktop-nav { display: none; }
    .menu-toggle { display: flex; }
    .mobile-menu { display: block; }
    .header-actions { margin-left: auto; }
    .section-heading--split { gap: 50px; }
    .service-card { min-height: 400px; }
    .about-showcase__card { width: 48%; margin-left: -10%; }
    .post-realization-card { width: calc(50% - 10px); }
}

@media (max-width: 1020px) {
    h1 { font-size: 58px; }
    h2 { font-size: 42px; }
    .section { padding: 76px 0; }
    .section-heading--split { gap: 38px; }
    .section-heading--split > div:first-child { flex-basis: 56%; }
    .section-heading--split > p,
    .section-heading__side { flex-basis: 44%; padding-top: 46px; }
    .service-card { width: calc(50% - 2.5px); }
    .about-showcase__inner { align-items: stretch; }
    .about-showcase__media { width: 58%; min-height: 480px; }
    .about-showcase__image { height: 100%; min-height: 480px; }
    .about-showcase__card { width: 50%; margin-left: -8%; padding: 40px 38px; }
    .about-showcase__card h2 { font-size: 36px; }
    .gallery-tile { width: calc(25% - 7.5px); }
    .gallery-tile--large { width: calc(50% - 5px); }
    .faq-layout { gap: 52px; }
    .faq-intro { width: 38%; }
    .accordion { width: 62%; }
    .offer-row__copy { padding: 42px 38px; }
    .service-detail { gap: 46px; }
    .about-page__intro,
    .workshop-section__grid,
    .materials-page__hero,
    .care-section__grid,
    .contact-page__grid { gap: 46px; }
    .granite-card { width: calc(50% - 6px); }
    .contact-sidebar { width: 34%; }
    .contact-form-card { width: 66%; padding: 34px; }
    .footer-main { flex-wrap: wrap; }
    .footer-brand { width: calc(50% - 25px); }
    .footer-column { width: calc(25% - 38px); }
}

@media (max-width: 820px) {
    :root { --side: 22px; --header-height: 76px; }
    h1 { font-size: 50px; }
    h2 { font-size: 38px; }
    .site-logo__image { max-width: 160px; max-height: 50px; }
    .header-phone span { display: none; }
    .header-phone { width: 40px; padding: 0; justify-content: center; }
    .section-heading--split { flex-direction: column; gap: 18px; }
    .section-heading--split > div:first-child,
    .section-heading--split > p,
    .section-heading__side { width: 100%; flex-basis: auto; padding-top: 0; }
    .home-hero { min-height: 640px; height: 78vh; }
    .home-hero__content { padding-bottom: 56px; }
    .hero-scroll { display: none; }
    .trust-strip__inner { flex-wrap: wrap; }
    .trust-strip__item { width: 33.333%; padding: 18px 16px; gap: 12px; }
    .trust-strip__item strong { min-width: 52px; font-size: 26px; }
    .about-showcase__inner { flex-direction: column; }
    .about-showcase__media { width: 100%; min-height: 400px; }
    .about-showcase__image { height: 400px; min-height: 0; }
    .about-showcase__card { width: calc(100% - 46px); margin: -64px auto 0; padding: 36px; }
    .process-list { flex-wrap: wrap; }
    .process-list li { width: 50%; border-bottom: 1px solid rgba(255,255,255,.13); }
    .process-list li:nth-child(2) { border-right: 0; }
    .process-list li:nth-last-child(-n+2) { border-bottom: 0; }
    .gallery-tile,
    .gallery-tile--large { width: calc(50% - 5px); height: 280px; }
    .faq-layout { flex-direction: column; gap: 30px; }
    .faq-intro,
    .accordion { width: 100%; }
    .faq-intro > p:last-child { max-width: 650px; }
    .subhero__content h1 { font-size: 50px; }
    .offer-row,
    .offer-row:nth-child(even) { height: auto; flex-direction: column; }
    .offer-row__media,
    .offer-row__copy { width: 100%; }
    .offer-row__media { min-height: 360px; height: 360px; }
    .offer-row__copy { padding: 36px 30px; }
    .numbered-cards { flex-wrap: wrap; }
    .numbered-cards li { width: 50%; border-bottom: 1px solid var(--line); }
    .numbered-cards li:nth-child(2) { border-right: 0; }
    .numbered-cards li:nth-last-child(-n+2) { border-bottom: 0; }
    .service-detail { flex-direction: column; }
    .service-detail__copy,
    .service-detail__gallery { width: 100%; }
    .service-detail__gallery a { min-height: 390px; }
    .benefit-cards { flex-wrap: wrap; }
    .benefit-cards article { width: 100%; min-height: 0; padding: 24px 18px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
    .benefit-cards article:last-child { border-bottom: 0; }
    .benefit-cards h3 { margin-top: 18px; }
    .about-page__intro,
    .workshop-section__grid,
    .materials-page__hero,
    .care-section__grid,
    .contact-page__grid { flex-direction: column; }
    .about-page__media,
    .about-page__copy,
    .workshop-section__copy,
    .workshop-section__photo,
    .materials-page__copy,
    .materials-page__visual,
    .care-section__grid > div,
    .contact-sidebar,
    .contact-form-card { width: 100%; }
    .about-page__media { height: 420px; }
    .workshop-section__photo { height: 380px; }
    .care-section__grid > div:last-child { padding-top: 0; }
    .contact-form-card { max-width: none; margin-left: 0; }
    .realization-card,
    .realization-card--large { width: calc(50% - 5px); height: 300px; }
    .footer-brand { width: 100%; }
    .footer-column { width: calc(33.333% - 34px); }
}

@media (max-width: 620px) {
    :root { --side: 18px; --header-height: 70px; }
    body { font-size: 14px; }
    h1 { font-size: 42px; }
    h2 { font-size: 33px; }
    h3 { font-size: 23px; }
    .section { padding: 62px 0; }
    .site-header__inner { gap: 10px; }
    .site-logo__image { max-width: 145px; max-height: 46px; }
    .menu-toggle { flex: 0 0 44px; width: 44px; }
    .mobile-menu { padding-top: calc(var(--header-height) + 20px); padding-left: max(var(--side), env(safe-area-inset-left)); padding-right: max(var(--side), env(safe-area-inset-right)); padding-bottom: max(30px, calc(20px + env(safe-area-inset-bottom))); }
    .mobile-menu__links > li > a { padding: 14px 0; font-size: 26px; }
    .home-hero { min-height: 600px; height: 100svh; max-height: 760px; }
    .home-hero__content { padding-bottom: 36px; }
    .home-hero h1 { margin-bottom: 18px; }
    .home-hero__lead { margin-bottom: 22px; font-size: 14px; }
    .button { min-height: 48px; padding: 0 17px; }
    .trust-strip__item { width: 100%; min-height: 80px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); padding: 14px 4px; }
    .trust-strip__item:last-child { border-bottom: 0; }
    .trust-strip__item strong { min-width: 64px; font-size: 25px; }
    .service-card { width: 100%; min-height: 380px; }
    .service-card__content { right: 22px; bottom: 23px; left: 22px; }
    .service-card strong { font-size: 24px; }
    .about-showcase { padding: 62px 0; }
    .about-showcase__media { min-height: 320px; }
    .about-showcase__image { height: 320px; }
    .about-showcase__card { width: calc(100% - 20px); margin-top: -42px; padding: 28px 24px; }
    .about-showcase__card h2 { font-size: 31px; }
    .about-showcase__facts { flex-direction: column; gap: 12px; }
    .about-showcase__facts span { width: 100%; }
    .process-list li { width: 100%; min-height: 0; padding: 24px 18px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.13); }
    .process-list li:nth-last-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.13); }
    .process-list li:last-child { border-bottom: 0; }
    .process-list h3 { margin-top: 16px; }
    .gallery-preview .section-heading { margin-bottom: 30px; }
    .masonry-preview { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 7px; }
    .gallery-tile,
    .gallery-tile--large { min-width: 80vw; width: 80vw; height: 390px; scroll-snap-align: start; }
    .gallery-tile__zoom,
    .realization-card__zoom { opacity: 1; }
    .faq-question { padding: 18px 0; }
    .faq-question > span:first-child { font-size: 13px; }
    .faq-answer p { padding-right: 0; }
    .subhero { min-height: 330px; }
    .subhero--image { min-height: 540px; }
    .service-hero .subhero__content { padding-top: 104px; padding-bottom: 66px; }
    .service-hero .button-row { margin-top: 24px; }
    .subhero__content { padding-top: 90px; padding-bottom: 58px; }
    .subhero__content h1 { font-size: 41px; }
    .subhero__lead { font-size: 14px; }
    .offer-row__media { height: 320px; min-height: 320px; }
    .offer-row__copy { padding: 30px 22px 34px; }
    .offer-row h2 { font-size: 31px; }
    .numbered-cards li { width: 100%; min-height: 0; padding: 22px 18px; border-right: 0; border-bottom: 1px solid var(--line); }
    .numbered-cards li:nth-last-child(-n+2) { border-bottom: 1px solid var(--line); }
    .numbered-cards li:last-child { border-bottom: 0; }
    .numbered-cards h3 { margin-top: 15px; }
    .service-detail__gallery { flex-direction: column; }
    .service-detail__gallery a { width: 100%; min-height: 360px; }
    .service-detail__gallery a:nth-child(2) { margin-top: 0; }
    .related-services__grid a,
    .related-services__grid a:nth-child(odd) { width: 100%; padding: 14px 0; border-right: 0; }
    .related-services__grid a:nth-child(even) { padding-left: 0; }
    .about-page__media { height: 340px; }
    .about-page__copy h2 { font-size: 32px; }
    .value-grid { flex-direction: column; }
    .value-grid article { width: 100%; min-height: 0; padding: 24px 18px; border-right: 0; border-bottom: 1px solid #d4d1ca; }
    .value-grid article:last-child { border-bottom: 0; }
    .value-grid h3 { margin-top: 20px; }
    .workshop-section__photo { height: 320px; }
    .materials-page__visual { min-height: 300px; padding: 24px; }
    .granite-card { width: 100%; min-height: 0; }
    .granite-card p { min-height: 0; }
    .contact-form-card { padding: 28px 20px 32px; }
    .contact-form-card h2 { font-size: 31px; }
    .post-realization-card { width: 100%; }
    .realization-card { width: calc(50% - 5px); height: auto; aspect-ratio: 4 / 5; }
    .contact-cta__inner { min-height: 390px; }
    .contact-cta__image { object-position: 62% 50%; }
    .contact-cta__background::after { background: linear-gradient(90deg, rgba(11,12,11,.90) 0%, rgba(11,12,11,.70) 62%, rgba(11,12,11,.34) 100%); }
    .contact-form--cf7 .wpcf7-form > p.cf7-half { width: 100%; }
    .contact-cta__copy { padding: 52px 0; }
    .contact-cta h2 { font-size: 34px; }
    .footer-main { gap: 28px; padding: 46px 0 38px; }
    .footer-column { width: calc(50% - 14px); }
    .footer-bottom { padding: 18px 0; flex-direction: column; align-items: flex-start; justify-content: center; }
    .footer-legal { flex-wrap: wrap; gap: 9px 17px; }
}

@media (max-width: 420px) {
    :root { --side: 15px; }
    h1, .home-hero h1, .subhero__content h1 { font-size: 37px; }
    h2 { font-size: 30px; }
    .site-logo__image { max-width: 132px; }
    .header-phone { display: none; }
    .mobile-menu__links > li > a { font-size: 24px; }
    .gallery-tile,
    .gallery-tile--large { min-width: 84vw; width: 84vw; height: 360px; }
    .realization-card,
    .realization-card--large { width: 100%; height: 390px; }
    .footer-column { width: 100%; }
}

@media (max-width: 900px) and (max-height: 600px) and (orientation: landscape) {
    :root { --header-height: 62px; }
    .site-logo__image { max-height: 42px; }
    .home-hero { min-height: 470px; height: 100svh; max-height: none; }
    .home-hero__content { padding-bottom: 25px; }
    .home-hero h1 { max-width: 760px; margin-bottom: 13px; font-size: 39px; }
    .home-hero__lead { max-width: 680px; margin-bottom: 16px; font-size: 13px; }
    .mobile-menu { padding-top: calc(var(--header-height) + 10px); }
    .mobile-menu__links > li > a { padding: 8px 0; font-size: 23px; }
    .mobile-menu__links .sub-menu a { padding: 4px 0; }
    .mobile-menu__contact { margin-top: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .button,
    .site-header,
    .menu-toggle::before,
    .menu-toggle::after,
    .menu-toggle span,
    .mobile-menu,
    .service-card__image,
    .gallery-tile img,
    .gallery-tile__zoom,
    .realization-card__zoom,
    .faq-icon,
    .faq-answer,
    .offer-row__image,
    .contact-form--cf7 input,
    .contact-form--cf7 select,
    .contact-form--cf7 textarea,
    .realization-card img,
    .lightbox,
    .reveal { transition: none; animation: none; }
    .reveal { opacity: 1; transform: none; }
}

/* Subpage spacing */
.subhero .breadcrumbs + h1 { margin-top: 24px; }
@media (max-width: 620px) {
    .subhero .breadcrumbs + h1 { margin-top: 20px; }
    .legal-copy__updated { margin-bottom: 38px; }
}


/* Portrait mosaic gallery and lightbox */
.masonry-preview--portrait,
.realization-gallery--portrait { display: flex; flex-direction: column; gap: 10px; }
.preview-mosaic-row,
.realization-gallery__row { display: flex; gap: 10px; align-items: stretch; }
.preview-mosaic-stack,
.realization-gallery__stack { width: calc(25% - 7.5px); display: flex; flex-direction: column; gap: 10px; }
.gallery-tile,
.realization-card { position: relative; display: block; overflow: hidden; background: #ddd; }
.gallery-tile img,
.realization-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .38s ease; }
.gallery-tile:hover img,
.realization-card:hover img { transform: scale(1.025); }
.gallery-tile--feature,
.realization-card--feature { width: calc(50% - 5px); height: 730px; }
.gallery-tile--stacked,
.realization-card--stacked { width: 100%; height: 360px; }
.preview-mosaic-row--tail .gallery-tile,
.realization-gallery__row--tail .realization-card { height: 360px; }
.preview-mosaic-row--tail.preview-mosaic-row--tail-4 .gallery-tile,
.realization-gallery__row--tail.realization-gallery__row--tail-4 .realization-card { width: calc(25% - 7.5px); }
.preview-mosaic-row--tail.preview-mosaic-row--tail-3 .gallery-tile,
.realization-gallery__row--tail.realization-gallery__row--tail-3 .realization-card { width: calc(33.333% - 6.67px); }
.preview-mosaic-row--tail.preview-mosaic-row--tail-2 .gallery-tile,
.realization-gallery__row--tail.realization-gallery__row--tail-2 .realization-card { width: calc(50% - 5px); }
.preview-mosaic-row--tail.preview-mosaic-row--tail-1 .gallery-tile,
.realization-gallery__row--tail.realization-gallery__row--tail-1 .realization-card { width: 100%; }
.preview-mosaic-row--feature-right,
.realization-gallery__row--feature-right { flex-direction: row-reverse; }
.lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(6,7,6,.84);
    backdrop-filter: blur(8px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .24s ease, visibility .24s ease;
}
.lightbox.is-open { opacity: 1; visibility: visible; }
.lightbox__panel {
    width: 100%;
    max-width: 1400px;
    height: calc(100vh - 48px);
    height: calc(100svh - 48px);
    max-height: 900px;
    display: flex;
    flex-direction: column;
    padding: 16px 18px 18px;
    background: rgba(16,18,16,.90);
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 30px 80px rgba(0,0,0,.35);
    overflow: hidden;
}
.lightbox__topbar {
    flex: 0 0 auto;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
}
.lightbox__counter { color: rgba(255,255,255,.78); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.lightbox__stage { position: relative; flex: 1 1 auto; min-height: 0; display: flex; align-items: center; gap: 16px; }
.lightbox__figure { flex: 1 1 auto; min-width: 0; min-height: 0; height: 100%; margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.lightbox__image-wrap { flex: 1 1 auto; width: 100%; min-height: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.18); overflow: hidden; }
.lightbox__figure img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: 0 16px 40px rgba(0,0,0,.22); }
.lightbox__figure figcaption { flex: 0 0 auto; width: 100%; min-height: 22px; margin: 0; color: rgba(255,255,255,.90); font-size: 13px; font-weight: 500; line-height: 1.45; text-align: center; }
.lightbox__close,
.lightbox__prev,
.lightbox__next { border: 0; color: #fff; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.lightbox__close { width: 44px; height: 44px; flex: 0 0 44px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.08); }
.lightbox__close svg { width: 18px; height: 18px; }
.lightbox__prev,
.lightbox__next { flex: 0 0 52px; width: 52px; height: 52px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.06); }
.lightbox__prev .icon-arrow,
.lightbox__next .icon-arrow { width: 28px; height: 28px; flex-basis: 28px; }
.lightbox__close:hover,
.lightbox__prev:hover,
.lightbox__next:hover,
.lightbox__close:focus-visible,
.lightbox__prev:focus-visible,
.lightbox__next:focus-visible { background: rgba(255,255,255,.14); }
.lightbox__prev:hover { transform: translateX(-2px); }
.lightbox__next:hover { transform: translateX(2px); }
.lightbox__thumbs { flex: 0 0 auto; display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; overflow-y: hidden; padding: 2px 0 3px; scrollbar-width: thin; }
.lightbox__thumb { flex: 0 0 64px; width: 64px; height: 78px; padding: 0; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); opacity: .58; cursor: pointer; transition: opacity .2s ease, border-color .2s ease, transform .2s ease; }
.lightbox__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lightbox__thumb:hover,
.lightbox__thumb:focus-visible,
.lightbox__thumb.is-active { opacity: 1; border-color: rgba(255,255,255,.58); transform: translateY(-1px); }
@media (max-width: 1020px) {
    .preview-mosaic-row,
    .realization-gallery__row { flex-wrap: wrap; }
    .gallery-tile--feature,
    .realization-card--feature { width: calc(50% - 5px); height: 520px; }
    .preview-mosaic-stack,
    .realization-gallery__stack { width: calc(50% - 5px); }
    .gallery-tile--stacked,
    .realization-card--stacked,
    .preview-mosaic-row--tail .gallery-tile,
    .realization-gallery__row--tail .realization-card { height: 255px; }
}
@media (max-width: 620px) {
    .masonry-preview--portrait,
    .realization-gallery--portrait { gap: 8px; }
    .preview-mosaic-row,
    .realization-gallery__row { gap: 8px; }
    .preview-mosaic-stack,
    .realization-gallery__stack { width: calc(50% - 4px); gap: 8px; }
    .gallery-tile--feature,
    .realization-card--feature,
    .gallery-tile--stacked,
    .realization-card--stacked,
    .preview-mosaic-row--tail .gallery-tile,
    .realization-gallery__row--tail .realization-card { width: calc(50% - 4px); height: 240px; }
    .preview-mosaic-row--feature-right,
    .realization-gallery__row--feature-right,
    .preview-mosaic-row--feature-left,
    .realization-gallery__row--feature-left { flex-direction: row; }
}
@media (max-width: 420px) {
    .preview-mosaic-row,
    .realization-gallery__row { gap: 8px; }
    .gallery-tile--feature,
    .realization-card--feature,
    .gallery-tile--stacked,
    .realization-card--stacked,
    .preview-mosaic-row--tail .gallery-tile,
    .realization-gallery__row--tail .realization-card { width: 100%; height: 310px; }
    .preview-mosaic-stack,
    .realization-gallery__stack { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .gallery-tile img,
    .realization-card img,
    .gallery-tile__zoom,
    .realization-card__zoom,
    .lightbox,
    .lightbox__thumb { transition: none; }
}

/* Home realization layout and mobile polish */
.gallery-preview .masonry-preview--portrait {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: stretch;
    overflow: visible;
}
.gallery-preview .gallery-tile--feature {
    flex: 0 0 calc(50% - 5px);
    width: calc(50% - 5px);
    height: 730px;
}
.gallery-preview .preview-mosaic-grid {
    flex: 0 0 calc(50% - 5px);
    width: calc(50% - 5px);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.gallery-preview .gallery-tile--small {
    width: calc(50% - 5px);
    height: 360px;
}
.gallery-preview .gallery-tile--feature img,
.gallery-preview .gallery-tile--small img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 1020px) {
    .gallery-preview .gallery-tile--feature { height: 560px; }
    .gallery-preview .gallery-tile--small { height: 275px; }
}

@media (max-width: 620px) {
    .gallery-preview .masonry-preview--portrait {
        display: block;
        overflow: visible;
        padding-bottom: 0;
    }
    .gallery-preview .gallery-tile--feature,
    .gallery-preview .preview-mosaic-grid,
    .gallery-preview .gallery-tile--small {
        width: 100%;
        min-width: 0;
    }
    .gallery-preview .gallery-tile--feature,
    .gallery-preview .gallery-tile--small {
        height: auto;
        aspect-ratio: 4 / 5;
        margin: 0 0 10px;
        scroll-snap-align: none;
    }
    .gallery-preview .preview-mosaic-grid {
        display: block;
    }
    .gallery-preview .gallery-tile--small:last-child { margin-bottom: 0; }
    .gallery-preview .gallery-tile__zoom { opacity: 1; }

    .realization-gallery--portrait .realization-gallery__row,
    .realization-gallery--portrait .realization-gallery__row--feature-left,
    .realization-gallery--portrait .realization-gallery__row--feature-right,
    .realization-gallery--portrait .realization-gallery__row--tail {
        display: block;
    }
    .realization-gallery--portrait .realization-gallery__stack,
    .realization-gallery--portrait .realization-card,
    .realization-gallery--portrait .realization-card--feature,
    .realization-gallery--portrait .realization-card--stacked,
    .realization-gallery--portrait .realization-card--tail {
        width: 100%;
        min-width: 0;
    }
    .realization-gallery--portrait .realization-card,
    .realization-gallery--portrait .realization-card--feature,
    .realization-gallery--portrait .realization-card--stacked,
    .realization-gallery--portrait .realization-card--tail {
        height: auto;
        aspect-ratio: 4 / 5;
        margin: 0 0 10px;
    }
    .realization-gallery--portrait .realization-gallery__stack { display: block; }
    .realization-gallery--portrait > .realization-gallery__row:last-child > .realization-card:last-child,
    .realization-gallery--portrait > .realization-gallery__row:last-child > .realization-gallery__stack:last-child > .realization-card:last-child { margin-bottom: 0; }

    .section-heading--split { gap: 22px; }
    .section-heading__side { width: 100%; }
    .button-row { flex-wrap: wrap; }
    .button-row .button { max-width: 100%; }
    .subhero__content h1,
    .subhero__lead { max-width: 100%; }
    .contact-info-list > * { align-items: flex-start; }
    .contact-info-list span { min-width: 0; }
    .contact-form--cf7 input,
    .contact-form--cf7 select,
    .contact-form--cf7 textarea { max-width: 100%; }
    .legal-copy { overflow-wrap: anywhere; }
}

@media (max-width: 420px) {
    .gallery-preview .gallery-tile--feature,
    .gallery-preview .gallery-tile--small,
    .realization-gallery--portrait .realization-card,
    .realization-gallery--portrait .realization-card--feature,
    .realization-gallery--portrait .realization-card--stacked,
    .realization-gallery--portrait .realization-card--tail {
        height: auto;
        aspect-ratio: 4 / 5;
    }
}

@media (max-width: 620px) {
    .home-hero .button-row { width: 100%; max-width: 220px; flex-direction: column; align-items: stretch; }
    .home-hero .button-row .button { width: 100%; min-width: 0; }
    .subhero .subhero__content.container { width: calc(100% - (var(--side) * 2)); }

    .lightbox { padding: 10px; }
    .lightbox__panel { width: 100%; height: calc(100vh - 20px); height: calc(100svh - 20px); max-height: none; padding: 10px 10px 12px; }
    .lightbox__topbar { min-height: 40px; margin-bottom: 8px; }
    .lightbox__stage { display: block; min-height: 0; }
    .lightbox__figure { width: 100%; height: 100%; gap: 8px; }
    .lightbox__image-wrap { width: 100%; }
    .lightbox__figure figcaption { min-height: 20px; padding: 0 46px; font-size: 12px; }
    .lightbox__prev,
    .lightbox__next { position: absolute; top: 50%; z-index: 3; width: 42px; height: 52px; margin-top: -26px; background: rgba(10,11,10,.62); backdrop-filter: blur(6px); }
    .lightbox__prev { left: 6px; }
    .lightbox__next { right: 6px; }
    .lightbox__close { width: 40px; height: 40px; flex-basis: 40px; }
    .lightbox__thumbs { margin-top: 8px; }
    .lightbox__thumb { flex-basis: 54px; width: 54px; height: 66px; }
}



/* Legal page container */
.legal-page { overflow: hidden; }
.legal-page .legal-copy.container {
    width: calc(100% - (var(--side) * 2));
    max-width: var(--container);
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 620px) {
    .legal-page .legal-copy.container {
        width: calc(100% - (var(--side) * 2));
    }
    .legal-copy__updated { margin-bottom: 34px; }
    .legal-copy h2 { margin-top: 1.65em; font-size: 26px; }
    .legal-copy > p,
    .legal-copy > ul { max-width: 100%; }
}
