:root {
    font-family:Arial,Helvetica,sans-serif;
    font-synthesis:none;
    color-scheme:dark;
    --bg:#103b30;
    --deep:#092a22;
    --ink:#fbf7eb;
    --muted:#cbd6cf;
    --gold:#e4c486;
    --line:rgba(228,196,134,.23);
    --button-ink:#17372b;
    --serif:Georgia,'Times New Roman',serif;
    scroll-behavior:smooth
}
* {
    box-sizing:border-box
}
body {
    margin:0;
    min-width:320px;
    background:var(--bg);
    color:var(--ink)
}
a {
    color:inherit
}
button,summary,a {
    -webkit-tap-highlight-color:transparent
}
svg {
    display:block
}
a:focus-visible,summary:focus-visible {
    outline:3px solid var(--gold);
    outline-offset:5px
}
::selection {
    background:#e4c486;
    color:#12392e
}
.site-width {
    width:min(1360px,calc(100% - 112px));
    margin-inline:auto
}
.skip-link {
    position:fixed;
    z-index:20;
    top:12px;
    left:12px;
    transform:translateY(-180%);
    background:var(--gold);
    color:var(--deep);
    padding:14px 20px;
    border-radius:4px
}
.skip-link:focus {
    transform:none
}
.site-header {
    position:relative;
    z-index:5;
    background:var(--deep);
    border-bottom:1px solid var(--line)
}
.header-inner {
    padding-block:2px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px
}
.brand {
    display:inline-flex;
    align-items:center;
    gap:14px;
    text-decoration:none;
    flex-shrink:0
}
.brand-logo {
    width:43px;
    height:57px;
    object-fit:contain;
    mix-blend-mode:screen
}
.brand-name {
    font-family:var(--serif);
    font-size:25px;
    line-height:1.05;
    letter-spacing:.3px;
    color:var(--gold)
}
.brand-name>span {
    display:block;
    font-family:Arial,Helvetica,sans-serif;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:3.2px;
    margin-top:8px
}
.header-season {
    display:flex;
    align-items:center;
    gap:10px;
    font-size:12px;
    letter-spacing:.8px;
    color:var(--muted)
}
.header-season svg {
    width:23px;
    height:23px;
    fill:none;
    stroke:var(--gold);
    stroke-width:1.2
}
.language-picker {
    position:relative;
    flex-shrink:0;
    font-size:13px
}
.language-picker summary {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:44px;
    padding:7px 13px;
    border:1px solid var(--line);
    border-radius:5px;
    cursor:pointer;
    list-style:none
}
.language-picker summary::-webkit-details-marker {
    display:none
}
.flag {
    width:23px;
    height:16px;
    border-radius:2px;
    box-shadow:0 0 0 1px #80808040;
    flex-shrink:0
}
.chevron {
    width:16px;
    height:16px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.5;
    transition:transform .2s
}
.language-picker[open] .chevron {
    transform:rotate(180deg)
}
.language-panel {
    position:absolute;
    right:0;
    top:calc(100% + 12px);
    width:320px;
    max-width:calc(100vw - 32px);
    padding:12px;
    background:#fffaf1;
    color:#26372e;
    border:1px solid #d7cdbb;
    border-radius:9px;
    box-shadow:0 18px 50px #0004
}
.language-title {
    font-weight:bold;
    margin:6px 8px 12px;
    font-size:14px
}
.language-option {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:38px;
    padding:8px;
    border-radius:4px;
    text-decoration:none;
    font-size:12px
}
.language-option[aria-current] {
    background:#e9efe4;
    font-weight:bold
}
.language-option[href]:hover {
    background:#dce6d6
}
.language-status {
    margin-left:auto;
    font-size:10px;
    color:#667166
}
.is-unavailable {
    color:#70746e
}
.is-unavailable .flag {
    opacity:.5
}
.language-note {
    font-size:11px;
    line-height:1.5;
    border-top:1px solid #ddd5c7;
    margin:10px 8px 0;
    padding-top:10px;
    color:#62665f
}
.hero {
    position:relative;
    isolation:isolate;
    overflow:hidden
}
.hero-visual {
    position:absolute;
    inset:0;
    z-index:-2
}
.hero-photo,.hero-photo img {
    display:block;
    width:100%;
    height:100%
}
.hero-photo img {
    object-fit:cover;
    object-position:center
}
.hero:after {
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(7,35,27,.99) 0%,rgba(9,38,29,.94) 26%,rgba(8,35,27,.7) 40%,rgba(9,33,26,.12) 64%,rgba(7,30,23,.02) 100%)
}
.hero-inner {
    display:flex;
    align-items:flex-start;
    min-height:clamp(650px,calc(100svh - 100px),820px);
    padding-block:40px 86px
}
.hero-copy {
    width:49%;
    max-width:650px
}
.eyebrow {
    display:flex;
    align-items:center;
    gap:11px;
    font-size:10px;
    font-weight:600;
    line-height:1.6;
    letter-spacing:2.5px;
    color:var(--gold);
    margin:0 0 29px
}
.eyebrow>span {
    width:29px;
    height:1px;
    background:currentColor;
    flex-shrink:0
}
h1 {
    font-family:var(--serif);
    font-weight:400;
    font-size:clamp(46px,4.25vw,67px);
    line-height:1.07;
    letter-spacing:-1.8px;
    margin:0;
    text-wrap:balance
}
h1 em {
    display:block;
    font-weight:400;
    color:var(--gold);
    margin-top:9px
}
.hero-intro {
    font-size:16px;
    line-height:1.85;
    color:var(--muted);
    max-width:445px;
    margin:28px 0 30px;
    text-wrap:pretty
}
.hero-actions {
    display:flex;
    align-items:flex-start;
    gap:21px;
    flex-direction:column
}
.primary-button {
    position:relative;
    overflow:visible;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:19px;
    min-height:58px;
    padding:17px 23px;
    background:#ffd000;
    border:1px solid #ffe36b;
    color:var(--button-ink);
    font-size:14px;
    line-height:1.4;
    font-weight:700;
    text-decoration:none;
    border-radius:4px;
    transition:background .2s,transform .2s,box-shadow .2s
}
.primary-button > svg {
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.5;
    flex-shrink:0
}
.primary-button:hover {
    background:#ffdf3d;
    transform:translateY(-2px);
    box-shadow:0 8px 24px #0002
}
.primary-button:active {
    transform:none
}
.cta-note {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:10px;
    line-height:1.6;
    color:var(--muted);
    margin:23px 0 0;
    max-width:390px
}
.cta-note svg {
    width:17px;
    height:19px;
    fill:none;
    stroke:var(--gold);
    stroke-width:1.25;
    flex-shrink:0
}
.photo-caption {
    position:absolute;
    bottom:34px;
    right:56px;
    display:flex;
    align-items:center;
    gap:12px;
    color:white;
    text-shadow:0 1px 8px #000;
    font-family:var(--serif);
    font-size:18px;
    font-style:italic
}
.photo-caption>span {
    font-size:26px;
    color:#f3d99e
}
.planning {
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    background:var(--bg);
    scroll-margin-top:20px
}
.steps {
    list-style:none;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    padding:34px 0;
    margin-block:0
}
.steps li {
    display:flex;
    gap:19px;
    align-items:flex-start;
    padding:2px 30px;
    border-right:1px solid var(--line)
}
.steps li:first-child {
    padding-left:0
}
.steps li:last-child {
    padding-right:0;
    border:0
}
.step-number {
    font-family:var(--serif);
    font-style:italic;
    color:var(--gold);
    font-size:31px;
    line-height:1
}
.steps h2 {
    font-size:13px;
    font-weight:600;
    line-height:1.5;
    margin:0 0 6px
}
.steps p {
    font-size:12px;
    line-height:1.7;
    margin:0;
    max-width:270px;
    color:var(--muted)
}
.site-footer {
    background:var(--deep)
}
.footer-inner {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:70px;
    padding-block:32px 36px
}
.footer-information {
    max-width:850px
}
.process,.disclaimer {
    font-size:10px;
    line-height:1.8;
    color:var(--muted);
    margin:0
}
.process {
    margin-bottom:9px;
    color:var(--ink)
}
.contact {
    padding-left:33px;
    border-left:1px solid var(--line);
    font-size:11px;
    line-height:1.7
}
.contact p {
    margin:0 0 4px;
    color:var(--muted)
}
.contact a {
    text-decoration:none;
    overflow-wrap:anywhere
}
.contact a:hover {
    text-decoration:underline
}
.contact>span {
    display:block;
    font-family:var(--serif);
    font-style:italic;
    color:var(--gold);
    margin-top:14px;
    font-size:14px
}
/* V2: sötét bordó felület, arany részletek és fekete kiegészítők. */
.theme-v2 {
    color-scheme:dark;
    --bg:#581526;
    --deep:#120d0e;
    --ink:#fff6e8;
    --muted:#f5d9cf;
    --gold:#edce8a;
    --line:rgba(237,206,138,.28);
    --button-ink:#361018
}
.theme-v2 .site-header {
    background:var(--deep)
}
.theme-v2 .brand-logo {
    mix-blend-mode:screen
}
.theme-v2 .brand-name {
    color:var(--gold)
}
.theme-v2 .hero {
    width:min(1540px,100%);
    margin:auto;
    display:grid;
    grid-template-columns:38% 62%;
    padding:34px 34px 34px 0;
    min-height:740px
}
.theme-v2 .hero:after {
    display:none
}
.theme-v2 .hero-visual {
    position:relative;
    grid-column:2;
    grid-row:1;
    inset:auto;
    z-index:0;
    min-height:650px;
    overflow:hidden;
    border-radius:160px 4px 4px 4px
}
.theme-v2 .hero-photo {
    position:absolute;
    inset:0
}
.theme-v2 .hero-photo img {
    object-position:48% center
}
.theme-v2 .hero-inner {
    background:transparent;
    grid-column:1;
    grid-row:1;
    min-height:0;
    width:auto;
    margin:0;
    padding:40px clamp(28px,3.7vw,60px)
}
.theme-v2 .hero-copy {
    width:100%;
    max-width:510px
}
.theme-v2 .eyebrow {
    font-size:9px;
    letter-spacing:1.5px;
    align-items:flex-start;
    max-width:310px
}
.theme-v2 .eyebrow>span {
    margin-top:7px;
    width:22px
}
.theme-v2 h1 {
    font-size:clamp(44px,4.3vw,66px);
    line-height:1.1
}
.theme-v2 h1 em {
    margin-top:5px
}
.theme-v2 .hero-intro {
    max-width:380px;
    font-size:15px
}
.theme-v2 .photo-caption {
    inset:auto 30px 30px auto;
    font-size:21px;
    background:#120d0e;
    color:#edce8a;
    border-left:3px solid #edce8a;
    text-shadow:none;
    padding:19px 25px;
    box-shadow:0 7px 25px #30150812;
    transform:none
}
.theme-v2 .photo-caption>span {
    color:var(--gold)
}
.theme-v2 .planning {
    background:#211315
}
.theme-v2 .site-footer {
    background:var(--deep)
}
.theme-v2 .step-number {
    color:var(--gold)
}
/* V3: éjkék, panorámás családi jelenet és puha, világos lépéssáv. */
.theme-v3 {
    --bg:#101f35;
    --deep:#0c182b;
    --ink:#fffaf0;
    --muted:#c7ceda;
    --gold:#ecd1a0;
    --line:#d9c5a52b;
    --button-ink:#17263d
}
.theme-v3 .hero {
    margin:24px 28px 0;
    border-radius:8px 8px 0 0
}
.theme-v3 .hero-inner {
    align-items:flex-start;
    min-height:690px;
    width:min(1304px,calc(100% - 92px));
    padding-block:40px 80px
}
.theme-v3 .hero-copy {
    width:46%
}
.theme-v3 .hero:after {
    background:linear-gradient(90deg,rgba(13,28,49,.97),rgba(14,28,48,.87) 27%,rgba(12,25,43,.52) 44%,rgba(12,24,42,.03) 68%)
}
.theme-v3 h1 {
    font-size:clamp(44px,3.8vw,61px)
}
.theme-v3 .eyebrow {
    font-size:9px;
    letter-spacing:1.7px;
    max-width:350px
}
.theme-v3 .photo-caption {
    right:30px;
    bottom:30px
}
.theme-v3 .planning {
    margin:0 28px 26px;
    border:0;
    border-radius:0 0 8px 8px;
    background:#f4efe5;
    color:#243044;
    --muted:#646975;
    --line:#d7d1c6;
    --gold:#9a773f
}
.theme-v3 .steps {
    width:min(1304px,calc(100% - 92px))
}
.theme-v3 .site-footer {
    border-top:1px solid var(--line)
}
/* A változatok áttekintő oldala. */
.overview {
    background:#f8f4ed;
    color:#352a2c;
    color-scheme:light;
    min-height:100svh
}
.overview-main {
    width:min(1360px,calc(100% - 80px));
    margin:0 auto;
    padding:64px 0
}
.overview-kicker {
    text-transform:uppercase;
    font-size:11px;
    letter-spacing:2.5px;
    color:#8f293e
}
.overview h1 {
    font-size:clamp(38px,4vw,60px);
    line-height:1.15
}
.overview-intro {
    font-size:15px;
    line-height:1.8;
    color:#746c64;
    max-width:680px;
    margin:22px 0 36px
}
.variant-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px
}
.variant-card {
    text-decoration:none;
    background:white;
    border:1px solid #ded6cb;
    border-radius:5px;
    overflow:hidden;
    transition:transform .2s,box-shadow .2s
}
.variant-card:hover {
    transform:translateY(-5px);
    box-shadow:0 15px 40px #43352012
}
.variant-card img {
    width:100%;
    height:260px;
    object-fit:cover;
    display:block
}
.variant-card:nth-child(1) img,.variant-card:nth-child(3) img {
    object-position:72% center
}
.variant-card-body {
    padding:26px
}
.variant-tag {
    font-size:10px;
    letter-spacing:2px;
    color:#8f293e
}
.variant-card h2 {
    font-family:var(--serif);
    font-size:29px;
    font-weight:normal;
    margin:12px 0
}
.variant-card p {
    font-size:14px;
    line-height:1.7;
    color:#746c64;
    margin:0 0 22px
}
.variant-open {
    font-size:13px;
    font-weight:bold
}
.overview-back {
    display:inline-block;
    margin-top:36px;
    font-size:13px;
    text-underline-offset:4px;
    color:#746c64
}
@media(min-width:1600px) {
    .hero-inner {
        min-height:800px
    }
    .theme-v3 .hero-inner {
        min-height:780px
    }
    .theme-v2 .hero {
        min-height:800px
    }
    .theme-v2 .hero-visual {
        min-height:730px
    }
}
@media(max-width:1100px) {
    .site-width {
        width:calc(100% - 64px)
    }
    .header-season {
        font-size:11px
    }
    .hero-copy {
        width:52%
    }
    h1 {
        font-size:49px
    }
    .hero-inner {
        min-height:690px
    }
    .hero-intro {
        font-size:15px;
        max-width:380px
    }
    .eyebrow {
        font-size:9px;
        letter-spacing:1.8px
    }
    .steps li {
        padding-inline:20px;
        gap:13px
    }
    .steps h2 {
        font-size:12px
    }
    .steps p {
        font-size:11px
    }
    .footer-inner {
        gap:32px
    }
    .contact {
        padding-left:24px
    }
    .theme-v2 .hero {
        grid-template-columns:42% 58%;
        padding-right:24px;
        min-height:700px
    }
    .theme-v2 .hero-inner {
        padding-inline:32px
    }
    .theme-v2 .hero-visual {
        min-height:620px;
        border-top-left-radius:115px
    }
    .theme-v2 h1 {
        font-size:49px
    }
    .theme-v2 .primary-button {
        font-size:12px;
        padding-inline:17px;
        gap:12px
    }
    .theme-v3 .hero {
        margin-inline:18px
    }
    .theme-v3 .hero-inner {
        width:calc(100% - 58px);
        min-height:670px
    }
    .theme-v3 .hero-copy {
        width:51%
    }
    .theme-v3 h1 {
        font-size:47px
    }
    .theme-v3 .planning {
        margin-inline:18px
    }
    .theme-v3 .steps {
        width:calc(100% - 58px)
    }
    .variant-card img {
        height:210px
    }
    .variant-card-body {
        padding:20px
    }
    .variant-card h2 {
        font-size:25px
    }
}
@media(max-width:900px) {
    .site-width {
        width:calc(100% - 40px)
    }
    .header-inner,.theme-v3 .header-inner {
        gap:12px
    }
    .brand {
        gap:10px
    }
    .brand-logo {
        width:34px;
        height:45px
    }
    .brand-name {
        font-size:22px
    }
    .brand-name>span {
        font-size:8px;
        letter-spacing:2.3px;
        margin-top:7px
    }
    .header-season {
        display:none
    }
    .language-picker summary {
        padding-inline:10px;
        gap:8px;
        font-size:11px
    }
    .language-picker .flag {
        width:21px;
        height:14px
    }
    .hero,.theme-v2 .hero,.theme-v3 .hero {
        display:flex;
        flex-direction:column;
        margin:0;
        padding:0;
        border-radius:0;
        width:100%;
        min-height:0
    }
    .hero-visual,.theme-v2 .hero-visual {
        position:relative;
        inset:auto;
        z-index:0;
        height:380px;
        min-height:0;
        width:100%;
        border-radius:0;
        flex-shrink:0
    }
    .hero-photo,.theme-v2 .hero-photo {
        position:absolute;
        inset:0
    }
    .hero-photo img {
        object-position:72% center
    }
    .hero:after,.theme-v3 .hero:after {
        display:none
    }
    .hero-visual:after {
        content:'';
        position:absolute;
        inset:0;
        background:linear-gradient(180deg,transparent 72%,var(--bg));
        pointer-events:none
    }
    .photo-caption,.theme-v3 .photo-caption {
        right:20px;
        bottom:30px;
        font-size:15px
    }
    .photo-caption>span {
        font-size:20px
    }
    .hero-inner,.theme-v2 .hero-inner,.theme-v3 .hero-inner {
        min-height:0;
        width:calc(100% - 40px);
        margin-inline:auto;
        padding:8px 0 40px;
        display:block
    }
    .hero-copy,.theme-v2 .hero-copy,.theme-v3 .hero-copy {
        width:100%;
        max-width:none
    }
    h1,.theme-v2 h1,.theme-v3 h1 {
        font-size:clamp(39px,7.6vw,55px);
        line-height:1.12;
        letter-spacing:-1.2px;
        max-width:650px;
        text-wrap:initial
    }
    h1 em {
        margin-top:2px
    }
    .eyebrow,.theme-v2 .eyebrow,.theme-v3 .eyebrow {
        font-size:9px;
        letter-spacing:1.5px;
        margin-bottom:21px;
        max-width:none;
        align-items:center
    }
    .theme-v2 .eyebrow>span {
        margin-top:0
    }
    .hero-intro,.theme-v2 .hero-intro {
        font-size:15px;
        line-height:1.8;
        max-width:580px;
        margin:23px 0 25px
    }
    .hero-actions {
        gap:19px;
        align-items:flex-start
    }
    .primary-button,.theme-v2 .primary-button {
        font-size:14px;
        min-height:58px;
        padding:17px 22px;
        gap:16px
    }
    .cta-note {
        margin-top:17px;
        font-size:10px;
        max-width:none
    }
    .steps,.theme-v3 .steps {
        display:flex;
        flex-direction:column;
        width:calc(100% - 40px);
        padding-block:8px
    }
    .steps li,.steps li:first-child,.steps li:last-child {
        padding:21px 0;
        border:0;
        border-bottom:1px solid var(--line);
        gap:20px
    }
    .steps li:last-child {
        border-bottom:0
    }
    .step-number {
        font-size:30px;
        width:35px;
        flex-shrink:0
    }
    .steps h2 {
        font-size:14px;
        margin-bottom:4px
    }
    .steps p {
        font-size:12px;
        max-width:none
    }
    .footer-inner {
        grid-template-columns:1fr;
        gap:24px;
        padding-block:28px
    }
    .process,.disclaimer {
        font-size:11px
    }
    .contact {
        padding:20px 0 0;
        border-left:0;
        border-top:1px solid var(--line);
        font-size:12px
    }
    .contact>span {
        font-size:15px
    }
    .theme-v2 .hero-visual {
        height:360px;
        order:0
    }
    .theme-v2 .hero-inner {
        order:1
    }
    .theme-v2 .hero-visual:after {
        display:block;
        background:linear-gradient(180deg,rgba(88,21,38,0) 45%,rgba(88,21,38,.12) 62%,rgba(88,21,38,.55) 82%,#581526 100%);
    }
    .theme-v2 .hero-photo img {
        object-position:45% center
    }
    .theme-v2 .photo-caption {
        font-size:17px;
        padding:13px 19px;
        bottom:23px;
        right:23px
    }
    .theme-v2 .hero-inner {
        padding-top:8px
    }
    .theme-v3 .hero-visual {
        height:380px
    }
    .theme-v3 .hero-photo img {
        object-position:78% center
    }
    .theme-v3 .planning {
        margin:0;
        border-radius:0
    }
    .overview-main {
        width:calc(100% - 40px);
        padding:36px 0
    }
    .variant-grid {
        grid-template-columns:1fr;
        gap:24px
    }
    .variant-card img {
        height:auto;
        aspect-ratio:16/9
    }
    .variant-card-body {
        padding:25px
    }
    .variant-card h2 {
        font-size:30px
    }
    .overview h1 {
        font-size:40px
    }
}
@media(max-width:400px) {
    .brand-name {
        font-size:20px
    }
    .brand-name>span {
        letter-spacing:1.8px
    }
    .language-picker summary {
        gap:6px;
        padding-inline:8px
    }
    .language-picker .chevron {
        width:12px
    }
    .hero-visual,.theme-v3 .hero-visual {
        height:310px
    }
    .theme-v2 .hero-visual {
        height:300px
    }
    .primary-button,.theme-v2 .primary-button {
        width:100%;
        padding-inline:14px;
        font-size:12px;
        gap:12px
    }
    .eyebrow,.theme-v2 .eyebrow,.theme-v3 .eyebrow {
        letter-spacing:1px;
        font-size:8px
    }
    .hero-actions {
        gap:15px
    }
    h1,.theme-v2 h1,.theme-v3 h1 {
        font-size:39px
    }
}
@media(max-width:900px) {
    .photo-caption {
        z-index:1
    }
}
@media(prefers-reduced-motion:reduce) {
    :root {
        scroll-behavior:auto
    }
    *,*::before,*::after {
        transition:none!important;
        animation:none!important
    }
}

/* Full-width Christmas layouts and compact planning strip. */
.theme-v2 .hero { width: 100%; max-width: none; padding: 0; }
.theme-v2 .hero-visual { border-radius: 0; }
.theme-v3 .hero { margin: 0; border-radius: 0; }
.theme-v3 .planning { margin: 0; border-radius: 0; }
.steps { padding-block: 20px; }
.steps h2 { margin-bottom: 4px; }
.steps p { line-height: 1.5; }
.step-number { font-size: 28px; }

@media (max-width: 900px) {
    .steps, .theme-v3 .steps { padding-block: 4px; }
    .steps li, .steps li:first-child, .steps li:last-child { padding-block: 14px; }
    .photo-caption { max-width: calc(100% - 40px); font-size: 14px; }
    .language-picker summary > span { max-width: 125px; overflow-wrap: anywhere; }
    .header-inner { gap: 10px; }
}
@media (max-width: 400px) {
    .language-picker summary > span { max-width: 86px; }
}


/* V2 navigation follows the red, gold and black palette. */
.theme-v2 .language-panel { background:#191011; color:#fff6e8; border-color:#755737; }
.theme-v2 .language-option[aria-current], .theme-v2 .language-option[href]:hover { background:#6e1823; }
.theme-v2 .language-status { color:#edce8a; }
.theme-v2 .hero-inner { position:relative; }
.theme-v2 .hero-inner { z-index:1; }
/* Let the photograph extend beneath the copy and dissolve into the red surface. */
@media (min-width:901px) {
    .theme-v2 .hero-visual { margin-left:-180px; }
    .theme-v2 .hero-visual::after {
        content:'';
        position:absolute;
        inset:0;
        pointer-events:none;
        background:linear-gradient(90deg,#581526 0%,rgba(88,21,38,.97) 6%,rgba(88,21,38,.8) 13%,rgba(88,21,38,.38) 23%,rgba(88,21,38,0) 34%);
    }
    .theme-v2 .photo-caption { z-index:1; }
}
@media (max-width:900px) {
    .theme-v2 .hero-inner { width:100%; padding-inline:20px; }
    .theme-v3 .hero-inner { padding-top:8px; }
}

/* A soft, white aurora breathes behind the solid button face. */
.cta-frame {
    position:relative;
    display:inline-flex;
    max-width:100%;
    isolation:isolate;
}
.cta-frame .primary-button {
    position:relative;
    z-index:1;
}
.cta-frame .primary-button:hover { transform:none; }
.cta-frame::before, .cta-frame::after {
    content:'';
    position:absolute;
    z-index:0;
    pointer-events:none;
    border-radius:50%;
}
.cta-frame::before {
    inset:-18px -12px;
    background:radial-gradient(ellipse at 25% 60%,rgba(255,255,255,.95) 0%,rgba(245,251,255,.55) 30%,transparent 68%),radial-gradient(ellipse at 78% 38%,rgba(255,255,255,.9) 0%,rgba(245,251,255,.4) 30%,transparent 68%);
    filter:blur(13px);
    animation:cta-aurora 5.6s ease-in-out infinite!important;
}
.cta-frame::after {
    inset:-4px -3px;
    background:rgba(255,255,255,.92);
    filter:blur(7px);
    border-radius:10px;
    animation:cta-aurora-core 5.6s ease-in-out infinite!important;
}
@keyframes cta-aurora {
    0%,100% { opacity:.28; transform:scale(.97,.78); }
    50% { opacity:.86; transform:scale(1.02,1.18); }
}
@keyframes cta-aurora-core {
    0%,100% { opacity:.25; }
    50% { opacity:.8; }
}
@media (max-width:400px) {
    .cta-frame { width:100%; }
}
/* The requested light remains continuous, with a gentler pace when preferred. */
@media (prefers-reduced-motion:reduce) {
    .cta-frame::before, .cta-frame::after { animation-duration:10s!important; }
}
