/* =========================
   ROOT / GLOBAL
   Colour, spacing and shadow variables used across the whole site.
========================= */

:root {
    /* Brand colours */
    --color-navy: #0D1B2A;
    --color-navy-soft: #16243C;
    --color-blue: #3B5BFF;
    --color-blue-dark: #2A46E0;
    --color-blue-light: #EEF1FF;
    --color-white: #FFFFFF;

    /* Backgrounds */
    --color-surface: #F1F5F9;
    --color-surface-alt: #F8FAFC;
    --color-border: #E2E8F0;

    /* Text */
    --color-body: #64748B;
    --color-body-light: #94A3B8;

    /* Status colours, used sparingly in the e-commerce dashboard mockup */
    --color-success: #16A34A;
    --color-success-bg: #DCFCE7;
    --color-warning: #B45309;
    --color-warning-bg: #FEF3C7;
    --color-danger: #DC2626;
    --color-danger-bg: #FEE2E2;

    /* Typography */
    --font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;

    /* Shadows */
    --shadow-sm: 0 1px 3px rgba(13, 27, 42, 0.07);
    --shadow-md: 0 12px 28px rgba(13, 27, 42, 0.08);
    --shadow-lg: 0 24px 56px rgba(13, 27, 42, 0.14);

    /* Radii */
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 24px;

    /* Shared vertical rhythm for major sections */
    --section-padding: clamp(64px, 9vw, 128px);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

/* Contain off-screen transforms without creating another scroll container. */
html,
body {
    overflow-x: clip;
}

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}


body {
    font-family: var(--font-family);
    color: var(--color-body);
    background-color: var(--color-white);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}




[hidden] {
    display: none !important;
}

img {
    max-width: 100%;
    display: block;
}

a {
    color: inherit;
}

ul,
ol {
    list-style: none;
}

button {
    font-family: inherit;
    cursor: pointer;
}

/* Consistent, visible keyboard focus state across every interactive element */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline: 2px solid var(--color-blue);
    outline-offset: 3px;
    border-radius: 4px;
}

/* Main desktop content container used to align the navbar, hero and every section */
.contentContainer {
    width: 90%;
    max-width: 1400px;
    margin: 0 auto;
}

/* Lets keyboard users jump straight past the navigation into the page content */
.skipToContentLink {
    position: absolute;
    top: -60px;
    left: 16px;
    z-index: 2000;
    background-color: var(--color-navy);
    color: var(--color-white);
    padding: 12px 20px;
    border-radius: var(--radius-sm);
    text-decoration: none;
    font-weight: 600;
    transition: top 0.2s ease;
}

.skipToContentLink:focus {
    top: 16px;
}

/* Small reusable icon sizing so icons inside buttons/lists line up with the text */
svg[class$="Icon"] {
    width: 1em;
    height: 1em;
    flex-shrink: 0;
}

/* Stops the fixed header covering the top of a section when jumping to an anchor link */
section[id] {
    scroll-margin-top: 90px;
}

/* Eyebrow label used above most section headings (light backgrounds) */
.sectionEyebrow {
    color: var(--color-blue);
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 12px;
}

/* Same eyebrow style, but for use on dark backgrounds (e.g. the e-commerce section) */
.sectionEyebrowLight {
    color: #9DB1FF;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 12px;
}


/* =========================
   NAVIGATION
========================= */

.siteHeader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--color-border);
}

.siteHeaderInner {
    
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: end;
    gap: 24px;
    padding: 16px 0;
}

.navLogo {
    display: block;
    flex-shrink: 0;
    justify-self: start;
    transform: translateX(-5px);
}

.navLogo img {
    height: 32px;
    width: auto;
}

.mainNavigation {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    margin-left: 32px;
    white-space: nowrap;
    margin-left: 0;
    transform: translateX(-25px);
}

.mainNavigationLink {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 5px;

    text-decoration: none;
    color: var(--color-navy);
    font-weight: 500;
    font-size: 0.95rem;

    padding: 8px 10px;

    border-radius: 6px;

    transform-style: preserve-3d;
    transform: translateZ(0);

    box-shadow:
        0 0 0 rgba(0, 0, 0, 0),
        0 0 0 rgba(0, 0, 0, 0);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        color 0.2s ease;
}

.mainNavigationLink img {
    width: 24px;
    height: 24px;
    object-fit: contain;
    align-items: center;
    display: block;
    transform: translateY(-1px);
}

.mainNavigationLink:hover {
    color: var(--color-blue);

    transform: translateY(-3px) translateZ(15px);

    box-shadow:
        0 3px 0 rgba(0, 0, 0, 0.16),
        0 7px 10px rgba(0, 0, 0, 0.12);
}

.mainNavigationLink:active {
    transform: translateY(1px) translateZ(2px);

    box-shadow:
        0 1px 0 rgba(0, 0, 0, 0.16),
        0 2px 3px rgba(0, 0, 0, 0.10);
}

.navCtaButton {
    margin-left: 0;
    justify-self: end;
    text-decoration: none;
    background: linear-gradient(180deg, #4C6BFF 0%, var(--color-blue) 100%);
    color: var(--color-white);
    font-weight: 600;
    font-size: 0.9rem;
    padding: 11px 22px;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    white-space: nowrap;
}

.navCtaButton:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* Burger button - hidden on desktop, shown on mobile in the breakpoints below */

    
.mobileMenuButton {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    margin-left: auto;
}




.mobileMenuButtonBar {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 2px;
    background-color: var(--color-navy);
    transition: transform 0.25s ease, opacity 0.25s ease;
}

/* When the button has been opened, its three bars turn into a cross */
.mobileMenuButton.show .mobileMenuButtonBar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.mobileMenuButton.show .mobileMenuButtonBar:nth-child(2) {
    opacity: 0;
}

.mobileMenuButton.show .mobileMenuButtonBar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}



.mobileNavigation {
    position: fixed;
    top: 72px;
    left: 0;
    width: 100%;

    display: flex;
    flex-direction: column;

    background-color: var(--color-white);
    padding: 24px;

    opacity: 0;
    visibility: hidden;
    transform: translateY(-15px);

    transition:
        opacity 2s ease,
        transform 2s ease;

    z-index: 999;
}

