/*
Theme Name: Gudwin SEO Barebones
Theme URI: https://gudwinmetal.ru/
Author: Веб-студия Intuix
Description: Barebones тема ООО «ГУДВИН»: Gutenberg, ACF Pro, динамический каталог, адаптивное megamenu, Hero главной и интеграция с The SEO Framework.
Version: 5.3.2
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: gudwin-seo
*/

:root {
    --gudwin-font-family: "SF Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --gudwin-bg: #fff;
    --gudwin-text: #111;
    --gudwin-muted: #666;
    --gudwin-line: #e8e8e8;
    --gudwin-soft: #f7f7f7;
    --gudwin-radius: 14px;
    --gudwin-content: 1180px;
    --gudwin-reading: 780px;
    --gudwin-space: clamp(20px, 4vw, 56px);
    --gudwin-header-height: 56px;
    --gudwin-h1-size: clamp(2rem, 4.2vw, 3.5rem);
    --gudwin-chevron-right: url("assets/img/icons/chevron-right.svg");
    --gudwin-chevron-left: url("assets/img/icons/chevron-left.svg");
    font-family: var(--gudwin-font-family);
    color: var(--gudwin-text);
    background: var(--gudwin-bg);
}

* { box-sizing: border-box; }
.gudwin-chevron { display: inline-block; flex: none; width: 20px; height: 20px; background-color: currentColor; -webkit-mask: var(--gudwin-chevron-right) center / contain no-repeat; mask: var(--gudwin-chevron-right) center / contain no-repeat; }
.gudwin-chevron--left { -webkit-mask-image: var(--gudwin-chevron-left); mask-image: var(--gudwin-chevron-left); }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--gudwin-text); background: var(--gudwin-bg); font-family: var(--gudwin-font-family); font-size: 17px; font-weight: 400; line-height: 1.65; }
a { color: inherit; text-underline-offset: .16em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, input, select, textarea { font-family: var(--gudwin-font-family); }
h1, h2, h3, h4, h5, h6 { font-family: "SF Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
h1 { font-size: var(--gudwin-h1-size); }

.site-wrap { width: min(var(--gudwin-content), calc(100% - 32px)); margin-inline: auto; }
.site-footer { margin-top: clamp(56px, 8vw, 120px); color: rgba(255, 255, 255, .72); background: #111; font-size: 15px; line-height: 1.55; }
.site-footer a { text-decoration: none; transition: color .18s ease; }
.site-footer a:hover { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; }
.site-footer__main { padding: clamp(44px, 6vw, 72px) 0; }
.site-footer__grid { display: grid; grid-template-columns: minmax(230px, 1.35fr) minmax(150px, .75fr) minmax(190px, 1fr) minmax(220px, 1.1fr); gap: clamp(30px, 4vw, 64px); }
.site-footer__brand { max-width: 330px; }
.site-footer__logo { display: inline-flex; width: 190px; margin-bottom: 24px; }
.site-footer__logo img { width: 100%; height: auto; }
.site-footer__brand p { max-width: 310px; margin: 0; }
.site-footer__title { display: block; margin: 0 0 18px; color: #fff; font-size: 14px; font-weight: 650; letter-spacing: .01em; }
.site-footer__links { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.site-footer__links li { margin: 0; padding: 0; }
.site-footer__contacts address { display: grid; gap: 9px; margin: 0; font-style: normal; }
.site-footer__contacts address span:first-child { color: rgba(255, 255, 255, .88); }
.site-footer__contacts address span:nth-child(2) { margin-bottom: 5px; }
.site-footer__contacts a { width: fit-content; color: #fff; }
.site-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .14); }
.site-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 68px; padding-block: 18px; font-size: 14px; }
.site-footer__bottom a { color: rgba(255, 255, 255, .82); }

@media (max-width: 900px) {
    .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .site-footer__main { padding-block: 42px; }
    .site-footer__grid { grid-template-columns: 1fr; gap: 34px; }
    .site-footer__brand { max-width: none; }
    .site-footer__logo { width: 170px; margin-bottom: 18px; }
    .site-footer__bottom-inner { align-items: flex-start; flex-direction: column; gap: 7px; }
}

main.site-wrap { padding-top: clamp(28px, 5vw, 72px); }
article > h1,
.gudwin-term-intro > h1,
.archive > h1 { font-size: var(--gudwin-h1-size); line-height: 1.08; letter-spacing: -.045em; margin: 0 0 28px; max-width: 1040px; }

h2 { font-size: clamp(1.65rem, 3vw, 2.6rem); line-height: 1.08; letter-spacing: -.025em; margin-top: 1.8em; margin-bottom: .6em; }
h3 { font-size: 1.2rem; line-height: 1.25; margin: 0 0 10px; }
p, ul, ol { margin-top: 0; margin-bottom: 1.15em; }

.gudwin-page > p,
.gudwin-front-page > p,
.gudwin-page > ul,
.gudwin-page > ol,
.gudwin-page > .wp-block-details,
.gudwin-front-page > .wp-block-details { max-width: var(--gudwin-reading); }

.wp-block-group.gudwin-section { margin-block: var(--gudwin-space); }
.wp-block-group.gudwin-soft-section { background: var(--gudwin-soft); border-radius: var(--gudwin-radius); padding: clamp(22px, 4vw, 48px); margin-block: var(--gudwin-space); }
.wp-block-columns { gap: 18px; }

.gudwin-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.gudwin-card { border: 1px solid var(--gudwin-line); border-radius: var(--gudwin-radius); padding: clamp(18px, 2.5vw, 28px); background: #fff; }
.gudwin-card h3 a { text-decoration: none; }
.gudwin-card-text, .gudwin-meta { color: var(--gudwin-muted); font-size: .92rem; }
.gudwin-subcategory-list, .gudwin-plain-list { list-style: none; margin: 16px 0 0; padding: 0; }
.gudwin-subcategory-list { display: grid; gap: 6px; }
.gudwin-subcategory-list a { color: var(--gudwin-muted); }

.gudwin-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gudwin-category-card { min-width: 0; padding: 0; overflow: hidden; display: flex; flex-direction: column; border-radius: 20px; transition: border-color .2s ease, box-shadow .2s ease; }
.gudwin-category-card:hover { border-color: #c9c9c9; box-shadow: 0 8px 28px rgba(0, 0, 0, .035); }
.gudwin-category-card.is-direct-category { align-self: start; }
.gudwin-category-card a, .gudwin-category-card a:hover, .gudwin-category-card a:focus { text-decoration: none; }
.gudwin-category-card a:focus-visible { outline: 2px solid var(--gudwin-text); outline-offset: 3px; border-radius: 6px; }
.gudwin-category-image { display: grid; place-items: center; width: 100%; aspect-ratio: 1 / 1; flex: none; min-height: 0; overflow: hidden; background: #fff; }
.gudwin-category-image img { width: 100%; height: 100%; aspect-ratio: 1 / 1; min-height: 0; padding: 28px; object-fit: contain; }
.gudwin-category-image .gudwin-category-placeholder { width: 68%; height: 68%; padding: 0; opacity: .58; }
.gudwin-category-card-body { flex: 1; display: flex; flex-direction: column; padding: 18px 24px 20px; }
.gudwin-category-card h3 { min-height: 2.5em; margin: 0 0 12px; font-size: 1.2rem; line-height: 1.25; letter-spacing: -.02em; }
.gudwin-category-card .gudwin-subcategory-list { display: grid; gap: 0; margin: 0 -8px 18px; padding: 0; }
.gudwin-category-card .gudwin-subcategory-list li { margin: 0; padding: 0; }
.gudwin-category-card .gudwin-subcategory-list a { display: block; padding: 6px 8px; border-radius: 7px; font-size: 15px; line-height: 1.4; transition: background-color .15s ease, color .15s ease; }
.gudwin-category-card .gudwin-subcategory-list a:hover,
.gudwin-category-card .gudwin-subcategory-list a:focus-visible { color: var(--gudwin-text); background: var(--gudwin-soft); }
.gudwin-category-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 53px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--gudwin-line); font-size: 14px; font-weight: 600; }
.gudwin-category-cta-arrow { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--gudwin-soft); font-size: 22px; font-weight: 400; line-height: 1; transition: background-color .2s ease, color .2s ease; }
.gudwin-category-cta:hover .gudwin-category-cta-arrow,
.gudwin-category-cta:focus-visible .gudwin-category-cta-arrow { color: #fff; background: var(--gudwin-text); }
@media (max-width: 1024px) {
    .gudwin-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 600px) {
    .gudwin-category-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .gudwin-category-card-body { padding: 16px 20px 18px; }
    .gudwin-category-card .gudwin-subcategory-list a { padding-block: 11px; }
}
@media (prefers-reduced-motion: reduce) {
    .gudwin-category-card, .gudwin-category-card .gudwin-subcategory-list a, .gudwin-category-cta-arrow { transition: none; }
}

.gudwin-dynamic-block { margin-block: var(--gudwin-space); }
.gudwin-product-card { padding: 0; overflow: hidden; }
.gudwin-product-image { aspect-ratio: 4 / 3; background: var(--gudwin-soft); display: block; overflow: hidden; }
.gudwin-product-image img { width: 100%; height: 100%; object-fit: cover; }
.gudwin-product-card-body { padding: 20px; }
.gudwin-price { margin-bottom: 8px; font-size: 1.05rem; }
.gudwin-stock { display: inline-flex; align-items: center; min-height: 30px; padding: 3px 10px; border-radius: 999px; background: var(--gudwin-soft); font-size: .82rem; color: var(--gudwin-muted); }
.gudwin-card-link { margin: 18px 0 0; }

.breadcrumbs { font-size: 14px; color: var(--gudwin-muted); margin: 0 0 22px; }
.breadcrumbs a { color: inherit; }

.gudwin-cta { margin-block: var(--gudwin-space); padding: clamp(24px, 5vw, 56px); background: var(--gudwin-soft); border: 1px solid var(--gudwin-line); border-radius: var(--gudwin-radius); }
.gudwin-cta > *:first-child { margin-top: 0; }
.gudwin-cta > *:last-child { margin-bottom: 0; }
.gudwin-cta p { max-width: 720px; }

.gudwin-contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px; }
.gudwin-contact-grid > div { border-top: 1px solid var(--gudwin-line); padding-top: 14px; }
.gudwin-contact-grid p { margin: 4px 0; }
.gudwin-eyebrow { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--gudwin-muted); }

.wp-block-details { border-top: 1px solid var(--gudwin-line); padding: 18px 0; }
.wp-block-details:last-of-type { border-bottom: 1px solid var(--gudwin-line); }
.wp-block-details summary { cursor: pointer; font-weight: 650; }
.wp-block-details > :not(summary) { margin-top: 12px; }

.gudwin-product-buybox { background: var(--gudwin-soft); border-radius: var(--gudwin-radius); padding: 22px; margin-block: 28px; }
.gudwin-product-specs { width: 100%; border-collapse: collapse; margin-block: 28px; }
.gudwin-product-specs th, .gudwin-product-specs td { border-bottom: 1px solid var(--gudwin-line); padding: 12px 0; text-align: left; vertical-align: top; }
.gudwin-product-specs th { width: 35%; color: var(--gudwin-muted); font-weight: 500; }
.gudwin-editor-note { padding: 14px; background: var(--gudwin-soft); border: 1px dashed #bbb; }


/* Header + automatic megamenu */
.screen-reader-text { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.screen-reader-text:focus { position:fixed !important; z-index:10000; top:12px; left:12px; width:auto; height:auto; clip:auto; padding:10px 14px; margin:0; background:#fff; border:1px solid var(--gudwin-line); }
.site-header { position:relative; z-index:100; border:0; background:#fff; }
.site-header-top { border-bottom:1px solid var(--gudwin-line); color:var(--gudwin-muted); font-size:.78rem; }
.site-header-top-inner { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.site-header-top p { margin:0; }
.site-header-contacts { display:flex; gap:18px; }
.site-header-contacts a { text-decoration:none; }
.site-header-main { min-height:76px; display:grid; grid-template-columns:minmax(180px,260px) 1fr auto; gap:24px; align-items:center; }
.site-branding { min-width:0; display:grid; line-height:1.1; }
.site-brand { display:inline-flex; align-items:center; width:max-content; max-width:100%; text-decoration:none; }
.site-logo { max-height:44px; width:auto; }
.site-brand-name { font-size:1.02rem; font-weight:750; letter-spacing:-.02em; }
.site-brand-subtitle { margin-top:5px; color:var(--gudwin-muted); font-size:.72rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.header-cta { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:8px 15px; border:1px solid var(--gudwin-text); border-radius:999px; text-decoration:none; font-size:.86rem; white-space:nowrap; }
.header-cta:hover { background:var(--gudwin-text); color:#fff; }
.mega-nav { min-width:0; }
.nav-mobile-toggle { display:none; width:100%; border:0; background:transparent; color:inherit; cursor:pointer; }
.mega-menu { display:flex; justify-content:center; align-items:stretch; gap:4px; }
.mega-item { position:static; }
.mega-trigger-row { height:76px; display:flex; align-items:center; }
.mega-primary-link { position:relative; display:flex; align-items:center; height:100%; padding:0 9px; text-decoration:none; font-size:.87rem; white-space:nowrap; }
.mega-primary-link::after { content:""; position:absolute; left:9px; right:9px; bottom:0; height:2px; background:var(--gudwin-text); transform:scaleX(0); transform-origin:center; transition:transform .16s ease; }
.mega-primary-link:hover::after, .mega-primary-link.is-active::after, .is-current-section > .mega-trigger-row .mega-primary-link::after { transform:scaleX(1); }
.mega-toggle { width:26px; height:38px; margin-left:-5px; padding:0; border:0; background:transparent; color:var(--gudwin-muted); cursor:pointer; transition:transform .15s ease; }
.mega-item.is-open .mega-toggle { transform:rotate(180deg); }
.mega-panel { position:absolute; z-index:50; left:0; right:0; top:100%; visibility:hidden; opacity:0; transform:translateY(-5px); pointer-events:none; border-top:1px solid var(--gudwin-line); border-bottom:1px solid var(--gudwin-line); background:#fff; box-shadow:0 18px 40px rgba(0,0,0,.06); transition:opacity .15s ease, transform .15s ease, visibility .15s; }
.mega-item:hover > .mega-panel, .mega-item:focus-within > .mega-panel, .mega-item.is-open > .mega-panel { visibility:visible; opacity:1; transform:none; pointer-events:auto; }
.mega-panel-inner { width:min(var(--gudwin-content), calc(100% - 32px)); margin:auto; padding:30px 0 34px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px; }
.mega-panel-catalog-grid { grid-template-columns:minmax(0,2fr) minmax(230px,.8fr); }
.mega-column h2 { margin:0 0 16px; font-size:1.12rem; letter-spacing:-.02em; }
.mega-column h2 a { text-decoration:none; }
.mega-eyebrow { margin:0 0 6px; color:var(--gudwin-muted); font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.mega-term-list, .mega-link-list, .mega-product-list { list-style:none; padding:0; margin:0; }
.mega-term-depth-0 { columns:3; column-gap:28px; }
.mega-term-depth-0 > li { break-inside:avoid; margin:0 0 14px; }
.mega-term-depth-0 > li > a { font-weight:650; }
.mega-term-depth-1 { margin-top:5px; }
.mega-term-depth-1 li { margin:3px 0; }
.mega-term-depth-1 a { color:var(--gudwin-muted); font-size:.82rem; }
.mega-term-depth-2 { padding-left:10px; }
.mega-term-item a, .mega-link-list a, .mega-product-list a { text-decoration:none; }
.mega-term-item.is-active > a, .mega-link-list .is-active > a, .mega-product-list .is-active > a { font-weight:750; text-decoration:underline; text-underline-offset:.2em; }
.mega-link-list, .mega-product-list { display:grid; gap:8px; }
.mega-link-list a, .mega-product-list a { display:inline-block; padding:3px 0; }
.mega-product-list a { color:var(--gudwin-muted); font-size:.84rem; }
.mega-more { margin:15px 0 0; font-size:.84rem; }
.nav-mobile-icon { width:20px; height:12px; border-top:1px solid currentColor; border-bottom:1px solid currentColor; }

/* v4 product order layout */
.gudwin-product-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr); gap:clamp(24px,5vw,68px); align-items:start; }
.gudwin-product-main-image { background:var(--gudwin-soft); border-radius:var(--gudwin-radius); overflow:hidden; }
.gudwin-product-main-image img { width:100%; height:auto; }
.gudwin-product-order { position:sticky; top:24px; }
.gudwin-order-form { margin-top:24px; }
.gudwin-related-products { margin-top:var(--gudwin-space); }

@media (max-width: 980px) {
    .site-header-top { display:none; }
    .site-header-main { min-height:64px; grid-template-columns:1fr auto; gap:14px; }
    .site-brand-subtitle { display:none; }
    .header-cta { display:none; }
    .mega-nav { justify-self:end; }
    .nav-mobile-toggle { display:flex; align-items:center; justify-content:flex-end; gap:10px; min-height:44px; }
    .mega-menu { display:none; position:absolute; left:0; right:0; top:100%; max-height:calc(100vh - 64px); overflow:auto; padding:8px 16px 24px; background:#fff; border-top:1px solid var(--gudwin-line); border-bottom:1px solid var(--gudwin-line); }
    .mega-nav.is-mobile-open .mega-menu { display:block; }
    .mega-item { border-bottom:1px solid var(--gudwin-line); }
    .mega-trigger-row { height:auto; min-height:52px; }
    .mega-primary-link { flex:1; min-height:52px; padding:12px 0; font-size:.95rem; font-weight:650; }
    .mega-primary-link::after { left:0; right:0; }
    .mega-toggle { width:46px; height:52px; margin:0; font-size:1.1rem; }
    .mega-panel, .mega-item:hover > .mega-panel, .mega-item:focus-within > .mega-panel { position:static; display:none; visibility:visible; opacity:1; transform:none; pointer-events:auto; box-shadow:none; border:0; transition:none; }
    .mega-item.is-open > .mega-panel { display:block; }
    .mega-panel-inner, .mega-panel-catalog-grid { width:100%; grid-template-columns:1fr; gap:24px; padding:4px 0 22px; }
    .mega-term-depth-0 { columns:1; }
    .mega-term-depth-1 { padding-left:12px; }
    .gudwin-product-hero { grid-template-columns:1fr; }
    .gudwin-product-order { position:static; }
}

@media (max-width: 600px) {
    .site-header-main { width:min(100% - 24px,var(--gudwin-content)); }
    .site-brand-name { font-size:.92rem; }
}

@media (max-width: 700px) {
    body { font-size: 16px; }
    .site-wrap { width: min(100% - 24px, var(--gudwin-content)); }
    .site-header nav ul { gap: 8px 16px; }
    .gudwin-product-specs th { width: 45%; }
}


/* v5 front-page hero */
.home main.site-wrap { padding-top: 0; }
.gudwin-front-page { overflow: visible; }
.gudwin-hero {
    --gudwin-hero-bg-x: 0px;
    --gudwin-hero-bg-y: 0px;
    --gudwin-hero-wizard-x: 0px;
    --gudwin-hero-wizard-y: 0px;
    position: relative;
    isolation: isolate;
    width: 100vw;
    min-height: calc(100vh - var(--gudwin-header-height));
    min-height: calc(100svh - var(--gudwin-header-height));
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    display: grid;
    align-items: center;
    background: #07131c;
    color: #fff;
}
.gudwin-hero-background,
.gudwin-hero-shade,
.gudwin-hero-wizard,
.gudwin-hero-sparks {
    position: absolute;
}
.gudwin-hero-background {
    inset: 0;
    z-index: 0;
    background: #1d1d1d;
    transform: translate(var(--gudwin-hero-bg-x), var(--gudwin-hero-bg-y)) scale(1.065);
    transform-origin: center;
    will-change: transform;
}
.gudwin-hero-background-image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 52%;
    animation: gudwin-hero-background-reveal 1.35s cubic-bezier(.22, 1, .36, 1) both;
    animation-play-state: paused;
}
.gudwin-hero-shade {
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(4,17,27,.93) 0%, rgba(5,18,27,.79) 24%, rgba(5,18,27,.52) 42%, rgba(5,18,27,.12) 61%, rgba(5,18,27,0) 75%),
        linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.20));
    pointer-events: none;
}
.gudwin-hero-wizard {
    z-index: 2;
    right: clamp(22px, 6vw, 124px);
    /* Cover the maximum 4px upward parallax shift, plus a 2px buffer. */
    bottom: -6px;
    width: auto;
    height: min(92%, 780px);
    max-width: 48vw;
    object-fit: contain;
    object-position: right bottom;
    pointer-events: none;
    user-select: none;
    filter: drop-shadow(0 18px 24px rgba(0,0,0,.22));
    transform: translate(var(--gudwin-hero-wizard-x), var(--gudwin-hero-wizard-y));
    transform-origin: center bottom;
    will-change: transform;
    animation: gudwin-hero-wizard-reveal 1.35s cubic-bezier(.22, 1, .36, 1) both;
    animation-play-state: paused;
}
.gudwin-hero-sparks {
    inset: 0;
    z-index: 3;
    overflow: hidden;
    pointer-events: none;
}
.gudwin-spark {
    position: absolute;
    left: 0;
    top: 0;
    width: 3px;
    height: 3px;
    border-radius: 999px;
    background: #ff9a37;
    box-shadow: 0 0 5px rgba(255,145,47,.95), 0 0 12px rgba(255,103,24,.55);
    transform-origin: center;
    will-change: transform, opacity;
    visibility: hidden;
}
.gudwin-hero-inner {
    position: relative;
    z-index: 4;
    width: min(1312px, calc(100% - 48px));
    margin-inline: auto;
    padding: clamp(72px, 8vw, 132px) 0;
}
.gudwin-hero-copy { max-width: 690px; }
.gudwin-hero-title {
    max-width: 690px;
    margin: 0 0 42px;
    color: #fff;
    font-size: var(--gudwin-h1-size);
    line-height: 1.27;
    letter-spacing: -.035em;
    font-weight: 760;
    text-wrap: balance;
}
.gudwin-hero-text {
    max-width: 565px;
    margin: 0;
    color: rgba(255,255,255,.72);
    font-size: clamp(1.08rem, 1.25vw, 1.45rem);
    line-height: 1.48;
    font-weight: 400;
}
.home .gudwin-hero + * { margin-top: clamp(42px, 6vw, 86px); }

.gudwin-hero.is-reveal-ready .gudwin-hero-background-image,
.gudwin-hero.is-reveal-ready .gudwin-hero-wizard {
    animation-play-state: running;
}

@keyframes gudwin-hero-background-reveal {
    0% {
        opacity: 0;
        filter: saturate(.12) brightness(.34);
    }
    34% {
        opacity: .28;
        filter: saturate(.35) brightness(.52);
    }
    100% {
        opacity: 1;
        filter: saturate(1) brightness(1);
    }
}

@keyframes gudwin-hero-wizard-reveal {
    from { scale: .95; }
    to { scale: 1; }
}

@media (max-width: 900px) {
    .gudwin-hero-background {
        background-position: 66% center;
    }
    .gudwin-hero-background-image {
        object-position: 66% center;
    }
    .gudwin-hero-wizard {
        right: -7vw;
        height: min(84%, 680px);
        max-width: 54vw;
    }
    .gudwin-hero-shade {
        background: linear-gradient(90deg, rgba(4,17,27,.94) 0%, rgba(4,17,27,.82) 52%, rgba(4,17,27,.42) 100%);
    }
    .gudwin-hero-copy { max-width: 620px; }
}

@media (max-width: 600px) {
    .gudwin-hero {
        align-items: end;
    }
    .gudwin-hero-background {
        background-position: 68% center;
    }
    .gudwin-hero-background-image {
        object-position: 68% center;
    }
    .gudwin-hero-wizard {
        top: 0;
        right: -25vw;
        bottom: auto;
        height: 58%;
        max-width: none;
        opacity: .65;
        filter: brightness(.72) drop-shadow(0 14px 20px rgba(0,0,0,.18));
    }
    .gudwin-hero-shade {
        background:
            linear-gradient(180deg, rgba(4,17,27,.18) 0%, rgba(4,17,27,.66) 42%, rgba(4,17,27,.96) 100%),
            linear-gradient(90deg, rgba(4,17,27,.76), rgba(4,17,27,.28));
    }
    .gudwin-hero-inner {
        width: min(100% - 32px, 1312px);
        padding: 86px 0 54px;
    }
    .gudwin-hero-title {
        margin-bottom: 24px;
        font-size: var(--gudwin-h1-size);
        line-height: 1.08;
    }
    .gudwin-hero-text {
        color: rgba(255,255,255,.80);
        font-size: 1rem;
        line-height: 1.55;
    }
}

@media (max-width: 1024px) {
    :root { --gudwin-header-height: 64px; }
}

@media (prefers-reduced-motion: reduce) {
    .gudwin-hero-sparks { display: none; }
    .gudwin-hero-background { transform: scale(1.025); }
    .gudwin-hero-background-image { animation: none; opacity: 1; filter: none; }
    .gudwin-hero-wizard { animation: none; transform: none; scale: 1; }
}

/* Editable hero carousel; keep all slide layers inside their own canvas. */
.gudwin-hero.swiper { display: block; margin-right: 0; }
.gudwin-hero > .swiper-wrapper { height: auto; }
.gudwin-hero-slide {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    align-items: center;
    height: auto;
    min-height: calc(100vh - var(--gudwin-header-height));
    min-height: calc(100svh - var(--gudwin-header-height));
    background: #07131c;
}
.gudwin-hero:not(.swiper-initialized) .gudwin-hero-slide ~ .gudwin-hero-slide { display: none; }
.gudwin-hero-slide--additional .gudwin-hero-wizard {
    right: -5vw;
    width: 65vw;
    height: auto;
    max-width: 1120px;
    max-height: 94%;
}
.gudwin-hero-slide--additional .gudwin-hero-copy { max-width: 560px; }
.gudwin-hero.swiper-initialized .gudwin-hero-inner { padding-left: 64px; }
.gudwin-hero-controls {
    position: absolute;
    z-index: 5;
    bottom: 24px;
    right: max(24px, calc((100% - 1312px) / 2));
    display: none;
    align-items: center;
    gap: 12px;
}
.gudwin-hero.swiper-initialized .gudwin-hero-controls { display: flex; }
.gudwin-hero-controls > button {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 50%;
    color: #fff;
    background: rgba(7,19,28,.45);
    font: inherit;
    font-size: 23px;
    cursor: pointer;
}
.gudwin-hero-controls > button:hover { background: rgba(255,255,255,.18); }
.gudwin-hero-indicators {
    position: absolute;
    z-index: 5;
    top: var(--gudwin-indicators-top, 35%);
    left: max(24px, calc((100% - 1312px) / 2));
    display: none;
    width: 44px;
}
.gudwin-hero.swiper-initialized .gudwin-hero-indicators { display: block; }
.gudwin-hero-pagination {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 44px !important;
    height: var(--gudwin-indicators-height, 160px);
}
.gudwin-hero-pagination::before,
.gudwin-hero-pagination::after {
    content: '';
    position: absolute;
    top: 22px;
    bottom: 22px;
    left: 21px;
    width: 2px;
    background: rgba(255,255,255,.24);
    pointer-events: none;
}
.gudwin-hero-pagination::after {
    background: #fff;
    transform: scaleY(var(--gudwin-slide-progress, 0));
    transform-origin: center top;
}
.gudwin-hero-pagination .swiper-pagination-bullet {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin: 0 !important;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    opacity: 1;
    cursor: pointer;
}
.gudwin-hero-pagination .swiper-pagination-bullet::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #727b81;
}
.gudwin-hero-pagination .swiper-pagination-bullet-active::before { background: #fff; }
.gudwin-hero-autoplay {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-top: 4px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: rgba(255,255,255,.7);
    background: transparent;
    cursor: pointer;
}
.gudwin-hero-autoplay span { width: 8px; height: 10px; border-inline: 2px solid currentColor; }
.gudwin-hero-autoplay.is-paused span { width: 0; height: 0; border: 5px solid transparent; border-right: 0; border-left: 8px solid currentColor; }
.gudwin-hero-autoplay:hover { color: #fff; background: rgba(255,255,255,.1); }
.gudwin-hero-controls button:focus-visible,
.gudwin-hero-indicators button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
@media (max-width: 900px) {
    .gudwin-hero-slide--additional .gudwin-hero-wizard { right: -18vw; width: 84vw; }
    .gudwin-hero-slide--additional .gudwin-hero-copy { max-width: 60%; }
}
@media (max-width: 600px) {
    .gudwin-hero-slide { align-items: end; }
    .gudwin-hero-slide .gudwin-hero-inner { padding-bottom: 100px; }
    .gudwin-hero-slide--additional .gudwin-hero-wizard {
        top: 8%;
        right: -22vw;
        width: 110vw;
        max-height: 58%;
    }
    .gudwin-hero-slide--additional .gudwin-hero-copy { max-width: 100%; }
    .gudwin-hero-controls { right: 16px; bottom: 20px; }
    .gudwin-hero-indicators { left: 6px; }
    .gudwin-hero.swiper-initialized .gudwin-hero-inner { padding-left: 40px; }
    .gudwin-hero.swiper-initialized .gudwin-hero-title { font-size: var(--gudwin-h1-size); }
}

/* A finished scene keeps the mesh and beard detail intact without a cutout. */
@media (max-width: 600px) {
    .gudwin-hero-slide:not(.gudwin-hero-slide--additional) .gudwin-hero-wizard {
        top: auto;
        bottom: -6px;
        height: 90%;
        right: -25vw;
    }
    .gudwin-hero-slide--composited .gudwin-hero-background {
        top: var(--gudwin-header-height);
        bottom: auto;
        height: min(50%, 90vw);
        mask-image: linear-gradient(#000 84%, transparent 100%);
    }
    .gudwin-hero-slide--composited .gudwin-hero-background-image {
        object-position: right center;
    }
    .gudwin-hero-slide--composited .gudwin-hero-shade {
        background: linear-gradient(180deg, rgba(7,19,28,.04) 0%, rgba(7,19,28,.12) 36%, #07131c 57%);
    }
}

/* Standard pages share the mobile header's horizontal gutters. */
@media (max-width: 1024px) {
    body.page-template-default:not(.home) main.site-wrap {
        width: calc(100% - 48px);
    }
    .header-feedback-modal__form .iti,
    .header-feedback-modal__form input[type="tel"] {
        width: 100%;
        max-width: none;
    }
}

/* Match the contact form's direction icon to the rest of the site. */
.icf__submit .icf__submit-icon { display: none; }
.icf__submit::after {
    content: '';
    flex: none;
    width: 20px;
    height: 20px;
    background: currentColor;
    -webkit-mask: var(--gudwin-chevron-right) center / contain no-repeat;
    mask: var(--gudwin-chevron-right) center / contain no-repeat;
}
