/* Shared presentation for the generated by Petra market bundles. */
.international-header { position: sticky; top: 0; z-index: var(--z-header); border-bottom: 1px solid var(--gold-line); background: color-mix(in oklch, var(--surface) 96%, transparent); backdrop-filter: blur(14px); }
.international-header-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; min-height: 4.8rem; gap: clamp(1rem, 2vw, 2.5rem); }
.international-header .brand-mark { width: 7rem; min-width: 0; height: 3.8rem; border: 0; padding: 0; }
.international-nav { display: flex; justify-content: center; gap: clamp(0.9rem, 1.8vw, 2rem); }
.international-nav a, .international-languages a { color: var(--ink); font-size: 0.72rem; font-weight: 700; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.international-nav a[aria-current="page"], .international-languages a[aria-current="page"] { color: var(--accent-dark); }
.international-languages { display: flex; gap: .5rem; }
.international-languages a + a::before { margin-right: .5rem; color: var(--champagne); content: "·"; }
.international-menu-toggle { display: none; }
.international-header.is-gateway .international-header-inner { grid-template-columns: auto 1fr auto; }
.gateway-main { display: grid; min-height: calc(100dvh - 4.8rem); }
.gateway-choice { width: min(100%, 72rem); display: grid; align-content: center; justify-items: center; gap: clamp(2.8rem, 6vw, 5.4rem); padding-block: clamp(4rem, 8vw, 7rem); text-align: center; }
.gateway-choice-intro { display: grid; justify-items: center; }
.gateway-choice-intro h1 { max-width: 15ch; margin-top: .45rem; font-size: clamp(2.35rem, 4.5vw, 4.7rem); font-weight: 550; line-height: 1.03; }
.gateway-choice-intro p:not(.eyebrow) { max-width: 33rem; margin: 1rem auto 0; color: var(--ink-soft); font-size: clamp(.95rem, 1.25vw, 1.1rem); }
.gateway-options { width: min(100%, 69rem); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); }
.gateway-options a { display: grid; overflow: hidden; border: 1px solid var(--gold-line); border-radius: 1.15rem; padding: .5rem .5rem 0; color: var(--ink); background: color-mix(in oklch, var(--surface) 97%, var(--surface-blush)); text-decoration: none; transition: border-color 220ms var(--ease), box-shadow 280ms var(--ease), transform 280ms var(--ease); }
.gateway-card-image { width: 100%; aspect-ratio: 1.55 / 1; overflow: hidden; border-radius: .78rem; background: var(--surface-blush); }
.gateway-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 550ms var(--ease), filter 280ms var(--ease); }
.gateway-card-footer { display: grid; grid-template-columns: 2.3rem 1fr 1.5rem; align-items: center; gap: .85rem; min-height: 5.25rem; padding-inline: .65rem; font-family: var(--font-ui); font-size: clamp(.72rem, 1vw, .84rem); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.gateway-icon { display: grid; place-items: center; width: 2.15rem; aspect-ratio: 1; border: 0; border-radius: 0; box-shadow: none; color: var(--gold-ink); background: transparent; transition: transform 360ms var(--ease), color 220ms var(--ease); }
.gateway-icon svg, .gateway-icon.gateway-art-icon svg { width: 100%; height: 100%; fill: currentColor; stroke: none; }
.gateway-card-arrow { color: var(--gold-ink); font-family: var(--font-display); font-size: 1.85rem; font-weight: 400; line-height: 1; transition: color 220ms var(--ease), transform 280ms var(--ease); }
.gateway-options a:hover, .gateway-options a:focus-visible { border-color: var(--champagne); box-shadow: 0 1.25rem 2.25rem color-mix(in oklch, var(--accent-dark) 9%, transparent); transform: translateY(-.35rem); }
.gateway-options a:hover .gateway-card-image img, .gateway-options a:focus-visible .gateway-card-image img { filter: saturate(1.04); transform: scale(1.025); }
.gateway-options a:hover .gateway-icon, .gateway-options a:focus-visible .gateway-icon, .gateway-options a:hover .gateway-card-arrow, .gateway-options a:focus-visible .gateway-card-arrow { color: var(--accent-dark); }
.gateway-options a:hover .gateway-card-arrow, .gateway-options a:focus-visible .gateway-card-arrow { transform: translateX(.2rem); }
.gateway-options a:active { transform: translateY(-.1rem) scale(.99); }
.international-hero { padding-block: clamp(4rem, 9vw, 8rem); border-bottom: 1px solid var(--gold-line); }
.international-hero-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; gap: clamp(2rem, 6vw, 7rem); }
.international-hero-grid > div { grid-column: 1 / span 6; }
.international-hero-grid h1 { max-width: 10ch; }
.international-hero-grid p:not(.eyebrow) { max-width: 34rem; margin: 1.2rem 0 0; color: var(--ink-soft); }
.international-hero-grid > img { grid-column: 8 / span 5; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.international-hero.world-hero { position: relative; isolation: isolate; overflow: hidden; border-bottom: 0; background: #2a201e; color: var(--surface); }
.international-hero.world-hero::after, .art-hero::after { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, color-mix(in srgb, #171011 84%, transparent) 0%, color-mix(in srgb, #171011 64%, transparent) 46%, color-mix(in srgb, #171011 26%, transparent) 100%), linear-gradient(0deg, color-mix(in srgb, #171011 32%, transparent), transparent 52%); content: ""; pointer-events: none; }
.world-hero-banner, .art-hero-banner { position: absolute; inset: 0; z-index: 0; margin: 0; pointer-events: none; }
.world-hero-banner img, .art-hero-banner img { width: 100%; height: 100%; object-fit: cover; }
.international-hero.world-hero .international-hero-grid { position: relative; z-index: 2; display: block; min-height: clamp(30rem, 47vw, 45rem); padding-block: clamp(6rem, 13vw, 11rem); }
.international-hero.world-hero .international-hero-grid > div { max-width: 42rem; }
.international-hero.world-hero h1 { color: var(--surface); }
.international-hero.world-hero p:not(.eyebrow) { color: color-mix(in srgb, var(--surface) 86%, transparent); }
.international-service-grid, .international-journal-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2.5rem); padding-block: var(--section); }
.international-service-grid article, .international-journal-grid article { grid-column: span 4; display: flex; flex-direction: column; min-height: 28rem; border-top: 1px solid var(--gold-line); padding-top: 1rem; }
.international-service-grid article img, .international-journal-grid article img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.international-service-grid article > p:first-of-type { margin: 1rem 0 .45rem; color: var(--gold-ink); font-size: .69rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.international-service-grid h2, .international-journal-grid h2 { margin-top: .7rem; font-size: clamp(1.9rem, 3vw, 2.8rem); }
.international-service-grid article > p:not(:first-of-type), .international-journal-grid article > p { color: var(--ink-soft); line-height: 1.6; }
.international-service-grid .text-link, .international-journal-grid .text-link { margin-top: auto; padding-top: 1.2rem; }
.international-service-detail { display: grid; grid-template-columns: minmax(0, 2fr) minmax(15rem, .8fr); gap: clamp(2rem, 8vw, 9rem); padding-block: var(--section); }
.international-service-detail > div { max-width: 46rem; }
.international-service-detail h2 { max-width: 14ch; margin: .65rem 0 1.3rem; }
.international-service-detail p:not(.eyebrow) { max-width: 40rem; color: var(--ink-soft); font-size: clamp(1rem, 1.45vw, 1.18rem); line-height: 1.75; }
.international-service-detail .button { margin-top: 1.2rem; }
.international-service-detail aside { align-self: start; border-top: 1px solid var(--gold-line); padding-top: 1rem; }
.international-reading { width: min(100%, 62rem); padding-block: var(--section); }
.international-reading > p { color: var(--ink-soft); font-size: clamp(1.05rem, 1.7vw, 1.25rem); line-height: 1.75; }
.international-reading .button { margin-top: 1rem; }
.travel-introduction { max-width: 46rem; }
.travel-introduction h2 { max-width: 11ch; margin: 1.5rem 0 1rem; }
.travel-introduction p:not(.international-status) { color: var(--ink-soft); font-size: clamp(1.05rem, 1.65vw, 1.25rem); line-height: 1.72; }
.travel-introduction p + p { margin-top: 1rem; }
.artist-feature { margin-top: 3rem; border-block: 1px solid var(--gold-line); padding-block: 2.2rem; }
.artist-feature h2 { max-width: 14ch; margin: .7rem 0 1.4rem; }
.international-status { display: inline-block; margin-top: 2rem; border: 1px solid var(--champagne); padding: .4rem .75rem; color: var(--gold-ink) !important; font-size: .7rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.international-form { display: grid; gap: 1rem; margin-top: 2rem; }
.international-form label { display: grid; gap: .45rem; color: var(--ink); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.international-form input, .international-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 0; padding: .9rem; background: var(--surface); }
.international-form input:focus, .international-form textarea:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
.international-form [role="status"] { margin: 0; color: var(--success); }
.market-details { margin-top: 2.5rem; border-top: 1px solid var(--gold-line); padding-top: 1.3rem; color: var(--ink-soft); }
.market-details dt { margin-bottom: .5rem; color: var(--gold-ink); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.market-details dd { margin: .25rem 0; }
.international-article { padding-block: clamp(4rem, 9vw, 8rem); }
.international-article .container { width: min(100%, 48rem); }
.international-article h1 { max-width: 13ch; }
.international-lead { color: var(--ink-soft); font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.6; }
.international-meta { color: var(--gold-ink); font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.international-article img { width: 100%; margin: 2rem 0 3rem; aspect-ratio: 3 / 2; object-fit: cover; }
.international-article h2 { margin-top: 2.5rem; }
.international-article blockquote { margin: 2.5rem 0; border-left: 1px solid var(--champagne); padding-left: 1.5rem; color: var(--accent-dark); font-family: var(--font-display); font-size: clamp(1.6rem, 3vw, 2.35rem); line-height: 1.15; }
.art-page { background: var(--surface); color: var(--ink); }
.art-hero { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(30rem, 47vw, 45rem); border-bottom: 0; padding-block: clamp(6rem, 13vw, 11rem); background: #2a201e; color: var(--surface); }
.art-hero > .container { position: relative; z-index: 2; }
.art-hero h1 { max-width: 9ch; margin-top: .55rem; color: var(--surface); }
.art-hero p:not(.eyebrow) { max-width: 38rem; margin: 1.25rem 0 0; color: color-mix(in srgb, var(--surface) 86%, transparent); font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.7; }
.art-next-presentation { padding-block: clamp(2.8rem, 5vw, 5rem); border-bottom: 1px solid var(--gold-line); }
.art-next-presentation > div { width: min(100%, 39rem); }
.art-next-presentation h2 { max-width: 10ch; margin: .6rem 0 1rem; }
.art-next-presentation p:not(.eyebrow) { color: var(--ink-soft); font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.65; }
.art-artist { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5.5rem); padding-block: var(--section); }
.art-artist-intro { grid-column: 1 / span 5; align-self: end; }
.art-artist-intro h2 { margin-top: .6rem; font-size: clamp(3rem, 5vw, 5.6rem); }
.art-disciplines { margin: 1rem 0 0; color: var(--gold-ink); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.artwork-frame { position: relative; grid-column: 7 / span 6; display: block; min-height: 31rem; overflow: hidden; background: #191717; color: var(--surface); text-decoration: none; }
.artwork-frame img { width: 100%; height: 100%; min-height: 31rem; object-fit: cover; filter: saturate(.88) contrast(1.03); transition: transform 560ms var(--ease), filter 360ms var(--ease); }
.artwork-frame span { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; padding: .8rem 1rem; background: color-mix(in oklch, #151313 84%, transparent); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.artwork-frame:hover img, .artwork-frame:focus-visible img { filter: saturate(1) contrast(1.04); transform: scale(1.025); }
.art-biography { grid-column: 2 / span 7; margin-top: clamp(1rem, 8vw, 8rem); }
.art-biography p { max-width: 47rem; color: var(--ink-soft); font-size: clamp(1.05rem, 1.55vw, 1.22rem); line-height: 1.75; }
.art-biography p + p { margin-top: 1.1rem; }
.art-organiser { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.5rem; padding-block: clamp(2.5rem, 5vw, 4.5rem); border-top: 1px solid var(--gold-line); }
.art-organiser > div:first-child { grid-column: 1 / span 4; }
.art-organiser > div:last-child { grid-column: 6 / span 6; }
.art-organiser h2 { max-width: 14ch; margin-top: .6rem; }
.art-organiser p:not(.eyebrow) { max-width: 39rem; color: var(--ink-soft); font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.7; }
.art-statement { padding-block: clamp(4rem, 9vw, 8rem); border-block: 1px solid var(--gold-line); }
.art-statement blockquote { max-width: 17ch; margin: 0; color: var(--ink); font-family: var(--font-display); font-size: clamp(2.3rem, 5vw, 5.3rem); font-weight: 600; letter-spacing: -.025em; line-height: 1.06; text-wrap: balance; }
.art-facts-section { padding-block: var(--section); }
.art-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 2rem 0; border-top: 1px solid var(--gold-line); }
.art-facts > div { min-height: 7.7rem; padding: 1rem 1.1rem 1.25rem 0; border-bottom: 1px solid var(--gold-line); }
.art-facts > div:not(:nth-child(3n + 1)) { padding-left: 1.1rem; border-left: 1px solid var(--gold-line); }
.art-facts dt, .art-exhibitions-grid > article > p { color: var(--gold-ink); font-size: .67rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.art-facts dd { margin: .65rem 0 0; color: var(--ink); font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 1.8rem); font-weight: 600; line-height: 1.16; }
.art-exhibitions { padding-block: var(--section); background: color-mix(in oklch, var(--surface) 90%, #151313); }
.art-exhibitions > div:first-child h2 { max-width: 12ch; margin-top: .6rem; }
.art-exhibitions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 3.2rem; border-top: 1px solid var(--gold-line); }
.art-exhibitions-grid > article { display: grid; align-content: start; gap: 1rem; min-height: 21rem; padding: 1.25rem 1.4rem 1.5rem 0; border-bottom: 1px solid var(--gold-line); }
.art-exhibitions-grid > article + article { padding-left: 1.4rem; border-left: 1px solid var(--gold-line); }
.art-exhibitions-grid strong { color: var(--ink); font-family: var(--font-display); font-size: clamp(2.7rem, 5vw, 4.7rem); font-weight: 600; letter-spacing: -.035em; line-height: 1; }
.art-exhibitions-grid span { color: var(--ink-soft); line-height: 1.65; }
.art-exhibitions-grid small { color: var(--gold-ink); font-size: .68rem; font-weight: 700; letter-spacing: .08em; line-height: 1.45; text-transform: uppercase; }
.art-upcoming-item { display: grid; gap: .35rem; padding: .95rem 0; border-top: 1px solid var(--line); }
.art-upcoming-item h3 { font-size: 1.5rem; }
.art-upcoming-item p { margin: 0; color: var(--ink-soft); line-height: 1.45; }
.art-enquiry { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding-block: clamp(4rem, 8vw, 7rem); }
.art-enquiry h2 { max-width: 11ch; margin-top: .55rem; }
.international-footer { border-top: 1px solid var(--gold-line); padding-block: 3rem 2rem; }
.international-footer > .container { display: flex; justify-content: space-between; gap: 2rem; }
.international-footer img { width: 8rem; height: 4.4rem; object-fit: contain; }
.international-footer p { margin: .8rem 0 0; color: var(--ink-soft); font-size: .8rem; }
.international-footer nav { display: flex; max-width: 34rem; justify-content: flex-end; flex-wrap: wrap; align-content: start; gap: .7rem 1.2rem; }
.international-footer nav a { font-size: .67rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.international-footer > p { width: min(100% - 2rem, var(--container)); margin: 2rem auto 0; border-top: 1px solid var(--line); padding-top: 1rem; }
.international-consent { position: fixed; right: 1rem; bottom: 1rem; z-index: var(--z-modal); width: min(calc(100% - 2rem), 32rem); border: 1px solid var(--ink); padding: 1.3rem; background: var(--surface); }
.international-consent h2, .international-consent-dialog h2 { font-size: 2rem; }
.international-consent p { color: var(--ink-soft); font-size: .88rem; line-height: 1.55; }
.international-consent > div, .international-consent-dialog > div { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.international-consent-dialog { width: min(calc(100% - 2rem), 35rem); border: 1px solid var(--ink); border-radius: 6px; padding: 1.5rem; }
.international-consent-dialog label { display: block; padding: .65rem 0; border-bottom: 1px solid var(--line); }
@media (max-width: 68rem) { .international-header-inner { grid-template-columns: 1fr auto auto; } .international-menu-toggle { display: inline-flex; border: 0; padding: .7rem; background: transparent; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; } .international-nav { position: fixed; top: 4.8rem; right: 0; left: 0; display: none; flex-direction: column; padding: 1rem var(--gutter) 2rem; border-bottom: 1px solid var(--gold-line); background: var(--surface); } .international-nav.is-open { display: flex; } .international-nav a { min-height: 3rem; display: flex; align-items: center; border-bottom: 1px solid var(--line); font-family: var(--font-display); font-size: 1.7rem; font-weight: 500; letter-spacing: -.02em; text-transform: none; } }
@media (max-width: 48rem) { .international-header-inner { min-height: 4rem; gap: .8rem; } .international-header .brand-mark { width: 5.9rem; height: 3.2rem; } .international-languages { gap: .3rem; } .international-languages a, .international-menu-toggle { font-size: .64rem; } .international-languages a + a::before { margin-right: .3rem; } .international-nav { top: 4rem; } .gateway-main { min-height: calc(100dvh - 4rem); } .gateway-choice { gap: clamp(2.5rem, 12vw, 4.5rem); padding-block: 3.5rem; } .gateway-choice-intro h1 { font-size: clamp(2.35rem, 10vw, 3.2rem); } .gateway-choice-intro p:not(.eyebrow) { max-width: 28rem; } .gateway-options { grid-template-columns: 1fr; gap: 1rem; width: min(100%, 25rem); } .gateway-options a { padding: .45rem .45rem 0; } .gateway-card-image { aspect-ratio: 1.75 / 1; } .gateway-card-footer { min-height: 4.7rem; } .international-hero-grid { display: block; } .international-hero-grid > img { margin-top: 2rem; } .international-hero.world-hero .international-hero-grid { min-height: 31rem; padding-block: 6rem 4.5rem; } .international-service-grid, .international-journal-grid { display: block; } .international-service-grid article, .international-journal-grid article { min-height: 0; margin-bottom: 2.5rem; } .international-service-detail { grid-template-columns: 1fr; gap: 2rem; } .art-hero { min-height: 31rem; padding-block: 6rem 4.5rem; } .art-next-presentation { display: block; } .art-artist { display: block; } .artwork-frame { min-height: 23rem; margin-top: 2.5rem; } .artwork-frame img { min-height: 23rem; } .art-biography { margin-top: 2.5rem; } .art-organiser { display: block; } .art-organiser > div:last-child { margin-top: 1.3rem; } .art-statement blockquote { font-size: clamp(2.25rem, 12vw, 3.4rem); } .art-facts, .art-exhibitions-grid { grid-template-columns: 1fr; } .art-facts > div, .art-facts > div:not(:nth-child(3n + 1)), .art-exhibitions-grid > article, .art-exhibitions-grid > article + article { min-height: 0; padding: 1rem 0 1.3rem; border-left: 0; } .art-enquiry { display: grid; align-items: start; } .international-footer > .container { display: block; text-align: center; } .international-footer img { margin-inline: auto; } .international-footer nav { justify-content: center; margin-top: 2rem; } .international-footer > p { text-align: center; } .international-consent { right: .75rem; bottom: .75rem; } }
@media (prefers-reduced-motion: reduce) { .gateway-options a, .gateway-icon, .gateway-options a::after { transition: none; } .gateway-options a:hover .gateway-icon, .gateway-options a:focus-visible .gateway-icon { transform: none; } }
@media (max-width: 48rem) { .gateway-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; width: min(100%, 25rem); } .gateway-options a { min-width: 0; border: 0; border-radius: 0; padding: .7rem .2rem; background: transparent; box-shadow: none; } .gateway-card-image, .gateway-card-arrow { display: none; } .gateway-card-footer { grid-template-columns: 1fr; justify-items: center; gap: .6rem; min-height: 6.1rem; padding: .25rem 0; text-align: center; font-size: .61rem; letter-spacing: .08em; } .gateway-icon { width: 2.45rem; color: var(--gold-ink); } .gateway-options a:hover, .gateway-options a:focus-visible { border-color: transparent; box-shadow: none; transform: translateY(-.15rem); } .gateway-options a:active { transform: scale(.97); } }

/* Travel accommodation demonstration. The visual tiles are intentionally replaceable placeholders. */
.travel-intro { padding-block: clamp(4rem, 9vw, 8rem) clamp(3rem, 6vw, 5.5rem); }
.travel-intro h2 { max-width: 10ch; margin: .65rem 0 1.1rem; font-size: clamp(2.8rem, 5.5vw, 5.8rem); }
.travel-intro > p:not(.eyebrow) { max-width: 48rem; color: var(--ink-soft); font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.7; }
.travel-demo-note { margin-top: 1.5rem; color: var(--gold-ink) !important; font-size: .75rem !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.travel-intro .travel-intro-lead { max-width: 50rem; margin: .7rem 0 0; color: var(--ink); font-family: var(--font-display); font-size: clamp(1.7rem, 3.3vw, 3.15rem); font-weight: 600; letter-spacing: -.025em; line-height: 1.13; text-wrap: balance; }
.travel-intro .travel-demo-note { max-width: 43rem; margin-top: 1.4rem; }
.travel-collection { padding-bottom: var(--section); }
.travel-collection-heading, .travel-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2rem, 4vw, 3.6rem); }
.travel-collection-heading h2, .travel-section-heading h2 { max-width: 12ch; margin-top: .6rem; font-size: clamp(2.3rem, 4.3vw, 4.5rem); }
.travel-section-heading > p { max-width: 25rem; margin: 0; color: var(--ink-soft); line-height: 1.55; }
.stay-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.2rem, 2.5vw, 2.5rem); }
.stay-card { display: flex; flex-direction: column; min-width: 0; border-top: 1px solid var(--gold-line); }
.stay-card-media { margin-top: 1rem; }
.stay-card-main { display: flex; flex: 1; flex-direction: column; padding: 1.25rem 0 .2rem; }
.stay-card h2 { margin: .6rem 0 .55rem; font-size: clamp(2rem, 3vw, 3.2rem); }
.stay-card-main > p:not(.eyebrow) { color: var(--ink-soft); line-height: 1.62; }
.stay-card-location { min-height: 1.6rem; color: var(--gold-ink) !important; font-size: .76rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.stay-card-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1.4rem 0; border-block: 1px solid var(--line); }
.stay-card-facts > div { padding: .7rem .35rem .7rem 0; }
.stay-card-facts > div + div { padding-left: .55rem; border-left: 1px solid var(--line); }
.stay-card-facts dt, .travel-price-grid span { color: var(--gold-ink); font-size: .62rem; font-weight: 700; letter-spacing: .085em; text-transform: uppercase; }
.stay-card-facts dd { margin: .3rem 0 0; font-family: var(--font-display); font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.stay-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1.4rem; }
.stay-card-footer > span { color: var(--gold-ink); font-size: .68rem; font-weight: 700; letter-spacing: .065em; text-transform: uppercase; }
.stay-list { border-top: 1px solid var(--gold-line); }
.stay-list-item { display: grid; grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr) minmax(12rem, 14rem); gap: clamp(1.25rem, 3vw, 3rem); align-items: stretch; padding-block: clamp(1.25rem, 2.5vw, 2.15rem); border-bottom: 1px solid var(--gold-line); }
.stay-list-media .stay-visual { min-height: 100%; height: 100%; aspect-ratio: 1.16 / 1; }
.stay-list-main { min-width: 0; padding-block: .1rem; }
.stay-list-main h2 { margin: .45rem 0 .5rem; font-size: clamp(2rem, 3.4vw, 3.45rem); line-height: 1.04; text-wrap: balance; }
.stay-list-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1.15rem 0; border-block: 1px solid var(--line); }
.stay-list-facts > div { min-width: 0; padding: .7rem .45rem .7rem 0; }
.stay-list-facts > div + div { padding-left: .65rem; border-left: 1px solid var(--line); }
.stay-list-facts dt { color: var(--gold-ink); font-size: .58rem; font-weight: 700; letter-spacing: .075em; line-height: 1.25; text-transform: uppercase; }
.stay-list-facts dd { margin: .32rem 0 0; overflow-wrap: anywhere; font-family: var(--font-display); font-size: clamp(1rem, 1.35vw, 1.25rem); line-height: 1.15; }
.stay-list-description { max-width: 48rem; margin: 0; color: var(--ink-soft); line-height: 1.6; }
.stay-list-availability { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: .85rem; min-width: 0; border-left: 1px solid var(--line); padding-left: clamp(1rem, 2vw, 2rem); }
.stay-list-status { display: flex; align-items: center; gap: .45rem; margin: 0; color: var(--gold-ink); font-size: .62rem; font-weight: 700; letter-spacing: .075em; line-height: 1.35; text-transform: uppercase; }
.stay-list-status span { width: .45rem; height: .45rem; flex: 0 0 auto; border-radius: 50%; background: var(--gold-ink); }
.stay-list-price { margin: 0; color: var(--ink); font-family: var(--font-display); font-size: clamp(1.2rem, 1.7vw, 1.55rem); font-weight: 600; line-height: 1.15; }
.stay-list-availability .button { width: 100%; justify-content: center; text-align: center; white-space: nowrap; }
.stay-list-availability .text-link { align-self: start; padding-top: .1rem; }
.stay-visual, .stay-gallery-thumb { position: relative; display: block; width: 100%; min-height: 18rem; overflow: hidden; border: 0; padding: 0; color: var(--surface); background: #d4ac8c; text-align: left; }
.stay-gallery-thumb { cursor: zoom-in; }
.stay-gallery-thumb:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.stay-visual-art { position: absolute; inset: 0; display: block; background: linear-gradient(135deg, rgb(255 255 255 / .24), transparent 38%), linear-gradient(165deg, rgb(57 45 41 / .22), transparent 55%); transition: transform 650ms var(--ease), filter 340ms var(--ease); }
.stay-visual-art::before, .stay-visual-art::after { position: absolute; content: ""; }
.stay-visual-art::before { width: 58%; height: 58%; right: -11%; bottom: -22%; border-radius: 50%; background: rgb(255 249 231 / .52); filter: blur(1px); }
.stay-visual-art::after { width: 47%; height: 2px; left: 10%; bottom: 22%; background: rgb(255 255 255 / .62); box-shadow: 0 2.2rem 0 rgb(255 255 255 / .18), 13rem -7.5rem 0 rgb(104 62 53 / .28); transform: rotate(-12deg); }
.stay-visual-coastal { background: linear-gradient(150deg, #d7b297 0%, #cf9680 36%, #8b5b54 37%, #785656 61%, #e1c49e 62%, #e6d4b6 100%); }
.stay-visual-garden { background: linear-gradient(150deg, #b9aa7f 0%, #d8c39f 40%, #899371 41%, #65755e 65%, #c7a687 66%, #dfcdb1 100%); }
.stay-visual-residence { background: linear-gradient(150deg, #c7a995 0%, #d9c4af 35%, #826d67 36%, #504c50 64%, #c7a083 65%, #e2cab0 100%); }
.stay-visual-shot-1 .stay-visual-art { transform: scale(1.08) translate(-4%, 5%); filter: saturate(.78); }
.stay-visual-shot-2 .stay-visual-art { transform: scale(1.04) translate(5%, -5%); filter: contrast(1.08); }
.stay-visual-shot-3 .stay-visual-art { transform: scale(1.12) translate(2%, 4%); filter: brightness(.88); }
.stay-visual-shot-4 .stay-visual-art { transform: scale(1.06) translate(-5%, -2%); filter: saturate(1.18); }
.stay-visual-caption { position: absolute; right: .8rem; bottom: .75rem; left: .8rem; z-index: 1; color: rgb(255 255 255 / .92); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.stay-gallery-thumb:hover .stay-visual-art { transform: scale(1.035); filter: saturate(1.1); }
.stay-gallery-thumb:hover .stay-visual-shot-1, .stay-gallery-thumb:hover .stay-visual-shot-2, .stay-gallery-thumb:hover .stay-visual-shot-3, .stay-gallery-thumb:hover .stay-visual-shot-4 { transform: scale(1.1); }
.travel-contact-strip { border-block: 1px solid var(--gold-line); padding-block: clamp(3rem, 6vw, 6rem); background: color-mix(in oklch, var(--surface) 91%, var(--surface-blush)); }
.travel-contact-strip > div { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.travel-contact-strip h2 { max-width: 14ch; margin-top: .55rem; font-size: clamp(2.2rem, 4vw, 4.2rem); }
.travel-contact-strip > .travel-contact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(18rem, .65fr); align-items: start; gap: clamp(2rem, 8vw, 8rem); }
.travel-contact-grid > div > p:not(.eyebrow) { max-width: 34rem; color: var(--ink-soft); font-size: 1.05rem; line-height: 1.7; }
.travel-contact-form { display: grid; gap: .9rem; padding-top: .15rem; border-top: 1px solid var(--gold-line); }
.travel-contact-form label { display: grid; gap: .38rem; color: var(--ink); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.travel-contact-form input, .travel-contact-form textarea { min-height: 2.8rem; width: 100%; border: 1px solid var(--line); border-radius: 0; padding: .65rem .7rem; color: var(--ink); background: var(--surface); font: inherit; letter-spacing: normal; text-transform: none; }
.travel-contact-form textarea { min-height: 6.7rem; resize: vertical; }
.travel-contact-form input:focus, .travel-contact-form textarea:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
.travel-contact-form .button { justify-self: start; }
.travel-booking-page { padding-block: clamp(3rem, 7vw, 7rem) var(--section); background: color-mix(in oklch, var(--surface) 94%, var(--surface-blush)); }
.travel-booking-intro { max-width: 52rem; }
.travel-booking-intro .travel-back { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.travel-booking-intro h1 { max-width: 10ch; margin: .65rem 0 1rem; font-size: clamp(3rem, 6vw, 6rem); text-wrap: balance; }
.travel-booking-intro > p:not(.eyebrow) { max-width: 41rem; color: var(--ink-soft); font-size: clamp(1.05rem, 1.6vw, 1.22rem); line-height: 1.7; }
.travel-booking-engine { margin-top: clamp(3rem, 7vw, 6.5rem); padding: clamp(1rem, 2.5vw, 2rem); border-block: 1px solid var(--gold-line); background: var(--surface); }
#nobeds-widget { width: 100%; min-width: 0; overflow: hidden; }
#nobeds-booking-frame { display: block; width: 100%; max-width: 100%; min-height: 600px; border: 0; }
#nobeds-widget > div { color: var(--ink-soft); }
#nobeds-widget > div a { color: inherit; }
.travel-direct-booking { display: grid; grid-template-columns: minmax(16rem, .55fr) minmax(0, 1.15fr); align-items: start; gap: clamp(2rem, 7vw, 7rem); padding-block: clamp(4rem, 8vw, 8rem); }
.travel-direct-booking-intro { position: sticky; top: 2rem; }
.travel-direct-booking-intro h2 { max-width: 10ch; margin: .6rem 0 1rem; font-size: clamp(2.35rem, 4.2vw, 4.8rem); line-height: 1.03; text-wrap: balance; }
.travel-direct-booking-intro > p:not(.eyebrow) { max-width: 27rem; color: var(--ink-soft); line-height: 1.7; }
.travel-direct-booking-engine { min-width: 0; padding: clamp(1rem, 2.5vw, 2rem); border-block: 1px solid var(--gold-line); background: var(--surface); }
.travel-detail-hero { position: relative; overflow: hidden; padding-block: clamp(2rem, 4vw, 3.5rem) clamp(4rem, 8vw, 8rem); background: color-mix(in oklch, var(--surface) 87%, var(--surface-blush)); }
.travel-back { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--ink); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.travel-back:hover { color: var(--accent-dark); }
.travel-detail-hero-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; gap: clamp(2rem, 5vw, 6rem); margin-top: clamp(2rem, 5vw, 5rem); }
.travel-detail-hero-grid > div:first-child { grid-column: 1 / span 6; }
.travel-detail-hero h1 { max-width: 9ch; margin: .65rem 0 1rem; font-size: clamp(3.7rem, 7vw, 7.2rem); }
.travel-detail-hero-grid > div:first-child > p:not(.eyebrow) { max-width: 38rem; color: var(--ink-soft); font-size: clamp(1.1rem, 1.8vw, 1.35rem); line-height: 1.65; }
.travel-detail-location { margin-top: 1.25rem; color: var(--gold-ink) !important; font-size: .72rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.travel-hero-media { grid-column: 8 / span 5; }
.travel-hero-media .stay-visual { min-height: clamp(20rem, 34vw, 33rem); }
.travel-gallery-section { padding-block: var(--section); }
.stay-gallery-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: .75rem; }
.stay-gallery-grid > :first-child { grid-column: span 7; grid-row: span 2; min-height: 38rem; }
.stay-gallery-grid > :not(:first-child) { grid-column: span 5; min-height: 18.6rem; }
.travel-details-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(2rem, 8vw, 8rem); padding-block: var(--section); border-top: 1px solid var(--gold-line); }
.travel-details-grid article { grid-column: 1 / span 7; }
.travel-details-grid article h2 { max-width: 10ch; margin: .6rem 0 1.4rem; font-size: clamp(2.5rem, 5vw, 5rem); }
.travel-details-grid article p:not(.eyebrow) { max-width: 45rem; color: var(--ink-soft); font-size: clamp(1.05rem, 1.6vw, 1.23rem); line-height: 1.75; }
.travel-details-grid article p + p { margin-top: 1rem; }
.travel-details-grid aside { grid-column: 9 / span 4; align-self: end; }
.stay-detail-facts, .travel-definition-list { margin: 1.1rem 0 0; border-top: 1px solid var(--gold-line); }
.stay-detail-facts > div, .travel-definition-list > div { display: grid; grid-template-columns: minmax(7rem, .7fr) 1.3fr; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.stay-detail-facts dt, .travel-definition-list dt { color: var(--gold-ink); font-size: .67rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.stay-detail-facts dd, .travel-definition-list dd { margin: 0; color: var(--ink); line-height: 1.4; }
.travel-information-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 8vw, 8rem); padding-block: 0 var(--section); }
.travel-information-grid article { padding-top: 1.3rem; border-top: 1px solid var(--gold-line); }
.travel-list { display: grid; gap: .6rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.travel-list li { position: relative; padding-left: 1.25rem; color: var(--ink-soft); line-height: 1.55; }
.travel-list li::before { position: absolute; left: 0; color: var(--gold-ink); content: "•"; }
.travel-pricing { padding-block: var(--section); background: color-mix(in oklch, var(--surface) 91%, var(--surface-blush)); }
.travel-price-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--gold-line); }
.travel-price-grid > div { display: grid; gap: .8rem; min-height: 8rem; padding: 1.2rem 1rem 1.2rem 0; border-bottom: 1px solid var(--gold-line); }
.travel-price-grid > div + div { padding-left: 1rem; border-left: 1px solid var(--gold-line); }
.travel-price-grid strong { font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 600; line-height: 1.15; }
.travel-enquiry { display: grid; grid-template-columns: minmax(0, .9fr) minmax(20rem, .8fr); gap: clamp(2rem, 8vw, 9rem); padding-block: var(--section); }
.travel-enquiry-intro h2 { max-width: 13ch; margin: .6rem 0 1.8rem; font-size: clamp(2.3rem, 4.7vw, 4.7rem); }
.availability-calendar { border-top: 1px solid var(--gold-line); }
.availability-calendar-head { display: flex; justify-content: space-between; padding: 1rem 0; color: var(--gold-ink); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.availability-weekdays, .availability-days { display: grid; grid-template-columns: repeat(7, 1fr); }
.availability-weekdays { border-top: 1px solid var(--line); color: var(--ink-soft); font-size: .62rem; font-weight: 700; text-align: center; }
.availability-weekdays span { padding: .7rem .15rem; }
.availability-days { border-left: 1px solid var(--line); }
.availability-days button { min-height: 2.8rem; border: 0; border-right: 1px solid var(--line); border-top: 1px solid var(--line); color: var(--ink); background: transparent; font-family: var(--font-ui); font-size: .75rem; transition: color 180ms var(--ease), background 180ms var(--ease); }
.availability-days button:not(:disabled):hover, .availability-days button:not(:disabled):focus-visible { color: var(--surface); background: var(--accent-dark); outline: 0; }
.availability-days button:disabled { opacity: .25; }
.travel-enquiry-form-wrap { display: grid; gap: 1.5rem; align-content: start; }
.travel-date-form { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; padding: 1rem; background: color-mix(in oklch, var(--surface) 93%, var(--surface-blush)); }
.travel-date-form label:last-of-type { grid-column: span 2; }
.travel-date-form .button { grid-column: span 2; justify-self: start; }
.travel-date-form label, .travel-enquiry-form label { display: grid; gap: .38rem; color: var(--ink); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.travel-date-form input, .travel-date-form select, .travel-enquiry-form input, .travel-enquiry-form select, .travel-enquiry-form textarea { min-height: 2.8rem; width: 100%; border: 1px solid var(--line); border-radius: 0; padding: .65rem .7rem; color: var(--ink); background: var(--surface); font: inherit; letter-spacing: normal; text-transform: none; }
.travel-date-form input:focus, .travel-date-form select:focus, .travel-enquiry-form input:focus, .travel-enquiry-form select:focus, .travel-enquiry-form textarea:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
.travel-enquiry-form { display: grid; gap: .9rem; }
.travel-enquiry-form label:nth-of-type(3), .travel-enquiry-form label:nth-of-type(4) { display: inline-grid; width: calc(50% - .3rem); }
.travel-enquiry-form label:nth-of-type(4) { margin-left: .6rem; }
.travel-enquiry-form .button { justify-self: start; }
.travel-form-status { min-height: 1.4rem; margin: 0; color: var(--gold-ink); font-size: .8rem; line-height: 1.5; }
.travel-gallery-dialog { width: min(calc(100% - 2rem), 70rem); border: 0; padding: 0; color: var(--surface); background: #171011; }
.travel-gallery-dialog::backdrop { background: rgb(23 16 17 / .75); backdrop-filter: blur(3px); }
.travel-gallery-dialog-inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, .35fr); min-height: min(80dvh, 43rem); }
.travel-dialog-media { min-height: 30rem; background: #8b5b54; }
.travel-dialog-media::before { display: block; width: 100%; height: 100%; min-height: 30rem; content: ""; background: linear-gradient(135deg, rgb(255 255 255 / .24), transparent 38%), linear-gradient(165deg, rgb(57 45 41 / .22), transparent 55%); }
.travel-dialog-media.is-coastal { background: linear-gradient(150deg, #d7b297 0%, #cf9680 36%, #8b5b54 37%, #785656 61%, #e1c49e 62%, #e6d4b6 100%); }
.travel-dialog-media.is-garden { background: linear-gradient(150deg, #b9aa7f 0%, #d8c39f 40%, #899371 41%, #65755e 65%, #c7a687 66%, #dfcdb1 100%); }
.travel-dialog-media.is-residence { background: linear-gradient(150deg, #c7a995 0%, #d9c4af 35%, #826d67 36%, #504c50 64%, #c7a083 65%, #e2cab0 100%); }
.travel-dialog-copy { align-self: end; padding: 2.2rem; }
.travel-dialog-copy p { margin: 0 0 .6rem; color: #e3c788; font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.travel-dialog-copy h2 { margin: 0; color: var(--surface); font-size: clamp(2.1rem, 4vw, 4rem); }
.travel-dialog-close, .travel-dialog-actions button { border: 0; color: var(--surface); background: transparent; font-family: var(--font-display); cursor: pointer; }
.travel-dialog-close { position: absolute; top: .65rem; right: .8rem; z-index: 2; width: 2.75rem; height: 2.75rem; font-size: 2.2rem; line-height: 1; }
.travel-dialog-actions { position: absolute; right: 1.2rem; bottom: 1.2rem; display: flex; gap: .45rem; }
.travel-dialog-actions button { width: 2.75rem; height: 2.75rem; border: 1px solid rgb(255 255 255 / .45); font-size: 1.25rem; transition: background 180ms var(--ease), color 180ms var(--ease); }
.travel-dialog-close:hover, .travel-dialog-actions button:hover, .travel-dialog-close:focus-visible, .travel-dialog-actions button:focus-visible { color: #e3c788; outline: 2px solid #e3c788; outline-offset: 2px; }
@media (max-width: 68rem) { .stay-card-grid { grid-template-columns: 1fr 1fr; } .stay-card:last-child { grid-column: 1 / -1; max-width: calc(50% - .7rem); } .stay-list-item { grid-template-columns: 12rem minmax(0, 1fr); } .stay-list-availability { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; border-left: 0; border-top: 1px solid var(--line); padding: 1rem 0 0; } .stay-list-availability .button { width: auto; } .stay-list-availability .text-link { align-self: center; } .travel-detail-hero-grid > div:first-child { grid-column: 1 / span 7; } .travel-hero-media { grid-column: 9 / span 4; } .travel-price-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .travel-price-grid > div:nth-child(4) { border-left: 0; } }
@media (max-width: 48rem) { .travel-collection-heading, .travel-section-heading, .travel-contact-strip > div { display: grid; align-items: start; gap: 1.2rem; } .stay-card-grid, .travel-information-grid, .travel-enquiry { grid-template-columns: 1fr; } .stay-card:last-child { grid-column: auto; max-width: none; } .stay-list-item { grid-template-columns: 1fr; gap: 1.15rem; } .stay-list-media .stay-visual { min-height: 15rem; aspect-ratio: 1.4 / 1; } .stay-list-main h2 { font-size: clamp(2.15rem, 10vw, 3.1rem); } .stay-list-facts { grid-template-columns: 1fr 1fr; } .stay-list-facts > div:nth-child(3) { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); } .stay-list-facts > div:nth-child(4) { border-top: 1px solid var(--line); } .stay-list-availability { grid-column: auto; } .stay-list-availability .button { width: 100%; } .stay-visual, .stay-gallery-thumb { min-height: 15rem; } .travel-contact-strip .button { justify-self: start; } .travel-detail-hero { padding-bottom: 3.5rem; } .travel-detail-hero-grid { display: block; } .travel-hero-media { margin-top: 2rem; } .travel-hero-media .stay-visual { min-height: 19rem; } .stay-gallery-grid { grid-template-columns: 1fr 1fr; } .stay-gallery-grid > :first-child { grid-column: span 2; grid-row: auto; min-height: 21rem; } .stay-gallery-grid > :not(:first-child) { grid-column: auto; min-height: 11rem; } .travel-details-grid { display: block; } .travel-details-grid aside { margin-top: 2.4rem; } .travel-price-grid { grid-template-columns: 1fr 1fr; } .travel-price-grid > div:nth-child(even) { padding-left: 1rem; border-left: 1px solid var(--gold-line); } .travel-price-grid > div:nth-child(odd):not(:first-child) { border-left: 0; } .travel-enquiry { padding-top: 4rem; } .travel-enquiry-form label:nth-of-type(3), .travel-enquiry-form label:nth-of-type(4) { display: grid; width: auto; } .travel-enquiry-form label:nth-of-type(4) { margin-left: 0; } .travel-gallery-dialog-inner { display: block; min-height: 0; } .travel-dialog-media, .travel-dialog-media::before { min-height: 20rem; } .travel-dialog-copy { min-height: 12rem; padding: 1.5rem 1.2rem 4.8rem; } }
@media (max-width: 48rem) { .travel-contact-strip > .travel-contact-grid { grid-template-columns: 1fr; gap: 2rem; } .travel-contact-form .button { width: 100%; } }
@media (max-width: 48rem) { .travel-booking-page { padding-top: 2rem; } .travel-booking-engine { margin-inline: calc(var(--gutter) * -1); padding: 1rem var(--gutter); } }
@media (max-width: 48rem) { .travel-direct-booking { grid-template-columns: 1fr; gap: 2rem; padding-block: 4rem; } .travel-direct-booking-intro { position: static; } .travel-direct-booking-engine { margin-inline: calc(var(--gutter) * -1); padding: 1rem var(--gutter); } }
@media (prefers-reduced-motion: reduce) { .stay-visual-art, .stay-gallery-thumb, .availability-days button { transition: none; } }

/* Branded 404: a short detour back into the three by Petra worlds. */
.not-found-hero { overflow: hidden; border-bottom: 1px solid var(--gold-line); background: #21191b; color: var(--surface); }
.not-found-hero-inner { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; min-height: clamp(31rem, 62vh, 43rem); gap: clamp(2rem, 7vw, 8rem); padding-block: clamp(4rem, 9vw, 8rem); }
.not-found-copy { grid-column: 1 / span 6; position: relative; z-index: 1; }
.not-found-copy h1 { max-width: 7ch; margin: .65rem 0 1rem; color: var(--surface); font-size: clamp(3.6rem, 7.5vw, 7.5rem); line-height: .98; text-wrap: balance; }
.not-found-copy > p:not(.eyebrow) { max-width: 33rem; color: color-mix(in srgb, var(--surface) 82%, transparent); font-size: clamp(1.05rem, 1.65vw, 1.25rem); line-height: 1.7; }
.not-found-copy .button { margin-top: 1.8rem; color: var(--ink); background: var(--surface); }
.not-found-copy .button:hover, .not-found-copy .button:focus-visible { color: var(--surface); background: var(--accent-dark); }
.not-found-art { position: relative; grid-column: 8 / span 5; min-height: clamp(19rem, 31vw, 29rem); overflow: hidden; isolation: isolate; background: linear-gradient(145deg, #ad706c 0%, #814b5e 46%, #2c252b 47%, #161315 100%); }
.not-found-art::before, .not-found-art::after, .not-found-art span, .not-found-art i { position: absolute; display: block; content: ""; }
.not-found-art::before { inset: 9% 12% auto auto; width: 48%; aspect-ratio: 1; border: 1px solid rgb(255 239 205 / .55); border-radius: 50%; }
.not-found-art::after { width: 92%; height: 1px; right: -16%; bottom: 27%; background: rgb(255 239 205 / .6); transform: rotate(-36deg); }
.not-found-art span { width: 68%; height: 42%; left: -12%; bottom: -11%; background: #dfbd9c; transform: rotate(-16deg); }
.not-found-art i { width: 42%; aspect-ratio: 1; right: -13%; bottom: 8%; border-radius: 50%; background: rgb(255 242 211 / .48); }
.not-found-art b { position: absolute; z-index: 1; right: 7%; bottom: 5%; color: rgb(255 248 231 / .94); font-family: var(--font-display); font-size: clamp(4.5rem, 10vw, 10rem); font-weight: 600; letter-spacing: -.06em; line-height: .8; }
.not-found-worlds { padding-block: clamp(4rem, 8vw, 7rem); }
.not-found-worlds h2 { max-width: 13ch; margin: .65rem 0 clamp(2rem, 4vw, 3.5rem); font-size: clamp(2.3rem, 4.5vw, 4.8rem); text-wrap: balance; }
.not-found-worlds nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--gold-line); }
.not-found-worlds nav a { display: flex; align-items: center; justify-content: space-between; min-height: 8.5rem; gap: 1rem; padding: 1.2rem 1.3rem 1.2rem 0; color: var(--ink); border-bottom: 1px solid var(--gold-line); font-family: var(--font-display); font-size: clamp(1.7rem, 3vw, 3.1rem); font-weight: 600; letter-spacing: -.03em; line-height: 1; text-decoration: none; transition: color 220ms var(--ease), background 220ms var(--ease), padding 220ms var(--ease); }
.not-found-worlds nav a + a { padding-left: 1.3rem; border-left: 1px solid var(--gold-line); }
.not-found-worlds nav a span:last-child { color: var(--gold-ink); font-size: 1.6rem; font-weight: 400; transition: transform 220ms var(--ease); }
.not-found-worlds nav a:hover, .not-found-worlds nav a:focus-visible { color: var(--accent-dark); background: color-mix(in oklch, var(--surface-blush) 55%, transparent); outline: 0; }
.not-found-worlds nav a:hover span:last-child, .not-found-worlds nav a:focus-visible span:last-child { transform: translateX(.25rem); }
@media (max-width: 48rem) { .not-found-hero-inner { display: block; min-height: 0; padding-block: 4.5rem 0; } .not-found-art { min-height: 16rem; margin-top: 3.5rem; } .not-found-copy h1 { font-size: clamp(3.4rem, 16vw, 5.2rem); } .not-found-worlds nav { grid-template-columns: 1fr; } .not-found-worlds nav a, .not-found-worlds nav a + a { min-height: 5.2rem; padding: 1rem 0; border-left: 0; font-size: 2.1rem; } }
@media (prefers-reduced-motion: reduce) { .not-found-worlds nav a, .not-found-worlds nav a span:last-child { transition: none; } }
