﻿:root {
    --bs-body-font-family: "Manrope", sans-serif;
    --bs-body-bg: #faf4ea;
    --bs-body-color: #33241f;
    --bs-primary: #00a658;
    --bs-primary-rgb: 0, 166, 88;
    --bs-secondary: #de2a1b;
    --bs-secondary-rgb: 222, 42, 27;
    --bs-success: #00a658;
    --bs-success-rgb: 0, 166, 88;
    --bs-warning: #d08c2f;
    --bs-warning-rgb: 208, 140, 47;
    --bs-danger: #de2a1b;
    --bs-danger-rgb: 222, 42, 27;
    --bs-info: #8a2d25;
    --bs-info-rgb: 138, 45, 37;
    --bs-light: #fffaf2;
    --bs-light-rgb: 255, 250, 242;
    --bs-dark: #213128;
    --bs-dark-rgb: 33, 49, 40;
    --bs-border-color: #e3d5c8;
    --bs-border-radius: 0.375rem;
    --bs-border-radius-sm: 0.375rem;
    --bs-border-radius-lg: 0.375rem;
    --bs-link-color: #00a658;
    --bs-link-hover-color: #007c42;
    --bs-heading-color: #261814;
    --brand-gold: #b78a3f;
    --brand-gold-soft: rgba(183, 138, 63, 0.18);
    --brand-wine: #67261f;
    --brand-orange: #c8501a;
    --brand-radius: 0.375rem;
    --brand-radius-accent: 0.75rem;
    --topbar-expanded-height: 48px;
    --topbar-collapsed-height: 5px;
}

* {
    box-sizing: border-box;
}

body {
    --topbar-current-height: var(--topbar-expanded-height);
    background:
        radial-gradient(circle at top left, rgba(199, 61, 53, 0.12), transparent 28%),
        radial-gradient(circle at top right, rgba(23, 114, 69, 0.12), transparent 25%),
        linear-gradient(180deg, #fffaf4 0%, #faf4ea 45%, #f7efe3 100%);
}

body.topbar-collapsed {
    --topbar-current-height: var(--topbar-collapsed-height);
}

/* Pointer cursor on all interactive custom components */
.gi-sector-card,
.gi-client-card,
.gi-blog-card,
.gi-blog-read-more,
.gi-event-card a,
.gi-testimonial-card a,
.navbar-phone,
.footer-phone,
.footer-social,
.footer-nav a,
.gi-sector-link,
.gi-checklist a,
[role="button"] {
    cursor: pointer;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 1035;
    height: var(--topbar-current-height);
    background: linear-gradient(90deg, #00a658 0%, #fffaf2 50%, #de2a1b 100%);
    border-bottom: 1px solid rgba(82, 49, 32, 0.08);
    overflow: hidden;
    transition: height 0.28s ease, border-bottom-color 0.28s ease;
}

.topbar .container {
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    transition: opacity 0.22s ease, transform 0.22s ease;
}

body.topbar-collapsed .topbar {
    border-bottom-color: transparent;
}

body.topbar-collapsed .topbar .container {
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
}

.topbar-note,
.topbar-phone {
    font-family: "Fraunces", serif;
    font-size: 0.92rem;
    color: #2f221d;
}

.topbar-note {
    font-weight: 600;
}

.topbar-phone {
    text-decoration: none;
    font-weight: 700;
}

.topbar-phone:hover,
.topbar-phone:focus-visible {
    color: #7f211c;
}

h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand {
    font-family: "Fraunces", serif;
    letter-spacing: -0.035em;
}

.py-lg-6 {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.navbar {
    position: sticky;
    top: var(--topbar-current-height);
    z-index: 1030;
    backdrop-filter: blur(14px);
    background:
        linear-gradient(180deg, rgba(255, 251, 245, 0.96), rgba(250, 242, 232, 0.92));
    box-shadow: 0 14px 34px rgba(71, 37, 23, 0.08);
    border-bottom-color: rgba(183, 138, 63, 0.24) !important;
    transition: top 0.28s ease;
}

.navbar-brand {
    display: inline-flex;
    align-items: center;
    max-width: clamp(180px, 22vw, 320px);
    height: 66px;
    padding: 0.25rem 0;
}

.navbar-brand img {
    display: block;
    width: auto;
    max-width: 100%;
    height: 100%;
    object-fit: contain;
}

.nav-link {
    font-family: "Fraunces", serif;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #4c342b;
    padding: 0.85rem 1.05rem !important;
    position: relative;
}

.dropdown-toggle {
    padding-right: 2.6rem !important;
}

.dropdown-toggle::after {
    display: none;
}

.dropdown-toggle::before {
    content: "";
    position: absolute;
    right: 1.05rem;
    top: 50%;
    width: 0.65rem;
    height: 0.65rem;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
    transition: transform 0.25s ease, color 0.25s ease;
}

.nav-link:hover,
.nav-link:focus-visible {
    color: var(--brand-wine);
}

.nav-item.current-menu-item > .nav-link,
.nav-item.current-menu-ancestor > .nav-link,
.nav-item.current-page-ancestor > .nav-link {
    color: var(--brand-orange);
}

.nav-link::after {
    content: "";
    position: absolute;
    left: 1.05rem;
    right: 1.05rem;
    bottom: 0.45rem;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--brand-gold), transparent);
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.nav-link:hover::after,
.nav-link:focus-visible::after,
.nav-item.show > .nav-link::after {
    opacity: 1;
    transform: translateY(0);
}

.nav-item.show > .dropdown-toggle::before,
.dropdown-toggle[aria-expanded="true"]::before {
    transform: translateY(-50%) rotate(135deg);
}

.navbar .btn {
    margin-top: 0.35rem;
    margin-bottom: 0.35rem;
}

.navbar-phone {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    margin-left: auto;
    margin-right: 0.5rem;
    color: var(--brand-wine);
    font-size: 1.2rem;
    text-decoration: none;
    border-radius: 50%;
    transition: background 0.2s;
}

.navbar-phone:hover,
.navbar-phone:focus-visible {
    color: var(--brand-wine);
    background: rgba(103, 38, 31, 0.08);
}

.navbar-toggler {
    border: 0;
    padding: 0.5rem;
    border-radius: 0;
    box-shadow: none;
}

.navbar-toggler:focus {
    box-shadow: none;
}

.navbar-toggler-icon-custom {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    position: relative;
    align-items: center;
    justify-content: center;
}

.navbar-toggler-icon-custom span {
    position: absolute;
    left: 0.2rem;
    width: 1.6rem;
    height: 2px;
    border-radius: 999px;
    background: var(--brand-wine);
    transition: transform 0.28s ease, opacity 0.2s ease, top 0.28s ease;
    transform-origin: center;
}

.navbar-toggler-icon-custom span:nth-child(1) {
    top: 0.45rem;
}

.navbar-toggler-icon-custom span:nth-child(2) {
    top: 0.95rem;
}

.navbar-toggler-icon-custom span:nth-child(3) {
    top: 1.45rem;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon-custom span:nth-child(1) {
    top: 0.95rem;
    transform: rotate(45deg);
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon-custom span:nth-child(2) {
    opacity: 0;
}

.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon-custom span:nth-child(3) {
    top: 0.95rem;
    transform: rotate(-45deg);
}

.hero-banner {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0;
}

.hero-banner-media {
    position: relative;
    overflow: hidden;
    min-height: 66vh;
    background:
        linear-gradient(180deg, rgba(23, 22, 19, 0.24), rgba(23, 22, 19, 0.48)),
        url("https://placehold.co/1600x800?text=No.2") center/cover no-repeat;
    display: flex;
    align-items: center;
}

body.motion-enhanced .hero-banner-media {
    animation: heroImageSettle 1.2s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.hero-banner-media::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at top left, rgba(23, 114, 69, 0.2), transparent 25%),
        radial-gradient(circle at bottom right, rgba(199, 61, 53, 0.22), transparent 28%);
    pointer-events: none;
}

.hero-banner-content {
    position: relative;
    z-index: 1;
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.hero-banner-eyebrow {
    color: #fff;
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.26);
    backdrop-filter: blur(10px);
}

.hero-banner-title {
    max-width: 17ch;
    color: #fffdf8;
    font-size: clamp(2.35rem, 4.4vw, 4.35rem);
    line-height: 0.92;
    text-shadow: 0 10px 30px rgba(16, 13, 11, 0.28);
}

.hero-banner-button {
    --bs-btn-color: #3f271f;
    --bs-btn-bg: rgba(255, 251, 245, 0.94);
    --bs-btn-border-color: rgba(255, 251, 245, 0.94);
    --bs-btn-hover-bg: #ffffff;
    --bs-btn-hover-border-color: #ffffff;
    --bs-btn-hover-color: #2b1a15;
    margin-top: 1rem;
    min-height: 44px;
    box-shadow: 0 18px 35px rgba(22, 15, 12, 0.18);
}

body.motion-enhanced .hero-banner-eyebrow,
body.motion-enhanced .hero-banner-title,
body.motion-enhanced .hero-banner-button {
    opacity: 0;
    animation: heroContentRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

body.motion-enhanced .hero-banner-eyebrow {
    animation-delay: 0.16s;
}

body.motion-enhanced .hero-banner-title {
    animation-delay: 0.28s;
}

body.motion-enhanced .hero-banner-button {
    animation-delay: 0.44s;
}

body.motion-enhanced .reveal {
    opacity: 0;
    transform: translateY(1rem);
    transition:
        opacity 0.82s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.82s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--reveal-delay, 0s);
    will-change: opacity, transform;
}

body.motion-enhanced .reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

body.motion-enhanced .reveal-soft {
    transform: translateY(0.6rem);
}

body.motion-enhanced .reveal-lift {
    transform: translateY(1.35rem);
}

body.motion-enhanced .reveal-scale {
    transform: translateY(1rem) scale(0.985);
}

body.motion-enhanced .reveal-scale.is-visible {
    transform: translateY(0) scale(1);
}

.hero-separator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.5rem 1rem 0;
}

.page-end-separator {
    padding: 1rem 1rem 2.5rem;
}

.site-footer {
    padding: 3.5rem 0 3rem;
    border-top: 1px solid rgba(183, 138, 63, 0.2);
    background:
        linear-gradient(180deg, rgba(255, 252, 246, 0.98), rgba(247, 238, 226, 0.96));
}

.site-footer-inner {
    padding: 0;
}

.footer-brand-block,
.footer-nav-block,
.footer-newsletter {
    height: 100%;
}

.footer-logo {
    display: inline-flex;
    max-width: 210px;
    margin-bottom: 1rem;
}

.footer-logo img {
    width: 100%;
    height: auto;
    display: block;
}

.footer-copy {
    max-width: 24rem;
    margin-bottom: 1.25rem;
    color: #5d4c44;
    line-height: 1.7;
}

.footer-phone {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 1.25rem;
    color: #5d4c44;
    font-weight: 600;
    text-decoration: none;
}

.footer-phone:hover,
.footer-phone:focus-visible {
    color: var(--brand-wine);
}

.footer-heading {
    margin-bottom: 1rem;
    font-size: 1.2rem;
    color: #2f221d;
}

.footer-nav {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.7rem;
}

.footer-nav a {
    color: #5a4438;
    text-decoration: none;
    transition: color 0.2s ease, transform 0.2s ease;
}

.footer-nav a:hover,
.footer-nav a:focus-visible {
    color: var(--brand-wine);
    transform: translateX(6px);
}

.footer-socials {
    display: flex;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.footer-social {
    width: 2.4rem;
    height: 2.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.78);
    color: #67261f;
    text-decoration: none;
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.footer-social:hover,
.footer-social:focus-visible {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.98);
    color: #de2a1b;
}

.footer-newsletter p {
    color: #5d4c44;
    line-height: 1.7;
}

.footer-newsletter-form {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    margin-top: 1rem;
}

.footer-newsletter-form .form-control {
    flex: 1 1 auto;
}

/* GF newsletter form in footer */
.gi-footer-gf .gfield_label,
.gi-footer-gf .gform-field-label {
    color: #c8b89a !important;
    font-size: 0.85rem !important;
    font-weight: 600;
}

.gi-footer-gf input[type="text"],
.gi-footer-gf input[type="email"] {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    color: #fff !important;
    border-radius: 6px;
    font-size: 0.9rem !important;
    padding: 0.45rem 0.75rem !important;
}

.gi-footer-gf input[type="text"]::placeholder,
.gi-footer-gf input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.45);
}

