/*
Theme Name: 3DRD Editorial
Theme URI: https://3druminska.com/
Author: 3DRD
Description: Lekki, edytowalny motyw editorial dla 3D Rumińska Design z integracją WooCommerce.
Version: 0.9.7
Requires at least: 6.2
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: 3drd-editorial
*/

:root {
  --ink: #11100f;
  --paper: #f5f3ef;
  --white: #fff;
  --line: rgba(17, 16, 15, .18);
  --muted: #716f6a;
  --accent: #b7843f;
  --content: min(100% - 40px, 1480px);
  --ease: cubic-bezier(.2, .75, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html {
  max-width: 100%;
  overflow-x: clip;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  max-width: 100%;
  overflow-x: clip;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.site-shell { width: var(--content); margin-inline: auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--paper) 88%, transparent);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(18px);
  transition: border-color .3s ease;
}
.site-header.is-scrolled { border-color: var(--line); }
.header-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { font-size: 1.24rem; font-weight: 800; letter-spacing: -.05em; text-decoration: none; }
.brand span { font-weight: 400; letter-spacing: -.035em; }
.primary-nav { display: flex; align-items: center; gap: clamp(22px, 3vw, 52px); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.primary-nav ul { display: contents; margin: 0; padding: 0; list-style: none; }
.primary-nav li { margin: 0; padding: 0; list-style: none; }
.primary-nav a { text-decoration: none; position: relative; }
.primary-nav a::after { content: ""; position: absolute; inset: auto 0 -5px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .35s var(--ease); }
.primary-nav a:hover::after, .primary-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; border: 0; background: none; padding: 10px 0; text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; }

.hero { min-height: calc(100svh - 76px); display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); border-bottom: 1px solid var(--line); }
.hero-copy { padding: clamp(54px, 8vw, 130px) max(20px, calc((100vw - 1480px) / 2)) clamp(56px, 7vw, 100px) max(20px, calc((100vw - 1480px) / 2)); padding-right: clamp(30px, 5vw, 86px); display: flex; flex-direction: column; justify-content: space-between; }
.eyebrow { margin: 0 0 24px; font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }
.display { margin: 0; font-size: clamp(4.1rem, 9.1vw, 10.8rem); line-height: .82; letter-spacing: -.075em; font-weight: 500; text-transform: uppercase; }
.display span { display: block; }
.hero-foot { display: flex; justify-content: space-between; align-items: end; gap: 24px; padding-top: 60px; }
.hero-foot p { max-width: 28rem; margin: 0; font-size: clamp(1rem, 1.4vw, 1.3rem); }
.arrow-link { display: inline-flex; gap: 12px; align-items: center; text-transform: uppercase; text-decoration: none; font-size: .72rem; letter-spacing: .1em; white-space: nowrap; }
.arrow-link::after { content: "\2192"; font-size: 1.15em; transition: transform .3s var(--ease); }
.arrow-link:hover::after { transform: translateX(6px); }
.hero-media { min-height: 680px; overflow: hidden; background: #d6d9d3; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.hero:hover .hero-media img { transform: scale(1.018); }

.section { padding: clamp(86px, 11vw, 180px) 0; border-bottom: 1px solid var(--line); }
.section-head { display: grid; grid-template-columns: 1fr 3fr; align-items: start; gap: 40px; margin-bottom: clamp(48px, 8vw, 118px); }
.section-label { margin: .4em 0 0; font-size: .68rem; text-transform: uppercase; letter-spacing: .13em; }
.section-title { margin: 0; max-width: 1200px; font-size: clamp(2.3rem, 5.1vw, 6.2rem); line-height: .98; letter-spacing: -.055em; font-weight: 500; }
.section-copy { grid-column: 2; max-width: 46rem; margin: 28px 0 0; color: #292725; font-size: clamp(1rem, 1.3vw, 1.25rem); }
.section-copy + .arrow-link { grid-column: 2; margin-top: 30px; justify-self: start; }

.project-list { display: grid; gap: clamp(76px, 10vw, 150px); }
.project { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, .7fr); gap: clamp(25px, 5vw, 80px); align-items: end; }
.project:nth-child(even) { grid-template-columns: minmax(260px, .7fr) minmax(0, 1.65fr); }
.project:nth-child(even) .project-media { order: 2; }
.project-media { overflow: hidden; background: #ddd; aspect-ratio: 16 / 10; }
.project-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .85s var(--ease); }
.project:hover .project-media img { transform: scale(1.025); }
.project-index { font-size: .68rem; letter-spacing: .12em; }
.project h3 { margin: 18px 0 8px; font-size: clamp(2.3rem, 5vw, 5.6rem); letter-spacing: -.06em; font-weight: 500; line-height: .9; }
.project p { margin: 0 0 30px; color: var(--muted); }

.services { padding-bottom: 0; }
.service-list { border-top: 1px solid var(--line); }
.service-row { position: relative; display: grid; grid-template-columns: 90px 1fr auto; gap: 28px; align-items: center; min-height: 150px; border-bottom: 1px solid var(--line); text-decoration: none; overflow: hidden; }
.service-row .num { font-size: .7rem; letter-spacing: .13em; }
.service-row h3 { position: relative; z-index: 1; margin: 0; font-weight: 500; font-size: clamp(2.1rem, 5vw, 5.7rem); letter-spacing: -.06em; text-transform: uppercase; }
.service-row .plus { font-size: 1.5rem; transition: transform .4s var(--ease); }
.service-row:hover .plus { transform: rotate(45deg); }
.service-row.is-static { cursor: default; }
.service-row.is-static:hover .plus { transform: none; }

.portfolio-preview { padding-top: clamp(80px, 10vw, 160px); }
.portfolio-preview__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; margin-bottom: clamp(40px, 6vw, 90px); }
.portfolio-preview__head .section-title { max-width: 1050px; }
.portfolio-preview__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2.5vw, 42px); }
.portfolio-preview__item { display: grid; gap: 16px; color: inherit; text-decoration: none; overflow: hidden; }
.portfolio-preview__item img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .7s var(--ease), filter .7s var(--ease); }
.portfolio-preview__item span { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.portfolio-preview__item:hover img { transform: scale(.99); filter: brightness(.94); }

.portfolio-page { padding: clamp(80px, 10vw, 150px) 0 clamp(90px, 12vw, 180px); }
.portfolio-page__hero { display: grid; grid-template-columns: 1fr 3fr; gap: 40px; align-items: start; margin-bottom: clamp(60px, 9vw, 130px); }
.portfolio-page__hero h1 { margin: 0; font-size: clamp(4.8rem, 12vw, 13rem); line-height: .8; letter-spacing: -.08em; font-weight: 500; text-transform: uppercase; }
.portfolio-page__content { display: grid; gap: clamp(26px, 4vw, 64px); }
.portfolio-page__content > * { margin: 0; }
.portfolio-page__content .wp-block-image img { width: 100%; height: auto; }
.portfolio-page__content .wp-block-spacer { display: none; }

.objects-intro { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 48px; }
.objects-intro .section-title { max-width: 780px; }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.product-card { text-decoration: none; }
.product-card-media { aspect-ratio: 4 / 5; overflow: hidden; background: #ddd; }
.product-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.product-card:hover img { transform: scale(1.025); }
.product-card-info { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 18px 0 0; }
.product-card h3 { margin: 0; font-size: 1.2rem; font-weight: 500; letter-spacing: -.03em; }
.product-card p { margin: 4px 0 0; color: var(--muted); font-size: .78rem; }
.product-card .price { margin: 2px 0 0; white-space: nowrap; color: var(--ink); }

.about-grid { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 8vw, 130px); align-items: start; }
.about-image { position: sticky; top: 110px; aspect-ratio: 4 / 5; overflow: hidden; }
.about-image img { width: 100%; height: 100%; object-fit: cover; }
.about-copy .section-label { margin-bottom: 60px; }
.about-copy { min-width: 0; }
.about-copy h2 { margin: 0 0 38px; max-width: 100%; font-size: clamp(2.8rem, 5.2vw, 6.5rem); line-height: .9; letter-spacing: -.065em; font-weight: 500; text-transform: uppercase; }
.about-copy h2 span { display: block; max-width: 100%; }
.about-copy p { max-width: 42rem; font-size: clamp(1.05rem, 1.45vw, 1.35rem); }

.contact { min-height: 88svh; display: flex; align-items: center; background: var(--ink); color: var(--paper); }
.contact-inner { width: var(--content); margin-inline: auto; padding: 100px 0; }
.contact h2 { margin: 50px 0 70px; max-width: 1200px; font-size: clamp(4rem, 10vw, 11rem); line-height: .82; letter-spacing: -.075em; font-weight: 500; text-transform: uppercase; }
.contact-link { font-size: clamp(1.2rem, 2.2vw, 2.5rem); text-underline-offset: .3em; }

/* Contact page */
.contact-page-hero { min-height: calc(82svh - 76px); display: flex; align-items: flex-end; padding: clamp(90px, 12vw, 185px) 0 clamp(70px, 9vw, 130px); border-bottom: 1px solid var(--line); }
.contact-page-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr); gap: clamp(55px, 9vw, 150px); align-items: end; }
.contact-page-intro h1 { margin: 0; font-size: clamp(5rem, 12vw, 13rem); line-height: .78; letter-spacing: -.08em; font-weight: 500; text-transform: uppercase; }
.contact-page-lead { max-width: 39rem; margin: clamp(45px, 6vw, 80px) 0 0; font-size: clamp(1.1rem, 1.6vw, 1.5rem); }
.contact-page-details { min-width: 0; padding-bottom: .4em; }
.contact-page-email { display: inline-block; max-width: 100%; margin-bottom: clamp(65px, 9vw, 120px); font-size: clamp(1.35rem, 2.4vw, 2.7rem); line-height: 1.1; overflow-wrap: anywhere; text-decoration-thickness: 1px; text-underline-offset: .28em; }
.contact-page-email::after { content: "\2192"; display: inline-block; margin-left: .35em; transition: transform .3s var(--ease); }
.contact-page-email:hover::after { transform: translateX(6px); }
.contact-business { margin: 0; border-top: 1px solid var(--line); }
.contact-business div { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.contact-business dt { color: var(--muted); font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }
.contact-business dd { margin: 0; font-size: .9rem; letter-spacing: .04em; }
.contact-form-section { padding: clamp(90px, 12vw, 170px) 0; background: var(--ink); color: var(--paper); }
.contact-form-grid { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: clamp(50px, 10vw, 160px); align-items: start; }
.contact-form-heading h2 { margin: 0; font-size: clamp(3rem, 6vw, 7rem); line-height: .88; letter-spacing: -.065em; font-weight: 500; text-transform: uppercase; }
.contact-form-content { min-width: 0; }
.contact-form-content > h1,
.contact-form-content > .wp-block-buttons,
.contact-form-content > .wp-block-columns,
.contact-form-content > .wp-block-group:last-child { display: none; }
.contact-form-content > .wp-block-group:first-of-type { margin: 0 !important; padding: 0 !important; background: transparent !important; color: inherit !important; }
.contact-form-content > .wp-block-group:first-of-type > .wp-block-group__inner-container > .wp-block-spacer,
.contact-form-content > .wp-block-group:first-of-type > .wp-block-group__inner-container > .wp-block-image,
.contact-form-content > .wp-block-group:first-of-type > .wp-block-group__inner-container > .wp-block-separator { display: none; }
.contact-form-content .wp-block-buttons { display: none; }
.contact-form-content form p { margin: 0 0 28px; }
.contact-form-content label { display: block; color: #b9b6b0; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.contact-form-content input:not([type="submit"]),
.contact-form-content textarea { display: block; width: 100%; margin-top: 9px; border: 0; border-bottom: 1px solid rgba(255,255,255,.42); border-radius: 0; padding: 13px 0; background: transparent; color: var(--paper); outline: none; }
.contact-form-content textarea { min-height: 120px; resize: vertical; }
.contact-form-content input:not([type="submit"]):focus,
.contact-form-content textarea:focus { border-color: var(--paper); }
.contact-form-content input[type="submit"],
.contact-form-content button[type="submit"] { min-height: 52px; border: 1px solid var(--paper); border-radius: 0; padding: 0 28px; background: transparent; color: var(--paper); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background .25s ease, color .25s ease; }
.contact-form-content input[type="submit"]:hover,
.contact-form-content button[type="submit"]:hover { background: var(--paper); color: var(--ink); }

/* 3DRD Publishing */
.publication-page { min-height: 80svh; }
.publication-hero { padding: clamp(90px, 12vw, 175px) 0 clamp(70px, 9vw, 130px); border-bottom: 1px solid var(--line); }
.publication-hero h1 { max-width: 1100px; margin: 0; font-size: clamp(4.5rem, 11vw, 12rem); line-height: .8; letter-spacing: -.08em; font-weight: 500; text-transform: uppercase; }
.publication-hero-copy { max-width: 42rem; margin: clamp(42px, 6vw, 72px) 0 0; font-size: clamp(1.05rem, 1.45vw, 1.35rem); }
.publication-feature { padding: clamp(85px, 11vw, 165px) 0; }
.publication-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); gap: clamp(45px, 9vw, 145px); align-items: start; }
.publication-cover { aspect-ratio: 1 / 1; overflow: hidden; background: #ddd; }
.publication-cover img { width: 100%; height: 100%; object-fit: cover; }
.publication-info { padding-top: 12px; }
.publication-info h2 { margin: 0 0 28px; font-size: clamp(3rem, 6vw, 7rem); line-height: .88; letter-spacing: -.065em; font-weight: 500; }
.publication-price { margin: 0 0 42px; font-size: 1.15rem; }
.publication-description { max-width: 38rem; margin-bottom: 45px; font-size: clamp(1rem, 1.25vw, 1.18rem); }
.publication-description p { margin: 0 0 1em; }
.publication-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.publication-actions .button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; border: 1px solid var(--ink); padding: 0 25px; background: var(--ink); color: var(--paper); font-size: .7rem; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: background .25s ease, color .25s ease; }
.publication-actions .button:hover { background: transparent; color: var(--ink); }

