:root {
    --ga-cream: #fbf7f2;
    --ga-cream-deep: #f2e8de;
    --ga-paper: #ffffff;
    --ga-ink: #2a211d;
    --ga-ink-soft: #665951;
    --ga-line: #e5d8ce;
    --ga-brand: #b65f3f;
    --ga-brand-dark: #8d432c;
    --ga-sage: #6f7d67;
    --ga-gold: #c79a61;
    --ga-shadow-sm: 0 10px 30px rgba(61, 43, 33, 0.08);
    --ga-shadow-lg: 0 24px 70px rgba(61, 43, 33, 0.14);
    --ga-radius-sm: 14px;
    --ga-radius: 24px;
    --ga-radius-lg: 36px;
    --ga-content: 1240px;
}

body.gosiart-overhaul {
    color: var(--ga-ink);
    background: var(--ga-cream);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.gosiart-overhaul :where(h1, h2, h3, h4, h5, h6) {
    color: var(--ga-ink);
    font-family: inherit;
    letter-spacing: -0.025em;
}

body.gosiart-overhaul :where(p, li, label, input, textarea, select, button) {
    font-family: inherit;
}

body.gosiart-overhaul a {
    color: var(--ga-brand-dark);
}

body.gosiart-overhaul a:hover {
    color: var(--ga-brand);
}

body.gosiart-overhaul :where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid rgba(182, 95, 63, 0.35);
    outline-offset: 3px;
}

body.gosiart-overhaul .site-content {
    color: var(--ga-ink);
    background: var(--ga-cream);
}

body.gosiart-overhaul .ast-container {
    width: min(100% - 40px, var(--ga-content));
    max-width: var(--ga-content);
}

/* Header */
body.gosiart-overhaul .site-header {
    position: relative;
    z-index: 50;
    border: 0;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 1px 0 rgba(89, 62, 48, 0.1);
}

body.gosiart-overhaul .ast-above-header-wrap,
body.gosiart-overhaul .ast-above-header-bar,
body.gosiart-overhaul #ast-desktop-header,
body.gosiart-overhaul #ast-mobile-header,
body.gosiart-overhaul .ast-primary-header-bar,
body.gosiart-overhaul .ast-mobile-header-wrap .ast-primary-header-bar {
    min-height: 78px;
    border: 0;
    color: var(--ga-ink);
    background: #fff !important;
}

body.gosiart-overhaul .site-branding img,
body.gosiart-overhaul .custom-logo-link img {
    width: auto;
    max-height: 48px;
}

body.gosiart-overhaul .site-title,
body.gosiart-overhaul .site-title a {
    color: var(--ga-ink) !important;
    font-size: clamp(24px, 2.1vw, 32px);
    font-weight: 850;
    letter-spacing: -0.04em;
}

body.gosiart-overhaul .main-header-menu > .menu-item > .menu-link {
    position: relative;
    min-height: 78px;
    padding: 0 16px;
    color: var(--ga-ink) !important;
    font-size: 15px;
    font-weight: 700;
}

body.gosiart-overhaul .main-header-menu > .menu-item > .menu-link::after {
    content: "";
    position: absolute;
    right: 16px;
    bottom: 18px;
    left: 16px;
    height: 2px;
    border-radius: 999px;
    background: var(--ga-brand);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .2s ease;
}

body.gosiart-overhaul .main-header-menu > .menu-item.current-menu-item > .menu-link::after,
body.gosiart-overhaul .main-header-menu > .menu-item > .menu-link:hover::after {
    transform: scaleX(1);
}

body.gosiart-overhaul .main-header-menu > .menu-item.current-menu-item > .menu-link,
body.gosiart-overhaul .main-header-menu > .menu-item > .menu-link:hover {
    color: var(--ga-brand) !important;
}

body.gosiart-overhaul .ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg {
    fill: var(--ga-ink) !important;
}

body.gosiart-overhaul .ast-mobile-popup-drawer .ast-mobile-popup-inner,
body.gosiart-overhaul .ast-builder-menu-mobile .main-navigation,
body.gosiart-overhaul .ast-builder-menu-mobile .main-header-menu {
    color: var(--ga-ink);
    background: #fff !important;
}

body.gosiart-overhaul .ast-builder-menu-mobile .main-header-menu .menu-link {
    color: var(--ga-ink) !important;
}

/* Shared components */
.ga-eyebrow {
    margin: 0 0 12px;
    color: var(--ga-brand-dark) !important;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.16em;
    line-height: 1.4;
}

.ga-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.ga-button {
    display: inline-flex;
    position: relative;
    overflow: hidden;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    padding: 13px 20px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
    text-decoration: none !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.ga-button:hover {
    transform: translateY(-2px);
}

.ga-button::after {
    content: "";
    position: absolute;
    top: -60%;
    bottom: -60%;
    left: -42%;
    width: 28%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .42), transparent);
    transform: skewX(-18deg) translateX(-180%);
    transition: transform .55s ease;
    pointer-events: none;
}

.ga-button:hover::after {
    transform: skewX(-18deg) translateX(620%);
}

.ga-button--primary {
    color: #fff !important;
    background: var(--ga-brand-dark);
    box-shadow: 0 12px 26px rgba(182, 95, 63, 0.24);
}

.ga-button--primary:hover {
    color: #fff !important;
    background: #703320;
}

.ga-button--secondary {
    border-color: var(--ga-line);
    color: var(--ga-ink) !important;
    background: var(--ga-paper);
}

.ga-button--secondary:hover {
    border-color: var(--ga-brand);
    color: var(--ga-brand-dark) !important;
}

.ga-button--light {
    color: var(--ga-ink) !important;
    background: #fff;
}

.ga-button--outline-light {
    border-color: rgba(255, 255, 255, 0.55);
    color: #fff !important;
    background: transparent;
}

.ga-text-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ga-brand-dark) !important;
    font-weight: 800;
    text-decoration: none !important;
}

.ga-text-link span {
    transition: transform 0.18s ease;
}

.ga-text-link:hover span {
    transform: translateX(4px);
}

/* Homepage */
body.gosiart-home-premium .site-content > .ast-container,
body.gosiart-home-premium #primary,
body.gosiart-home-premium article.ast-article-single {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

body.gosiart-home-premium article > .entry-header {
    display: none;
}

body.gosiart-home-premium .entry-content {
    margin: 0;
}

.ga-home {
    overflow: hidden;
    background: var(--ga-cream);
}

.ga-hero,
.ga-section,
.ga-story,
.ga-final-cta,
.ga-benefit-bar {
    width: min(100% - 40px, var(--ga-content));
    margin-right: auto;
    margin-left: auto;
}

.ga-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, 0.95fr);
    gap: clamp(36px, 6vw, 86px);
    align-items: center;
    min-height: 680px;
    padding: clamp(58px, 8vw, 110px) 0;
}

.ga-hero__copy h1 {
    max-width: 760px;
    margin: 0 0 22px;
    font-size: clamp(46px, 6.2vw, 82px);
    font-weight: 880;
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.ga-hero__lead {
    max-width: 650px;
    margin: 0 0 30px;
    color: var(--ga-ink-soft);
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.62;
}

.ga-hero__proof {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin: 28px 0 0;
    padding: 0;
    color: var(--ga-ink-soft);
    font-size: 14px;
    font-weight: 700;
    list-style: none;
}

.ga-hero__proof li::before {
    content: "✓";
    margin-right: 7px;
    color: var(--ga-sage);
    font-weight: 900;
}

.ga-hero__visual {
    position: relative;
    isolation: isolate;
    min-height: 530px;
}

.ga-hero__visual::before,
.ga-hero__visual::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 999px;
    pointer-events: none;
}