.gi-footer-gf input[type="text"]:focus,
.gi-footer-gf input[type="email"]:focus {
    border-color: var(--brand-gold) !important;
    outline: none;
    box-shadow: 0 0 0 3px rgba(183, 138, 63, 0.2);
}

.gi-footer-gf .gform_button,
.gi-footer-gf input[type="submit"] {
    background: var(--brand-gold) !important;
    border-color: var(--brand-gold) !important;
    color: #fff !important;
    width: 100%;
    margin-top: 0.5rem !important;
}

.gi-footer-gf .gform_button:hover,
.gi-footer-gf input[type="submit"]:hover {
    background: #a07835 !important;
    border-color: #a07835 !important;
}

.gi-footer-gf .gform_confirmation_message {
    color: var(--brand-gold);
    font-size: 0.9rem;
}

/* --- Policy page --- */
.gi-policy-nav {
    position: sticky;
    top: 6rem;
}

.gi-policy-nav-heading {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6b5549;
    margin-bottom: 0.75rem;
}

.gi-policy-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    border-left: 2px solid rgba(61, 42, 33, 0.1);
}

.gi-policy-nav-link {
    display: block;
    padding: 0.45rem 0.9rem;
    font-size: 0.9rem;
    color: #4a3428;
    text-decoration: none;
    transition: color 0.2s ease, border-color 0.2s ease;
    border-left: 2px solid transparent;
    margin-left: -2px;
}

.gi-policy-nav-link:hover,
.gi-policy-nav-link.active {
    color: var(--brand-green);
    border-left-color: var(--brand-green);
    text-decoration: none;
}

.gi-policy-section {
    scroll-margin-top: 7rem;
}

.gi-policy-section h2 {
    font-family: "Fraunces", serif;
    font-size: 1.6rem;
    color: #261814;
    margin-bottom: 0.25rem;
}

.gi-policy-section h3 {
    font-family: "Fraunces", serif;
    font-size: 1.05rem;
    color: #261814;
    margin-top: 1.5rem;
    margin-bottom: 0.4rem;
}

.gi-policy-divider {
    margin: 3rem 0;
    border-color: rgba(61, 42, 33, 0.1);
}

/* --- FAQ accordion --- */
.gi-faq-group-heading {
    font-family: "Fraunces", serif;
    font-size: 1.15rem;
    font-weight: 600;
    color: #261814;
    margin: 0 0 1rem;
    padding-bottom: 0.6rem;
    border-bottom: 2px solid var(--brand-gold);
    display: inline-block;
}

.gi-faq-accordion {
    border: none;
}

.gi-faq-item {
    border: none;
    border-bottom: 1px solid rgba(61, 42, 33, 0.1);
    background: transparent;
}

.gi-faq-button {
    font-family: "Fraunces", serif;
    font-size: 1rem;
    font-weight: 600;
    color: #261814;
    background: transparent;
    padding: 1.1rem 0;
    box-shadow: none;
    border: none;
}

.gi-faq-button:not(.collapsed) {
    color: var(--brand-green);
    background: transparent;
    box-shadow: none;
}

.gi-faq-button::after {
    filter: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23261814'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.gi-faq-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231a6e3c'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.gi-faq-body {
    padding: 0 0 1.25rem;
    color: #4a3428;
    line-height: 1.75;
}

.gi-faq-body p:last-child {
    margin-bottom: 0;
}

/* --- Footer award --- */
.gi-footer-award {
    display: block;
    max-width: 140px;
    height: auto;
}

.footer-bottom {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(183, 138, 63, 0.16);
    color: #6b5549;
    font-size: 0.95rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.footer-bottom a {
    color: #c45e00;
    text-decoration: none;
}

.footer-bottom a:hover,
.footer-bottom a:focus-visible {
    color: #9a4900;
}

.hero-separator-line {
    width: min(12rem, 24vw);
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(183, 138, 63, 0.75), transparent);
}

.hero-separator-icon {
    width: 3.65rem;
    height: 3.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(180deg, #fffdf8, #f3e8d7);
    border: 1px solid rgba(183, 138, 63, 0.26);
    box-shadow: 0 12px 30px rgba(58, 30, 18, 0.08);
}

.hero-separator-gelato {
    position: relative;
    width: 1.2rem;
    height: 1.5rem;
    display: inline-block;
}

.hero-separator-scoop {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1rem;
    height: 0.9rem;
    transform: translateX(-50%);
    border-radius: 50% 50% 45% 45%;
    background: linear-gradient(135deg, #fffdf8 0%, #f0e4d2 45%, #d9c1a0 100%);
    box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.7);
}

.hero-separator-cone {
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border-left: 0.35rem solid transparent;
    border-right: 0.35rem solid transparent;
    border-top: 0.75rem solid #b87844;
}

.hero-feature {
    position: relative;
}

.hero-section {
    position: relative;
    overflow: hidden;
}

.hero-section::before,
.hero-section::after {
    content: "";
    position: absolute;
    inset: auto;
    border-radius: 50%;
    filter: blur(10px);
    opacity: 0.45;
    pointer-events: none;
}

.hero-section::before {
    width: 320px;
    height: 320px;
    background: rgba(199, 61, 53, 0.12);
    top: 3rem;
    right: -4rem;
}

.hero-section::after {
    width: 260px;
    height: 260px;
    background: rgba(23, 114, 69, 0.12);
    bottom: 1rem;
    left: -3rem;
}

.eyebrow,
.section-kicker {
    display: inline-block;
    margin-bottom: 0.85rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.eyebrow {
    padding: 0.45rem 0.85rem;
    border: 1px solid rgba(199, 61, 53, 0.18);
    border-radius: 999px;
    color: var(--bs-secondary);
    background: rgba(255, 255, 255, 0.72);
}

.section-kicker {
    color: var(--bs-primary);
}

.hero-section .display-2,
.section-band-red .display-5 {
    line-height: 0.95;
}

.hero-section .display-2 {
    max-width: 11ch;
}

.lead {
    color: #5d4c44;
}

.hero-notes {
    max-width: 42rem;
}

.mini-stat {
    padding: 1rem 1.1rem;
    border: 1px solid rgba(61, 42, 33, 0.08);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 12px 30px rgba(67, 36, 22, 0.05);
}

.mini-stat strong {
    display: block;
    margin-bottom: 0.25rem;
    font-family: "Fraunces", serif;
    font-size: 1.7rem;
    color: #2c1d18;
}

.mini-stat span {
    color: #6b5549;
    font-size: 0.95rem;
}

.showcase-section {
    scroll-margin-top: 6rem;
}

.section-band {
    padding: 4.5rem 0;
}

.section-band-cream {
    background: linear-gradient(180deg, rgba(255, 251, 244, 0.78), rgba(252, 246, 237, 0.95));
}

.section-band-red {
    background:
        linear-gradient(135deg, #b6312b 0%, #c73d35 55%, #9d281f 100%);
}

.section-heading {
    max-width: 46rem;
    margin-bottom: 2rem;
}

.homepage-hero-media {
    min-height: 72vh;
    background:
        linear-gradient(180deg, rgba(20, 18, 15, 0.26), rgba(20, 18, 15, 0.56)),
        url("https://placehold.co/1600x800?text=No.3") center/cover no-repeat;
}

.hero-banner-subtitle {
    max-width: 38rem;
    margin-top: 1rem;
    margin-bottom: 0;
    color: rgba(255, 249, 243, 0.9);
    font-size: clamp(1.02rem, 1.7vw, 1.2rem);
    line-height: 1.75;
    text-shadow: 0 8px 24px rgba(16, 13, 11, 0.2);
}

.hero-banner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 1.5rem;
}

.hero-banner-actions .btn-outline-light {
    --bs-btn-color: #fffdf8;
    --bs-btn-border-color: rgba(255, 253, 248, 0.74);
    --bs-btn-hover-bg: rgba(255, 253, 248, 0.12);
    --bs-btn-hover-color: #fffdf8;
    --bs-btn-hover-border-color: rgba(255, 253, 248, 0.9);
    min-height: 44px;
    box-shadow: none;
}

.hero-trust-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 1.5rem;
}

.trust-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.85rem;
    border: 1px solid rgba(255, 252, 246, 0.22);
    border-radius: 999px;
    background: rgba(255, 252, 246, 0.1);
    color: #fffaf4;
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    backdrop-filter: blur(10px);
}

.trust-pill i {
    font-size: 0.9rem;
}

.icon-feature-card,
.range-card,
.why-card,
.support-mini-card,
.event-card,
.distribution-card,
.story-text-card,
.contact-form-card,
.final-cta-card {
    height: 100%;
}

.icon-feature-card .card-body,
.range-card .card-body,
.why-card .card-body,
.support-mini-card .card-body,
.event-card .card-body {
    display: flex;
    flex-direction: column;
}

.icon-badge,
.range-icon,
.why-icon,
.event-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: linear-gradient(180deg, rgba(255, 252, 246, 0.98), rgba(244, 232, 214, 0.92));
    color: var(--brand-wine);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
    font-size: 1.2rem;
}