.site-footer { background: var(--ink); color: var(--paper); border-top: 1px solid rgba(255,255,255,.2); padding: 42px 0 58px; }
.footer-inner { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px; }
.footer-brand { font-size: clamp(2.6rem, 5vw, 5.4rem); letter-spacing: -.07em; font-weight: 700; }
.footer-nav, .footer-meta { display: grid; align-content: start; gap: 10px; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.footer-nav ul { display: contents; margin: 0; padding: 0; list-style: none; }
.footer-nav li { margin: 0; padding: 0; list-style: none; }
.footer-nav a { text-decoration: none; }
.footer-meta { color: #aaa7a2; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } }

/* Standard content */
.content-main { width: min(100% - 40px, 980px); margin: 0 auto; padding: clamp(70px, 10vw, 150px) 0; }
.content-main h1 { font-size: clamp(3rem, 8vw, 8rem); line-height: .9; letter-spacing: -.065em; font-weight: 500; }
.content-main h2 { margin-top: 2em; font-size: clamp(2rem, 4vw, 4rem); letter-spacing: -.045em; font-weight: 500; }
.content-main p, .content-main li { font-size: clamp(1rem, 1.3vw, 1.18rem); }

/* WooCommerce */
.woocommerce-page .site-main, .woocommerce .site-main { width: var(--content); margin-inline: auto; padding: clamp(60px, 8vw, 120px) 0; }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 50px; color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.22fr) minmax(350px, .78fr); column-gap: clamp(38px, 7vw, 110px); align-items: start; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product div.summary { position: static; top: auto; }
.woocommerce div.product .product_title { font-size: clamp(3.8rem, 7vw, 8rem); line-height: .86; letter-spacing: -.07em; font-weight: 500; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink); font-size: 1.25rem; }
.woocommerce-product-details__short-description { max-width: 38rem; margin: 35px 0; font-size: 1.05rem; }
.woocommerce div.product form.cart { display: flex; gap: 12px; margin-top: 34px; }
.woocommerce .quantity .qty { min-height: 54px; width: 72px; border: 1px solid var(--ink); background: transparent; }
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button { display: inline-flex; align-items: center; justify-content: center; width: auto; min-height: 50px; height: auto; border: 1px solid var(--ink); border-radius: 0; padding: 15px 22px; background: transparent; color: var(--ink); font-weight: 500; line-height: 1.1; text-transform: uppercase; letter-spacing: .1em; font-size: .69rem; transition: background .25s ease, color .25s ease; }
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover, .woocommerce button.button:hover, .woocommerce a.button:hover { background: var(--ink); color: var(--paper); }
.woocommerce div.product form.cart .single_add_to_cart_button { min-height: 54px; padding-inline: 30px; background: var(--ink); color: var(--paper); }
.woocommerce div.product form.cart .single_add_to_cart_button:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.woocommerce div.product .woocommerce-product-gallery__image { margin-bottom: 14px; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related { grid-column: 1 / -1; width: 100%; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 58px; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; }
.woocommerce ul.products li.product > a:first-child { text-decoration: none; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.1rem; font-weight: 500; }
.woocommerce ul.products li.product .price { color: var(--ink); }
.woocommerce ul.products li.product .button { width: 100%; margin-top: 18px; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--accent); background: #ece9e3; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--accent); }
.tatra-story { grid-column: 1 / -1; margin-top: clamp(100px, 14vw, 220px); }
.tatra-story-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: clamp(40px, 8vw, 130px); margin-bottom: clamp(90px, 12vw, 170px); align-items: start; }
.tatra-story-grid.reverse > :first-child { order: 2; }
.tatra-story h2 { margin: 0 0 35px; font-size: clamp(3rem, 6vw, 7rem); line-height: .9; letter-spacing: -.065em; font-weight: 500; }
.tatra-story p { max-width: 44rem; font-size: clamp(1rem, 1.3vw, 1.2rem); }
.tatra-story img { width: 100%; max-height: 85vh; object-fit: cover; }
.specs { border-top: 1px solid var(--line); }
.spec-row { display: grid; grid-template-columns: 1fr 2fr; gap: 30px; padding: 18px 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.spec-row span:first-child { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; }

@media (max-width: 900px) {
  :root { --content: min(100% - 28px, 1480px); }
  .header-inner { min-height: 66px; }
  .menu-toggle { display: block; }
  .primary-nav { position: fixed; inset: 66px 0 0; background: var(--paper); padding: 45px 20px; display: flex; flex-direction: column; align-items: flex-start; gap: 25px; font-size: clamp(1.8rem, 7vw, 3.5rem); transform: translateX(100%); transition: transform .45s var(--ease); }
  .menu-open .primary-nav { transform: none; }
  .hero { min-height: auto; grid-template-columns: 1fr; }
  .hero-copy { min-height: 65svh; padding: 55px 14px 48px; }
  .hero-media { min-height: 62svh; order: -1; }
  .display { font-size: clamp(4rem, 19vw, 8.2rem); }
  .section-head { grid-template-columns: 1fr; gap: 20px; }
  .section-copy, .section-copy + .arrow-link { grid-column: 1; }
  .project, .project:nth-child(even) { grid-template-columns: 1fr; }
  .project:nth-child(even) .project-media { order: initial; }
  .portfolio-preview__head { grid-template-columns: 1fr; align-items: start; }
  .portfolio-preview__grid { grid-template-columns: 1fr; gap: 38px; }
  .portfolio-page__hero { grid-template-columns: 1fr; gap: 18px; }
  .service-row { grid-template-columns: 48px 1fr auto; min-height: 110px; gap: 12px; }
  .product-grid { grid-template-columns: 1fr; gap: 52px; }
  .product-card-media { aspect-ratio: 4 / 4.5; }
  .about-grid { grid-template-columns: 1fr; }
  .about-image { position: static; aspect-ratio: 4 / 4.5; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .contact-page-grid, .contact-form-grid { grid-template-columns: 1fr; }
  .publication-grid { grid-template-columns: 1fr; }
  .contact-page-details { padding-top: 20px; }
  .contact-page-email { margin-bottom: 60px; }
  .woocommerce div.product { grid-template-columns: 1fr; }
  .woocommerce div.product div.summary { position: static; padding-top: 35px; }
  .woocommerce ul.products { grid-template-columns: 1fr 1fr; }
  .tatra-story-grid { grid-template-columns: 1fr; }
  .tatra-story-grid.reverse > :first-child { order: initial; }
}

@media (max-width: 560px) {
  .hero-foot { align-items: flex-start; flex-direction: column; }
  .objects-intro { align-items: flex-start; flex-direction: column; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-brand { grid-column: 1; }
  .contact-page-hero { min-height: auto; }
  .publication-hero h1 { font-size: clamp(4rem, 19vw, 7rem); }
  .contact-page-intro h1 { font-size: clamp(4.2rem, 20vw, 7rem); }
  .contact-business div { grid-template-columns: 90px 1fr; }
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .spec-row { grid-template-columns: 1fr; gap: 6px; }
}