.ga-hero__visual::before {
    top: -7%;
    right: -9%;
    width: 72%;
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(199, 154, 97, .2), rgba(199, 154, 97, 0) 68%);
}

.ga-hero__visual::after {
    bottom: 0;
    left: 5%;
    width: 44%;
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(111, 125, 103, .18), rgba(111, 125, 103, 0) 70%);
}

.ga-hero__main-image {
    position: relative;
    z-index: 1;
    overflow: hidden;
    width: min(100%, 510px);
    aspect-ratio: 0.92 / 1;
    margin-left: auto;
    border: 10px solid #fff;
    border-radius: var(--ga-radius-lg);
    background: #fff;
    box-shadow: var(--ga-shadow-lg);
    transform: rotate(1.8deg);
    transition: transform .45s ease, box-shadow .45s ease;
}

.ga-hero__visual:hover .ga-hero__main-image {
    box-shadow: 0 30px 82px rgba(61, 43, 33, .18);
    transform: rotate(.7deg) translateY(-4px);
}

.ga-hero__main-image img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
}

.ga-hero__mini-image {
    position: absolute;
    z-index: 3;
    bottom: -12px;
    left: -30px;
    overflow: hidden;
    width: 190px;
    aspect-ratio: 0.92 / 1;
    border: 8px solid #fff;
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--ga-shadow-lg);
    transform: rotate(-4deg);
    animation: ga-float-mini 6s ease-in-out infinite;
}

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

.ga-hero__badge {
    position: absolute;
    z-index: 4;
    top: 34px;
    left: -26px;
    display: flex;
    min-width: 150px;
    flex-direction: column;
    padding: 18px 20px;
    border-radius: 20px;
    color: #fff;
    background: var(--ga-ink);
    box-shadow: var(--ga-shadow-sm);
    transform: rotate(-2deg);
    animation: ga-float-badge 5.2s ease-in-out infinite;
}

@keyframes ga-float-mini {
    0%, 100% { transform: rotate(-4deg) translateY(0); }
    50% { transform: rotate(-2.8deg) translateY(-7px); }
}

@keyframes ga-float-badge {
    0%, 100% { transform: rotate(-2deg) translateY(0); }
    50% { transform: rotate(-1deg) translateY(5px); }
}

.ga-hero__badge strong {
    font-size: 17px;
}

.ga-hero__badge span {
    margin-top: 2px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
}

.ga-benefit-bar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: var(--ga-paper);
    box-shadow: var(--ga-shadow-sm);
}

.ga-benefit-bar > div {
    min-width: 0;
    padding: 25px 26px;
}

.ga-benefit-bar > div + div {
    border-left: 1px solid var(--ga-line);
}

.ga-benefit-bar strong,
.ga-benefit-bar span {
    display: block;
}

.ga-benefit-bar strong {
    margin-bottom: 3px;
    color: var(--ga-ink);
    font-size: 15px;
}

.ga-benefit-bar span {
    color: var(--ga-ink-soft);
    font-size: 13px;
    line-height: 1.45;
}

.ga-section {
    padding: clamp(74px, 9vw, 120px) 0;
}

.ga-section--soft {
    position: relative;
}

.ga-section--soft::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 30px -80px;
    border-radius: 44px;
    background: var(--ga-cream-deep);
}

.ga-section--soft > * {
    position: relative;
    z-index: 1;
}

.ga-section__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 26px;
    margin-bottom: 34px;
}

.ga-section__head--center {
    justify-content: center;
    text-align: center;
}

.ga-section__head h2,
.ga-story h2,
.ga-final-cta h2,
.ga-contact-quick h2 {
    margin: 0;
    font-size: clamp(34px, 4.5vw, 56px);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -0.045em;
}

.ga-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ga-category {
    display: flex;
    position: relative;
    isolation: isolate;
    min-height: 250px;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    padding: 28px;
    border-radius: var(--ga-radius);
    color: #fff !important;
    text-decoration: none !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ga-category::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -70px;
    right: -65px;
    width: 190px;
    height: 190px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 50%;
    box-shadow: 0 0 0 28px rgba(255, 255, 255, .035), 0 0 0 58px rgba(255, 255, 255, .025);
    transition: transform .35s ease;
}

.ga-category::after {
    position: absolute;
    z-index: -1;
    top: 20px;
    right: 24px;
    color: rgba(255, 255, 255, .2);
    font-size: 58px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.06em;
}

.ga-category:nth-child(1)::after { content: "01"; }
.ga-category:nth-child(2)::after { content: "02"; }
.ga-category:nth-child(3)::after { content: "03"; }
.ga-category:nth-child(4)::after { content: "04"; }

.ga-category:hover {
    color: #fff !important;
    box-shadow: var(--ga-shadow-lg);
    transform: translateY(-5px);
}

.ga-category:hover::before {
    transform: scale(1.12) translate(-5px, 5px);
}

.ga-category span {
    font-size: clamp(24px, 2.4vw, 32px);
    font-weight: 850;
    line-height: 1.05;
}

.ga-category small {
    max-width: 220px;
    margin-top: 10px;
    color: rgba(255, 255, 255, 0.8);
    font-size: 14px;
    line-height: 1.5;
}