.range-card p,
.why-card p,
.event-card p,
.distribution-card p,
.story-text-card p,
.contact-form-card p {
    color: #5d4c44;
    line-height: 1.72;
}

.range-card .btn,
.event-card .btn {
    margin-top: auto;
}

.homepage-intro-visual,
.support-photo-panel,
.story-photo-panel {
    position: relative;
    overflow: hidden;
    min-height: 100%;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    box-shadow: 0 24px 50px rgba(55, 29, 18, 0.08);
}

.homepage-intro-visual {
    min-height: 29rem;
    padding: 1.5rem;
    background:
        linear-gradient(180deg, rgba(34, 25, 21, 0.18), rgba(34, 25, 21, 0.04)),
        url("https://placehold.co/1200x900?text=No.4") center/cover no-repeat;
    display: flex;
    align-items: flex-end;
}

.intro-visual-card {
    max-width: 18rem;
    padding: 1.15rem 1.2rem;
    border: 1px solid rgba(255, 251, 244, 0.34);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 251, 244, 0.86);
    backdrop-filter: blur(14px);
}

.intro-visual-card strong {
    display: block;
    margin-bottom: 0.35rem;
    font-family: "Fraunces", serif;
    font-size: 1.2rem;
    color: #2e201a;
}

.trade-panel {
    padding: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
    box-shadow: 0 24px 55px rgba(63, 24, 18, 0.18);
}

.trade-panel .lead,
.trade-panel p,
.trade-panel li {
    color: rgba(255, 249, 244, 0.86);
}

.trade-checklist {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.85rem;
}

.trade-checklist li {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
    line-height: 1.6;
}

.trade-checklist i {
    margin-top: 0.2rem;
    color: #f4dba8;
}

.support-photo-panel {
    min-height: 30rem;
    background:
        linear-gradient(180deg, rgba(33, 24, 20, 0.16), rgba(33, 24, 20, 0.28)),
        url("https://placehold.co/1200x900?text=No.5") center/cover no-repeat;
}

.story-photo-panel {
    min-height: 28rem;
    background:
        linear-gradient(180deg, rgba(32, 23, 18, 0.14), rgba(32, 23, 18, 0.24)),
        url("https://placehold.co/1200x900?text=No.6") center/cover no-repeat;
}

.support-mini-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.support-mini-card h3 {
    font-size: 1.15rem;
}

.distribution-card {
    padding: 2rem;
}

.faq-shell {
    padding: 2rem;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: linear-gradient(180deg, rgba(255, 252, 246, 0.98), rgba(247, 238, 226, 0.95));
    box-shadow: 0 22px 48px rgba(55, 29, 18, 0.08);
}

.contact-form-card {
    padding: 2rem;
}

.final-cta-card {
    padding: 2rem;
    color: #fffdf8;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background:
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.12), transparent 24%),
        linear-gradient(135deg, #12653d 0%, #00a658 52%, #0f4d2f 100%);
    box-shadow: 0 28px 55px rgba(22, 54, 35, 0.18);
}

.final-cta-card p {
    max-width: 42rem;
    color: rgba(255, 251, 246, 0.84);
}

.final-cta-card .btn-light {
    --bs-btn-color: #2d2019;
}

.card,
.accordion-item,
.toast,
.modal-content,
.offcanvas,
.dropdown-menu,
.list-group-item,
.table,
.form-control,
.form-select,
.alert {
    border-color: rgba(82, 49, 32, 0.09);
}

.card,
.toast,
.modal-content,
.offcanvas,
.dropdown-menu {
    box-shadow: 0 24px 50px rgba(55, 29, 18, 0.08);
}

.dropdown-menu {
    min-width: 19rem;
    padding: 0.85rem;
    background:
        linear-gradient(180deg, rgba(255, 252, 246, 0.98), rgba(248, 239, 227, 0.95));
    backdrop-filter: blur(12px);
    border: 1px solid rgba(183, 138, 63, 0.18);
    box-shadow: 0 26px 46px rgba(57, 31, 21, 0.12);
}

.dropdown-item {
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    padding: 0.8rem 0.95rem;
    color: #5a4438;
    font-family: "Fraunces", serif;
    font-size: 1.14rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    background: transparent;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), color 0.28s ease;
}

.dropdown-item:hover,
.dropdown-item:focus-visible {
    color: var(--brand-wine);
    background: transparent;
    transform: translateX(10px);
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: rgba(200, 80, 26, 0.08);
    color: var(--brand-orange);
}

.card {
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.86);
    backdrop-filter: blur(12px);
}

.story-card,
.ingredients-card,
.editorial-card,
.hero-feature,
.tasting-card {
    overflow: hidden;
}

.hero-feature {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(251, 244, 237, 0.95));
}

.brand-badge {
    background: #fff;
    color: var(--bs-danger);
    border: 1px solid rgba(199, 61, 53, 0.16);
}

.scoop-stack {
    display: flex;
    gap: 0.9rem;
    align-items: center;
}

.scoop {
    width: 72px;
    height: 72px;
    display: inline-block;
    border-radius: 50%;
    box-shadow: inset 0 10px 18px rgba(255, 255, 255, 0.28), 0 14px 26px rgba(60, 33, 21, 0.1);
}