.mobileNavigation.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.mobileNavigationLink {
    text-decoration: none;
    color: var(--color-navy);
    font-weight: 600;
    font-size: 1.05rem;
    padding: 14px 8px;
    border-bottom: 1px solid var(--color-border);
}

.mobileNavigationCtaButton {
    margin-top: 20px;
    text-align: center;
    text-decoration: none;
    background: linear-gradient(180deg, #4C6BFF 0%, var(--color-blue) 100%);
    color: var(--color-white);
    font-weight: 600;
    padding: 14px;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
}


/* =========================
   HERO
========================= */

.heroSection {
    padding: 156px 0 var(--section-padding);
    background: linear-gradient(180deg, var(--color-blue-light) 0%, var(--color-white) 62%);
}

.heroSectionInner {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
    gap: 56px;
}

.heroEyebrow {
    color: var(--color-blue);
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.heroHeading {
    color: var(--color-navy);
    font-size: clamp(2.25rem, 3.4vw + 1rem, 3.5rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.01em;
    margin-bottom: 22px;
}

.heroSubheading {
    font-size: 1.05rem;
    max-width: 46ch;
    margin-bottom: 32px;
}

.heroPriceBadge {
    display: inline-block;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    padding: 18px 26px;
    margin-bottom: 32px;
}

.heroPriceBadgeAmount {
    color: var(--color-navy);
    font-size: 1.15rem;
    font-weight: 800;
}

.heroPriceBadgeMicrocopy {
    color: var(--color-body);
    font-size: 0.88rem;
    margin-top: 4px;
}

.heroButtonsRow {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.heroPrimaryButton {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    background: linear-gradient(180deg, #4C6BFF 0%, var(--color-blue) 100%);
    color: var(--color-white);
    font-weight: 700;
    font-size: 1rem;
    padding: 16px 28px;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-md);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.heroPrimaryButtonIcon {
    width: 1.1em;
    height: 1.1em;
    transition: transform 0.2s ease;
}

.heroPrimaryButton:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.heroPrimaryButton:hover .heroPrimaryButtonIcon {
    transform: translateX(3px);
}

.heroSecondaryButton {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    background-color: var(--color-white);
    color: var(--color-navy);
    font-weight: 700;
    font-size: 1rem;
    padding: 16px 26px;
    border-radius: var(--radius-sm);
    border: 1.5px solid var(--color-border);
    transition: border-color 0.2s ease, transform 0.2s ease;
}

.heroSecondaryButton:hover {
    border-color: var(--color-blue);
    transform: translateY(-2px);
}

.heroImageColumn {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
     position: relative;
}

.heroImageFrame {
    width: 100%;
    max-width: 460px;
    aspect-ratio: 4 / 3.15;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    border: 8px solid var(--color-white);
   
}

.heroImageFrame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    position: relative;
  
}

.heroImageCaption {
    margin-top: 0px;
    font-size: 0.88rem;
    color: var(--color-white);
    text-align: center;
    background-color: var(--color-blue);
    padding: 10px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.92);
    font-weight: 600;
    display: flex;
    position: absolute;
    bottom: -5%;
    transform: translateX(75%);

    
   
  
    
}


/* =========================
   TRUST STRIP
========================= */

.trustStripSection {
    background-color: var(--color-navy);
    padding: 22px 0;
}

.trustStripInner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px 40px;
}

.trustStripItem {
    display: flex;
    align-items: center;
    gap: 10px;
}

.trustStripIcon {
    width: 1.1rem;
    height: 1.1rem;
    color: #9DB1FF;
}

.trustStripLabel {
    color: var(--color-white);
    font-size: 0.85rem;
    font-weight: 500;
    white-space: nowrap;
}


/* =========================
   BUSINESS WEBSITE
========================= */

.businessWebsiteSection {
    padding: var(--section-padding) 0;
}

.businessWebsiteHeader {
    max-width: 640px;
    margin: 0 auto 56px;
    text-align: center;
}

.businessWebsiteTitle {
    color: var(--color-navy);
    font-size: clamp(1.9rem, 1.6vw + 1.2rem, 2.6rem);
    font-weight: 800;
    margin-bottom: 16px;
}

.businessWebsiteIntro {
    font-size: 1.02rem;
}

.businessWebsiteLayout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: stretch;
}

.businessWebsitePricingCard {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: 40px;
}

.businessWebsiteCardIcon {
    display: none;
    margin-bottom: 20px;
}

.businessWebsitePriceLabel {
    display: none;
    color: var(--color-body);
    font-size: 0.9rem;
    font-weight: 500;
}

.businessWebsitePriceAmount {
    display: none;
    color: var(--color-navy);
    font-size: 3rem;
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 24px;
}

.businessWebsitePackageTitle {
    color: var(--color-navy);
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.businessWebsitePackageIntro {
    font-size: 0.92rem;
    margin-bottom: 28px;
}

.businessWebsiteFeatureList {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 32px;
}

.businessWebsiteFeatureItem {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--color-navy);
    font-size: 0.96rem;
    font-weight: 500;
}

.businessWebsiteFeatureIcon {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: 2px;
    color: var(--color-blue);
    flex-shrink: 0;
}

.businessWebsiteFeatureCopy strong {
    display: block;
    font-weight: 600;
    margin-bottom: 5px;
}

.businessWebsiteFeatureCopy p {
    color: var(--color-body);
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.6;
}

.businessWebsitePricingCardButton {
    margin-top: auto;
    display: block;
    text-align: center;
    text-decoration: none;
    background: linear-gradient(180deg, #4C6BFF 0%, var(--color-blue) 100%);
    color: var(--color-white);
    font-weight: 700;
    padding: 15px;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.businessWebsitePricingCardButton:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.businessWebsiteBreakdownCard {
    min-width: 0;
    background-color: var(--color-surface);
    border-radius: var(--radius-lg);
    padding: 40px;
}

.businessWebsiteBreakdownTitle {
    color: var(--color-navy);
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.businessWebsiteBreakdownSubtitle {
    font-size: 0.92rem;
    margin-bottom: 24px;
}

.businessWebsiteBreakdownRow {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 14px 18px;
}

.businessWebsiteBreakdownLabel {
    color: var(--color-navy);
    font-weight: 600;
    font-size: 0.95rem;
}

.businessWebsiteBreakdownValue {
    color: var(--color-blue);
    font-weight: 700;
    font-size: 1rem;
}

.businessWebsiteBreakdownOperator {
    display: block;
    text-align: center;
    color: var(--color-body-light);
    font-weight: 700;
    font-size: 1.1rem;
    padding: 6px 0;
}

.businessWebsiteBreakdownTotalRow {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--color-navy);
    border-radius: var(--radius-sm);
    padding: 16px 18px;
    margin-top: 8px;
}

.businessWebsiteBreakdownTotalLabel {
    color: var(--color-white);
    font-weight: 600;
    font-size: 0.98rem;
}

.businessWebsiteBreakdownTotalValue {
    color: var(--color-white);
    font-weight: 800;
    font-size: 1.4rem;
}

.businessWebsiteRenewalNotice {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px dashed var(--color-border);
}

.businessWebsiteRenewalNoticeTitle {
    color: var(--color-navy);
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 6px;
}

.businessWebsiteRenewalNoticeText {
    font-size: 0.92rem;
}


/* =========================
   GOOGLE GROWTH & CARE
========================= */

.googleGrowthSection {
    padding: var(--section-padding) 0;
    background-color: var(--color-surface-alt);
    display: none;
}

.googleGrowthHeader {
    max-width: 720px;
    margin: 0 auto 56px;
    text-align: center;
}

.googleGrowthTitle {
    color: var(--color-navy);
    font-size: clamp(1.9rem, 1.6vw + 1.2rem, 2.6rem);
    font-weight: 800;
    margin-bottom: 16px;
}

.googleGrowthIntro {
    font-size: 1.02rem;
}

.googleGrowthLayout {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 32px;
    align-items: start;
    margin-bottom: 40px;
}

.googleGrowthListsColumn {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.googleGrowthListCard {
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 32px;
}

.googleGrowthListIcon {
    margin-bottom: 14px;
}

.googleGrowthListTitle {
    color: var(--color-navy);
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 16px;
}

.googleGrowthList {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.googleGrowthListItem {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.95rem;
}

.googleGrowthListItemIcon {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 3px;
    color: var(--color-blue);
    flex-shrink: 0;
}

.googleGrowthReportColumn {
    min-width: 0;
    display: flex;
    align-items: center;
}

.googleGrowthReportMockup {
    width: 100%;
    background-color: var(--color-navy);
    border-radius: var(--radius-lg);
    padding: 32px;
    box-shadow: var(--shadow-lg);
}

.googleGrowthReportMockupHeader {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.googleGrowthReportMockupTitle {
    color: var(--color-white);
    font-weight: 700;
    font-size: 1.05rem;
}

.googleGrowthReportMockupBadge {
    background-color: rgba(157, 177, 255, 0.16);
    color: #9DB1FF;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 5px 10px;
    border-radius: 20px;
}

.googleGrowthReportMockupStats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 24px;
}

.googleGrowthReportMockupStat {
    background-color: rgba(255, 255, 255, 0.06);
    border-radius: var(--radius-sm);
    padding: 14px 12px;
}

.googleGrowthReportMockupStatLabel {
    display: block;
    color: #A9B7CC;
    font-size: 0.7rem;
    margin-bottom: 6px;
}

.googleGrowthReportMockupStatValue {
    display: block;
    color: var(--color-white);
    font-size: 1.3rem;
    font-weight: 800;
}

.googleGrowthReportMockupNote {
    color: #A9B7CC;
    font-size: 0.78rem;
    margin-bottom: 8px;
}

.googleGrowthReportMockupSearchTerm {
    display: inline-block;
    background-color: rgba(255, 255, 255, 0.08);
    color: var(--color-white);
    font-size: 0.92rem;
    font-weight: 600;
    padding: 10px 16px;
    border-radius: var(--radius-sm);
    margin-bottom: 20px;
}

.googleGrowthReportMockupFooter {
    color: #7C8CA6;
    font-size: 0.74rem;
    line-height: 1.5;
}

.googleGrowthDisclaimer {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    max-width: 820px;
    margin: 0 auto;
    background-color: var(--color-blue-light);
    border-radius: var(--radius-md);
    padding: 22px 26px;
}

.googleGrowthDisclaimerIcon {
    width: 1.3rem;
    height: 1.3rem;
    color: var(--color-blue);
    margin-top: 3px;
    flex-shrink: 0;
}

.googleGrowthDisclaimerText {
    color: var(--color-navy);
    font-size: 0.92rem;
}


/* =========================
   E-COMMERCE
========================= */

.ecommerceSection {
    padding: var(--section-padding) 0;
    background-color: var(--color-navy);
}

.ecommerceHeader {
    max-width: 720px;
    margin: 0 auto 40px;
    text-align: center;
}

.ecommerceTitle {
    color: var(--color-white);
    font-size: clamp(1.9rem, 1.6vw + 1.2rem, 2.6rem);
    font-weight: 800;
    margin-bottom: 16px;
}

.ecommerceIntro {
    color: #B7C2D6;
    font-size: 1.02rem;
    margin-bottom: 28px;
}

.ecommercePriceBadge {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    background-color: var(--color-navy-soft);
    border: 1px solid rgba(157, 177, 255, 0.25);
    border-radius: var(--radius-md);
    padding: 18px 26px;
}

.ecommercePriceBadgeAmount {
    color: var(--color-white);
    font-size: 1.3rem;
    font-weight: 800;
}

.ecommercePriceBadgePlus {
    color: #9DB1FF;
    font-weight: 700;
}

.ecommercePriceBadgeNote {
    flex-basis: 100%;
    color: #9DB1FF;
    font-size: 0.82rem;
    font-weight: 500;
}

.ecommerceControlRow {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 28px;
    margin-bottom: 48px;
}

.ecommerceControlWord {
    color: var(--color-white);
    font-size: clamp(1.4rem, 1.2vw + 1rem, 1.9rem);
    font-weight: 800;
}

.ecommerceControlItem:not(:last-child) .ecommerceControlWord {
    color: #9DB1FF;
}

.ecommerceLayout {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 32px;
    align-items: stretch;
    margin-bottom: 48px;
}

.ecommerceCmsMockup {
    min-width: 0;
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    padding: 28px;
    box-shadow: var(--shadow-lg);
}

.ecommerceCmsMockupHeader {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
}

.ecommerceCmsMockupTitle {
    color: var(--color-navy);
    font-weight: 700;
    font-size: 1.05rem;
}

.ecommerceCmsMockupBadge {
    background-color: var(--color-blue-light);
    color: var(--color-blue);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 5px 10px;
    border-radius: 20px;
}

.ecommerceCmsMockupTableWrapper {
    overflow-x: auto;
}

.ecommerceCmsMockupTable {
    width: 100%;
    min-width: 480px;
    border-collapse: collapse;
}

.ecommerceCmsMockupTable th {
    text-align: left;
    color: var(--color-body);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 700;
    padding: 0 12px 12px;
    border-bottom: 1px solid var(--color-border);
}

.ecommerceCmsMockupTable td {
    color: var(--color-navy);
    font-size: 0.92rem;
    font-weight: 500;
    padding: 14px 12px;
    border-bottom: 1px solid var(--color-border);
    white-space: nowrap;
}

.ecommerceCmsMockupTable tr:last-child td {
    border-bottom: none;
}

.ecommerceCmsMockupStatus {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 20px;
}

.ecommerceCmsMockupStatusInStock {
    color: var(--color-success);
    background-color: var(--color-success-bg);
}

.ecommerceCmsMockupStatusLowStock {
    color: var(--color-warning);
    background-color: var(--color-warning-bg);
}

.ecommerceCmsMockupStatusOutOfStock {
    color: var(--color-danger);
    background-color: var(--color-danger-bg);
}

.ecommerceCmsMockupEditLink {
    color: var(--color-blue);
    font-weight: 700;
    font-size: 0.88rem;
}

.ecommerceCmsMockupFooter {
    color: var(--color-body);
    font-size: 0.78rem;
    margin-top: 16px;
}

.ecommerceExplainerColumn {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-color: var(--color-navy-soft);
    border: 1px solid rgba(157, 177, 255, 0.2);
    border-radius: var(--radius-lg);
    padding: 32px;
}

.ecommerceExplainerTitle {
    color: var(--color-white);
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 12px;
}

.ecommerceExplainerText {
    color: #B7C2D6;
    font-size: 0.92rem;
    margin-bottom: 22px;
}

.ecommerceExplainerList {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ecommerceExplainerListItem {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--color-white);
    font-size: 0.9rem;
    font-weight: 500;
}

.ecommerceExplainerListIcon {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 2px;
    color: #9DB1FF;
    flex-shrink: 0;
}

.ecommerceGoogleGrowthAddOn {
    display: flex;
    display: none;
    align-items: center;
    justify-content: center;
    gap: 20px;
    max-width: 900px;
    margin: 0 auto;
    flex-wrap: wrap;
}

.ecommerceGoogleGrowthAddOnCard {
    flex: 1 1 260px;
    background-color: var(--color-navy-soft);
    border: 1px solid rgba(157, 177, 255, 0.2);
    border-radius: var(--radius-md);
    padding: 22px 24px;
}

.ecommerceGoogleGrowthAddOnCardHighlighted {
    border-color: var(--color-blue);
    background: linear-gradient(160deg, rgba(59, 91, 255, 0.22), var(--color-navy-soft));
}

.ecommerceGoogleGrowthAddOnLabel {
    color: #9DB1FF;
    font-size: 0.82rem;
    font-weight: 600;
    margin-bottom: 8px;
}

.ecommerceGoogleGrowthAddOnPrice {
    color: var(--color-white);
    font-size: 1.15rem;
    font-weight: 800;
}

.ecommerceGoogleGrowthAddOnPrice span {
    color: #9DB1FF;
    font-size: 0.78rem;
    font-weight: 500;
}

.ecommerceGoogleGrowthAddOnDivider {
    color: #9DB1FF;
    font-size: 0.85rem;
    font-weight: 600;
    text-align: center;
    flex: 0 0 auto;
    max-width: 120px;
}


/* =========================
   HOW IT WORKS
========================= */

.processSection {
    padding: var(--section-padding) 0;
}

.processHeader {
    max-width: 640px;
    margin: 0 auto 56px;
    text-align: center;
}

.processTitle {
    color: var(--color-navy);
    font-size: clamp(1.9rem, 1.6vw + 1.2rem, 2.6rem);
    font-weight: 800;
}

.processList {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
}

.processStep {
    position: relative;
    padding: 32px 24px;
    border-radius: var(--radius-lg);
    background-color: var(--color-surface);
}

.processStepNumber {
    display: block;
    color: var(--color-blue);
    font-size: 1.6rem;
    font-weight: 800;
    margin-bottom: 16px;
}

.processStepTitle {
    color: var(--color-navy);
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 10px;
}

.processStepText {
    font-size: 0.9rem;
}


/* =========================
   PORTFOLIO / MY WORK
========================= */

.portfolioSection {
    padding: var(--section-padding) 0;
    background-color: var(--color-surface-alt);
}

.portfolioHeader {
    max-width: 640px;
    margin: 0 auto 48px;
    text-align: center;
}

.portfolioTitle {
    color: var(--color-navy);
    font-size: clamp(1.9rem, 1.6vw + 1.2rem, 2.6rem);
    font-weight: 800;
    margin-bottom: 12px;
}

.portfolioIntro {
    font-size: 1rem;
}


.portfolioContainer {
    position: relative;
}

.portfolioCarouselRow {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 20px;
    
}

.portfolioWindow {
    position: relative;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    height: 450px;
    perspective: 800px;
}


.portfolioPage {
    background: white;

}

.portfolioTracker {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
}

.portfolioCard {
    position: absolute;
    background-color: #ffffff;
    
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: row;
    padding: 5px;
    border-radius: 10px;
    width: 28%;
    left: 50%;
    top: 50%;
    transform:
        translate(-50%, -50%)
        scale(0.9);
    opacity: 0.6;

    transition: 
        opacity 0.5s ease,
        transform 0.5s ease;
}

.portfolioCard .websiteImage {
    pointer-events: auto;
}

.portfolioCardsActive .websiteImage {
    cursor: pointer;
    pointer-events: auto;
}

.portfolioCardLeft,
.portfolioCardRight {
    cursor: pointer;
}

.portfolioCardLeft .websiteImage,
.portfolioCardRight .websiteImage {
    cursor: pointer;
}

.portfolioCard:focus-visible {
    outline: 3px solid var(--color-blue);
    outline-offset: 6px;
}


.portfolioCardsActive {
    transform:
        translate(-50%, -50%)
        translateZ(150px)
        scale(1);

    opacity: 1;
    box-shadow: 1px 4px 0 rgba(0, 0, 0, 0.12),
    0 10px 10px rgba(0,0,0,0.16);
    
    z-index: 3;
}

.portfolioCardLeft {
    position: absolute;
    transform:
        translate(-145%, -50%)
        rotateY(30deg)
        translateZ(-30px);

    opacity: 1;
    box-shadow: 10px 30px 0px rgba(0, 0, 0, 0.16px);
    z-index: 2;
}

.portfolioCardLeft::after {
    position: absolute;
    content: "";

    top: 0;
    left: -2px;

    width: 10px;
    height: 100%;

    background-color: white;

    border-radius: 18px 0 0 18px;
    transform:
        rotateY(20deg);

    transform-origin: right center;
    opacity: 1;
}

.portfolioCardRight {
    transform:
        translate(45%, -50%)
        rotateY(-30deg)
        translateZ(-30px);

    opacity: 1;
    z-index: 2;
}


.portfolioCardRight::after {
    position: absolute;
    content: "";

    top: 0;
    right: 0px;

    width: 10px;
    height: 100%;

    background-color: white;

    border-radius: 0px 18px 18px 0px;

    transform:
        rotateY(-20deg);

    transform-origin: left center;

    opacity: 1;
}



.websiteImage img {
    width: 100%;
    border-radius: 5px;
}

/* Keep the laptop frame and its screen together during carousel transforms. */
.portfolioCard.portfolioLaptopCard {
    background: transparent;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
}

.portfolioLaptopCard::after {
    content: none;
}

.portfolioLaptop {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1474 / 975;
    filter: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.18));
}

.portfolioLaptop .portfolioLaptopScreenshot {
    position: absolute;
    left: 8.35%;
    top: 3.7%;
    width: 83.3%;
    height: 78.7%;
    object-fit: cover;
    object-position: top center;
    border-radius: 1.5% 1.5% 0 0;
}

.portfolioLaptop .portfolioLaptopFrame {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
}

.portfolioConstructionScreen {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    background: var(--color-navy);
    color: var(--color-white);
    text-align: center;
    font-size: clamp(0.65rem, 1.2vw, 1rem);
}

.portfolioConstructionScreen svg {
    width: 2em;
    height: 2em;
    color: #9DB1FF;
}

.portfolioConstructionScreen span {
    font-size: 0.8em;
    color: #B7C4D8;
}

.portfolioArrowLeft {
    width: 25px;
    height: 25px;
    font-size: 25px;
    display: flex;
    position: absolute;
    align-items: center;
    text-align: center;
    justify-content: center;
    z-index: 10;
    left:10%;
    background-color: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    padding: 15px;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0px 3px 0px rgba(0, 0, 0, 0.18),
    0 8px 20px rgb(0, 0, 0, 0.15);
    
}

.portfolioArrowRight{
    width: 25px;
    height: 25px;
    font-size: 25px;
    display: flex;
    position: absolute;
    align-items: center;
    text-align: center;
    justify-content: center;
    z-index: 10;
    right: 10%;
    cursor: pointer;
    border-radius: 50%;
    padding: 15px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    background: rgba(255, 255, 255, 0.85);
    box-shadow: 0px 3px 0px rgba(0, 0, 0, 0.18),
    0 8px 20px rgb(0, 0, 0, 0.15);
}

.portfolioArrowLeft,
.portfolioArrowRight {
    width: 44px;
    height: 44px;
    padding: 0;
    color: var(--color-navy);
    border-color: var(--color-border);
    box-shadow: 0 4px 12px rgba(13, 27, 42, 0.1);
    transition: background 0.2s ease, color 0.2s ease,
        border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

@media (hover: hover) {
    .portfolioArrowLeft:hover,
    .portfolioArrowRight:hover {
        background: var(--color-blue);
        color: var(--color-white);
        border-color: var(--color-blue);
        box-shadow: 0 8px 20px rgba(59, 91, 255, 0.25);
    }
}

.portfolioArrowLeft:active,
.portfolioArrowRight:active {
    transform: scale(0.96);
    box-shadow: 0 2px 6px rgba(13, 27, 42, 0.12);
}

.portfolioDots {
    gap: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
}

.portfolioDot {
    width: 10px;
    height: 10px;
    background-color: white;
    display:flex;
    border-radius: 50%;
    transition: 0.4s ease-in-out;
    border: 1px solid rgba(0, 0, 0, 0.55);
    cursor: pointer;
}

.portfolioDotsActive {
    background-color: blue;
}

.portfolioCardHidden {
    visibility: hidden;
}

.portfolioDescription {
    position: relative;
    text-align: center;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transition: 0.2s ease-in-out;
}

.portfolioDescriptionActive {
    opacity: 1;
    visibility: visible;
    display: flex;
}

.portfolioDescription img{
    width: 100px;
    height: auto;
    justify-content: center;
    align-items: center;   
}

.reikiDescription img {
    width: 200px;
    height: 100px;
}


.portfolioDescription p {
    padding-top: 20px;
}

/* =========================
   REVIEWS
========================= */

.reviewPage {
    background-color: #f5f5f5;
    color: var(--white);
}

.reviewTitles {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.reviewTitle1 h1 {
    color: var(--primary-yellow);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 30px;
    font-family: var(--body-font);
    font-size: 1.2rem;
    text-align: center;
}

.reviewTitle2 {
    color: var(--primary-black);
    display: flex;
    justify-content: center;
    position: relative;
    font-family: var(--body-font);
}

.reviewTitle2 h2{
    font-family: var(--body-font);
    font-size: 0.8rem;
}

.reviewTitle2::after {
    position: absolute;
    content: "";
    height: 2px;
    width: 50px;
    background-color: var(--primary-yellow);
    bottom: -35px;
}

.reviewPrevButton {
    display: flex;
    align-items: center;
    max-height: 30px;
    padding: 10px;
    z-index: 2;
    transform: translateY(-50%);
    position: absolute;
    left: -10px;
    top: 50%;
    border-radius: 50px;
    font-size: 1rem;
    color: var(--primary-yellow);
    background-color: var(--primary-black);
    border: 1px solid var(--primary-yellow);
    justify-content: center;
    line-height: 1;
    margin: 0;
}

.reviewNextButton {
    display: flex;
    max-height: 30px;
    padding: 10px;
    z-index: 2;
    position: absolute;
    align-items: center;
    justify-content: center;
    line-height: 1;
    right: -10px;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50px;
    font-size: 1rem;
    color: var(--primary-yellow);
    background-color: var(--primary-black);
    border: 1px solid var(--primary-yellow);
}


.reviewCarousel {
    display: grid;
    align-items: center;
    position: relative;
    max-width: 800px;
    margin: auto;
}

.reviewWindow {
    overflow-x: auto;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 20px 0 30px;
    width: 100%;
}

.reviewWindow::-webkit-scrollbar {
    display: none;
}

.reviewTracker {
   width: 100%;
   transition: transform 0.5s ease-in-out;
   display: flex;
   gap: 10px;
   padding-inline: 12.5%;
}

/* Invisible space after the sixth card */
.reviewTracker::after {
    content: "";
    flex: 0 0 12.5%;
}

.Stars {
    color: #FFD700;
    font-size: 1.2rem;
    letter-spacing: 2px;
    margin-bottom: 25px;
    font-family: Arial, sans-serif;
}


.reviewCard {
    margin: 50px 0 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: left;
    padding: 25px;
    gap: 20px;
    box-shadow: 0px 5px 10px rgba(0, 0, 0, .15);
    flex: 0 0 100%;
    width: 100%;
    scroll-snap-align: center;
    opacity: 0.5;
    color: white;
}

.reviewCard.active {
    opacity: 1;
}

.reviewCard h1 {
    color: var(--primary-black);
    font-family: var(--body-font);
    font-size: 1.2rem;
}

.customerRating {
    color: var(--primary-black);
    display: flex;
    justify-content: space-between;
    align-self: stretch;
}
.customerRating span {
    display: flex;
    flex-direction: column;
    line-height: 1.7;
}

.reviewP {
    color: var(--primary-black);
    flex-grow: 1;
    line-height: 1.7;
}

.checkatradeLogo {
    max-width: 50px;
    display: flex;
    align-items: center;
}

.verifedUser h5 {
    font-size: 1.2rem;
    font-weight: 800;
}


.reviewDots {
    margin-top: 30px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 20px;
}

.reviewDots span {
    display: flex;
    flex-direction: row;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: var(--primary-black);
    transition: 0.5s ease-in-out;
    margin-bottom: 25px;
}

.reviewDots span.active {
    background-color: var(--primary-yellow);
}

.reviewDots span:hover {
    cursor: pointer;
}


/* =========================
   ABOUT BRETT
========================= */

.aboutSection {
    padding: var(--section-padding) 0;
    background-color: var(--color-surface-alt);
    display: flex;
    justify-content: center;
    align-items: center;
}

.aboutTitle {
    color: var(--color-navy);
    font-size: clamp(1.9rem, 1.6vw + 1.2rem, 2.6rem);
    font-weight: 800;
    margin-bottom: 20px;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.sectionEyebrowAbout {
    color: var(--color-blue);
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: flex;
    text-align: center;
    justify-content: center;
}

.aboutText {
    font-size: 1rem;
    margin: 0 auto 16px;
    max-width: 56ch;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.aboutContactLink {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    text-decoration: none;
    color: var(--color-blue);
    font-weight: 700;
}

.aboutContactLinkIcon {
    width: 1rem;
    height: 1rem;
    transition: transform 0.2s ease;
}

.aboutContactLink:hover .aboutContactLinkIcon {
    transform: translateX(3px);
}


/* =========================
   FAQ
========================= */

.faqSection {
    padding: var(--section-padding) 0;
}

.faqSectionInner {
    max-width: 820px;
}

.faqHeader {
    text-align: center;
    margin-bottom: 48px;
}

.faqTitle {
    color: var(--color-navy);
    font-size: clamp(1.9rem, 1.6vw + 1.2rem, 2.6rem);
    font-weight: 800;
}

.faqList {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.faqItem {
    background-color: var(--color-surface);
    border-radius: var(--radius-md);
    padding: 22px 26px;
}

/* Removes the browser's default triangle marker so our own chevron icon can be used instead */
.faqQuestion {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: var(--color-navy);
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
}

.faqQuestion::-webkit-details-marker {
    display: none;
}

.faqQuestionIcon {
    width: 1.2rem;
    height: 1.2rem;
    color: var(--color-blue);
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

/* Rotates the chevron to point up whenever its parent <details> is open */
.faqItem[open] .faqQuestionIcon {
    transform: rotate(180deg);
}

.faqAnswer {
    font-size: 0.95rem;
    margin-top: 14px;
    max-width: 68ch;
}


/* =========================
   CONTACT / FINAL CTA
========================= */

.contactSection {
    padding: var(--section-padding) 0;
    background-color: var(--color-navy);
}

.contactSectionInner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 56px;
    align-items: stretch;
}

.contactIntroColumn {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.contactNextSteps {
    padding: 28px 0;
    margin-bottom: 28px;
    border-top: 1px solid rgba(157, 177, 255, 0.2);
}

.contactNextSteps h3 {
    color: var(--color-white);
    font-size: 1.1rem;
    margin-bottom: 24px;
}

.contactNextSteps ol {
    display: grid;
    gap: 24px;
    padding-left: 0;
    list-style: none;
    color: #9DB1FF;
}

.contactNextSteps li {
    padding-left: 0;
}

.contactNextSteps strong {
    color: var(--color-white);
    font-weight: 600;
}

.contactNextSteps p {
    color: #B7C2D6;
    font-size: 0.95rem;
    margin-top: 6px;
    max-width: 46ch;
}

.contactTitle {
    color: var(--color-white);
    font-size: clamp(1.9rem, 1.6vw + 1.2rem, 2.6rem);
    font-weight: 800;
    margin-bottom: 18px;
}

.contactIntroText {
    color: #B7C2D6;
    font-size: 1rem;
    margin-bottom: 28px;
    max-width: 46ch;
}

.contactDirectDetail {
    align-self: flex-start;
    margin-top: auto;
    max-width: 100%;
    overflow-wrap: anywhere;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--color-white);
    font-weight: 600;
    font-size: 0.98rem;
    padding-bottom: 4px;
    border-bottom: 1.5px solid rgba(157, 177, 255, 0.4);
}

.contactDirectDetailIcon {
    width: 1.1rem;
    height: 1.1rem;
    color: #9DB1FF;
}

.contactForm {
    min-width: 0;
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    padding: 36px;
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.contactFormRowGroup {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.contactFormRow {
    display: flex;
    flex-direction: column;
    gap: 6px;
    /* Lets this row shrink below its input's default content width instead of
       forcing the form (or the Email/Phone grid columns) to overflow */
    min-width: 0;
}

.contactFormLabel {
    color: var(--color-navy);
    font-weight: 600;
    font-size: 0.88rem;
}

.contactFormInput,
.contactFormSelect,
.contactFormTextarea {
    width: 100%;
    font-family: inherit;
    font-size: 0.96rem;
    color: var(--color-navy);
    background-color: var(--color-surface-alt);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    transition: border-color 0.2s ease;
}

.contactFormInput:focus,
.contactFormSelect:focus,
.contactFormTextarea:focus {
    border-color: var(--color-blue);
}

.contactFormTextarea {
    resize: vertical;
    min-height: 110px;
}

.contactFormSubmitButton {
    margin-top: 6px;
    background: linear-gradient(180deg, #4C6BFF 0%, var(--color-blue) 100%);
    color: var(--color-white);
    font-weight: 700;
    font-size: 1rem;
    padding: 15px;
    border: none;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contactFormSubmitButton:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.contactFormStatus {
    font-size: 0.9rem;
    font-weight: 600;
    min-height: 1.2em;
}

.contactFormStatus.contactFormStatusSuccess {
    color: var(--color-success);
}

.contactFormStatus.contactFormStatusError {
    color: var(--color-danger);
}


/* =========================
   FOOTER
========================= */

.siteFooter {
    background-color: var(--color-navy);
    border-top: 1px solid rgba(157, 177, 255, 0.15);
    padding-top: 56px;
}

.siteFooterInner {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
    gap: 40px;
    padding-bottom: 40px;
}

.siteFooterInner > * {
    min-width: 0;
    overflow-wrap: anywhere;
}

.siteFooterLogo {
    height: 26px;
    width: auto;
    /* The source logo is dark navy - brighten it so it reads clearly on the dark footer */
    filter: brightness(0) invert(1);
    margin-bottom: 16px;
}

.siteFooterTagline {
    color: #8391A8;
    font-size: 0.9rem;
    max-width: 34ch;
}

.siteFooterLinksTitle {
    color: var(--color-white);
    font-weight: 700;
    font-size: 0.88rem;
    margin-bottom: 16px;
}

.siteFooterLinksColumn,
.siteFooterContactColumn {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.siteFooterLink {
    color: #8391A8;
    text-decoration: none;
    font-size: 0.92rem;
    transition: color 0.2s ease;
}

.siteFooterLink:hover {
    color: var(--color-white);
}

.siteFooterBottom {
    border-top: 1px solid rgba(157, 177, 255, 0.15);
    padding: 20px 0;
}

.siteFooterCopyrightText {
    color: #6B7A93;
    font-size: 0.82rem;
}


/* =========================
   SCROLL REVEAL
   A small, optional fade-and-rise effect applied via JavaScript to elements
   with the "revealOnScroll" class as they enter the viewport.
========================= */

.revealOnScroll {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.revealOnScroll.revealOnScrollVisible {
    opacity: 1;
    transform: translateY(0);
}

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


/* =========================
   RESPONSIVE — 1440px
   Tightens up spacing and grids for smaller desktop / laptop screens.
========================= */

@media (max-width: 1440px) {

    /* NAVIGATION
       Tightened up so the full link list + CTA button still fits without
       wrapping or overflowing down to the 769px point where the burger menu takes over. */
    .siteHeaderInner {
        gap: 16px;
    }

    .mainNavigation {
        gap: 14px;
        margin-left: 14px;
    }

    .mainNavigationLink {
        font-size: 0.86rem;
    }

    .navCtaButton {
        padding: 10px 16px;
        font-size: 0.85rem;
    }

    .heroSectionInner {
        gap: 40px;
    }

    .businessWebsitePricingCard,
    .businessWebsiteBreakdownCard {
        padding: 32px;
    }

    .ecommerceLayout {
        grid-template-columns: 1fr;
    }

    .ecommerceCmsMockup {
        order: 1;
    }

    .ecommerceExplainerColumn {
        order: 2;
    }
}


/* Intermediate navigation breakpoint:
   the full text navigation, wordmark logo and "Get Your Website" button
   genuinely don't fit together between roughly 769px–1050px, well before
   other content needs to stack. Switching to the burger menu a little
   earlier than the main 768px breakpoint avoids a cramped, wrapping navbar
   on smaller laptop windows and split-screen browser widths. */
@media (max-width: 1050px) {

    .mainNavigation,
    .navCtaButton {
        display: none;
    }

    .siteHeaderInner {
        display: flex;
    }

    .mobileMenuButton {
        display: flex;
        opacity:1;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 40px;
        height: 40px;
        background: none;
        border: none;
        margin-left: auto;
        transform: translateX(10px);
    }

       .mobileNavigation {
        opacity: 0;
        visibility: hidden;
        position: fixed;

        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        top: 72px;
        height: auto;
        background-color: var(--color-white);
        z-index: 1060;
        flex-direction: column;
        gap: 4px;
        padding: 26px 28px 32px;
        box-shadow: var(--shadow-lg);
        transform: translateY(-30px);
        transition: transform 0.3s ease,
        opacity 0.3s ease;
       }


       .mobileNavigation.show {
        transform: translateY(0px);
        opacity: 1;

       }
        .mobileNavigationLink {
        text-decoration: none;
        color: var(--color-navy);
        font-weight: 600;
        font-size: 1.05rem;
        padding: 14px 8px;
        border-bottom: 1px solid var(--color-border);
    }

}


/* =========================
   RESPONSIVE — 768px
   Main tablet/mobile breakpoint: stacks two-column layouts and simplifies
   grids to a single column.
========================= */

@media (max-width: 768px) {


    html,
    body {
        scrollbar-width: none;
    }

    html::-webkit-scrollbar,
    body::-webkit-scrollbar {
        display: none;
    }

    /* HERO */
    .heroSection {
        padding: 128px 0 64px;
    }

    .heroSectionInner {
        grid-template-columns: 1fr;
    }

    .heroImageColumn {
        order: -1;
    }

    .heroImageFrame {
        max-width: 380px;
    }

    .heroTextColumn {
        text-align: center;
    }

    .heroSubheading {
        max-width: none;
        margin-left: auto;
        margin-right: auto;
    }

    .heroButtonsRow {
        justify-content: center;
    }

    /* TRUST STRIP */
    .trustStripInner {
        gap: 14px 28px;
    }

    /* BUSINESS WEBSITE */
    .businessWebsiteLayout {
        grid-template-columns: 1fr;
    }

    /* GOOGLE GROWTH */
    .googleGrowthLayout {
        grid-template-columns: 1fr;
    }

    /* E-COMMERCE */
    .ecommerceControlRow {
        gap: 8px 20px;
    }

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

    .ecommerceGoogleGrowthAddOnDivider {
        max-width: none;
    }

    /* HOW IT WORKS */
    .processList {
        grid-template-columns: 1fr 1fr;
    }

    /* ABOUT */
        


    .aboutText {
        
    }

    /* CONTACT */
    .contactSectionInner {
        grid-template-columns: 1fr;
    }

    .contactIntroColumn {
        text-align: center;
    }

    .contactNextSteps {
        text-align: left;
    }

    .contactDirectDetail {
        align-self: center;
    }

    .contactIntroText {
        margin-left: auto;
        margin-right: auto;
    }

    .contactFormRowGroup {
        grid-template-columns: 1fr;
    }

    /* FOOTER */
    .siteFooterInner {
        grid-template-columns: 1fr;
        gap: 32px;
        text-align: center;
    }

    .siteFooterTagline {
        margin: 0 auto;
    }

    /* PORTFOLIO CAROUSEL */

    .portfolioHeader {
        margin-bottom: 20px;
    
    }


    .portfolioWindow {
        height: 300px;
        width: 100%;
        overflow: hidden;
        perspective: 600px;
    }

    .portfolioCard {
        width: 55%;
        max-width: 220px;
    }

    .portfolioCardsActive {
        transform:
            translate(-50%, -57%)
            translateZ(50px)
            scale(1.6);

        opacity: 1;
    }

    .portfolioCardLeft {
        transform:
            translate(-120%, -50%)
            rotateY(25deg)
            scale(0.8);

        opacity: 0.6;
    }

    .portfolioCardRight {
        transform:
            translate(20%, -50%)
            rotateY(-25deg)
            scale(0.8);

        opacity: 0.6;
    }

    .portfolioArrowLeft {
        left: 2%;
    }

    .portfolioArrowRight {
        right: 2%;
    }

    .portfolioDots {
        bottom: 0px;
    }

    .portfolioDescription {
        padding-top: 10px;

    }

    .portfolioDescription h1 {
        margin-top: 20px;
    }

    .portfolioDescription img {
        width: 200px;
        height: 200px;
    }




}



/* =========================
   RESPONSIVE — 430px
   Small phone screens: tighter type, single-column process grid, and a
   narrower review card so nothing overflows horizontally.
========================= */

@media (max-width: 430px) {

    

    .heroHeading {
        font-size: 1.5rem;
    }

    .businessWebsiteBreakdownTitle {
        text-align: center;
    }

    .businessWebsiteBreakdownSubtitle {
        text-align: center;
    }

    .businessWebsiteRenewalNotice {
        text-align: center;
    }

    .contentContainer {
        width: 92%;
    }

    /* HERO */
    .heroPriceBadge {
        display: block;
    }

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

    .heroPrimaryButton,
    .heroSecondaryButton {
        justify-content: center;
    }

    /* BUSINESS WEBSITE */
    .businessWebsitePricingCard,
    .businessWebsiteBreakdownCard {
        padding: 24px;
    }

    .businessWebsitePriceAmount {
        font-size: 2.4rem;
    }

    /* GOOGLE GROWTH */
    .googleGrowthReportMockupStats {
        grid-template-columns: 1fr;
    }

    /* E-COMMERCE */
    .ecommercePriceBadgeAmount {
        font-size: 1.1rem;
    }

    /* HOW IT WORKS */
    .processList {
        grid-template-columns: 1fr;
    }

    /* REVIEWS */

    .reviewCard {
        padding: 28px;
    }

    /* CONTACT */
    .contactForm {
        padding: 24px;
    }

    .ecommerceControlRow {
        display: none;
    }

    .ecommerceCmsMockup {
        display: none;
    }

    .ecommerceExplainerColumn {
        display: none;
    }

    .ecommerceLayout {
        display: none;
    }
    .ecommerceHeader {
        margin-bottom: 30px;
    }

    .trustStripInner {
            flex-direction: column;
            align-items: center;
            gap: 16px;
        }

    .siteFooterCopyrightText {
        text-align: center;
    }

    .siteFooterLogo {
        align-items: center;
        justify-content: center;
    }
}