.ga-category--terracotta {
    background: linear-gradient(145deg, #c96e4b, #98472f);
}

.ga-category--sage {
    background: linear-gradient(145deg, #84917b, #566451);
}

.ga-category--gold {
    background: linear-gradient(145deg, #d5ad74, #a87942);
}

.ga-category--ink {
    background: linear-gradient(145deg, #463832, #211a17);
}

.ga-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.ga-product-card {
    overflow: hidden;
    border: 1px solid rgba(95, 66, 50, 0.1);
    border-radius: var(--ga-radius);
    background: #fff;
    box-shadow: 0 8px 22px rgba(61, 43, 33, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ga-product-card:hover {
    box-shadow: var(--ga-shadow-sm);
    transform: translateY(-4px);
}

.ga-product-card__image {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: #f5eee8;
}

.ga-product-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    transition: transform 0.28s ease;
}

.ga-product-card:hover .ga-product-card__image img {
    transform: scale(1.035);
}

.ga-product-card__content {
    padding: 21px 21px 24px;
}

.ga-product-card h3 {
    min-height: 2.8em;
    margin: 0 0 10px;
    font-size: 18px;
    line-height: 1.35;
}

.ga-product-card h3 a {
    color: var(--ga-ink) !important;
    text-decoration: none !important;
}

.ga-product-card__price {
    margin-bottom: 16px;
    color: var(--ga-brand-dark);
    font-size: 17px;
    font-weight: 850;
}

.ga-product-card .ga-text-link {
    font-size: 13px;
}

.ga-process {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ga-process li {
    padding: clamp(26px, 3.5vw, 40px);
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: var(--ga-paper);
    transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.ga-process li:hover {
    border-color: rgba(182, 95, 63, .34);
    box-shadow: var(--ga-shadow-sm);
    transform: translateY(-5px);
}

.ga-process li > span {
    display: block;
    margin-bottom: 42px;
    color: var(--ga-brand-dark);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.ga-process h3 {
    margin: 0 0 10px;
    font-size: 23px;
}

.ga-process p {
    margin: 0;
    color: var(--ga-ink-soft);
    line-height: 1.65;
}

.ga-story {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(38px, 7vw, 90px);
    align-items: center;
    padding: clamp(50px, 7vw, 86px);
    border-radius: var(--ga-radius-lg);
    color: #fff;
    background: var(--ga-ink);
    box-shadow: var(--ga-shadow-lg);
}

.ga-story :where(h2, p, a) {
    color: #fff !important;
}

.ga-story > div > p:not(.ga-eyebrow) {
    margin: 20px 0 26px;
    color: rgba(255, 255, 255, 0.73) !important;
    font-size: 18px;
    line-height: 1.7;
}

.ga-story .ga-eyebrow {
    color: #e5a98f !important;
}

.ga-story ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ga-story li {
    padding: 22px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.13);
}

.ga-story li:first-child {
    border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.ga-story li strong,
.ga-story li span {
    display: block;
}

.ga-story li strong {
    margin-bottom: 5px;
    color: #fff;
    font-size: 17px;
}

.ga-story li span {
    color: rgba(255, 255, 255, 0.64);
    font-size: 14px;
}

.ga-faq__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ga-faq details {
    border: 1px solid var(--ga-line);
    border-radius: 18px;
    background: #fff;
}

.ga-faq summary {
    position: relative;
    padding: 21px 52px 21px 22px;
    color: var(--ga-ink);
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.ga-faq summary::-webkit-details-marker {
    display: none;
}

.ga-faq summary::after {
    content: "+";
    position: absolute;
    top: 17px;
    right: 21px;
    color: var(--ga-brand);
    font-size: 26px;
    font-weight: 500;
}

.ga-faq details[open] summary::after {
    content: "–";
}

.ga-faq details p {
    margin: 0;
    padding: 0 22px 22px;
    color: var(--ga-ink-soft);
    line-height: 1.65;
}

.ga-final-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: clamp(70px, 9vw, 120px);
    padding: clamp(40px, 6vw, 72px);
    border-radius: var(--ga-radius-lg);
    color: #fff;
    background: linear-gradient(135deg, var(--ga-brand), var(--ga-brand-dark));
    box-shadow: 0 24px 60px rgba(141, 67, 44, 0.22);
}

.ga-final-cta > div:first-child {
    max-width: 730px;
}

body.gosiart-overhaul .ga-final-cta :where(h2, p) {
    color: #fff !important;
}

.ga-final-cta .ga-eyebrow {
    color: rgba(255, 255, 255, 0.72) !important;
}

.ga-final-cta p:not(.ga-eyebrow) {
    margin: 16px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 17px;
    line-height: 1.6;
}

.ga-final-cta .ga-actions {
    flex: 0 0 250px;
}

.ga-final-cta .ga-button {
    width: 100%;
}

/* WooCommerce archives */
body.gosiart-clean-shop .site-content {
    padding: 54px 0 90px;
}

body.gosiart-clean-shop .woocommerce-products-header__title,
body.gosiart-clean-shop .page-title {
    margin: 0 0 40px;
    font-size: clamp(38px, 5vw, 58px);
    font-weight: 850;
    text-align: left;
}

body.gosiart-clean-shop .woocommerce-result-count {
    color: var(--ga-ink-soft);
}

body.gosiart-clean-shop .woocommerce-ordering select.orderby {
    min-height: 46px;
    padding: 9px 40px 9px 14px;
    border: 1px solid var(--ga-line);
    border-radius: 12px;
    color: var(--ga-ink);
    background-color: #fff;
}

body.gosiart-clean-shop ul.products {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    gap: 26px 20px !important;
    align-items: stretch;
    margin-top: 34px;
}

body.gosiart-clean-shop ul.products::before,
body.gosiart-clean-shop ul.products::after {
    display: none;
}

body.gosiart-clean-shop ul.products li.product {
    display: flex !important;
    grid-column: span 3;
    float: none !important;
    flex-direction: column;
    align-self: stretch;
    overflow: hidden;
    width: auto !important;
    height: auto;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(95, 66, 50, 0.11);
    border-radius: 20px;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(61, 43, 33, 0.05);
    text-align: left;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.gosiart-clean-shop ul.products li.product:hover {
    box-shadow: var(--ga-shadow-sm);
    transform: translateY(-4px);
}

body.gosiart-clean-shop ul.products li.product .astra-shop-thumbnail-wrap {
    background: #f5eee8;
}

body.gosiart-clean-shop ul.products li.product:not(.product-category) img {
    width: 100%;
    aspect-ratio: 1 / 1;
    margin: 0;
    object-fit: cover;
}

body.gosiart-clean-shop ul.products li.product .astra-shop-summary-wrap {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding-bottom: 20px;
}

body.gosiart-clean-shop ul.products li.product .woocommerce-loop-product__link {
    text-decoration: none !important;
}

body.gosiart-clean-shop ul.products li.product .ast-loop-product__link {
    color: var(--ga-ink) !important;
    text-decoration: none !important;
}

body.gosiart-clean-shop ul.products li.product .ast-woo-product-category,
body.gosiart-clean-shop ul.products li.product .woocommerce-loop-product__title,
body.gosiart-clean-shop ul.products li.product .price,
body.gosiart-clean-shop ul.products li.product .button,
body.gosiart-clean-shop ul.products li.product .added_to_cart,
body.gosiart-clean-shop ul.products li.product .lumise-customize-button {
    margin-right: 18px;
    margin-left: 18px;
}

body.gosiart-clean-shop ul.products li.product .ast-woo-product-category {
    display: block;
    margin-top: 18px;
    color: var(--ga-brand) !important;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

body.gosiart-clean-shop ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box;
    overflow: hidden;
    min-height: 2.8em;
    margin-top: 7px;
    color: var(--ga-ink) !important;
    font-size: 17px;
    line-height: 1.38;
    text-decoration: none !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

body.gosiart-clean-shop ul.products li.product .price {
    display: block;
    margin-top: 12px;
    color: var(--ga-brand-dark) !important;
    font-size: 16px;
    font-weight: 850;
}

body.gosiart-clean-shop ul.products li.product .price * {
    color: inherit !important;
}

body.gosiart-clean-shop ul.products li.product .button,
body.gosiart-clean-shop ul.products li.product .added_to_cart,
body.gosiart-clean-shop ul.products li.product .lumise-customize-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    margin-top: auto !important;
    margin-bottom: 0 !important;
    padding: 10px 16px;
    border: 0 !important;
    border-radius: 999px;
    color: #fff !important;
    background: var(--ga-brand) !important;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none !important;
}

body.gosiart-clean-shop ul.products li.product .button:hover,
body.gosiart-clean-shop ul.products li.product .added_to_cart:hover,
body.gosiart-clean-shop ul.products li.product .lumise-customize-button:hover {
    background: var(--ga-brand-dark) !important;
}

html body.gosiart-clean-shop ul.products li.product :is(a.lumise-customize-button, a.ga-lumise-editor-button),
html body.gosiart-clean-product :is(a.lumise-customize-button, a.ga-lumise-editor-button) {
    border: 0 !important;
    border-radius: 999px !important;
    color: #fff !important;
    background-color: var(--ga-brand) !important;
    background-image: none !important;
    box-shadow: none !important;
    font-weight: 850 !important;
    text-decoration: none !important;
}

html body.gosiart-overhaul .onsale {
    border-color: var(--ga-brand-dark) !important;
    color: #fff !important;
    background-color: var(--ga-brand-dark) !important;
}

body.gosiart-clean-shop .wc-gzd-additional-info-loop {
    display: block;
    margin: 6px 18px 0;
    color: var(--ga-ink-soft);
    font-size: 10px;
    line-height: 1.35;
}

body.gosiart-clean-shop .wc-gzd-additional-info-loop a {
    color: inherit;
    text-decoration-color: rgba(48, 40, 34, .28);
    text-underline-offset: 2px;
}

body.gosiart-clean-shop .wc-gzd-additional-info-loop:last-child {
    margin-bottom: 8px;
}

body.gosiart-clean-shop ul.products li.product-category {
    display: block !important;
    grid-column: span 4;
    min-height: 245px;
    padding: 0;
}

body.gosiart-clean-shop ul.products li.product-category a {
    display: block;
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
    min-height: 245px;
    text-decoration: none !important;
}

body.gosiart-clean-shop ul.products li.product-category a::after {
    content: "";
    position: absolute;
    inset: 42% 0 0;
    background: linear-gradient(transparent, rgba(31, 23, 19, 0.9));
}

body.gosiart-clean-shop ul.products li.product-category img {
    width: 100%;
    height: 100%;
    min-height: 245px;
    margin: 0;
    object-fit: cover;
}

body.gosiart-clean-shop ul.products li.product-category .woocommerce-loop-category__title {
    position: absolute;
    z-index: 2;
    right: 20px;
    bottom: 20px;
    left: 20px;
    margin: 0;
    color: #fff !important;
    background: transparent !important;
    font-size: 21px;
    font-weight: 850;
    line-height: 1.12;
}

body.gosiart-clean-shop ul.products li.product-category .count {
    display: block;
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.72);
    background: transparent !important;
    font-size: 12px;
    font-weight: 650;
}

/* Single product */
body.gosiart-clean-product .site-content {
    padding: 54px 0 90px;
}

body.gosiart-clean-product #primary > .entry-header,
body.gosiart-clean-product article.product > .entry-header {
    display: none !important;
}

body.gosiart-clean-product .ast-woocommerce-container > .product {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    gap: clamp(30px, 5vw, 66px);
    align-items: start;
}

body.gosiart-clean-product div.product div.images,
body.gosiart-clean-product div.product div.summary {
    float: none;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none;
    margin: 0 !important;
}

body.gosiart-clean-product div.product div.images .woocommerce-product-gallery__wrapper {
    overflow: hidden;
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: #fff;
}

/* Keep the server-rendered gallery stable until WooCommerce builds FlexSlider. */
body.gosiart-clean-product div.product div.images > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) {
    display: none;
}

body.gosiart-clean-product div.product div.images .woocommerce-product-gallery__image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

body.gosiart-clean-product div.product div.images .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    margin-top: 12px;
}

body.gosiart-clean-product div.product div.images .flex-control-thumbs li {
    float: none;
    width: auto;
}

body.gosiart-clean-product div.product div.images .flex-control-thumbs img {
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border: 2px solid transparent;
    border-radius: 12px;
    object-fit: cover;
}

body.gosiart-clean-product div.product div.images .flex-control-thumbs img.flex-active {
    border-color: var(--ga-brand);
}

body.gosiart-clean-product div.product div.summary {
    position: relative;
    top: auto;
    align-self: start;
    padding: clamp(26px, 4vw, 42px);
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: #fff;
    box-shadow: var(--ga-shadow-sm);
}

body.gosiart-clean-product .woocommerce-breadcrumb {
    margin-bottom: 17px;
    color: var(--ga-ink-soft);
    font-size: 12px;
}

body.gosiart-clean-product div.product .product_title {
    margin: 0 0 14px;
    color: var(--ga-ink);
    font-size: clamp(31px, 3.3vw, 44px);
    font-weight: 850;
    line-height: 1.08;
}

body.gosiart-clean-product div.product p.price,
body.gosiart-clean-product div.product span.price {
    margin-bottom: 18px;
    color: var(--ga-brand-dark);
    font-size: clamp(24px, 2.6vw, 32px);
    font-weight: 850;
}

body.gosiart-clean-product .woocommerce-product-details__short-description {
    color: var(--ga-ink-soft);
    font-size: 16px;
    line-height: 1.65;
}

.ga-product-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 20px 0;
    padding: 0;
    list-style: none;
}

.ga-product-trust li {
    padding: 7px 10px;
    border-radius: 999px;
    color: #44503f;
    background: #edf1ea;
    font-size: 11px;
    font-weight: 800;
}

.ga-product-trust li::before {
    content: "✓";
    margin-right: 5px;
}

body.gosiart-clean-product form.cart {
    margin-top: 20px;
}

body.gosiart-clean-product .quantity .qty,
body.gosiart-clean-product table.variations select,
body.gosiart-clean-product .ppom-input {
    min-height: 46px;
    border: 1px solid var(--ga-line);
    border-radius: 12px;
    color: var(--ga-ink);
    background: #fff;
}

/* PPOM injects its own pale label color after the product styles. Keep the
 * personalization form readable while preserving softer helper copy. */
html body.gosiart-clean-product .ppom-wrapper :is(
    .form-control-label,
    .form-check-label,
    .ppom-input-option-label
) {
    color: var(--ga-ink) !important;
    opacity: 1 !important;
}

html body.gosiart-clean-product .ppom-wrapper .ppom-input-desc {
    color: var(--ga-ink-soft) !important;
    opacity: 1 !important;
}

html body.gosiart-clean-product .ppom-wrapper .show_required {
    color: var(--ga-brand-dark) !important;
    opacity: 1 !important;
}

body.gosiart-clean-product div.product form.cart .quantity input.qty {
    color: var(--ga-ink) !important;
    background: #fff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--ga-ink);
    caret-color: var(--ga-brand);
    text-align: center;
}

body.gosiart-clean-product div.product form.cart .quantity input.qty:hover,
body.gosiart-clean-product div.product form.cart .quantity input.qty:focus {
    border-color: var(--ga-brand) !important;
    color: var(--ga-ink) !important;
    background: #fff !important;
    -webkit-text-fill-color: var(--ga-ink);
    box-shadow: 0 0 0 3px rgba(141, 67, 44, .14);
    outline: 0;
}

body.gosiart-clean-product div.product form.cart .quantity input.qty::-webkit-inner-spin-button,
body.gosiart-clean-product div.product form.cart .quantity input.qty::-webkit-outer-spin-button {
    opacity: 1;
}

body.gosiart-clean-product div.product form.cart .button,
body.gosiart-clean-product .single_add_to_cart_button,
body.gosiart-clean-product a.lumise-customize-button {
    min-height: 50px;
    padding: 13px 20px;
    border-radius: 999px;
    color: #fff !important;
    background: var(--ga-brand) !important;
    font-weight: 850;
}

body.gosiart-clean-product div.product form.cart .button:hover,
body.gosiart-clean-product .single_add_to_cart_button:hover,
body.gosiart-clean-product a.lumise-customize-button:hover,
body.gosiart-clean-product a.ga-lumise-editor-button:hover {
    background: var(--ga-brand-dark) !important;
}

/* A Lumise product must enter the cart through the designer. The normal
 * WooCommerce submit control would create an order without design data. */
body.gosiart-lumise-product form.cart .quantity,
body.gosiart-lumise-product form.cart .single_add_to_cart_button:not(.lumise-customize-button) {
    display: none !important;
}

body.gosiart-clean-product .variable-items-wrapper .variable-item {
    border-color: var(--ga-line) !important;
    color: var(--ga-ink) !important;
    background: #fff !important;
    box-shadow: none !important;
}

body.gosiart-clean-product .variable-items-wrapper .variable-item.selected {
    border-color: var(--ga-brand) !important;
    box-shadow: 0 0 0 2px rgba(182, 95, 63, 0.18) !important;
}

.ga-product-help {
    display: grid;
    gap: 4px;
    margin-top: 20px;
    padding: 16px 18px;
    border: 1px solid #dfd5cc;
    border-radius: 15px;
    background: #f8f3ee;
}

.ga-product-help strong {
    color: var(--ga-ink);
}

.ga-product-help span {
    color: var(--ga-ink-soft);
    font-size: 13px;
    line-height: 1.5;
}

.ga-product-help a {
    margin-top: 4px;
    font-size: 13px;
    font-weight: 800;
}

body.gosiart-clean-product .wc-gzd-additional-info {
    color: var(--ga-ink-soft);
    font-size: 12px;
    line-height: 1.5;
}

body.gosiart-clean-product .woocommerce-tabs,
body.gosiart-clean-product .related {
    grid-column: 1 / -1;
    margin-top: 44px;
}

/* Compact related products. Astra otherwise keeps three very wide columns,
 * so portrait photos can make this secondary section taller than the product
 * itself. Four uniform cards keep the recommendations useful but subordinate. */
html body.gosiart-clean-product .related.products {
    margin-top: 32px;
}

html body.gosiart-clean-product .related.products > h2 {
    margin: 0 0 18px;
    font-size: clamp(24px, 2.4vw, 32px);
}

html body.gosiart-clean-product .related.products ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
    align-items: stretch;
    margin: 0 !important;
}

html body.gosiart-clean-product .related.products ul.products::before,
html body.gosiart-clean-product .related.products ul.products::after {
    display: none !important;
}

html body.gosiart-clean-product .related.products ul.products li.product {
    display: flex !important;
    float: none !important;
    flex-direction: column;
    overflow: hidden;
    width: auto !important;
    min-width: 0;
    height: auto !important;
    margin: 0 !important;
    padding: 0 0 16px !important;
    border: 1px solid var(--ga-line);
    border-radius: 16px;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(61, 43, 33, .05);
    text-align: left;
}

html body.gosiart-clean-product .related.products .astra-shop-thumbnail-wrap {
    background: #f5eee8;
}

html body.gosiart-clean-product .related.products .astra-shop-thumbnail-wrap > a.woocommerce-loop-product__link {
    display: block;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #f5eee8;
}

html body.gosiart-clean-product .related.products li.product img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    object-fit: cover;
    object-position: center 42%;
}

html body.gosiart-clean-product .related.products .wc-gzd-additional-info-loop {
    margin: 5px 12px 0 !important;
    color: var(--ga-ink-soft) !important;
    font-size: 9.5px !important;
    line-height: 1.3 !important;
    text-align: left;
}

html body.gosiart-clean-product .related.products .wc-gzd-additional-info-loop:last-child {
    margin-bottom: 8px !important;
}

html body.gosiart-clean-product .related.products .wc-gzd-additional-info-loop a {
    color: var(--ga-brand-dark) !important;
}

html body.gosiart-clean-product .related.products .astra-shop-summary-wrap {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 12px 14px 0 !important;
}

html body.gosiart-clean-product .related.products .ast-woo-product-category {
    margin: 0 !important;
    color: var(--ga-brand-dark) !important;
    font-size: 10px !important;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

html body.gosiart-clean-product .related.products .woocommerce-loop-product__title {
    display: -webkit-box;
    overflow: hidden;
    min-height: 2.7em;
    margin: 6px 0 0 !important;
    color: var(--ga-ink) !important;
    font-size: 14px !important;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

html body.gosiart-clean-product .related.products .price {
    margin: 9px 0 12px !important;
    color: var(--ga-brand-dark) !important;
    font-size: 14px !important;
    font-weight: 850;
}

html body.gosiart-clean-product .related.products .price * {
    color: inherit !important;
}

html body.gosiart-clean-product .related.products :is(a.button, .added_to_cart) {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    margin: auto 0 0 !important;
    padding: 9px 14px !important;
    border: 0 !important;
    border-radius: 999px;
    color: #fff !important;
    background: var(--ga-brand) !important;
    font-size: 12px !important;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none !important;
}

html body.gosiart-clean-product .related.products :is(a.button, .added_to_cart):is(:hover, :focus-visible) {
    background: var(--ga-brand-dark) !important;
}

@media (max-width: 920px) {
    html body.gosiart-clean-product .related.products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 520px) {
    html body.gosiart-clean-product .related.products ul.products {
        gap: 12px !important;
    }

    html body.gosiart-clean-product .related.products .astra-shop-summary-wrap {
        padding: 10px 10px 0 !important;
    }

    html body.gosiart-clean-product .related.products .wc-gzd-additional-info-loop {
        margin-right: 9px !important;
        margin-left: 9px !important;
        font-size: 9px !important;
    }

    html body.gosiart-clean-product .related.products a.button {
        width: 100%;
        padding: 8px !important;
    }
}

body.gosiart-clean-product .woocommerce-tabs {
    padding: clamp(24px, 4vw, 44px);
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: #fff;
}

body.gosiart-clean-product .woocommerce-tabs ul.tabs {
    border-bottom: 1px solid var(--ga-line);
}

body.gosiart-clean-product .woocommerce-tabs ul.tabs li a {
    color: var(--ga-ink-soft) !important;
    font-weight: 800;
}

body.gosiart-clean-product .woocommerce-tabs ul.tabs li.active a {
    color: var(--ga-brand-dark) !important;
}

body.gosiart-clean-product .woocommerce-tabs ul.tabs li a:is(:hover, :focus-visible) {
    color: var(--ga-brand-dark) !important;
}

html body.gosiart-clean-product table.variations th.label :is(label, span) {
    color: var(--ga-ink) !important;
    opacity: 1 !important;
}

html body.gosiart-clean-product table.variations a.reset_variations {
    color: var(--ga-ink-soft) !important;
    opacity: 1 !important;
}

/* Stripe owns the contents of this cross-origin Klarna promo iframe, so its
 * pale text cannot be restyled safely. Keep Klarna as a checkout method while
 * removing only the promotional message from product pages. */
html body.gosiart-clean-product #payment-method-message {
    display: none !important;
}

body.gosiart-clean-product .woocommerce-Tabs-panel {
    color: var(--ga-ink-soft);
    line-height: 1.7;
}

body.gosiart-clean-product .woocommerce-Tabs-panel h2,
body.gosiart-clean-product .woocommerce-Tabs-panel h3 {
    margin-top: 1.3em;
    color: var(--ga-ink);
}

/* Cart and checkout blocks */
body.gosiart-overhaul.woocommerce-cart .site-content,
body.gosiart-overhaul.woocommerce-checkout .site-content {
    padding: 56px 0 90px;
}

body.gosiart-overhaul :where(.wc-block-cart, .wc-block-checkout) {
    color: var(--ga-ink);
}

body.gosiart-overhaul :where(.wc-block-cart__main, .wc-block-cart__sidebar, .wc-block-checkout__main, .wc-block-checkout__sidebar) {
    border-radius: var(--ga-radius);
}

body.gosiart-overhaul :where(.wc-block-components-sidebar-layout .wc-block-components-main, .wc-block-components-sidebar) {
    padding: 24px;
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: #fff;
}

body.gosiart-overhaul :where(.wc-block-components-text-input input, .wc-block-components-address-form input, .wc-block-components-combobox-control input) {
    color: var(--ga-ink) !important;
    background: #fff !important;
}

/*
 * Accessibility hardening for WooCommerce Blocks.
 * Astra/Woo global styles can inject white and #e7f6ff after the base rules
 * above. The intentionally stronger selectors keep every light checkout
 * control readable without changing dark sections or payment iframes.
 */
html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout .wc-block-components-text-input input,
html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout .wc-block-components-combobox-control input,
html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout .wc-blocks-components-select__select,
html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout textarea {
    border-color: var(--ga-line) !important;
    color: var(--ga-ink) !important;
    background-color: #fff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--ga-ink) !important;
    caret-color: var(--ga-brand-dark) !important;
}

html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout .wc-blocks-components-select__select option {
    color: var(--ga-ink) !important;
    background: #fff !important;
}

html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout input::placeholder,
html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout textarea::placeholder {
    color: var(--ga-ink-soft) !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--ga-ink-soft) !important;
}

html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout :is(
    .wc-block-components-text-input label,
    .wc-blocks-components-select__label
) {
    color: var(--ga-ink-soft) !important;
    opacity: 1 !important;
}

html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout :is(
    .wc-block-components-checkbox__label,
    .wc-block-components-radio-control__option,
    .wc-block-components-radio-control__option *,
    .wc-block-components-payment-method-label,
    .wc-block-components-formatted-money-amount,
    .wc-block-formatted-money-amount
) {
    color: var(--ga-ink) !important;
    opacity: 1 !important;
}

html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout .wc-block-components-checkbox__label a {
    color: var(--ga-brand-dark) !important;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

/* Germanized renders the mandatory legal copy in an unclassed child span. */
html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout label[for="checkbox-legal"],
html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout label[for="checkbox-legal"] > span {
    color: var(--ga-ink) !important;
    opacity: 1 !important;
}

html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout label[for="checkbox-legal"] a {
    color: var(--ga-brand-dark) !important;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

html body.gosiart-overhaul.woocommerce-checkout .wc-block-checkout :is(
    .wc-block-components-text-input input,
    .wc-block-components-address-form input,
    .wc-block-components-combobox-control input,
    .wc-blocks-components-select__select,
    textarea
):focus {
    border-color: var(--ga-brand-dark) !important;
    box-shadow: 0 0 0 3px rgba(141, 67, 44, .14) !important;
    outline: 0 !important;
}

body.gosiart-overhaul :where(.wc-block-components-button, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button) {
    min-height: 52px;
    border-radius: 999px;
    color: #fff !important;
    background: var(--ga-brand) !important;
    font-weight: 850;
}

body.gosiart-overhaul :where(.wc-block-components-button, .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):hover {
    background: var(--ga-brand-dark) !important;
}

/* Account forms: Astra dark-mode colors can otherwise leave pale labels on
 * the light account page. Keep the classic WooCommerce forms consistent with
 * the checkout and the rest of the GösiArt visual system. */
html body.gosiart-overhaul.woocommerce-account .woocommerce :is(
    .woocommerce-form-login,
    .woocommerce-form-register
) label,
html body.gosiart-overhaul.woocommerce-account .woocommerce .woocommerce-form__label span {
    color: var(--ga-ink) !important;
    opacity: 1 !important;
}

html body.gosiart-overhaul.woocommerce-account .woocommerce :is(
    .woocommerce-form-login,
    .woocommerce-form-register
) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
    border-color: var(--ga-line) !important;
    color: var(--ga-ink) !important;
    background: #fff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: var(--ga-ink) !important;
    caret-color: var(--ga-brand-dark) !important;
}

html body.gosiart-overhaul.woocommerce-account .woocommerce :is(
    .woocommerce-form-login,
    .woocommerce-form-register
) input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus {
    border-color: var(--ga-brand-dark) !important;
    box-shadow: 0 0 0 3px rgba(141, 67, 44, .14) !important;
    outline: 0 !important;
}

html body.gosiart-overhaul.woocommerce-account .woocommerce button.woocommerce-button {
    border-color: var(--ga-brand) !important;
    color: #fff !important;
    background: var(--ga-brand) !important;
}

html body.gosiart-overhaul.woocommerce-account .woocommerce button.woocommerce-button:is(:hover, :focus-visible) {
    border-color: var(--ga-brand-dark) !important;
    background: var(--ga-brand-dark) !important;
}

/* Contact */
body.gosiart-contact-page .site-content {
    padding: 64px 0 100px;
}

body.gosiart-contact-page .entry-title {
    font-size: clamp(40px, 5vw, 60px);
    font-weight: 850;
}

body.gosiart-contact-page .wpforms-container,
body.gosiart-contact-page form.wpforms-form {
    color: var(--ga-ink);
}

body.gosiart-contact-page .wpforms-container {
    max-width: 780px;
    margin: 34px auto;
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: #fff;
    box-shadow: var(--ga-shadow-sm);
}

body.gosiart-contact-page .wpforms-container :where(input, textarea, select) {
    border: 1px solid var(--ga-line) !important;
    border-radius: 12px !important;
    color: var(--ga-ink) !important;
    background: #fff !important;
}

html body.gosiart-contact-page .wpforms-container :is(
    legend,
    label,
    .wpforms-field-label,
    .wpforms-field-sublabel
) {
    color: var(--ga-ink) !important;
    opacity: 1 !important;
}

body.gosiart-contact-page .wpforms-container input {
    min-height: 48px;
}

body.gosiart-contact-page .wpforms-submit {
    min-height: 48px !important;
    padding: 12px 22px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: var(--ga-brand) !important;
    font-weight: 850 !important;
}

.ga-contact-quick {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
    max-width: 980px;
    margin: 70px auto 0;
    padding: clamp(30px, 5vw, 56px);
    border-radius: var(--ga-radius);
    color: #fff;
    background: var(--ga-ink);
}

.ga-contact-quick > div:first-child {
    max-width: 600px;
}

body.gosiart-overhaul .ga-contact-quick :where(h2, p) {
    color: #fff !important;
}

body.gosiart-overhaul .ga-contact-quick p:not(.ga-eyebrow) {
    margin: 13px 0 0;
    color: rgba(255, 255, 255, 0.68) !important;
}

.ga-contact-quick .ga-actions {
    flex: 0 0 220px;
}

.ga-contact-quick .ga-button {
    width: 100%;
}

/* Footer and floating contact */
.ga-service-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
}

.ga-service-strip > div {
    padding: 28px 24px;
    background: var(--ga-ink);
    text-align: center;
}

.ga-service-strip strong,
.ga-service-strip span {
    display: block;
}

.ga-service-strip strong {
    margin-bottom: 4px;
    color: #fff;
    font-size: 15px;
}

.ga-service-strip span {
    color: rgba(255, 255, 255, 0.64);
    font-size: 13px;
}

body.gosiart-overhaul .site-footer {
    color: var(--ga-ink-soft);
    background: #f0e7df;
}

body.gosiart-overhaul .site-footer a {
    color: var(--ga-ink);
}

body.gosiart-overhaul .site-footer a:hover {
    color: var(--ga-brand);
}

body.gosiart-overhaul .site-below-footer-wrap {
    color: rgba(255, 255, 255, 0.7);
    background: var(--ga-ink);
}

body.gosiart-overhaul .site-below-footer-wrap a {
    color: #fff;
}

.ga-whatsapp-float {
    position: fixed;
    z-index: 90;
    right: 20px;
    bottom: 20px;
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 12px 18px;
    border: 2px solid #fff;
    border-radius: 999px;
    color: #fff !important;
    background: #196d3e;
    box-shadow: 0 12px 28px rgba(20, 82, 48, 0.28);
    font-size: 14px;
    font-weight: 850;
    text-decoration: none !important;
}

.ga-whatsapp-float:hover {
    color: #fff !important;
    background: #105431;
}

/* Existing preview product */
body.gosiart-hide-product-header.single-product #primary > .entry-header,
body.gosiart-hide-product-header.single-product article.product > .entry-header {
    display: none !important;
}

body.gosiart-improve-swatches .variable-items-wrapper .variable-item.button-variable-item {
    width: auto !important;
    min-width: 62px !important;
    height: 42px !important;
    padding: 0 11px !important;
    border-radius: 999px !important;
}

body.gosiart-improve-swatches .variable-items-wrapper .variable-item.button-variable-item > span {
    overflow: visible !important;
    width: auto !important;
    white-space: nowrap !important;
}

body.gosiart-hide-lumise a.lumise-customize-button {
    display: none !important;
}

/* Admin-authored legacy components */
body.gosiart-overhaul :where(.cta-top, .cta-kontakt, .about-section) {
    color: var(--ga-ink);
}

body.gosiart-overhaul :where(.cta-top, .cta-kontakt) {
    padding: 24px;
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: #fff;
    box-shadow: var(--ga-shadow-sm);
}

body.gosiart-overhaul :where(.cta-top, .cta-kontakt, .about-section) .cta-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 11px 18px;
    border-radius: 999px;
    color: #fff !important;
    background: var(--ga-brand);
    font-weight: 800;
    text-decoration: none;
}

@media (max-width: 1100px) {
    .ga-hero {
        grid-template-columns: minmax(0, 1fr) minmax(340px, 0.78fr);
    }

    .ga-category-grid,
    .ga-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.gosiart-clean-shop ul.products li.product {
        grid-column: span 6;
    }

    .ga-benefit-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ga-benefit-bar > div:nth-child(3) {
        border-top: 1px solid var(--ga-line);
        border-left: 0;
    }

    .ga-benefit-bar > div:nth-child(4) {
        border-top: 1px solid var(--ga-line);
    }
}

@media (max-width: 820px) {
    body.gosiart-overhaul .ast-container,
    .ga-hero,
    .ga-section,
    .ga-story,
    .ga-final-cta,
    .ga-benefit-bar {
        width: min(100% - 28px, var(--ga-content));
    }

    .ga-hero {
        grid-template-columns: 1fr;
        min-height: 0;
        padding-top: 62px;
    }

    .ga-hero__copy h1 {
        font-size: clamp(43px, 11vw, 68px);
    }

    .ga-hero__visual {
        min-height: 500px;
        margin-top: 12px;
    }

    .ga-hero__main-image {
        margin: 0 auto;
    }

    .ga-hero__mini-image {
        left: 4%;
    }

    .ga-hero__badge {
        left: 3%;
    }

    .ga-process,
    .ga-story,
    body.gosiart-clean-product .ast-woocommerce-container > .product {
        grid-template-columns: 1fr;
    }

    .ga-story {
        padding: 42px 30px;
    }

    .ga-final-cta,
    .ga-contact-quick {
        align-items: flex-start;
        flex-direction: column;
    }

    .ga-final-cta .ga-actions,
    .ga-contact-quick .ga-actions {
        flex: auto;
        width: 100%;
    }

    body.gosiart-clean-product div.product div.summary {
        position: static;
    }

    .ga-service-strip {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    body.gosiart-overhaul .ast-primary-header-bar,
    body.gosiart-overhaul .ast-mobile-header-wrap .ast-primary-header-bar {
        min-height: 66px;
    }

    .ga-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .ga-actions .ga-button {
        width: 100%;
    }

    .ga-hero {
        gap: 28px;
        padding-top: 44px;
    }

    .ga-hero__copy h1 {
        font-size: 43px;
    }

    .ga-hero__lead {
        font-size: 17px;
    }

    .ga-hero__proof {
        align-items: flex-start;
        flex-direction: column;
    }

    .ga-hero__visual {
        min-height: 390px;
    }

    .ga-hero__main-image {
        width: calc(100% - 22px);
        border-width: 7px;
    }

    .ga-hero__mini-image {
        bottom: -2px;
        width: 125px;
        border-width: 5px;
    }

    .ga-hero__badge {
        top: 18px;
        min-width: 125px;
        padding: 13px 15px;
    }

    .ga-benefit-bar,
    .ga-category-grid,
    .ga-product-grid,
    .ga-faq__grid {
        grid-template-columns: 1fr;
    }

    body.gosiart-clean-shop ul.products li.product {
        grid-column: span 12;
    }

    .ga-benefit-bar > div + div,
    .ga-benefit-bar > div:nth-child(3) {
        border-top: 1px solid var(--ga-line);
        border-left: 0;
    }

    .ga-category {
        min-height: 205px;
    }

    .ga-section__head {
        align-items: flex-start;
        flex-direction: column;
    }

    .ga-section--soft::before {
        inset: 24px -14px;
        border-radius: 28px;
    }

    .ga-process li > span {
        margin-bottom: 24px;
    }

    .ga-story,
    .ga-final-cta,
    .ga-contact-quick {
        padding: 32px 22px;
        border-radius: 24px;
    }

    body.gosiart-clean-product .ast-woocommerce-container > .product {
        gap: 22px;
    }

    body.gosiart-clean-product div.product div.summary,
    body.gosiart-clean-product .woocommerce-tabs {
        padding: 22px 18px;
        border-radius: 18px;
    }

    .ga-whatsapp-float {
        right: 12px;
        bottom: 12px;
        min-height: 44px;
        padding: 10px 14px;
        font-size: 13px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ga-hero__mini-image,
    .ga-hero__badge {
        animation: none !important;
    }

    .ga-button,
    .ga-text-link span,
    .ga-category,
    .ga-category::before,
    .ga-product-card,
    .ga-product-card__image img,
    .ga-process li,
    .ga-hero__main-image,
    body.gosiart-clean-shop ul.products li.product {
        transition: none !important;
    }
}

/* Legal and footer information pages */
body.gosiart-legal-page .site-content > .ast-container,
body.gosiart-legal-page #primary,
body.gosiart-legal-page article.ast-article-single {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

body.gosiart-legal-page article.ast-article-single {
    border: 0;
    background: transparent;
    box-shadow: none;
}

body.gosiart-legal-page .entry-header {
    display: none;
}

body.gosiart-legal-page .entry-content {
    margin: 0;
}

.ga-legal {
    width: min(100% - 40px, 960px);
    margin: 0 auto;
    padding: clamp(46px, 7vw, 82px) 0 clamp(70px, 9vw, 120px);
    color: var(--ga-ink);
}

.ga-legal--wide {
    width: min(100% - 40px, 1080px);
}

.ga-legal__hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-bottom: 24px;
    padding: clamp(34px, 6vw, 66px);
    border-radius: var(--ga-radius-lg);
    color: #fff;
    background: linear-gradient(135deg, #332823 0%, #201917 70%, #5d3527 140%);
    box-shadow: var(--ga-shadow-lg);
}

.ga-legal__hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    top: -110px;
    right: -90px;
    width: 290px;
    height: 290px;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 50%;
    box-shadow: 0 0 0 44px rgba(255, 255, 255, .025), 0 0 0 90px rgba(255, 255, 255, .018);
}

body.gosiart-overhaul .ga-legal__hero :where(h1, p, time) {
    color: #fff;
}

.ga-legal__hero .ga-eyebrow {
    color: #edc99c !important;
}

.ga-legal__hero h1 {
    max-width: 780px;
    margin: 0;
    font-size: clamp(38px, 6vw, 66px);
    font-weight: 880;
    line-height: 1.02;
    letter-spacing: -.05em;
}

.ga-legal__lead {
    max-width: 720px;
    margin: 20px 0 0;
    color: rgba(255, 255, 255, .82) !important;
    font-size: clamp(17px, 2vw, 20px);
    line-height: 1.65;
}

.ga-legal__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 24px;
}

.ga-legal__meta span,
.ga-legal__meta time {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    padding: 7px 12px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    color: rgba(255, 255, 255, .9);
    background: rgba(255, 255, 255, .07);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.2;
}

.ga-legal__toc,
.ga-legal__section,
.ga-legal__notice,
.ga-legal__card,
.ga-legal__form {
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius);
    background: var(--ga-paper);
}

.ga-legal__toc {
    margin: 0 0 22px;
    padding: 24px 28px;
    box-shadow: var(--ga-shadow-sm);
}

.ga-legal__toc strong {
    display: block;
    margin-bottom: 12px;
    font-size: 15px;
}

.ga-legal__toc ol,
.ga-legal__toc ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 28px;
    margin: 0;
    padding-left: 20px;
}

.ga-legal__toc a {
    font-weight: 700;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.ga-legal__section {
    margin-top: 18px;
    padding: clamp(26px, 4vw, 42px);
    box-shadow: 0 8px 28px rgba(61, 43, 33, .055);
    scroll-margin-top: 110px;
}

.ga-legal__section h2 {
    margin: 0 0 18px;
    font-size: clamp(25px, 3.2vw, 34px);
    font-weight: 850;
    line-height: 1.16;
}

.ga-legal__section h3 {
    margin: 28px 0 10px;
    font-size: clamp(19px, 2.3vw, 23px);
    line-height: 1.3;
}

.ga-legal__section :where(p, li, address) {
    color: var(--ga-ink-soft);
    font-size: 16px;
    line-height: 1.75;
}

.ga-legal__section p {
    margin: 0 0 15px;
}

.ga-legal__section p:last-child,
.ga-legal__section ul:last-child,
.ga-legal__section ol:last-child {
    margin-bottom: 0;
}

.ga-legal__section :where(ul, ol) {
    margin: 14px 0 20px;
    padding-left: 24px;
}

.ga-legal__section li + li {
    margin-top: 8px;
}

.ga-legal__section li::marker {
    color: var(--ga-brand);
    font-weight: 850;
}

.ga-legal__section address {
    margin: 0;
    font-style: normal;
}

.ga-legal__section a,
.ga-legal__card a,
.ga-legal__notice a {
    overflow-wrap: anywhere;
    font-weight: 750;
    text-underline-offset: 3px;
}

.ga-legal__section hr {
    height: 1px;
    margin: 30px 0;
    border: 0;
    background: var(--ga-line);
}

.ga-legal__number {
    display: inline-flex;
    min-width: 35px;
    height: 35px;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
    border-radius: 50%;
    color: #fff;
    background: var(--ga-brand-dark);
    font-size: 14px;
    font-weight: 900;
    vertical-align: .18em;
}

.ga-legal__notice {
    margin: 18px 0;
    padding: 22px 24px;
    border-left: 5px solid var(--ga-gold);
    background: #fffaf3;
}

.ga-legal__notice--brand {
    border-left-color: var(--ga-brand);
    background: #fbf0eb;
}

.ga-legal__notice--sage {
    border-left-color: var(--ga-sage);
    background: #f1f5ef;
}

.ga-legal__notice strong {
    display: block;
    margin-bottom: 5px;
    color: var(--ga-ink);
}

.ga-legal__notice p {
    margin: 0;
    color: var(--ga-ink-soft);
    line-height: 1.65;
}

.ga-legal__grid,
.ga-legal__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
}

.ga-legal__card {
    padding: 24px;
    box-shadow: 0 8px 22px rgba(61, 43, 33, .05);
}

.ga-legal__card h2,
.ga-legal__card h3 {
    margin: 0 0 10px;
    font-size: 21px;
}

.ga-legal__card p {
    margin: 0;
    color: var(--ga-ink-soft);
    line-height: 1.65;
}

.ga-legal__card p + p {
    margin-top: 10px;
}

.ga-legal__card--accent {
    color: #fff;
    background: var(--ga-ink);
}

body.gosiart-overhaul .ga-legal__card--accent :where(h2, h3, p, a) {
    color: #fff !important;
}

.ga-legal__steps {
    margin: 18px 0 0 !important;
    padding: 0 !important;
    list-style: none;
    counter-reset: ga-steps;
}

.ga-legal__steps li {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    counter-increment: ga-steps;
}

.ga-legal__steps li::before {
    content: counter(ga-steps);
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: var(--ga-brand-dark);
    font-size: 13px;
    font-weight: 900;
}

.ga-legal__steps li + li {
    margin-top: 14px;
}

.ga-legal__table-wrap {
    overflow-x: auto;
    margin-top: 18px;
    border: 1px solid var(--ga-line);
    border-radius: var(--ga-radius-sm);
}

.ga-legal__table {
    width: 100%;
    min-width: 560px;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    background: #fff;
}

.ga-legal__table th,
.ga-legal__table td {
    padding: 16px 18px;
    border: 0;
    border-bottom: 1px solid var(--ga-line);
    color: var(--ga-ink-soft);
    text-align: left;
    vertical-align: top;
}

.ga-legal__table th {
    color: var(--ga-ink);
    background: var(--ga-cream-deep);
    font-size: 14px;
    font-weight: 850;
}

.ga-legal__table tr:last-child td {
    border-bottom: 0;
}

.ga-legal__form {
    margin-top: 18px;
    padding: clamp(26px, 4vw, 40px);
}

.ga-legal__form h2 {
    margin-top: 0;
}

.ga-legal__field {
    min-height: 58px;
    margin-top: 18px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ga-line);
    color: var(--ga-ink-soft);
}