.scoop-red {
    background: radial-gradient(circle at 30% 30%, #ef8a84, #c73d35 65%, #a42f28 100%);
}

.scoop-white {
    background: radial-gradient(circle at 30% 30%, #ffffff, #f3ebde 75%, #e2d6c5 100%);
}

.scoop-green {
    background: radial-gradient(circle at 30% 30%, #82c79a, #177245 68%, #105233 100%);
}

.feature-line {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    color: #5a4438;
    line-height: 1.65;
}

.feature-dot {
    width: 0.9rem;
    height: 0.9rem;
    margin-top: 0.35rem;
    flex: 0 0 auto;
    border-radius: 50%;
}

.flavour-carousel-wrap {
    position: relative;
}

.flavour-card {
    min-height: 22rem;
    color: #fff;
}

.flavour-card.is-wobbling {
    animation: flavourCardBounceLeft 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.flavour-card .card-body {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.flavour-card .card-text {
    flex-grow: 1;
}

.flavour-swiper {
    padding-bottom: 2.25rem;
}

.flavour-swiper .swiper-slide {
    height: auto;
}

.flavour-carousel-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.9rem;
    margin-top: 1rem;
}

.flavour-pagination {
    position: static !important;
    display: flex;
    justify-content: center;
    gap: 0.55rem;
    flex: 0 0 auto;
}

.flavour-pagination .carousel-dot {
    width: 0.65rem;
    height: 0.65rem;
    padding: 0;
    border: 0;
    margin: 0 !important;
    opacity: 1;
    border-radius: 50%;
    background: rgba(183, 138, 63, 0.26);
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.flavour-pagination .carousel-dot.is-active {
    background: #b78a3f;
    transform: scale(1.15);
}

.flavour-swiper.swiper-lock .flavour-pagination {
    display: none;
}

.carousel-arrow-inline {
    width: 2.25rem;
    height: 2.25rem;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: #6f2b23;
    padding: 0;
}

.flavour-swiper.swiper-lock .carousel-arrow-inline {
    display: none;
}

@media (min-width: 1200px) {
    .flavour-pagination,
    .carousel-arrow-inline {
        display: none !important;
    }
}

@keyframes flavourCardBounceLeft {
    0% {
        transform: translateX(0);
    }

    24% {
        transform: translateX(-16px);
    }

    52% {
        transform: translateX(4px);
    }

    100% {
        transform: translateX(0);
    }
}

@keyframes heroImageSettle {
    0% {
        opacity: 0;
        transform: scale(1.035);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes heroContentRise {
    0% {
        opacity: 0;
        transform: translateY(16px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 991.98px) {
    .homepage-hero-media {
        min-height: 66vh;
    }

    .hero-banner-subtitle {
        max-width: 32rem;
    }

    .support-mini-grid {
        grid-template-columns: 1fr;
    }

    .homepage-intro-visual,
    .support-photo-panel,
    .story-photo-panel {
        min-height: 22rem;
    }
}

@media (max-width: 767.98px) {
    .hero-banner-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .hero-banner-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .hero-trust-strip {
        gap: 0.55rem;
    }

    .trust-pill {
        width: 100%;
        justify-content: center;
    }

    .faq-shell,
    .contact-form-card,
    .distribution-card,
    .trade-panel,
    .final-cta-card {
        padding: 1.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.motion-enhanced .reveal,
    body.motion-enhanced .reveal.is-visible,
    body.motion-enhanced .hero-banner-media,
    body.motion-enhanced .hero-banner-eyebrow,
    body.motion-enhanced .hero-banner-title,
    body.motion-enhanced .hero-banner-button {
        opacity: 1;
        transform: none;
        transition: none;
        animation: none;
    }
}

.flavour-red {
    background: linear-gradient(160deg, #e36d66 0%, #c73d35 60%, #9b2d25 100%);
}

.flavour-white {
    background: linear-gradient(180deg, #fffdf8 0%, #f5ede2 100%);
    color: #33241f;
}

.flavour-green {
    background: linear-gradient(160deg, #2f8c5b 0%, #177245 55%, #0f4b30 100%);
}

.flavour-card .btn-outline-light {
    --bs-btn-color: #fff;
    --bs-btn-border-color: rgba(255, 255, 255, 0.75);
    --bs-btn-hover-bg: #fff;
    --bs-btn-hover-color: #7e221b;
    --bs-btn-hover-border-color: #fff;
}

.btn {
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    font-family: "Fraunces", serif;
    font-weight: 700;
    min-height: 44px;
    padding: 0.65rem 1.2rem;
}

.btn-lg {
    min-height: 44px;
    padding: 0.65rem 1.35rem;
}

.btn-primary {
    --bs-btn-bg: #177245;
    --bs-btn-border-color: #177245;
    --bs-btn-hover-bg: #115636;
    --bs-btn-hover-border-color: #115636;
    --bs-btn-active-bg: #0f472d;
    --bs-btn-active-border-color: #0f472d;
}

.btn-secondary {
    --bs-btn-bg: #c73d35;
    --bs-btn-border-color: #c73d35;
    --bs-btn-hover-bg: #a92e27;
    --bs-btn-hover-border-color: #a92e27;
    --bs-btn-active-bg: #912620;
    --bs-btn-active-border-color: #912620;
}

.btn-outline-secondary {
    --bs-btn-color: #8d3128;
    --bs-btn-border-color: #d8a39b;
    --bs-btn-hover-bg: #8d3128;
    --bs-btn-hover-border-color: #8d3128;
}

.btn-outline-primary {
    --bs-btn-color: #177245;
    --bs-btn-border-color: #7fb190;
    --bs-btn-hover-bg: #177245;
    --bs-btn-hover-border-color: #177245;
}

.progress,
.form-control,
.form-select,
.accordion-button,
.list-group-item,
.page-link,
.alert,
.badge,
.toast,
.modal-content,
.offcanvas,
.dropdown-menu {
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
}

.progress {
    --bs-progress-height: 0.75rem;
    background-color: rgba(199, 61, 53, 0.12);
}

.progress-bar {
    background: linear-gradient(90deg, #177245 0%, #c73d35 100%);
}

.table > :not(caption) > * > * {
    padding: 1rem 0.85rem;
}

.accordion-button:not(.collapsed) {
    background-color: rgba(23, 114, 69, 0.1);
    color: #115636;
    box-shadow: none;
}

.accordion-button::after {
    filter: hue-rotate(320deg) saturate(0.8);
}

.nav-tabs {
    border-bottom-color: rgba(82, 49, 32, 0.12);
}

.nav-tabs .nav-link {
    color: #6b5145;
    border-radius: var(--brand-radius) var(--brand-radius) 0 0;
}

.nav-tabs .nav-link.active {
    color: #8d3128;
    background-color: rgba(255, 255, 255, 0.9);
    border-color: rgba(82, 49, 32, 0.12) rgba(82, 49, 32, 0.12) transparent;
}

.list-group-item.active {
    background-color: #177245;
    border-color: #177245;
}

.breadcrumb {
    margin-bottom: 1rem;
    background: transparent;
}

.page-link {
    color: #8d3128;
}

.page-item.active .page-link {
    background-color: #c73d35;
    border-color: #c73d35;
}

.form-control,
.form-select {
    padding: 0.9rem 1rem;
    background-color: rgba(255, 255, 255, 0.86);
}

.form-check-input:checked {
    background-color: #177245;
    border-color: #177245;
}

.form-control:focus,
.form-select:focus,
.accordion-button:focus,
.page-link:focus,
.btn:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.25rem rgba(23, 114, 69, 0.16);
}

.toast {
    width: 100%;
    max-width: 100%;
}

.toast-header {
    background: rgba(255, 251, 244, 0.92);
}

.modal-content,
.offcanvas {
    background: #fffaf3;
}

.text-bg-dark {
    background-color: #243128 !important;
}

@media (max-width: 991.98px) {
    :root {
        --topbar-expanded-height: 5px;
        --mobile-navbar-height: 62px;
        --mobile-nav-offset: calc(var(--topbar-current-height) + var(--mobile-navbar-height));
    }

    .topbar .container {
        opacity: 0;
        transform: translateY(-8px);
        pointer-events: none;
    }

    .navbar {
        z-index: 1030;
        backdrop-filter: none;
        background: #fffaf3;
    }

    .navbar-brand {
        max-width: 150px;
        height: 50px;
    }

    .navbar-collapse {
        position: fixed;
        top: var(--mobile-nav-offset);
        left: 0;
        right: 0;
        bottom: 0;
        height: calc(100svh - var(--mobile-nav-offset));
        min-height: calc(100svh - var(--mobile-nav-offset));
        z-index: 1040;
        display: none;
        flex-direction: column;
        justify-content: flex-start;
        padding: 1rem 1.25rem 2rem;
        background: linear-gradient(180deg, rgba(255, 251, 245, 0.96), rgba(250, 242, 232, 0.92));
        overflow-y: auto;
        border-top: 0;
        transform-origin: top center;
    }

    .navbar-collapse.show {
        display: flex;
        animation: menuFadeIn 0.32s ease-out;
    }

    .navbar-nav {
        width: 100%;
        align-items: stretch !important;
        gap: 0.15rem;
    }

    .navbar-collapse.show .nav-item {
        opacity: 0;
        animation: menuItemRise 0.45s ease forwards;
    }

    .navbar-collapse.show .nav-item:nth-child(1) {
        animation-delay: 0.36s;
    }

    .navbar-collapse.show .nav-item:nth-child(2) {
        animation-delay: 0.28s;
    }

    .navbar-collapse.show .nav-item:nth-child(3) {
        animation-delay: 0.2s;
    }

    .navbar-collapse.show .nav-item:nth-child(4) {
        animation-delay: 0.12s;
    }

    .navbar-collapse.show .nav-item:nth-child(5) {
        animation-delay: 0.04s;
    }

    .navbar-nav .nav-item {
        width: 100%;
    }

    .navbar-nav .nav-link,
    .navbar-nav .btn {
        width: 100%;
        display: block;
        padding: 0.8rem 1.05rem;
        border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
        font-size: 1.35rem;
        line-height: 1.1;
        text-align: left;
    }

    .navbar-nav .btn {
        margin-top: 0.5rem;
        text-align: center;
    }

    .navbar-collapse .btn {
        font-size: 1.35rem;
        width: 100%;
        display: block;
        text-align: center;
    }

    .navbar-toggler {
        position: relative;
        z-index: 1045;
    }

    .navbar-collapse .dropdown-menu {
        position: static;
        width: 100%;
        margin-top: 0.15rem;
        margin-bottom: 0.3rem;
        border: 0;
        box-shadow: none;
        background: rgba(255, 250, 243, 0.88);
        padding: 0.4rem 0.45rem;
        display: block;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        visibility: hidden;
        transform: translateY(-0.35rem);
        transition:
            max-height 0.42s cubic-bezier(0.22, 1, 0.36, 1),
            opacity 0.28s ease,
            transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),
            visibility 0s linear 0.42s,
            padding-top 0.38s ease,
            padding-bottom 0.38s ease,
            margin-bottom 0.38s ease;
        border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    }

    .dropdown-toggle::before {
        right: 1.2rem;
    }

    .navbar-collapse .dropdown-menu.show {
        max-height: 28rem;
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        transition:
            max-height 0.48s cubic-bezier(0.22, 1, 0.36, 1),
            opacity 0.32s ease,
            transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
            visibility 0s linear 0s,
            padding-top 0.38s ease,
            padding-bottom 0.38s ease,
            margin-bottom 0.38s ease;
    }

    .navbar-collapse .dropdown-menu:not(.show) {
        padding-top: 0;
        padding-bottom: 0;
        margin-bottom: 0;
    }

    .navbar-collapse .dropdown-item {
        padding: 0.55rem 0.7rem;
        font-size: 1.08rem;
        line-height: 1.15;
        opacity: 0;
        transform: translateY(0.35rem);
        transition: opacity 0.28s ease, transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item {
        opacity: 1;
        transform: translateY(0);
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item:nth-child(1) {
        transition-delay: 0.05s;
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item:nth-child(2) {
        transition-delay: 0.09s;
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item:nth-child(3) {
        transition-delay: 0.13s;
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item:nth-child(4) {
        transition-delay: 0.17s;
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item:nth-child(5) {
        transition-delay: 0.21s;
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item:nth-child(6) {
        transition-delay: 0.25s;
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item:nth-child(7) {
        transition-delay: 0.29s;
    }

    .navbar-collapse .dropdown-menu.show .dropdown-item:nth-child(8) {
        transition-delay: 0.33s;
    }

    .hero-section .display-2 {
        max-width: none;
    }

    .hero-banner {
        margin-top: 0;
    }

    .hero-banner-media {
        min-height: 66vh;
        background-position: center center;
    }

    .flavour-card {
        flex-basis: min(82vw, 21rem);
        min-height: 20rem;
    }

    .flavour-card {
        min-height: 20rem;
    }

    .hero-banner-title {
        max-width: none;
        font-size: 2.1rem;
    }

    .hero-banner-content {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .hero-separator {
        gap: 0.65rem;
        padding: 1rem 0.75rem 0;
    }

    .hero-separator-line {
        width: min(6rem, 22vw);
    }

    .hero-separator-icon {
        width: 3rem;
        height: 3rem;
    }

    .site-footer {
        padding: 2.5rem 0 2rem;
    }

    .footer-newsletter-form {
        flex-direction: column;
        align-items: stretch;
    }

    .footer-newsletter-form .btn {
        width: 100%;
    }

    .section-band {
        padding: 3.5rem 0;
    }

    .dropdown-menu {
        min-width: 100%;
    }
}

@keyframes menuFadeIn {
    0% {
        opacity: 0;
        transform: translateY(-0.4rem);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes menuItemRise {
    0% {
        opacity: 0;
        transform: translateY(1rem);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==============================================
   GI MARKETING COMPONENTS
   new_home.php component library
   ============================================== */

/* --- Hero --- */
.gi-hero {
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

.gi-hero-media {
    position: relative;
    min-height: 78vh;
    display: flex;
    align-items: center;
    background:
        linear-gradient(160deg, rgba(28, 18, 12, 0.72) 0%, rgba(28, 18, 12, 0.38) 60%, rgba(28, 18, 12, 0.55) 100%),
        var(--gi-hero-img) center/cover no-repeat;
}

.gi-hero-content {
    position: relative;
    z-index: 1;
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.gi-hero-title {
    max-width: 18ch;
    color: #fffdf8;
    font-size: clamp(2.4rem, 4.8vw, 4.8rem);
    line-height: 0.92;
    margin-top: 1rem;
    text-shadow: 0 10px 32px rgba(14, 11, 8, 0.3);
}

.gi-hero-subtitle {
    max-width: 40rem;
    margin-top: 1.25rem;
    color: rgba(255, 249, 243, 0.88);
    font-size: clamp(1rem, 1.7vw, 1.2rem);
    line-height: 1.75;
}

.gi-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 1.75rem;
}

.gi-hero-actions .btn-outline-light {
    --bs-btn-color: #fffdf8;
    --bs-btn-border-color: rgba(255, 253, 248, 0.65);
    --bs-btn-hover-bg: rgba(255, 253, 248, 0.12);
    --bs-btn-hover-color: #fffdf8;
    --bs-btn-hover-border-color: rgba(255, 253, 248, 0.9);
}

.gi-trust-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 2rem;
}

/* --- Stat cards (brand intro grid) --- */
.gi-stat-card {
    padding: 1.25rem 1.1rem;
    border: 1px solid rgba(61, 42, 33, 0.08);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 10px 28px rgba(67, 36, 22, 0.05);
    height: 100%;
}

.gi-stat-card strong {
    display: block;
    font-family: "Fraunces", serif;
    font-size: 1.9rem;
    color: #2c1d18;
    margin-bottom: 0.3rem;
    letter-spacing: -0.03em;
}

.gi-stat-card span {
    font-size: 0.9rem;
    color: #6b5549;
    line-height: 1.45;
}

/* --- Feature cards (Why choose us) --- */
.gi-feature-card {
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(61, 42, 33, 0.07);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.8);
    box-shadow: 0 14px 34px rgba(55, 29, 18, 0.06);
    height: 100%;
}


.gi-feature-body {
    padding: 1.5rem;
}

.gi-feature-heading {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    justify-content: flex-start;
    margin-bottom: 0.85rem;
}

.gi-feature-heading h3 {
    margin-top: 8px;
    margin-bottom: 0;
    line-height: 1.2;
    align-self: center;
}

.gi-feature-heading .gi-feature-icon {
    align-self: center;
    flex-shrink: 0;
}

.gi-feature-icon {
    width: 2.4rem;
    height: 2.4rem;
    min-width: 2.4rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: linear-gradient(180deg, rgba(255, 252, 246, 0.98), rgba(244, 232, 214, 0.92));
    color: var(--brand-wine);
    font-size: 1.05rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.gi-feature-card h3 {
    font-size: 1.2rem;
    margin-bottom: 0.6rem;
    color: #2c1d18;
}

.gi-feature-card p {
    color: #5d4c44;
    line-height: 1.7;
    margin: 0;
    font-size: 0.95rem;
}

/* --- Stats band --- */
.gi-stats-band {
    padding: 4rem 0;
    background: linear-gradient(135deg, #1a3028 0%, #213d32 55%, #172a23 100%);
}

.gi-stat-icon {
    display: block;
    font-size: 1.8rem;
    color: rgba(255, 249, 242, 0.55);
    margin-bottom: 0.6rem;
}

.gi-stat-number strong {
    display: block;
    font-family: "Fraunces", serif;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    color: #fffdf8;
    letter-spacing: -0.04em;
    line-height: 1;
    margin-bottom: 0.4rem;
}

.gi-stat-number span {
    font-size: 0.9rem;
    color: rgba(255, 249, 242, 0.65);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 600;
}

/* --- Product carousel --- */
.gi-carousel-wrap {
    position: relative;
}

.gi-card-swiper {
    overflow: hidden;
    padding-bottom: 0.5rem;
}

.gi-card-swiper .swiper-slide,
.gi-testi-swiper .swiper-slide {
    height: auto;
}

.gi-product-card {
    height: 100%;
    min-height: 22rem;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    overflow: hidden;
}

.gi-product-card-body {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.75rem;
}

.gi-product-card h3 {
    font-size: 1.3rem;
    margin-bottom: 0.65rem;
}

.gi-product-card p {
    font-size: 0.95rem;
    line-height: 1.65;
    flex-grow: 1;
    margin-bottom: 1.25rem;
}

.gi-product-badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    margin-bottom: 1rem;
}

/* Card colour themes */
.gi-product-card--classic {
    background: linear-gradient(160deg, #fffdf8 0%, #f5ede2 100%);
    color: #2c1d18;
    border: 1px solid rgba(61, 42, 33, 0.1);
}

.gi-product-card--classic .gi-product-badge {
    background: rgba(61, 42, 33, 0.08);
    color: #4a3028;
}

.gi-product-card--premium {
    background: linear-gradient(160deg, #2f8c5b 0%, #177245 55%, #0f4b30 100%);
    color: #fff;
}

.gi-product-card--premium .gi-product-badge {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.gi-product-card--premium p { color: rgba(255,255,255,0.85); }

.gi-product-card--bestseller {
    background: linear-gradient(160deg, #e36d66 0%, #c73d35 60%, #9b2d25 100%);
    color: #fff;
}

.gi-product-card--bestseller .gi-product-badge {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.gi-product-card--bestseller p { color: rgba(255,255,255,0.85); }

.gi-product-card--fruit {
    background: linear-gradient(160deg, #f5c842 0%, #d4900a 55%, #a86c00 100%);
    color: #fff;
}

.gi-product-card--fruit .gi-product-badge {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.gi-product-card--fruit p { color: rgba(255,255,255,0.88); }

.gi-product-card--vegan {
    background: linear-gradient(160deg, #3a5a40 0%, #2d4a33 55%, #1e3322 100%);
    color: #fff;
}

.gi-product-card--vegan .gi-product-badge {
    background: rgba(255, 255, 255, 0.15);
    color: #c8f5d8;
}

.gi-product-card--vegan p { color: rgba(255,255,255,0.85); }

.gi-product-card--indulgent {
    background: linear-gradient(160deg, #8b5e2a 0%, #6b4520 55%, #4e3016 100%);
    color: #fff;
}

.gi-product-card--indulgent .gi-product-badge {
    background: rgba(255, 218, 160, 0.2);
    color: #ffdaa0;
}

.gi-product-card--indulgent p { color: rgba(255,255,255,0.85); }

/* Carousel controls */
.gi-carousel-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.gi-carousel-btn {
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid rgba(82, 49, 32, 0.16);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.8);
    color: var(--brand-wine);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    cursor: pointer;
}

.gi-carousel-btn:hover:not(:disabled) {
    background: var(--brand-wine);
    color: #fff;
    border-color: var(--brand-wine);
}

.gi-carousel-btn:disabled {
    opacity: 0.35;
    cursor: default;
}

.gi-carousel-dots {
    display: flex;
    gap: 0.45rem;
}

.gi-dot {
    width: 0.6rem;
    height: 0.6rem;
    border: 0;
    padding: 0;
    border-radius: 50%;
    background: rgba(183, 138, 63, 0.25);
    transition: background 0.2s ease, transform 0.2s ease;
    cursor: pointer;
}

.gi-dot.is-active {
    background: var(--brand-gold);
    transform: scale(1.2);
}

/* --- Flavour gallery grid --- */
.gi-flavour-gallery {
    overflow: hidden;
}

.gi-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 260px 260px;
    gap: 4px;
}

.gi-gallery-item {
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    cursor: pointer;
}

.gi-gallery-item--tall {
    grid-row: span 2;
}

.gi-gallery-item--wide {
    grid-column: span 2;
}

.gi-gallery-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.6rem 0.85rem;
    background: linear-gradient(transparent, rgba(33, 49, 40, 0.72));
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    opacity: 0;
    transition: opacity 0.25s;
}

.gi-gallery-item:hover .gi-gallery-caption {
    opacity: 1;
}

.gi-gallery-item::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(33, 49, 40, 0);
    transition: background 0.25s;
}

.gi-gallery-item:hover::after {
    background: rgba(33, 49, 40, 0.15);
}

/* Gelato / food images */
.gi-gal-1 { background-image: url("https://placehold.co/800x800?text=No.7"); }
.gi-gal-2 { background-image: url("https://placehold.co/800x800?text=No.8"); }
.gi-gal-3 { background-image: url("https://placehold.co/800x600?text=No.9"); }
.gi-gal-4 { background-image: url("https://placehold.co/800x800?text=No.10"); }
.gi-gal-5 { background-image: url("https://placehold.co/800x800?text=No.11"); }
.gi-gal-6 { background-image: url("https://placehold.co/800x500?text=No.25"); }

@media (max-width: 767.98px) {
    .gi-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
    }

    .gi-gallery-item {
        height: 180px;
    }

    .gi-gallery-item--tall {
        grid-row: span 1;
    }

    .gi-gallery-item--wide {
        grid-column: span 2;
    }

    .gi-gallery-caption {
        opacity: 1;
    }
}

/* --- Client showcase cards --- */
.gi-client-card {
    display: block;
    position: relative;
    overflow: hidden;
    height: 260px;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    text-decoration: none;
    color: #fff;
    box-shadow: 0 2px 16px rgba(33, 49, 40, 0.1);
}

.gi-client-card:hover {
    color: #fff;
}

.gi-client-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.gi-client-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(26, 48, 40, 0);
    transition: background 0.6s ease;
}

.gi-client-card:hover .gi-client-img {
    transform: scale(1.07);
}

.gi-client-card:hover .gi-client-img::after {
    background: rgba(26, 48, 40, 0.52);
}

.gi-client-label {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0.9rem 1rem;
    background: linear-gradient(transparent, rgba(26, 48, 40, 0.82));
    color: #fff;
    transition: background 0.6s ease;
}

.gi-client-card:hover .gi-client-label {
    background: linear-gradient(rgba(26, 48, 40, 0) 0%, rgba(26, 48, 40, 0.88) 30%);
}

.gi-client-label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: "Fraunces", serif;
    font-weight: 600;
    font-size: 1.2rem;
    color: #fff;
}

.gi-client-label i {
    color: #fff;
    font-size: 0.8rem;
    flex-shrink: 0;
}

.gi-client-desc {
    font-size: 0.95rem;
    color: rgba(255, 249, 242, 0.9);
    line-height: 1.5;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    margin-top: 0;
    margin-bottom: 0;
    transition: max-height 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.5s ease 0.15s, margin-top 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.gi-client-card:hover .gi-client-desc {
    max-height: 120px;
    opacity: 1;
    margin-top: 0.5rem;
}

/* Client sector images */
/* gi-client-img-1 through gi-client-img-7 removed - images now inline via wp_get_attachment_image_url() */

/* gi-event-img-1 through gi-event-img-4 removed - images now inline via wp_get_attachment_image_url() */

@media (max-width: 767.98px) {
    .gi-client-card {
        height: 180px;
    }

    .gi-client-label {
        padding: 0.65rem 0.75rem;
    }

    .gi-client-label-row {
        font-size: 0.9rem;
    }

    .gi-client-desc {
        font-size: 0.82rem;
    }
}

/* --- Scroll reveal --- */
.gi-reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.75s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.75s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.gi-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .gi-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* --- Video background section --- */
.gi-video-section {
    position: relative;
    overflow: hidden;
    min-height: 560px;
    display: flex;
    align-items: center;
}

.gi-video-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.gi-video-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(33, 49, 40, 0.82) 0%, rgba(33, 49, 40, 0.55) 60%, rgba(33, 49, 40, 0.72) 100%);
    z-index: 1;
}

.gi-video-content {
    position: relative;
    z-index: 2;
    color: #fff;
    padding: 5rem 0;
}

.gi-video-content .eyebrow {
    color: rgba(255, 255, 255, 0.75);
    border-color: rgba(255, 255, 255, 0.25);
}

.gi-video-content h2 {
    color: #fff;
    font-size: clamp(2rem, 4vw, 3rem);
    max-width: 700px;
}

.gi-video-content .lead {
    color: rgba(255, 255, 255, 0.88);
    max-width: 600px;
    font-size: 1.125rem;
}

.gi-video-stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem 3rem;
    margin-top: 2.5rem;
}

.gi-video-stat {
    display: flex;
    flex-direction: column;
}

.gi-video-stat strong {
    font-family: "Fraunces", serif;
    font-size: 2.25rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}

.gi-video-stat span {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7);
    margin-top: 0.3rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.gi-video-cta {
    margin-top: 2.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

@media (max-width: 767.98px) {
    .gi-video-section {
        min-height: 480px;
    }

    .gi-video-content {
        padding: 3.5rem 0;
    }

    .gi-video-stat-row {
        gap: 1.5rem 2rem;
    }

    .gi-video-stat strong {
        font-size: 1.75rem;
    }
}

/* --- Wholesale split band --- */
.gi-split-band {
    background: linear-gradient(135deg, #b6312b 0%, #c73d35 55%, #9d281f 100%);
}

.gi-eyebrow-light {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.1);
}

.gi-split-lead {
    color: rgba(255, 249, 244, 0.82);
    font-size: 1.1rem;
    line-height: 1.7;
    margin-top: 0.75rem;
}

.gi-checklist-panel {
    padding: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
    box-shadow: 0 24px 55px rgba(63, 24, 18, 0.18);
}

.gi-checklist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.9rem;
}

.gi-checklist li {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    color: rgba(255, 249, 244, 0.9);
    line-height: 1.55;
}

.gi-checklist i {
    color: #f4dba8;
    font-size: 1.1rem;
    margin-top: 0.1rem;
    flex-shrink: 0;
}

/* --- Sector cards --- */
.gi-sector-card {
    display: flex;
    flex-direction: column;
    padding: 1.75rem;
    height: 100%;
    border: 1px solid rgba(61, 42, 33, 0.08);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.8);
    box-shadow: 0 12px 30px rgba(55, 29, 18, 0.06);
    text-decoration: none;
    color: inherit;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease, border-color 0.28s ease;
}

.gi-sector-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 44px rgba(55, 29, 18, 0.12);
    border-color: rgba(183, 138, 63, 0.28);
    color: inherit;
}

.gi-sector-card--events {
    border-color: rgba(183, 138, 63, 0.18);
    background: linear-gradient(160deg, rgba(255, 252, 246, 0.95), rgba(252, 245, 232, 0.9));
}

.gi-sector-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: linear-gradient(180deg, rgba(255, 252, 246, 0.98), rgba(244, 232, 214, 0.92));
    color: var(--brand-wine);
    font-size: 1.15rem;
    margin-bottom: 1.1rem;
}

.gi-sector-card h3 {
    font-size: 1.15rem;
    margin-bottom: 0.5rem;
    color: #2c1d18;
}

.gi-sector-card p {
    font-size: 0.92rem;
    color: #5d4c44;
    line-height: 1.65;
    flex-grow: 1;
    margin-bottom: 1rem;
}

.gi-sector-link {
    font-family: "Fraunces", serif;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--brand-wine);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    transition: gap 0.2s ease;
}

.gi-sector-card:hover .gi-sector-link {
    gap: 0.6rem;
}

/* --- Testimonial cards --- */
.gi-testimonial-card {
    padding: 1.75rem;
    border: 1px solid rgba(61, 42, 33, 0.07);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 14px 34px rgba(55, 29, 18, 0.06);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.gi-testimonial-stars {
    color: var(--brand-gold);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    margin-bottom: 1rem;
}

.gi-testimonial-card blockquote {
    font-size: 0.95rem;
    line-height: 1.75;
    color: #3d2920;
    font-style: italic;
    margin: 0 0 1.25rem;
    flex-grow: 1;
    border: 0;
    padding: 0;
}

.gi-testimonial-author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(183, 138, 63, 0.14);
}

.gi-testimonial-avatar {
    width: 2.6rem;
    height: 2.6rem;
    flex-shrink: 0;
    border-radius: 50%;
    background: linear-gradient(180deg, #e8d5c0, #c9b49a);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7a5540;
    font-size: 1.1rem;
}

.gi-testimonial-author strong {
    display: block;
    font-size: 0.88rem;
    color: #2c1d18;
}

.gi-testimonial-author span {
    font-size: 0.82rem;
    color: #7a6055;
}

/* --- Event cards --- */
.gi-event-card {
    padding: 1.75rem;
    border: 1px solid rgba(61, 42, 33, 0.07);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.8);
    box-shadow: 0 12px 30px rgba(55, 29, 18, 0.06);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.gi-event-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: linear-gradient(180deg, rgba(255, 252, 246, 0.98), rgba(244, 232, 214, 0.92));
    color: var(--brand-wine);
    font-size: 1.2rem;
    margin-bottom: 1rem;
}

.gi-event-card h3 {
    font-size: 1.15rem;
    margin-bottom: 0.55rem;
    color: #2c1d18;
}

.gi-event-card p {
    font-size: 0.92rem;
    color: #5d4c44;
    line-height: 1.65;
    flex-grow: 1;
    margin-bottom: 1.25rem;
}

/* --- Blog cards --- */
.gi-blog-card {
    border: 1px solid rgba(61, 42, 33, 0.07);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 12px 30px rgba(55, 29, 18, 0.06);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease;
}

.gi-blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 44px rgba(55, 29, 18, 0.1);
}

.gi-blog-card-image {
    display: block;
    width: 100%;
    height: 14rem;
    object-fit: cover;
    object-position: center center;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
}

.gi-blog-img-1 {
    background-image: url("https://placehold.co/800x800?text=No.10");
}

.gi-blog-img-2 {
    background-image: url("https://placehold.co/800x500?text=No.25");
}

.gi-blog-img-3 {
    background-image: url("https://placehold.co/800x500?text=No.26");
}

.gi-blog-card-body {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.gi-blog-category {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bs-primary);
    margin-bottom: 0.65rem;
}

.gi-blog-card h3 {
    font-size: 1.1rem;
    line-height: 1.35;
    margin-bottom: 0.65rem;
    color: #2c1d18;
}

.gi-blog-card h3 a {
    color: #2c1d18;
    text-decoration: none;
}

.gi-blog-card h3 a:hover {
    color: var(--brand-green);
    text-decoration: none;
}

.gi-blog-card p {
    font-size: 0.92rem;
    color: #5d4c44;
    line-height: 1.65;
    flex-grow: 1;
    margin-bottom: 1rem;
}

.gi-blog-read-more {
    font-family: "Fraunces", serif;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--brand-wine);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    transition: gap 0.2s ease;
}

.gi-blog-card:hover .gi-blog-read-more {
    gap: 0.6rem;
}

/* --- Blog sidebar --- */
.gi-blog-sidebar {
    position: sticky;
    top: 6rem;
}

.gi-blog-sidebar-heading {
    font-family: "Fraunces", serif;
    font-size: 1.1rem;
    color: #261814;
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(61, 42, 33, 0.12);
}

.gi-sidebar-post {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    text-decoration: none;
    color: inherit;
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(61, 42, 33, 0.08);
    transition: opacity 0.2s ease;
}

.gi-sidebar-post:hover {
    opacity: 0.75;
    color: inherit;
    text-decoration: none;
}

.gi-sidebar-post-img {
    width: 72px;
    height: 56px;
    object-fit: cover;
    border-radius: var(--brand-radius);
    flex-shrink: 0;
}

.gi-sidebar-post-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.gi-sidebar-post-body .gi-blog-category {
    font-size: 0.68rem;
}

.gi-sidebar-post-title {
    font-family: "Fraunces", serif;
    font-size: 0.88rem;
    font-weight: 600;
    color: #261814;
    line-height: 1.35;
    margin: 0;
}

/* --- Final CTA band --- */
.gi-final-cta {
    padding: 3.5rem;
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background:
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.1), transparent 30%),
        linear-gradient(135deg, #12653d 0%, #0f9950 52%, #0c4d30 100%);
    box-shadow: 0 28px 55px rgba(18, 52, 33, 0.18);
}

.gi-final-cta-kicker {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
    margin-bottom: 0.5rem;
}

.gi-final-cta-body {
    color: rgba(255, 251, 246, 0.78);
    max-width: 44rem;
    line-height: 1.7;
}

/* --- Wholesale checklist --- */
.gi-wholesale-checklist {
    list-style: none;
    padding: 0;
    margin: 1.25rem 0 0;
}

.gi-wholesale-checklist li {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    color: rgba(255, 251, 246, 0.85);
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 0.6rem;
}

.gi-wholesale-checklist li .bi {
    color: var(--brand-gold);
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

/* --- Blockquote --- */
.gi-blockquote {
    margin: 1.5rem 0;
    padding: 1.25rem 1.5rem;
    border-left: 3px solid var(--brand-gold);
    background: rgba(183, 138, 63, 0.06);
    border-radius: 0 var(--brand-radius) var(--brand-radius-accent) 0;
    font-style: italic;
    font-size: 1.05rem;
    color: #3d2920;
    line-height: 1.75;
}

/* --- Design reference section --- */
.gi-design-ref {
    background: #f0ebe4;
    border-top: 3px dashed rgba(183, 138, 63, 0.3);
}

.gi-design-ref-header {
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(61, 42, 33, 0.1);
}

.gi-design-ref-header h2 {
    font-size: 1.6rem;
    color: #2c1d18;
    margin-bottom: 0.35rem;
}

.gi-design-ref-header p {
    color: #7a6055;
    margin: 0;
    font-size: 0.9rem;
}

.gi-ref-block {
    margin-bottom: 3rem;
}

.gi-ref-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #9a7060;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(61, 42, 33, 0.1);
}

.gi-ref-surface {
    padding: 2rem;
    border: 1px solid rgba(61, 42, 33, 0.08);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    background: rgba(255, 255, 255, 0.86);
}

.gi-ref-caption {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #9a7060;
    margin-bottom: 0.75rem;
}

.gi-ref-dark-swatch {
    background: #1a3a5c;
    padding: 1.25rem;
    border-radius: var(--brand-radius);
}

/* --- Responsive adjustments for new components --- */
@media (max-width: 991.98px) {
    .gi-hero-media {
        min-height: 70vh;
    }

    .gi-hero-content {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .gi-hero-title {
        max-width: none;
        font-size: 2.2rem;
    }

    .gi-final-cta {
        padding: 2rem;
    }

    .gi-checklist-panel {
        padding: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .gi-hero-media {
        min-height: 85vh;
        align-items: center;
    }

    .gi-hero .gi-hero-content {
        padding-top: 4rem;
        padding-bottom: 4rem;
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }

    .gi-hero-actions {
        flex-direction: column;
    }

    .gi-hero-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .gi-trust-strip {
        gap: 0.5rem;
    }

    .trust-pill {
        font-size: 0.82rem;
    }

    .gi-stats-band .gi-stat-number strong {
        font-size: 2rem;
    }

    .gi-blog-card-image {
        height: 11rem;
    }

    .gi-ref-surface {
        padding: 1.25rem;
    }

    .gi-final-cta {
        padding: 1.25rem;
    }

    .gi-contact-form-wrap {
        padding: 1rem;
    }

    .container,
    .container-fluid {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }
}

/* =============================================================
   INNER PAGE HERO (shared across all inner pages)
   ============================================================= */

.gi-inner-hero {
    position: relative;
    min-height: 340px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
}

.gi-inner-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(26, 48, 40, 0.35);
}

.gi-inner-hero .container {
    position: relative;
    z-index: 1;
}

.gi-inner-hero-content {
    max-width: 720px;
    padding: 3rem 0;
    color: #fff;
}

.gi-inner-hero-content .eyebrow {
    display: inline-block;
    background: rgba(181, 41, 42, 0.82);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.3rem 0.85rem;
    border-radius: 50px;
    margin-bottom: 1rem;
}

.gi-inner-hero-content h1 {
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    margin-bottom: 1rem;
}

.gi-inner-hero-content p {
    color: rgba(255, 249, 242, 0.85);
    font-size: 1.05rem;
    margin-bottom: 0;
}

@media (max-width: 767.98px) {
    .gi-inner-hero { min-height: 240px; }
    .gi-inner-hero-content { padding: 2rem 0; }
}

/* =============================================================
   ABOUT PAGE
   ============================================================= */

/* Heritage quote */
.gi-heritage-quote {
    border-left: 3px solid var(--brand-green);
    padding: 1rem 0 1rem 1.5rem;
    margin: 2rem 0 0;
    font-family: "Fraunces", serif;
    font-size: 1.15rem;
    font-style: italic;
    color: #2c1d18;
    line-height: 1.5;
}

.gi-heritage-quote cite {
    display: block;
    font-family: "Manrope", sans-serif;
    font-size: 0.85rem;
    font-style: normal;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--brand-green);
    margin-top: 0.6rem;
}

/* Story photo */
.gi-about-photo {
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    overflow: hidden;
    box-shadow: 0 4px 32px rgba(33, 49, 40, 0.12);
    max-height: 560px;
}

.gi-about-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: bottom center;
}

/* La Famiglia band */
.gi-famiglia-band {
    background: #1a2720;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    padding: 5rem 0;
    color: #fff;
}

.gi-famiglia-kicker {
    font-family: "Fraunces", serif;
    font-style: italic;
    font-size: 1.1rem;
    color: rgba(255, 249, 242, 0.6);
    margin-bottom: 0.75rem;
    letter-spacing: 0.02em;
}

.gi-famiglia-heading {
    font-family: "Fraunces", serif;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    color: #fff;
    margin-bottom: 1.25rem;
}

.gi-famiglia-body {
    color: rgba(255, 249, 242, 0.8);
    font-size: 1.05rem;
    max-width: 600px;
    margin: 0 auto 2rem;
    line-height: 1.7;
}

/* Business pillars */
.gi-about-pillar {
    padding: 2rem;
    background: var(--bs-white);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    box-shadow: 0 2px 16px rgba(33, 49, 40, 0.07);
    height: 100%;
}

.gi-about-pillar-icon {
    font-size: 2rem;
    color: var(--brand-green);
    margin-bottom: 1rem;
}

.gi-about-pillar h3 {
    font-family: "Fraunces", serif;
    font-size: 1.2rem;
    margin-bottom: 0.75rem;
    color: #2c1d18;
}

/* Everything Desserts logo */
.gi-ed-logo {
    max-height: 100px;
    max-width: 100%;
    width: auto;
    height: auto;
}

/* Award logos */
.gi-award-logo {
    max-height: 180px;
    max-width: 100%;
    width: auto;
    height: auto;
    border-radius: 12px;
    filter: grayscale(20%);
    transition: filter 0.3s ease;
}

.gi-award-logo:hover { filter: grayscale(0%); }

/* FSA wrap */
.gi-fsa-wrap {
    border-top: 1px solid var(--bs-border-color);
    padding-top: 3rem;
    margin-top: 1rem;
}

.gi-fsa-title {
    font-family: "Fraunces", serif;
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
    color: #2c1d18;
}

/* FSA embed widget - force responsive */
.gi-fsa-embed-wrap {
    overflow-x: auto;
    max-width: 100%;
}

.gi-fsa-embed-wrap iframe,
.gi-fsa-embed-wrap > * {
    max-width: 100%;
}

/* Flavour CTA logo */
.gi-flavour-cta-logo {
    max-width: 100%;
    height: auto;
}

/* =============================================================
   PRODUCT PAGES - FLAVOUR PILLS
   ============================================================= */

.gi-flavour-cat-title {
    font-family: "Fraunces", serif;
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--brand-green);
    margin-bottom: 0.85rem;
}

.gi-flavour-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem;
}

@media (max-width: 991.98px) {
    .gi-flavour-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575.98px) {
    .gi-flavour-grid { grid-template-columns: 1fr; }
}

.gi-flavour-pill {
    display: inline-block;
    padding: 0.35rem 0.9rem;
    border-radius: 50px;
    font-size: 0.82rem;
    font-weight: 500;
    background: #f0ede8;
    color: #2c1d18;
    border: 1px solid rgba(44, 29, 24, 0.12);
}

.gi-flavour-pill--indulgent {
    background: #f5f0e8;
    border-color: rgba(180, 130, 40, 0.2);
    color: #5a3e00;
}

.gi-flavour-pill--vegan {
    background: #eaf2ec;
    border-color: rgba(33, 49, 40, 0.2);
    color: #1a3a22;
}

.gi-flavour-pill--fun {
    background: #fdf0f5;
    border-color: rgba(180, 40, 80, 0.15);
    color: #7a1a40;
}

.gi-flavour-pill--fruit {
    background: #f0f7ff;
    border-color: rgba(30, 100, 180, 0.15);
    color: #1a3a6e;
}

.gi-flavour-cta {
    background: var(--bs-white);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--brand-radius);
    padding: 1.75rem 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.gi-flavour-cta p {
    margin: 0;
    font-size: 0.95rem;
    color: #2c1d18;
    flex: 1;
}

.gi-flavour-cta-logo {
    max-height: 48px;
    width: auto;
    flex-shrink: 0;
}

/* Order options in dark band */
.gi-order-option {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--brand-radius);
    padding: 1.5rem;
    height: 100%;
}

.gi-order-option i {
    font-size: 1.75rem;
    color: rgba(255, 249, 242, 0.7);
    margin-bottom: 0.75rem;
    display: block;
}

.gi-order-option h3 {
    font-family: "Fraunces", serif;
    font-size: 1.1rem;
    color: #fff;
    margin-bottom: 0.5rem;
}

.gi-order-option p {
    font-size: 0.88rem;
    color: rgba(255, 249, 242, 0.75);
    margin-bottom: 1rem;
}

/* =============================================================
   CONTACT PAGE
   ============================================================= */

.gi-map-hero {
    width: 100%;
    height: 420px;
    overflow: hidden;
    background: var(--bs-gray-200);
}

.gi-map-hero iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

.gi-contact-block-title {
    font-family: "Fraunces", serif;
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--brand-green);
    margin-bottom: 0.75rem;
}

.gi-contact-address {
    font-style: normal;
    line-height: 1.8;
    color: var(--bs-body-color);
    margin-bottom: 1rem;
}

.gi-contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.gi-contact-list li {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
}

.gi-contact-list i {
    color: var(--brand-green);
    font-size: 1rem;
    flex-shrink: 0;
}

.gi-contact-list a {
    color: var(--bs-body-color);
    text-decoration: none;
}

.gi-contact-list a:hover {
    color: var(--brand-green);
}

.gi-contact-list .gi-contact-phone a {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--brand-green);
}

.gi-hours-table {
    width: 100%;
    border-collapse: collapse;
}

.gi-hours-table td {
    padding: 0.35rem 0;
    vertical-align: top;
}

.gi-hours-table td:last-child {
    text-align: right;
    font-weight: 500;
    color: var(--brand-green);
}

.gi-contact-note {
    font-size: 0.9rem;
    color: var(--bs-secondary-color);
    line-height: 1.6;
}

.gi-contact-form-wrap {
    background: var(--bs-white);
    border-radius: var(--brand-radius) var(--brand-radius) var(--brand-radius-accent) var(--brand-radius);
    box-shadow: 0 2px 24px rgba(33, 49, 40, 0.08);
    padding: 2.25rem;
}

@media (max-width: 767.98px) {
    .gi-map-hero { height: 260px; }
}

/* Gravity Forms orbital theme overrides - scoped to contact form */
.gi-contact-form-wrap .gform_wrapper {
    --gf-color-primary: #213128;
    --gf-color-primary-rgb: 33, 49, 40;
    --gf-color-primary-contrast: #fff;
    --gf-color-primary-darker: #1a2720;
    --gf-color-primary-lighter: #2d4438;
    --gf-color-in-ctrl-primary: #213128;
    --gf-color-in-ctrl-primary-rgb: 33, 49, 40;
    --gf-ctrl-label-color-primary: #2c1d18;
    --gf-ctrl-label-color-secondary: #2c1d18;
    --gf-ctrl-border-color: #ced4da;
}

/* Labels and legends - normalise size */
.gi-contact-form-wrap .gfield_label,
.gi-contact-form-wrap .gform-field-label,
.gi-contact-form-wrap legend.gfield_label {
    color: #2c1d18;
    font-family: "Fraunces", serif;
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.gi-contact-form-wrap .gfield_required {
    color: #2c1d18;
    font-size: 0.9rem;
}

/* Full-width textarea with sensible height */
.gi-contact-form-wrap textarea {
    width: 100% !important;
    height: 160px !important;
    resize: vertical;
}

/* Field descriptions */
.gi-contact-form-wrap .gfield_description {
    color: #6c757d;
    font-size: 0.8rem !important;
}

/* Inputs and textareas */
.gi-contact-form-wrap input[type="text"],
.gi-contact-form-wrap input[type="email"],
.gi-contact-form-wrap input[type="tel"],
.gi-contact-form-wrap textarea {
    border-color: #ced4da;
    border-radius: 6px;
    color: #2c1d18;
    font-size: 0.9rem !important;
    padding: 0.45rem 0.75rem !important;
    margin-bottom: 10px !important;
}

.gi-contact-form-wrap input[type="text"]:focus,
.gi-contact-form-wrap input[type="email"]:focus,
.gi-contact-form-wrap input[type="tel"]:focus,
.gi-contact-form-wrap textarea:focus {
    border-color: #213128;
    box-shadow: 0 0 0 3px rgba(33, 49, 40, 0.12);
    outline: none;
}

/* Consent label link */
.gi-contact-form-wrap .gfield_consent_label a {
    color: #213128;
}

/* Character counter */
.gi-contact-form-wrap .ginput_counter {
    color: #6c757d;
    font-size: 0.8rem !important;
}

/* Submit button */
.gi-contact-form-wrap .gform_button,
.gi-contact-form-wrap input[type="submit"] {
    margin-top: 20px !important;
}

@media (max-width: 767.98px) {
    .gi-contact-form-wrap {
        padding: 0.75rem;
    }

    .gi-contact-form-wrap .gform_wrapper,
    .gi-contact-form-wrap .gform_body,
    .gi-contact-form-wrap .gform_page_fields {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .gi-contact-form-wrap .gfield {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* -----------------------------------------------
   Events page photo strip
----------------------------------------------- */
.gi-events-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    height: 280px;
}

.gi-events-strip-img {
    background-size: cover;
    background-position: center;
}

@media (max-width: 767.98px) {
    .gi-events-strip {
        grid-template-columns: repeat(2, 1fr);
        height: 320px;
    }
}

/* -----------------------------------------------
   Product Launchpad Cards
----------------------------------------------- */
.gi-product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 340px;
    border-radius: var(--brand-radius);
    overflow: hidden;
    text-decoration: none;
    color: #1a2e1a;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.gi-product-card--large {
    height: 420px;
}

.gi-product-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 40px rgba(30, 60, 30, 0.18);
    color: #1a2e1a;
    text-decoration: none;
}

.gi-product-card-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center center;
    transition: transform 0.4s ease;
}

.gi-product-card:hover .gi-product-card-bg {
    transform: scale(1.03);
}

.gi-product-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 251, 246, 0.72);
    pointer-events: none;
}

.gi-product-card-body {
    position: relative;
    z-index: 1;
    padding: 1.5rem 1.75rem;
}

.gi-product-card-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.gi-product-card-pill {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.2rem 0.6rem;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(61, 42, 33, 0.18);
    border-radius: 50px;
    color: #3d2920;
    backdrop-filter: blur(4px);
}

.gi-product-card-title {
    font-family: "Fraunces", serif;
    font-size: 1.55rem;
    font-weight: 600;
    color: #1a2e1a;
    margin-bottom: 0.5rem;
    line-height: 1.2;
}

.gi-product-card-desc {
    font-size: 0.88rem;
    color: #3d2920;
    line-height: 1.6;
    margin-bottom: 0.9rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.gi-product-card-cta {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-green);
    letter-spacing: 0.02em;
}

.gi-product-card-cta .bi {
    font-size: 0.8rem;
    transition: transform 0.2s ease;
}

.gi-product-card:hover .gi-product-card-cta .bi {
    transform: translateX(3px);
}

@media (max-width: 767.98px) {
    .gi-product-card,
    .gi-product-card--large {
        height: 300px;
    }
}

/* -----------------------------------------------
   Also Interested Cards
----------------------------------------------- */
.gi-also-card {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    height: 100%;
    padding: 1.75rem 1.5rem;
    background: #fff;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--brand-radius-accent);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

.gi-also-card:hover {
    border-color: var(--bs-primary);
    box-shadow: 0 4px 20px rgba(0,166,88,0.12);
    transform: translateY(-2px);
    color: inherit;
    text-decoration: none;
}

.gi-also-card h3 {
    font-size: 1.1rem;
    margin: 0;
    color: var(--bs-heading-color);
}

.gi-also-card p {
    font-size: 0.9rem;
    color: #6c757d;
    margin: 0;
    flex-grow: 1;
}

.gi-also-card-link {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--bs-primary);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.25rem;
}

/* -----------------------------------------------
   Page animations
----------------------------------------------- */

/* Keyframes */
@keyframes gi-fade-up {
    from {
        opacity: 0;
        transform: translateY(28px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes gi-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Inner hero content - plays on page load */
.gi-inner-hero-content {
    animation: gi-fade-up 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.gi-inner-hero-content .eyebrow {
    animation-delay: 0.05s;
}

.gi-inner-hero-content h1 {
    animation-delay: 0.15s;
}

.gi-inner-hero-content p,
.gi-inner-hero-content .btn {
    animation-delay: 0.28s;
}

/* Scroll-triggered animations - modern browsers only, degrades silently */
@supports (animation-timeline: view()) {
    .section-band > .container,
    .gi-famiglia-band > .container,
    .gi-final-cta,
    .gi-blog-sidebar,
    .gi-product-card,
    .gi-also-card {
        animation: gi-fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
        animation-timeline: view();
        animation-range: entry 0% entry 30%;
    }

    /* Cards in a row stagger slightly */
    .gi-about-pillar,
    .gi-also-card,
    .gi-product-card {
        animation: gi-fade-up 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
        animation-timeline: view();
        animation-range: entry 0% entry 35%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gi-inner-hero-content,
    .gi-inner-hero-content .eyebrow,
    .gi-inner-hero-content h1,
    .gi-inner-hero-content p,
    .gi-inner-hero-content .btn {
        animation: none;
    }
}
