* {
    box-sizing: border-box;
}
:root {
    --ink: #17211f;
    --muted: #6d7772;
    --cream: #f6f2e9;
    --paper: #fcfaf5;
    --gold: #c28c4b;
    --gold-light: #e4bd82;
    --line: #ddd6c8;
    --serif: "Playfair Display",Georgia,serif;
    --sans: "DM Sans",Arial,sans-serif;
}
html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
}
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 15px;
    line-height: 1.65;
}
a {
    color: inherit;
    text-decoration: none;
}
button,input,textarea,select {
    font: inherit;
}
.site-header {
    height: 82px;
    padding: 0 6vw;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--paper);
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid rgba(23,33,31,.08);
}
.brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    letter-spacing: 2px;
    font-weight: 700;
}
.brand i {
    font-family: var(--serif);
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}
.brand-mark {
    font-size: 29px;
    color: var(--gold);
}
.nav-links {
    display: flex;
    align-items: center;
    gap: 32px;
    font-size: 12px;
    font-weight: 600;
}
.nav-links>a:not(.nav-cta) {
    transition: color .2s;
}
.nav-links>a:hover {
    color: var(--gold);
}
.nav-cta {
    padding: 12px 17px;
    border: 1px solid var(--gold);
    color: #76512d;
}
.menu-toggle {
    display: none;
    background: none;
    border: 0;
    font-size: 24px;
}
.hero {
    min-height: 690px;
    height: min(790px,calc(100vh - 82px));
    position: relative;
    display: flex;
    align-items: center;
    color: white;
    background: #17211f url('https://images.unsplash.com/photo-1539650116574-75c0c6d73f6e?auto=format&fit=crop&w=2200&q=85') center 48%/cover no-repeat;
}
.hero-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,rgba(10,20,19,.88) 0%,rgba(10,20,19,.68) 42%,rgba(10,20,19,.13) 100%),linear-gradient(0deg,rgba(10,20,19,.35),transparent 40%);
}
.hero-content {
    position: relative;
    max-width: 690px;
    margin-left: 10%;
    padding: 50px 24px 60px 0;
}
.eyebrow {
    font-size: 10px;
    letter-spacing: 2.3px;
    font-weight: 700;
    color: var(--gold);
    margin: 0 0 18px;
}
.hero h1,.calendar-hero h1 {
    font: 500 clamp(43px,5.5vw,76px)/1.13 var(--serif);
    letter-spacing: -1.7px;
    margin: 0 0 22px;
}
.hero h1 em,.intro h2 em,.section-heading h2 em,.bespoke h2 em,.process h2 em,.enquiry h2 em,.calendar-hero h1 em {
    color: var(--gold-light);
    font-weight: 500;
}
.hero-copy {
    font-size: 16px;
    max-width: 460px;
    color: #e2e5df;
    line-height: 1.8;
}
.hero-actions {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-top: 32px;
}
.button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 15px 19px;
    font-weight: 700;
    font-size: 12px;
    border: 0;
    cursor: pointer;
    transition: transform .2s,background .2s;
}
.button:hover {
    transform: translateY(-2px);
}
.button-gold {
    background: var(--gold);
    color: #171f1d;
}
.button-gold:hover {
    background: var(--gold-light);
}
.button-dark {
    background: var(--ink);
    color: white;
}
.button-dark:hover {
    background: #30413c;
}
.text-link {
    font-size: 12px;
    color: #fff;
}
.text-link span {
    margin-left: 8px;
    color: var(--gold-light);
}
.hero-note {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 11px;
    color: #d9ddd7;
    margin-top: 65px;
    letter-spacing: .3px;
}
.small-line {
    display: inline-block;
    width: 30px;
    height: 1px;
    background: var(--gold);
}
.hero-caption {
    position: absolute;
    bottom: 25px;
    left: 6vw;
    right: 6vw;
    display: flex;
    justify-content: space-between;
    color: #eee;
    font-size: 9px;
    letter-spacing: 2px;
}
.section-wrap {
    width: min(1160px,88%);
    margin: 0 auto;
}
.intro {
    display: grid;
    grid-template-columns: 1fr 2.2fr .8fr;
    gap: 50px;
    padding-top: 110px;
    padding-bottom: 110px;
    align-items: start;
}
.intro-label {
    display: flex;
    gap: 18px;
    align-items: flex-start;
}
.intro-label .eyebrow {
    max-width: 125px;
    line-height: 1.8;
}
.vertical-rule {
    width: 1px;
    height: 65px;
    background: var(--gold);
    margin-top: 2px;
}
.intro h2,.section-heading h2,.bespoke h2,.process h2,.enquiry h2,.calendar-help h2 {
    font: 500 clamp(34px,4vw,52px)/1.2 var(--serif);
    letter-spacing: -.8px;
    margin: 0 0 24px;
}
.intro h2 em,.section-heading h2 em,.bespoke h2 em,.process h2 em,.enquiry h2 em {
    color: var(--gold);
    font-style: normal;
}
.intro p {
    max-width: 570px;
    color: var(--muted);
    margin: 0;
    line-height: 1.9;
}
.intro-stat {
    border-left: 1px solid var(--line);
    padding-left: 28px;
    margin-top: 10px;
}
.intro-stat strong {
    display: block;
    font: 500 44px var(--serif);
    color: var(--gold);
}
.intro-stat span {
    font-size: 11px;
    color: var(--muted);
    line-height: 1.8;
}
.experience-section {
    background: var(--cream);
    padding: 90px 0 100px;
}
.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 38px;
}
.section-heading .eyebrow {
    margin-bottom: 13px;
}
.section-heading h2 {
    margin-bottom: 0;
}
.section-heading>p {
    max-width: 350px;
    color: var(--muted);
    font-size: 13px;
    margin: 0 0 5px;
    line-height: 1.8;
}
.experience-grid {
    width: min(1320px,92%);
    margin: auto;
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 14px;
}
.experience-card {
    min-height: 510px;
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    color: white;
    display: flex;
    align-items: flex-end;
}
.experience-card:before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg,rgba(9,19,18,.94) 0%,rgba(9,19,18,.56) 45%,rgba(9,19,18,.05) 100%);
    transition: opacity .3s;
}
.experience-card:hover:before {
    opacity: .84;
}
.cairo {
    background-image: url('https://images.unsplash.com/photo-1503177119275-0aa32b3a9368?auto=format&fit=crop&w=850&q=80');
}
.luxor {
    background-image: url('https://images.unsplash.com/photo-1568322445389-f64ac2515020?auto=format&fit=crop&w=850&q=80');
}
.aswan {
    background-image: url('https://images.unsplash.com/photo-1539768942893-daf53e448371?auto=format&fit=crop&w=850&q=80');
}
.desert {
    background-image: url('https://images.unsplash.com/photo-1509316785289-025f5b846b35?auto=format&fit=crop&w=850&q=80');
}
.card-number {
    position: absolute;
    top: 20px;
    left: 22px;
    font-size: 9px;
    letter-spacing: 1.6px;
    color: #f0e4d2;
}
.card-content {
    position: relative;
    padding: 28px 23px 25px;
}
.card-content .eyebrow {
    font-size: 9px;
    margin-bottom: 10px;
}
.card-content h3 {
    font: 500 29px/1.2 var(--serif);
    margin: 0 0 15px;
}
.card-content>p:not(.eyebrow) {
    font-size: 11px;
    line-height: 1.8;
    color: #e1e5df;
    margin: 0 0 18px;
}
.card-link {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid rgba(255,255,255,.35);
    padding-top: 14px;
    font-size: 11px;
    font-weight: 700;
}
.card-link span {
    color: var(--gold-light);
}
.bespoke {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10%;
    padding-top: 115px;
    padding-bottom: 115px;
    align-items: center;
}
.bespoke-image {
    height: 660px;
    position: relative;
    background: url('AbuSimbel.jpg?auto=format&fit=crop&w=1100&q=85') center/cover no-repeat;
}
.image-stamp {
    position: absolute;
    right: -26px;
    bottom: 35px;
    background: var(--gold);
    color: var(--ink);
    width: 105px;
    height: 105px;
    display: grid;
    place-content: center;
    text-align: center;
    font: 600 15px/1.35 var(--serif);
    letter-spacing: 1px;
    transform: rotate(5deg);
}
.bespoke-copy>.eyebrow {
    max-width: 300px;
    line-height: 1.8;
}
.bespoke-copy>p:not(.eyebrow) {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.9;
}
.feature-list {
    list-style: none;
    padding: 10px 0 20px;
    margin: 0;
}
.feature-list li {
    display: flex;
    gap: 20px;
    border-bottom: 1px solid var(--line);
    padding: 18px 0;
}
.feature-list li>span {
    font: 500 20px var(--serif);
    color: var(--gold);
}
.feature-list strong {
    font-size: 13px;
}
.feature-list p {
    font-size: 11px;
    color: var(--muted);
    margin: 4px 0 0;
}
.process {
    background: #17211f;
    color: white;
    padding: 95px 0 105px;
}
.process .eyebrow {
    margin-bottom: 15px;
}
.process h2 {
    margin-bottom: 50px;
}
.process h2 em {
    color: var(--gold-light);
}
.process-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 45px;
}
.process-grid>div {
    border-top: 1px solid #53605b;
    padding-top: 18px;
}
.process-grid span {
    font: 500 25px var(--serif);
    color: var(--gold-light);
}
.process-grid h3 {
    font: 500 22px var(--serif);
    margin: 15px 0 10px;
}
.process-grid p {
    color: #c4ccc6;
    font-size: 12px;
    line-height: 1.9;
    max-width: 290px;
}
.enquiry {
    padding-top: 115px;
    padding-bottom: 120px;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 12%;
}
.enquiry-copy>p:not(.eyebrow) {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.9;
    max-width: 370px;
}
.contact-note {
    display: flex;
    gap: 15px;
    margin: 35px 0;
}
.contact-icon {
    color: var(--gold);
    font-size: 25px;
}
.contact-note strong {
    font-size: 12px;
}
.contact-note p {
    font-size: 11px;
    color: var(--muted);
    margin: 4px 0;
    line-height: 1.8;
}
.availability-link {
    display: inline-flex;
    gap: 20px;
    border-bottom: 1px solid var(--gold);
    padding-bottom: 8px;
    font-size: 12px;
    font-weight: 700;
}
.availability-link span {
    color: var(--gold);
}
.enquiry-form {
    background: white;
    padding: 32px 34px;
    border: 1px solid var(--line);
    box-shadow: 0 14px 50px rgba(32,35,29,.04);
}
.form-title {
    display: flex;
    justify-content: space-between;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--line);
    font-size: 10px;
    letter-spacing: 1.3px;
    font-weight: 700;
    margin-bottom: 22px;
}
.form-required {
    font-weight: 400;
    letter-spacing: 0;
    color: var(--muted);
}
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.enquiry-form label,.date-request label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 17px;
}
.enquiry-form input:not([type=checkbox]),.enquiry-form select,.enquiry-form textarea,.date-request input,.date-request select,.date-request textarea {
    width: 100%;
    display: block;
    border: 1px solid #d9d7cf;
    background: #fdfcf8;
    padding: 12px;
    margin-top: 7px;
    border-radius: 0;
    color: var(--ink);
    font-size: 12px;
    min-height: 43px;
}
.enquiry-form select[multiple] {
    height: 104px;
}
.enquiry-form textarea,.date-request textarea {
    resize: vertical;
}
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus,.date-request input:focus,.date-request select:focus,.date-request textarea:focus {
    outline: 1px solid var(--gold);
    border-color: var(--gold);
}
small {
    font-size: 10px;
    color: var(--muted);
}
.check-label {
    display: flex!important;
    align-items: flex-start;
    gap: 9px;
    font-weight: 400!important;
    color: var(--muted);
    line-height: 1.5;
}
.check-label input {
    margin-top: 3px;
}
.submit-button {
    width: 100%;
    margin-top: 5px;
}
.form-footnote {
    font-size: 10px;
    color: var(--muted);
    line-height: 1.6;
    margin: 14px 0 0;
}
.site-footer {
    background: #121a18;
    color: white;
    padding: 42px 6vw 25px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: center;
    gap: 10px;
}
.footer-brand {
    color: white;
}
.site-footer>p {
    font-size: 11px;
    color: #b9c1bb;
}
.site-footer>div {
    display: flex;
    justify-content: flex-end;
    gap: 25px;
    font-size: 11px;
}
.site-footer small {
    grid-column: 1/-1;
    border-top: 1px solid #39423e;
    padding-top: 18px;
    margin-top: 20px;
    color: #9ba69f;
}
.calendar-hero {
    background: #17211f;
    color: white;
    padding: 90px 8% 80px;
    text-align: center;
}
.calendar-hero .eyebrow {
    margin-bottom: 15px;
}
.calendar-hero h1 {
    font-size: clamp(40px,5vw,65px);
    margin-bottom: 20px;
}
.calendar-hero>p:last-child {
    max-width: 580px;
    margin: 0 auto;
    color: #d3d9d4;
    font-size: 13px;
    line-height: 1.9;
}
.calendar-layout {
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 7%;
    padding-top: 75px;
    padding-bottom: 90px;
    align-items: start;
}
.calendar-panel {
    background: white;
    border: 1px solid var(--line);
    padding: 30px;
}
.calendar-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}
.calendar-head .eyebrow {
    margin-bottom: 8px;
}
.calendar-head h2,.date-request h2 {
    font: 500 31px var(--serif);
    margin: 0;
}
.calendar-nav {
    display: flex;
    gap: 8px;
}
.calendar-nav button {
    width: 39px;
    height: 39px;
    border: 1px solid var(--line);
    background: var(--paper);
    cursor: pointer;
    font-size: 20px;
}
.calendar-nav button:hover {
    background: var(--ink);
    color: white;
}
.weekdays,.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7,1fr);
    gap: 5px;
}
.weekdays {
    margin-bottom: 8px;
}
.weekdays span {
    text-align: center;
    font-size: 9px;
    letter-spacing: 1px;
    color: var(--muted);
    padding: 8px 0;
}
.calendar-day {
    height: 51px;
    border: 1px solid transparent;
    background: #f4f2ec;
    color: var(--ink);
    cursor: pointer;
    font-size: 12px;
    position: relative;
}
.calendar-day.available:after {
    content: "";
    position: absolute;
    bottom: 6px;
    left: calc(50% - 2px);
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--gold);
}
.calendar-day:hover:not(:disabled) {
    border-color: var(--gold);
}
.calendar-day:disabled {
    color: #b7b9b3;
    background: #f8f7f3;
    cursor: not-allowed;
}
.calendar-day.selected {
    background: var(--ink);
    color: white;
    border-color: var(--ink);
}
.calendar-day.selected:after {
    background: var(--gold-light);
}
.calendar-day.empty {
    background: transparent;
    cursor: default;
}
.calendar-legend {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: 23px;
    font-size: 10px;
    color: var(--muted);
}
.calendar-legend span {
    display: flex;
    align-items: center;
    gap: 6px;
}
.legend-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}
.available-dot {
    background: var(--gold);
}
.selected-dot {
    background: var(--ink);
}
.unavailable-dot {
    background: #d7d5ce;
}
.calendar-disclaimer {
    margin: 22px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    font-size: 10px;
    color: var(--muted);
    line-height: 1.7;
}
.date-request {
    background: var(--cream);
    padding: 30px;
}
.date-request .eyebrow {
    margin-bottom: 10px;
}
.date-request h2 {
    font-size: 30px;
    margin-bottom: 14px;
}
.date-request>p:not(.eyebrow) {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.8;
    margin-bottom: 25px;
}
.date-request input[readonly] {
    background: #f0ede4;
}
.calendar-help {
    background: var(--cream);
    padding: 70px 0;
}
.calendar-help .section-wrap {
    max-width: 850px;
}
.calendar-help h2 {
    font-size: 38px;
    margin-bottom: 15px;
}
.calendar-help p:not(.eyebrow) {
    font-size: 13px;
    color: var(--muted);
    max-width: 600px;
    margin-bottom: 25px;
}
.availability-page .site-footer {
    margin-top: 0;
}
@media(max-width:900px) {
    .nav-links {
        gap: 17px;
    }
    .hero {
        min-height: 620px;
    }
    .hero-content {
        margin-left: 7%;
    }
    .intro {
        grid-template-columns: .7fr 2fr;
        gap: 30px;
    }
    .intro-stat {
        grid-column: 2;
        border-left: 0;
        padding-left: 0;
        margin-top: 0;
    }
    .experience-grid {
        grid-template-columns: repeat(2,1fr);
    }
    .experience-card {
        min-height: 470px;
    }
    .bespoke {
        gap: 7%;
    }
    .bespoke-image {
        height: 570px;
    }
    .enquiry {
        gap: 6%;
    }
    .calendar-layout {
        gap: 4%;
        grid-template-columns: 1.1fr .9fr;
    }
    .calendar-panel {
        padding: 20px;
    }
    .calendar-day {
        height: 44px;
    }
    .date-request {
        padding: 23px;
    }
}
@media(max-width:640px) {
    .site-header {
        height: 70px;
        padding: 0 5%;
    }
    .brand {
        font-size: 12px;
        letter-spacing: 1.4px;
    }
    .brand-mark {
        font-size: 25px;
    }
    .menu-toggle {
        display: block;
        color: var(--ink);
    }
    .nav-links {
        display: none;
        position: absolute;
        top: 70px;
        left: 0;
        right: 0;
        background: var(--paper);
        padding: 20px 6%;
        border-bottom: 1px solid var(--line);
        align-items: stretch;
        gap: 0;
        flex-direction: column;
    }
    .nav-links.open {
        display: flex;
    }
    .nav-links a {
        padding: 12px 0;
    }
    .nav-links .nav-cta {
        padding: 12px;
        margin-top: 8px;
        text-align: center;
    }
    .hero {
        height: calc(100svh - 70px);
        min-height: 600px;
        background-position: 58% center;
    }
    .hero-shade {
        background: linear-gradient(90deg,rgba(10,20,19,.86),rgba(10,20,19,.48)),linear-gradient(0deg,rgba(10,20,19,.45),transparent);
    }
    .hero-content {
        margin: 0;
        padding: 25px 7%;
    }
    .hero h1 {
        font-size: clamp(43px,11vw,62px);
    }
    .hero-copy {
        font-size: 14px;
    }
    .hero-note {
        margin-top: 45px;
    }
    .hero-caption {
        left: 6%;
        right: 6%;
        font-size: 8px;
    }
    .section-wrap {
        width: 88%;
    }
    .intro {
        display: block;
        padding-top: 70px;
        padding-bottom: 75px;
    }
    .intro-label {
        margin-bottom: 28px;
    }
    .intro h2,.section-heading h2,.bespoke h2,.process h2,.enquiry h2 {
        font-size: 39px;
    }
    .intro-stat {
        border-left: 0;
        padding: 20px 0 0;
        margin-top: 20px;
    }
    .experience-section {
        padding: 70px 0;
    }
    .section-heading {
        display: block;
    }
    .section-heading>p {
        margin-top: 20px;
    }
    .experience-grid {
        width: 88%;
        grid-template-columns: 1fr;
        gap: 13px;
    }
    .experience-card {
        min-height: 490px;
    }
    .card-content {
        padding: 30px;
    }
    .card-content h3 {
        font-size: 33px;
    }
    .bespoke {
        display: flex;
        flex-direction: column;
        gap: 45px;
        padding-top: 75px;
        padding-bottom: 80px;
    }
    .bespoke-image {
        height: 440px;
        width: 100%;
    }
    .image-stamp {
        right: -10px;
    }
    .bespoke-copy {
        width: 100%;
    }
    .process {
        padding: 75px 0;
    }
    .process h2 {
        margin-bottom: 30px;
    }
    .process-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .process-grid h3 {
        margin-top: 8px;
    }
    .enquiry {
        display: block;
        padding-top: 75px;
        padding-bottom: 80px;
    }
    .enquiry-copy {
        margin-bottom: 40px;
    }
    .enquiry-form {
        padding: 25px 19px;
    }
    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .site-footer {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 35px 6% 22px;
    }
    .site-footer>div {
        justify-content: flex-start;
        margin-top: 8px;
    }
    .site-footer small {
        grid-column: 1;
    }
    .calendar-hero {
        padding: 65px 7% 58px;
    }
    .calendar-hero h1 {
        font-size: 43px;
    }
    .calendar-layout {
        display: flex;
        flex-direction: column;
        gap: 35px;
        padding-top: 45px;
        padding-bottom: 60px;
    }
    .calendar-panel,.date-request {
        width: 100%;
        padding: 18px;
    }
    .calendar-head h2 {
        font-size: 27px;
    }
    .weekdays,.calendar-grid {
        gap: 3px;
    }
    .calendar-day {
        height: 42px;
        font-size: 11px;
    }
    .calendar-legend {
        gap: 10px;
    }
    .calendar-help {
        padding: 55px 0;
    }
    .calendar-help h2 {
        font-size: 32px;
    }
}
.hero-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 220px;
    background: #080b0a;
    border: 2px solid #c28c4b;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.4);
}
.hero-video video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: absolute;
    inset: 0;
}
@media (max-width: 768px) {
    .hero-video {
        width: 100%;
        min-height: 180px;
    }
}


/* --------------------------------------------------------------------------
   Responsive hero layout: text beside video on desktop, stacked on mobile
   -------------------------------------------------------------------------- */
.hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
    align-items: center;
    gap: clamp(24px, 4vw, 64px);
    height: auto;
    min-height: 690px;
    padding: 60px 8%;
}

.hero-shade {
    z-index: 0;
}

.hero-content,
.hero-video {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.hero-content {
    max-width: none;
    margin-left: 0;
    padding: 30px 0;
}

.hero-video {
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
    background: #080b0a;
    border: 2px solid var(--gold);
    border-radius: 8px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.4);
}

.hero-video video {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.hero-caption {
    z-index: 2;
}

@media (max-width: 768px) {
    .hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
        height: auto;
        min-height: 0;
        padding: 48px 7% 85px;
        align-content: start;
    }

    .hero-content {
        margin: 0;
        padding: 0;
    }

    .hero-video {
        width: 100%;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .hero-note {
        margin-top: 32px;
    }

    .hero-caption {
        bottom: 20px;
    }
}
