

/* ---------- Design tokens ---------- */
:root{
    --container:1200px;
    --hero-radius:18px;
    --hero-shadow:0 14px 38px rgba(8,12,20,.12);
    --hero-minh:min(76vh,820px);

    --ink:hsl(220 24% 12%);
    --ink-2:hsl(220 18% 18%);
    --white:hsl(40 40% 96%);
    --line:hsl(220 14% 88%);

    --ring:rgba(16,185,129,.40);

    --white:#fff;

    --header-h:72px;
}

/* ---------- Base ---------- */
*,
*::before,
*::after{ box-sizing:border-box }

html,body{ height:100% }

body{
    margin:0;
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    background:var(--white,#faf7ef);

    padding-top:var(--header-h);
}

a{ color:inherit; text-decoration:none }
:focus-visible{ outline:3px solid var(--ring); outline-offset:3px; border-radius:12px }

.container{ max-width:var(--container); margin:0 auto; padding:0 18px }
.section-pad{ padding:0 0 88px 0 }
.sand{ background:var(--white) }

.eyebrow{
    letter-spacing:.18em;
    text-transform:uppercase;
    font-size:.82rem;
}

.h2{
    font-family:Cinzel,serif;
    font-weight:700;
    font-size:clamp(26px,4vw,42px);
    line-height:1.15;
    margin:0 0 22px;
    color:var(--ink);
}


.site-header{
    position:fixed;
    top:0; left:0; right:0;
    height:var(--header-h);
    z-index:3000;
    background:#fff;
    box-shadow:0 2px 10px rgba(0,0,0,.06);
}

.site-header.is-transparent{
    background:transparent;
    box-shadow:none;
    mix-blend-mode:normal;
}

.hero-banner.corp-hero{
    background:var(--white);
    padding-top:2px;
    position:relative;
    z-index:0;
    isolation:auto;
}

.hero-media{
    position:relative;
    height:var(--hero-minh);
    border:1px solid var(--line);
    border-radius:var(--hero-radius);
    overflow:hidden;
    box-shadow:var(--hero-shadow);
    background:#fff;
    z-index:0;
}

.hero-img{
    width:100%; height:100%;
    object-fit:cover; display:block;
    transform:scale(1.01);
    transition:transform .6s cubic-bezier(.22,.61,.36,1), filter .4s ease;
    filter:contrast(1.02) saturate(1.02) brightness(.98);
}
.hero-media:hover .hero-img{
    transform:scale(1.035);
    filter:contrast(1.05) saturate(1.06);
}

.corp-veil{
    position:absolute; inset:0;
    z-index:1;
    pointer-events:none;
    background:
        linear-gradient(to bottom,
        rgba(0,0,0,.55) 0%,
        rgba(0,0,0,.25) 40%,
        rgba(0,0,0,.65) 100%);
    box-shadow: inset 0 0 120px rgba(0,0,0,.5);
}

.hero-content.corp-hero__content{
    position:absolute; inset:0;
    z-index:2;
    display:grid; place-items:center; text-align:center;
    padding: clamp(12px,2vw,28px);
}

.hero-content.corp-hero__content::before{ content:none !important }
.corp-hero__copy{
    background:none !important;
    border:none !important;
    box-shadow:none !important;
    padding:0; margin:0;
}

/* === HERO TEXT (always white) === */
.hero-banner.corp-hero .corp-hero__eyebrow,
.hero-banner.corp-hero .corp-hero__title,
.hero-banner.corp-hero .corp-hero__lead,
.hero-banner.corp-hero .display{
    color:#fff !important;
    -webkit-text-fill-color:#fff;
}

.corp-hero__eyebrow{
    margin-bottom:.55rem;
    letter-spacing:.15em;
    font-size:.86rem;
    font-weight:600;
    text-shadow:0 2px 6px rgba(0,0,0,.55);
}
.corp-hero__title{
    margin:.12rem 0 .9rem;
    font-family:Cinzel,serif;
    font-weight:800;
    font-size:clamp(36px,6.6vw,76px);
    line-height:1.07;
    letter-spacing:.4px;
    text-shadow:
        0 3px 8px rgba(0,0,0,.65),
        0 12px 28px rgba(0,0,0,.55);
}
.corp-hero__lead{
    font-size:clamp(16px,1.6vw,20px);
    line-height:1.65; text-wrap:balance;
    text-shadow:0 2px 8px rgba(0,0,0,.6);
}

/* Actions */
.corp-hero__actions{
    display:flex; justify-content:center; align-items:center;
    gap:14px; flex-wrap:wrap;
}

.corp-btn{
    display:inline-flex; align-items:center; justify-content:center;
    padding:12px 24px; border-radius:999px;
    font-weight:750; font-size:.96rem; letter-spacing:.01em;
    color:#fff; background:rgba(255,255,255,.14);
    border:2px solid #fff;
    text-decoration:none; transition:all .22s ease;
    box-shadow:0 6px 20px rgba(0,0,0,.22);
}
.corp-btn:hover,
.corp-btn:focus-visible{
    background:#fff; color:var(--ink);
    transform:translateY(-2px);
    box-shadow:0 12px 30px rgba(0,0,0,.28);
}

/* ============================================================
   Activities (scoped only for corporate landing)
   ============================================================ */
.corp-landing .activities-grid{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    gap:18px;
}
.corp-landing .activity-card{
    grid-column:span 6;
    background:#fff; border:1px solid var(--line); border-radius:16px;
    box-shadow:0 10px 24px rgba(20,25,40,.06);
    overflow:hidden;
    transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.corp-landing .activity-card:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 36px rgba(20,25,40,.12);
    border-color:color-mix(in oklab, var(--line), #000 12%);
}
.corp-landing .activity-card__media{ aspect-ratio:16/10; overflow:hidden; background:#f3f3f3 }
.corp-landing .activity-card__media img{ width:100%; height:100%; object-fit:cover; display:block }
.corp-landing .activity-card__body{ padding:16px 16px 18px }
.corp-landing .activity-card__title{
    font-family:Cinzel,serif; font-weight:700; font-size:1.125rem;
    margin:0 0 6px; color:var(--ink-2);
}
.corp-landing .activity-card__meta{ font-size:.92rem; color:#475569; opacity:.9 }

@media (prefers-reduced-motion:no-preference){
    @keyframes fadeUp{ from{ transform:translateY(18px); opacity:0 } to{ transform:none; opacity:1 } }
    @keyframes fadeIn{ from{ opacity:0 } to{ opacity:1 } }
    .reveal.fade-up{ animation:fadeUp .8s cubic-bezier(.22,.61,.36,1) both }
    .scale-in{ animation:fadeIn .6s ease both }
    .fade-in-delayed{ animation:fadeIn .9s ease .12s both }
}

/* ============================================================
   Responsive (scoped for corp landing)
   ============================================================ */
@media (max-width:1200px){
    .corp-landing .activities-grid{ gap:16px }
}
@media (max-width:980px){
    .hero-content.corp-hero__content{ padding:18px }
    .corp-landing .activities-grid{ grid-template-columns:repeat(8,1fr) }
    .corp-landing .activity-card{ grid-column:span 8 }
}
@media (max-width:680px){
    .corp-hero__title{ font-size:clamp(28px,8vw,46px) }
    .corp-hero__lead{ font-size:clamp(15px,3.7vw,18px) }
    .corp-btn{ padding:11px 20px; font-size:.93rem }
    .corp-landing .activities-grid{ grid-template-columns:repeat(4,1fr) }
    .corp-landing .activity-card{ grid-column:span 4 }
    .section-pad{ padding:64px 0 }
}

/* Darker veil for small screens */
@media (max-width:520px){
    .corp-veil{
        background:linear-gradient(to bottom,
        rgba(0,0,0,.72) 0%,
        rgba(0,0,0,.48) 40%,
        rgba(0,0,0,.78) 100%);
    }
}