.ga-legal__field strong {
    display: block;
    margin-bottom: 14px;
    color: var(--ga-ink);
    font-size: 14px;
}

.ga-legal__footer-note {
    margin: 24px auto 0;
    color: var(--ga-ink-soft);
    font-size: 13px;
    line-height: 1.6;
    text-align: center;
}

@media (max-width: 760px) {
    .ga-legal,
    .ga-legal--wide {
        width: min(100% - 28px, 960px);
    }

    .ga-legal__toc ol,
    .ga-legal__toc ul,
    .ga-legal__grid,
    .ga-legal__cards {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .ga-legal {
        padding-top: 28px;
    }

    .ga-legal__hero {
        padding: 30px 22px;
        border-radius: 24px;
    }

    .ga-legal__hero h1 {
        font-size: 39px;
    }

    .ga-legal__section,
    .ga-legal__toc,
    .ga-legal__card,
    .ga-legal__form {
        padding: 24px 20px;
        border-radius: 20px;
    }

    .ga-legal__notice {
        padding: 19px 18px;
    }
}

@media print {
    body.gosiart-legal-page :where(.site-header, .site-footer, .ga-service-strip, .ga-whatsapp-float, .cmplz-cookiebanner) {
        display: none !important;
    }

    body.gosiart-legal-page,
    body.gosiart-legal-page .site-content,
    .ga-legal,
    .ga-legal__section,
    .ga-legal__form {
        color: #000;
        background: #fff;
    }

    .ga-legal {
        width: 100%;
        padding: 0;
    }

    .ga-legal__hero {
        padding: 24px 0;
        color: #000;
        background: #fff;
        box-shadow: none;
    }

    body.gosiart-overhaul .ga-legal__hero :where(h1, p, time),
    .ga-legal__hero .ga-eyebrow {
        color: #000 !important;
    }

    .ga-legal__toc {
        display: none;
    }

    .ga-legal__section,
    .ga-legal__form {
        break-inside: avoid;
        box-shadow: none;
    }
}
