/**
 * GAISHA Marketing Design System
 * Shared utilities for Pricing, Labs Support, Subsidy, Destinations, and Landing token bridge.
 */

html {
	scroll-behavior: smooth;
}

body.gaisha-marketing{
    --gaisha-container-max:1400px;
    --gaisha-container-gutter:48px;
    --gaisha-hero-pad-top:110px;
    --gaisha-hero-pad-bottom:56px;
    --gaisha-title-max:820px;
    --gaisha-subtitle-max:640px;
    --gaisha-prose-max:640px;
    --gaisha-section-pad-y:40px;
    --gaisha-section-pad-y-lg:52px;
    --gaisha-panel-max:780px;
    --gaisha-surface:var(--surface-soft, rgba(11,20,42,.78));
    --gaisha-surface-deep:rgba(4,10,24,.55);
    --gaisha-border:var(--border, rgba(166,201,255,.18));
    --gaisha-border-cyan:rgba(48,222,220,.28);
    --gaisha-border-purple:var(--accent-purple, #a386ff);
    --gaisha-border-purple-soft:rgba(163,134,255,.45);
    --gaisha-inset-highlight:inset 0 1px 0 rgba(255,255,255,.06);
    --gaisha-shadow-panel:0 12px 40px rgba(10,25,63,.22);
    --gaisha-glow-cyan:0 14px 40px rgba(56,237,255,.24);
    --gaisha-glow-cyan-soft:0 10px 28px rgba(56,237,255,.2);
    --gaisha-glow-cyan-hover:0 14px 36px rgba(56,237,255,.12);
    --gaisha-glow-purple:0 0 32px rgba(136,116,255,.16);
    --gaisha-glow-purple-soft:0 0 28px rgba(136,116,255,.1);
    --gaisha-glow-purple-inset:inset 0 0 36px rgba(163,134,255,.06);
    --gaisha-btn-height:44px;
    --gaisha-btn-height-lg:48px;
    --gaisha-radius-sm:10px;
    --gaisha-radius-card:12px;
    --gaisha-radius-card-lg:22px;
    --gaisha-radius-panel:28px;
    --gaisha-radius-btn:12px;
    --gaisha-radius-pill:999px;
    --gaisha-type-hero:clamp(2.25rem, 4vw, 3.625rem);
    --gaisha-type-section:clamp(1.75rem, 2.4vw, 2.125rem);
    --gaisha-type-card-title:1.0625rem;
    --gaisha-type-body:1rem;
    --gaisha-type-small:.875rem;
    --gaisha-type-caption:.8125rem;
    --gaisha-muted-strong:var(--muted, rgba(245,249,255,.94));
    --gaisha-muted-body:rgba(220,235,255,.78);
    --gaisha-muted-soft:rgba(220,235,255,.72);
    --gaisha-transition-fast:.2s ease;
    --gaisha-transition-surface:.25s ease;
    --gaisha-transition-card:.3s ease;
}

/* Cinematic page shell (satellite templates) */
body.gaisha-marketing.gaisha-page-shell{
    background:
        radial-gradient(circle at top left, rgba(25,105,205,.18), transparent 24%),
        radial-gradient(circle at top right, rgba(57,252,255,.18), transparent 18%),
        radial-gradient(circle at 40% 64%, rgba(147,94,255,.14), transparent 24%),
        radial-gradient(circle at 20% 90%, rgba(94,120,255,.12), transparent 18%),
        var(--bg, #06102b);
    color:var(--text, #f4f9ff);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

.gaisha-page{
    position:relative;
    color:var(--text, #f4f9ff);
}

.gaisha-page::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at top left, rgba(25,105,205,.14), transparent 28%),
        radial-gradient(circle at top right, rgba(57,252,255,.12), transparent 24%),
        radial-gradient(circle at 40% 64%, rgba(147,94,255,.1), transparent 30%),
        radial-gradient(circle at 20% 90%, rgba(94,120,255,.08), transparent 26%);
    pointer-events:none;
    z-index:0;
}

.gaisha-page > *{
    position:relative;
    z-index:1;
}

/* Layout */
.gaisha-container,
.gaisha-pricing-container{
    width:min(var(--gaisha-container-max), calc(100% - var(--gaisha-container-gutter)));
    margin-left:auto;
    margin-right:auto;
    position:relative;
    z-index:2;
}

.gaisha-section{
    padding:var(--gaisha-section-pad-y) 0;
}

.gaisha-section--lg{
    padding:var(--gaisha-section-pad-y-lg) 0;
}

.gaisha-section--tight-top{
    padding-top:8px;
}

.gaisha-section--flush-top{
    padding-top:0;
}

/* Hero */
.gaisha-hero,
.gaisha-page-hero{
    position:relative;
    padding:var(--gaisha-hero-pad-top) 0 var(--gaisha-hero-pad-bottom);
    overflow:hidden;
}

.gaisha-hero__bg,
.gaisha-page-hero__bg{
    position:absolute;
    inset:0;
    background:linear-gradient(to bottom, rgba(6,16,43,.08), rgba(6,16,43,.72));
    pointer-events:none;
}

.gaisha-hero__content,
.gaisha-page-hero__content{
    max-width:var(--gaisha-title-max);
}

.gaisha-hero-title,
.gaisha-page-hero__title{
    margin:20px 0 14px;
    max-width:var(--gaisha-title-max);
    font-size:var(--gaisha-type-hero);
    line-height:1.05;
    letter-spacing:-.035em;
    font-weight:800;
    color:var(--text, #f4f9ff);
}

.gaisha-hero-subtitle,
.gaisha-page-hero__subtitle{
    margin:0;
    max-width:var(--gaisha-subtitle-max);
    color:var(--gaisha-muted-strong);
    font-size:var(--gaisha-type-body);
    line-height:1.75;
}

.gaisha-hero__meta,
.gaisha-page-hero__meta{
    margin:18px 0 0;
    font-size:var(--gaisha-type-small);
    line-height:1.5;
}

/* Badge */
.gaisha-hero-badge,
.gaisha-badge,
.pricing-pill{
    display:inline-flex;
    align-items:center;
    padding:10px 18px;
    border-radius:var(--gaisha-radius-pill);
    border:1px solid var(--gaisha-border-cyan);
    background:var(--gaisha-surface-deep);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    font-size:.82rem;
    font-weight:700;
    letter-spacing:.08em;
    line-height:1.35;
    text-transform:none;
    color:#34e5dd;
}

.gaisha-hero-badge--purple,
.gaisha-badge--purple{
    border-color:var(--gaisha-border-purple-soft);
    color:var(--accent-purple, #a386ff);
    box-shadow:var(--gaisha-glow-purple-soft);
}

/* Typography utilities */
.gaisha-section-title,
.gaisha-heading-section,
.pricing-section-title{
    font-size:var(--gaisha-type-section);
    margin:0 0 24px;
    letter-spacing:-.03em;
    font-weight:800;
    line-height:1.08;
    color:var(--text, #f4f9ff);
}

.campaign-section-title{
    font-size:var(--gaisha-type-section);
    margin:0 0 24px;
    letter-spacing:-.03em;
    font-weight:800;
    line-height:1.08;
    color:var(--text, #f4f9ff);
    text-align:center;
}

.gaisha-muted-text,
.gaisha-text-muted{
    color:var(--gaisha-muted-body);
    font-size:var(--gaisha-type-small);
    line-height:1.55;
}

.gaisha-text-note{
    color:var(--gaisha-muted-soft);
    font-size:var(--gaisha-type-caption);
    line-height:1.55;
}

/* Glass surfaces */
.gaisha-glass-card{
    border-radius:var(--gaisha-radius-card);
    background:var(--gaisha-surface);
    border:1px solid var(--gaisha-border);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    box-shadow:var(--gaisha-inset-highlight), var(--gaisha-shadow-panel);
    transition:
        border-color var(--gaisha-transition-surface),
        box-shadow var(--gaisha-transition-surface),
        transform var(--gaisha-transition-card);
}

.gaisha-glass-card:hover{
    border-color:rgba(48,222,220,.42);
    box-shadow:var(--gaisha-inset-highlight), var(--gaisha-shadow-panel), var(--gaisha-glow-cyan-hover);
}

.gaisha-purple-card,
.pricing-card.featured,
.campaign-card.purple,
.future-support-card.purple,
.pricing-cta-card.purple{
    border-color:var(--gaisha-border-purple-soft);
    box-shadow:var(--gaisha-glow-purple), var(--gaisha-glow-purple-inset), var(--gaisha-inset-highlight);
}

.gaisha-purple-card:hover,
.pricing-card.featured:hover,
.campaign-card.purple:hover{
    border-color:rgba(163,134,255,.55);
    box-shadow:var(--gaisha-glow-purple), var(--gaisha-inset-highlight);
}

.gaisha-glass-panel,
.gaisha-subsidy-panel,
.gaisha-destination-panel{
    padding:36px 32px 40px;
    border-radius:var(--gaisha-radius-panel);
    background:var(--gaisha-surface);
    border:1px solid var(--gaisha-border);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    box-shadow:var(--gaisha-inset-highlight), var(--gaisha-shadow-panel), var(--gaisha-glow-purple-soft);
}

.gaisha-glass-panel--narrow{
    max-width:var(--gaisha-panel-max);
    margin-left:auto;
    margin-right:auto;
}

/* Buttons */
.gaisha-btn,
.pricing-button,
.campaign-button,
.gaisha-outline-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:var(--gaisha-btn-height);
    padding:0 22px;
    border-radius:var(--gaisha-radius-btn);
    font-size:var(--gaisha-type-small);
    font-weight:700;
    letter-spacing:.02em;
    line-height:1.2;
    text-decoration:none;
    transition:
        transform var(--gaisha-transition-fast),
        box-shadow var(--gaisha-transition-fast),
        border-color var(--gaisha-transition-fast),
        background var(--gaisha-transition-fast);
}

.gaisha-btn--primary,
.pricing-button{
    color:#0d1d2b;
    background:var(--gradient-primary, linear-gradient(135deg, #48f5ff 0%, #9a7cff 100%));
    border:1px solid transparent;
    box-shadow:var(--gaisha-glow-cyan-soft);
}

.gaisha-btn--primary:hover,
.pricing-button:hover:not(.disabled){
    transform:translateY(-1px);
    box-shadow:var(--gaisha-glow-cyan);
}

.gaisha-btn--primary.purple,
.gaisha-btn--primary.gaisha-btn--purple,
.pricing-button.purple{
    background:var(--gradient-secondary, linear-gradient(135deg, #65c4ff 0%, #b28fff 100%));
    box-shadow:var(--gaisha-glow-purple-soft);
}

.gaisha-btn--primary.purple:hover,
.pricing-button.purple:hover:not(.disabled){
    box-shadow:var(--gaisha-glow-purple);
}

.gaisha-outline-button,
.gaisha-btn--outline,
.campaign-button{
    border:1px solid rgba(48,222,220,.45);
    background:var(--gaisha-surface-deep);
    color:#34e5dd;
}

.gaisha-outline-button:hover,
.gaisha-btn--outline:hover,
.campaign-button:hover:not(.disabled){
    transform:translateY(-1px);
    background:rgba(48,222,220,.08);
    border-color:rgba(48,222,220,.55);
    box-shadow:0 0 18px rgba(56,237,255,.14);
}

.gaisha-outline-button.purple,
.gaisha-btn--outline.purple,
.campaign-button.purple{
    border-color:var(--gaisha-border-purple-soft);
    background:rgba(163,134,255,.06);
    color:var(--accent-purple, #a386ff);
}

.gaisha-outline-button.purple:hover,
.campaign-button.purple:hover:not(.disabled){
    background:rgba(163,134,255,.12);
    box-shadow:var(--gaisha-glow-purple-soft);
}

.gaisha-btn--block{
    width:100%;
}

.gaisha-btn.disabled,
.pricing-button.disabled,
.campaign-button.disabled,
.gaisha-outline-button.disabled{
    opacity:.45;
    pointer-events:none;
    cursor:not-allowed;
}

/* Links */
.gaisha-link-cyan,
.pricing-hero-link a{
    color:#34e5dd;
    text-decoration:none;
    font-weight:700;
    letter-spacing:.01em;
    transition:color var(--gaisha-transition-fast), opacity var(--gaisha-transition-fast);
}

.gaisha-link-cyan:hover,
.pricing-hero-link a:hover{
    color:var(--accent-cyan, #48f5ff);
    opacity:.92;
}

/* Stacks */
.gaisha-stack-sm > * + *{
    margin-top:12px;
}

.gaisha-stack-md > * + *{
    margin-top:20px;
}

.campaign-card p,
.included-card p,
.pricing-cta-card p,
.future-support-card p,
.impact-name,
.impact-footer-text,
.pricing-notice p{
    color:var(--gaisha-muted-body);
    font-size:var(--gaisha-type-caption, .8125rem);
    line-height:1.55;
}

.impact-footer-text{
    max-width:900px;
    margin:16px auto 0;
    text-align:center;
    font-size:var(--gaisha-type-small, .875rem);
    line-height:1.75;
    color:var(--gaisha-muted-strong);
}

.pricing-notice p{
    font-size:var(--gaisha-type-body, 1rem);
    line-height:1.75;
    color:var(--gaisha-muted-strong);
}

@media (max-width:768px){
    body.gaisha-marketing{
        --gaisha-hero-pad-top:96px;
        --gaisha-hero-pad-bottom:44px;
        --gaisha-container-gutter:32px;
        --gaisha-section-pad-y:32px;
    }

    .gaisha-glass-panel,
    .gaisha-subsidy-panel,
    .gaisha-destination-panel{
        padding:28px 20px 32px;
    }

    .gaisha-hero-title,
    .gaisha-page-hero__title{
        font-size:clamp(1.9rem, 7vw, 2.5rem);
    }
}

/* FAQ sections (Home, Pricing, Support the Lab, University) */
.gaisha-faq-section__header{
    margin-bottom:24px;
    text-align:center;
}

.gaisha-faq-list{
    display:grid;
    gap:14px;
    max-width:860px;
    margin:0 auto;
}

.gaisha-faq-item{
    padding:0;
    overflow:hidden;
}

.gaisha-faq-item__question{
    list-style:none;
    cursor:pointer;
    padding:18px 22px;
    font-weight:600;
    color:var(--gaisha-text-strong, #fff);
}

.gaisha-faq-item__question::-webkit-details-marker{
    display:none;
}

.gaisha-faq-item__question span{
    display:block;
    padding-right:28px;
    position:relative;
}

.gaisha-faq-item__question span::after{
    content:"+";
    position:absolute;
    right:0;
    top:0;
    color:var(--gaisha-accent, #7c5cff);
    font-size:1.25rem;
    line-height:1;
}

.gaisha-faq-item[open] .gaisha-faq-item__question span::after{
    content:"−";
}

.gaisha-faq-item__answer{
    padding:0 22px 18px;
}

.gaisha-faq-item__answer p{
    margin:0;
    line-height:1.7;
}

.gaisha-destination-content{
    display:grid;
    gap:18px;
    margin-bottom:24px;
}

.gaisha-destination-content__block{
    padding:24px 28px;
}

.gaisha-destination-content__block .gaisha-section-title{
    margin-bottom:12px;
    font-size:clamp(1.25rem, 2.5vw, 1.5rem);
}

.gaisha-about-final-cta__links,
.gaisha-contact-related-links,
.gaisha-subsidy-about__links{
    margin-top:16px;
}

.gaisha-about-final-cta__links a,
.gaisha-contact-related-links a,
.gaisha-subsidy-about__links a{
    color:var(--gaisha-accent, #7c5cff);
    text-decoration:none;
}

.gaisha-about-final-cta__links a:hover,
.gaisha-contact-related-links a:hover,
.gaisha-subsidy-about__links a:hover,
.gaisha-seo-prose__text a,
.gaisha-seo-prose__intro a{
    color:var(--gaisha-accent, #7c5cff);
    text-decoration:none;
}

.gaisha-seo-prose__text a:hover,
.gaisha-seo-prose__intro a:hover{
    text-decoration:underline;
}

/* SEO prose sections */
.gaisha-seo-prose{
    padding-top:0;
}

.gaisha-seo-prose__inner{
    max-width:860px;
    margin:0 auto;
}

.gaisha-seo-prose__intro{
    font-size:var(--gaisha-type-body, 1rem);
    line-height:1.75;
    margin-bottom:28px;
}

.gaisha-seo-prose__heading{
    font-size:clamp(1.35rem, 2.5vw, 1.65rem);
    margin:32px 0 12px;
    color:var(--gaisha-text-strong, #fff);
}

.gaisha-seo-prose__text{
    font-size:var(--gaisha-type-body, 1rem);
    line-height:1.75;
    margin:0 0 16px;
}
