:root {
    --ink: #1a2330;
    --muted: #5c675f;
    --sea: #0e6a62;
    --sea-deep: #083f3b;
    --sand: #f4efe6;
    --paper: #fbf8f3;
    --coral: #d85a32;
    --line: #e6dccb;
    --gold: #c9842a;
    --shadow: 0 18px 50px rgba(26, 35, 48, .12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: "Outfit", "Segoe UI", sans-serif;
    font-weight: 380;
    line-height: 1.55;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: "Fraunces", Georgia, serif; font-weight: 560; letter-spacing: -.03em; line-height: 1.08; }
button, input, select, textarea { font: inherit; color: inherit; }
.wrap { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
.eyebrow { letter-spacing: .16em; text-transform: uppercase; font-size: .75rem; color: var(--gold); font-weight: 600; }
.site-head { position: sticky; top: 0; z-index: 30; }
.top-bar {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 7px 18px;
    background: linear-gradient(90deg, #0c3b38, #0e6a62 62%, #c9842a);
    color: #fff;
}
.flags { display: flex; gap: 6px; align-items: center; }
.flags button {
    width: 30px; height: 22px; padding: 0; border: 2px solid transparent; border-radius: 4px;
    background: transparent; cursor: pointer; overflow: hidden; line-height: 0;
}
.flags button.on { border-color: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.35); }
.flags svg { width: 26px; height: 18px; display: block; }
.top-social { display: flex; gap: 6px; margin-left: auto; }
.top-social a {
    width: 28px; height: 28px; border-radius: 50%;
    display: grid; place-items: center;
    background: rgba(255,255,255,.16); color: #fff; text-decoration: none;
}
.top-social svg { width: 14px; height: 14px; fill: currentColor; }
.top-bar .top-phone { color: #fff; text-decoration: none; text-align: right; line-height: 1.15; font-weight: 700; }
.top-bar .top-phone small { display: block; font-weight: 600; color: #ffe7b0; font-size: .72rem; }
.top {
    position: relative;
    display: flex; align-items: center; flex-wrap: wrap; gap: 18px;
    padding: 12px 18px;
    background: rgba(251, 248, 243, .96);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
}
.brand { display: flex; gap: 10px; align-items: center; text-decoration: none; margin-right: auto; }
.brand strong { display: block; font-family: "Fraunces", serif; font-size: 1.15rem; }
.brand small { display: block; color: var(--muted); font-size: .75rem; max-width: 220px; }
.brand-rule { display: none; border: 0; }
.mark {
    width: 38px; height: 38px; border-radius: 50%;
    display: grid; place-items: center;
    background: var(--sea-deep); color: #f6e7c8;
    font-family: "Fraunces", serif;
}
.nav { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.nav a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; font-weight: 600; padding: 7px 10px; border-radius: 999px; }
.nav a svg { width: 16px; height: 16px; fill: var(--sea); flex: 0 0 auto; }
.nav a.on, .nav a:hover { background: #fff; }
.lang-switch {
    border: 1px solid var(--line); background: transparent; border-radius: 999px;
    padding: 6px 28px 6px 10px; font-size: .78rem; font-weight: 600;
}
.lang-picks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.lang-picks label { display: flex; gap: 8px; align-items: center; font-weight: 500; }
#google_translate_element { position: absolute; width: 1px; height: 1px; overflow: hidden; }
iframe.skiptranslate, .goog-te-banner-frame, #goog-gt-tt,
.goog-te-spinner-pos, .goog-te-spinner, .goog-te-balloon-frame, .goog-te-gadget,
.VIpgJd-ZVi9od-aZ2wEe, .VIpgJd-ZVi9od-aZ2wEe-wOHMyf, .VIpgJd-ZVi9od-aZ2wEe-OiiCO {
    display: none !important;
    visibility: hidden !important;
}
body { top: 0 !important; }
.top-wa, .btn, button, .book button {
    background: var(--coral); color: white; border: 0; border-radius: 999px;
    padding: 10px 16px; text-decoration: none; cursor: pointer; font-weight: 600;
}
.nav-toggle { display: none; background: #fff; color: #123a63; border: 1px solid #d7e2ee; border-radius: 999px; font-weight: 700; }
.hero { position: relative; min-height: 88vh; display: grid; align-items: end; color: white; }
.hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 28, 27, .78), rgba(8, 28, 27, .15) 70%); }
.hero-copy { position: relative; z-index: 1; width: min(760px, calc(100% - 32px)); margin: 0 0 48px 6vw; }
.hero h1 { font-size: clamp(2.4rem, 6vw, 5rem); margin: 8px 0 12px; }
.finder, .filters {
    display: grid; gap: 10px; margin-top: 22px;
    background: rgba(251, 248, 243, .95); color: var(--ink);
    padding: 12px; border-radius: 18px;
}
.finder label, .stack label, .book label, .login label { display: grid; gap: 6px; font-size: .85rem; font-weight: 600; }
input, select, textarea {
    width: 100%; border: 1px solid var(--line); background: white; border-radius: 12px; padding: 12px 14px;
}
.band { display: grid; grid-template-columns: repeat(3, 1fr); }
.band a { padding: 28px; text-decoration: none; border-bottom: 1px solid var(--line); background: white; }
.band a:nth-child(2) { background: var(--sea); color: white; }
.band strong { display: block; font-family: "Fraunces", serif; font-size: 1.6rem; margin-bottom: 6px; }
.section-head, .wrap > h2 { display: flex; justify-content: space-between; align-items: end; gap: 12px; }
.wrap { padding-top: 48px; padding-bottom: 20px; }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.card { background: white; border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); }
.card-media { position: relative; display: block; aspect-ratio: 4/3; background: #d9cbb6; }
.card-media img, .card-media .ph { width: 100%; height: 100%; object-fit: cover; }
.badges {
    position: absolute; left: 10px; top: 10px; z-index: 2;
    display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
    max-width: calc(100% - 20px); pointer-events: none;
}
.badge {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 9px 4px 6px; border-radius: 999px;
    background: rgba(10, 24, 42, .78); color: #fff;
    font-style: normal; font-size: 11px; font-weight: 700; line-height: 1;
    letter-spacing: .01em; backdrop-filter: blur(8px);
    box-shadow: 0 8px 18px rgba(0,0,0,.22);
}
.badge svg { width: 14px; height: 14px; fill: #f5b400; flex: 0 0 auto; }
.tour-hero .badges { left: 18px; top: 18px; }
.card-body { padding: 14px 16px 16px; }
.card h3 { margin: 4px 0 8px; font-size: 1.35rem; }
.card h3 a { text-decoration: none; }
.meta { color: var(--muted); font-size: .82rem; margin: 0; }
.card-foot { display: flex; justify-content: space-between; align-items: center; }
.card-foot a { color: var(--sea); font-weight: 700; }
.services { background: var(--sand); margin-top: 30px; }
.service-grid, .note-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.service-grid a, .note-grid a {
    background: white; border-radius: 16px; padding: 18px; text-decoration: none; min-height: 120px;
    display: flex; flex-direction: column; gap: 8px;
}
.service-grid b { font-family: "Fraunces", serif; font-size: 1.3rem; }
.plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.plan-card {
    display: flex; align-items: center; gap: 14px;
    min-height: 92px; padding: 14px 16px;
    background: #fff; border: 1px solid #e6eef6; border-radius: 18px;
    text-decoration: none; color: inherit;
    box-shadow: 0 10px 24px rgba(16, 42, 78, .06);
}
.plan-card i {
    width: 46px; height: 46px; border-radius: 14px;
    display: grid; place-items: center; flex: 0 0 auto;
}
.plan-card i svg { width: 22px; height: 22px; }
.plan-hotel i { background: #e7f6f3; color: #0d7a70; }
.plan-car i { background: #e8f0fb; color: #1d5fae; }
.plan-flight i { background: #fff4e4; color: #c97812; }
.plan-card span { display: grid; gap: 3px; min-width: 0; }
.plan-card b { font-size: 1.02rem; letter-spacing: -.02em; }
.plan-card em { font-style: normal; color: #5c6e82; font-size: .84rem; line-height: 1.35; }
.plan-card > svg { width: 16px; height: 16px; margin-left: auto; color: #9aabbd; flex: 0 0 auto; }
.plan-card:hover { border-color: #d5e4f2; transform: translateY(-1px); }
.plan-card:hover > svg { color: #123a63; }
.note-grid a img { width: calc(100% + 36px); height: 168px; object-fit: cover; margin: -18px -18px 4px; border-radius: 16px 16px 0 0; }
.home-panel {
    display: block;
    background: #fff;
    border-radius: 16px;
    padding: 18px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 10px 28px rgba(16, 42, 78, .08);
}
.home-panel b { display: block; font-size: 1.15rem; margin: 0 0 6px; }
.home-panel > span, .home-about span span { color: #5c6b7a; }
.home-about { display: grid; grid-template-columns: 180px 1fr; gap: 16px; align-items: center; }
.home-about img { width: 180px; height: 120px; object-fit: cover; border-radius: 12px; }
.home-contact { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; }
.home-contact p, .home-contact a { margin: 0; }
.page-hero { background: var(--sea-deep); color: white; padding: 28px 0 8px; }
.page-hero h1 { font-size: clamp(2.2rem, 5vw, 4rem); margin: 0; }
.section-banner {
    position: relative;
    min-height: 340px;
    display: grid;
    align-items: end;
    color: #10253f;
    overflow: hidden;
}
.section-banner img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}
.section-banner .wrap {
    padding-top: 0;
    padding-bottom: 0;
    width: min(640px, calc(100% - 32px));
    margin-left: max(16px, calc((100% - 1120px) / 2));
    margin-right: auto;
}
.section-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255, 253, 249, .97) 0%, rgba(255, 253, 249, .94) 34%, rgba(255, 253, 249, .82) 52%, rgba(255, 253, 249, .28) 72%, rgba(255, 253, 249, 0) 100%);
}
.section-banner-copy { position: relative; z-index: 1; max-width: 720px; padding: 92px 0 64px; }
.section-banner.has-stamp .section-banner-copy,
.section-banner.has-logos .section-banner-copy { padding-left: 200px; }
.section-banner img.banner-stamp {
    position: absolute;
    inset: auto;
    z-index: 2;
    left: 0;
    top: 50%;
    width: 168px;
    height: auto;
    object-fit: contain;
    background: none;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
    transform: translateY(-54%) rotate(-8deg);
    pointer-events: none;
}
.banner-logos {
    position: absolute;
    z-index: 2;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}
.section-banner .banner-logos img {
    position: static;
    inset: auto;
    width: auto;
    height: 74px;
    max-width: 168px;
    object-fit: contain;
    background: none;
    filter: drop-shadow(0 8px 12px rgba(16, 37, 63, .16));
}
.section-banner.has-stamp h1,
.section-banner.has-logos h1 { max-width: 11ch; font-size: clamp(2.1rem, 4vw, 3.4rem); color: #10253f; }
.section-banner.has-stamp p,
.section-banner.has-logos p { max-width: 36ch; color: #2c4156; }
.section-banner .section-banner-copy { padding-bottom: 48px; }
.section-banner .eyebrow { color: #c97812; }
.section-banner h1 { color: #10253f; margin: 6px 0 10px; font-size: clamp(2.4rem, 5vw, 4rem); }
.section-banner p { margin: 0; max-width: 540px; color: #3e5166; }
.pin-mark { display: block; overflow: visible; }
.pin-mark .pin-body { fill: currentColor; }
.banner-pin {
    width: 42px;
    height: 56px;
    margin: 0 0 10px 2px;
    filter: drop-shadow(0 8px 10px rgba(16, 37, 63, .24));
}
.pin-sec {
    width: 26px;
    height: 34px;
    margin: 0 0 8px;
    filter: drop-shadow(0 4px 6px rgba(16, 37, 63, .16));
}
.sec-eye .pin-sec {
    display: inline-block;
    width: 13px;
    height: 17px;
    margin: 0 1px 0 0;
    vertical-align: -3px;
    filter: none;
}
.pin-hero {
    width: 34px;
    height: 46px;
    margin: 0 0 8px;
    filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .28));
}
.banner-dock { position: relative; z-index: 2; margin-top: -28px; padding-top: 0; padding-bottom: 8px; }
.banner-dock .filters { margin-top: 0; box-shadow: 0 16px 40px rgba(16, 42, 78, .16); }
.filters { background: white; color: var(--ink); }
.empty { padding: 20px 0 40px; }
.tour-hero { position: relative; min-height: 460px; color: white; display: grid; align-items: end; }
.tour-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tour-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent, rgba(8,20,19,.82)); }
.tour-hero-copy { position: relative; z-index: 1; padding-bottom: 28px; }
.tour-layout { display: grid; grid-template-columns: 1.5fr .8fr; gap: 28px; align-items: start; }
.book {
    background: white; border-radius: 20px; padding: 18px; box-shadow: var(--shadow); position: sticky; top: 84px;
}
.price { font-family: "Fraunces", serif; font-size: 2.4rem; margin: 0; }
.price-note, .fine, .muted { color: var(--muted); }
.book ul { padding-left: 18px; }
.fare-list { display: grid; gap: 8px; margin: 12px 0 4px; }
.fare-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fare-row b { font-weight: 650; }
.stepper { display: inline-flex; align-items: center; }
.stepper button {
    width: 34px; height: 34px; padding: 0; border: 0; border-radius: 8px; color: #fff;
    font-size: 1.2rem; line-height: 1; cursor: pointer;
}
.stepper button[data-step="-1"] { background: #c4514a; }
.stepper button[data-step="1"] { background: #2c8f55; }
.stepper input {
    width: 38px; border: 0; background: transparent; text-align: center; font-weight: 700; padding: 0;
}
.fare-total { display: flex; justify-content: space-between; align-items: baseline; margin: 8px 0 12px; font-weight: 700; }
.fare-total strong { font-family: "Fraunces", serif; font-size: 1.35rem; }
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 18px; }
.gallery img { height: 140px; width: 100%; object-fit: cover; border-radius: 12px; }
.rich p { margin: 0 0 12px; }
.faq { background: white; border-radius: 12px; padding: 10px 14px; margin-bottom: 8px; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cover { width: 100%; border-radius: 18px; max-height: 460px; object-fit: cover; margin: 12px 0; }
.lead { font-size: 1.15rem; }
.contact { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.contact-page { display: grid; gap: 28px; padding-top: 36px; }
.contact-intro { max-width: 680px; }
.contact-intro h1 { margin: 0 0 10px; }
.contact-intro .lead { margin: 0; line-height: 1.6; }
.contact-layout { display: grid; grid-template-columns: 1fr .9fr; gap: 28px; align-items: start; }
.contact-side { display: grid; gap: 14px; align-content: start; }
.contact-facts { display: grid; gap: 10px; }
.contact-fact {
    display: flex; align-items: center; gap: 14px;
    background: #fff; border: 1px solid #e6edf5; border-radius: 16px;
    padding: 14px 16px; text-decoration: none; color: inherit;
}
.contact-fact i {
    width: 42px; height: 42px; border-radius: 12px;
    display: grid; place-items: center; flex: 0 0 auto;
    background: #e7f3f1; color: #0d7a70;
}
.contact-fact svg { width: 20px; height: 20px; }
.contact-fact > span { display: grid; gap: 2px; min-width: 0; }
.contact-fact b { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: #7d8da0; }
.contact-fact span span { font-weight: 700; color: #12304a; overflow-wrap: anywhere; }
.contact-social { display: flex; flex-wrap: wrap; gap: 8px; }
.contact-social a {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; border: 1px solid #e6edf5; border-radius: 999px;
    padding: 8px 14px; text-decoration: none; color: #12304a; font-weight: 700; font-size: .9rem;
}
.contact-social svg { width: 16px; height: 16px; fill: #0d7a70; }
.contact-sicil { margin: 0; color: #7d8da0; font-size: .88rem; letter-spacing: .03em; }
.contact-form h2 { margin: 0 0 6px; font-size: 1.35rem; }
.contact-form .fine { margin: 0 0 14px; }
.contact-map-band { width: 100%; margin-top: 8px; }
#office-map { width: 100%; height: 480px; background: #e7eef4; }
.office-logo {
    border-radius: 50%;
    border: 3px solid #fff;
    background: #fff;
    box-shadow: 0 8px 18px rgba(16, 37, 63, .35);
}
.office-pop { min-width: 180px; }
.office-pop strong { display: block; color: #10253f; }
.office-pop p { margin: 4px 0 8px; color: #3e5166; }
.office-pop a { color: #0d7a70; font-weight: 700; }
.foot {
    background: #0e1c33;
    color: #d5deea;
    margin-top: 48px;
    padding: 42px 6vw 16px;
}
.foot-grid { display: grid; grid-template-columns: 1.35fr .72fr .78fr 1fr .72fr; gap: 24px; }
.foot-brand { display: flex; align-items: center; gap: 12px; color: #fff; font-family: "Fraunces", Georgia, serif; font-size: 1.45rem; margin-bottom: 12px; text-decoration: none; }
.foot-brand img { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.foot h2 { color: #fff; font-size: 1rem; margin: 0 0 12px; font-family: "Outfit", sans-serif; letter-spacing: 0; display: flex; align-items: center; gap: 8px; }
.foot p { margin: 0; color: #b7c3d4; }
.foot a { color: #d5deea; text-decoration: none; }
.foot-links a, .foot-contact a, .foot-contact p { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
.foot svg { width: 16px; height: 16px; fill: #f5b400; flex: 0 0 auto; }
.foot svg.ico { fill: none; stroke: #f5b400; }
.socials { display: flex; gap: 8px; margin-top: 16px; }
.socials a {
    width: 36px; height: 36px; border-radius: 50%;
    display: grid; place-items: center;
    background: rgba(255,255,255,.08);
}
.socials svg { width: 16px; height: 16px; fill: #fff; }
.socials a:hover { background: #f5b400; }
.socials a:hover svg { fill: #1a140c; }
.tursab-logo { height: 58px; width: auto; mix-blend-mode: screen; display: block; }
.sicil { margin-top: 10px !important; letter-spacing: .04em; }
.sicil strong { color: #fff; font-size: 1.15rem; }
.foot-bar {
    margin-top: 28px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12);
    color: #8ea0b5; font-size: .85rem;
    display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
}
.foot a.foot-made {
    display: inline-flex; align-items: center; gap: 8px; margin-left: auto;
    color: rgba(183, 195, 212, .55); font-size: 11px; font-weight: 400; letter-spacing: .01em;
    text-decoration: none;
}
.foot a.foot-made img { height: 20px; width: auto; opacity: .62; }
.foot a.foot-made:hover { color: rgba(213, 222, 234, .85); }
.foot a.foot-made:hover img { opacity: .85; }
.wa-float {
    position: fixed; right: 16px; bottom: 16px; z-index: 30;
    display: inline-flex; align-items: center; gap: 8px;
    background: #25d366; color: white; text-decoration: none; border-radius: 999px;
    padding: 11px 16px 11px 12px; font-weight: 700;
    box-shadow: 0 10px 24px -12px rgba(7, 94, 84, .8);
}
.wa-float svg { width: 22px; height: 22px; flex: 0 0 auto; }
.flash {
    position: sticky; top: 0; z-index: 40;
    display: flex; align-items: center; justify-content: center; gap: 16px;
    padding: 14px 18px; text-align: center; font-weight: 800; font-size: 1.02rem;
}
.flash p { margin: 0; }
.flash button {
    border: 0; background: transparent; color: inherit; font-size: 1.4rem; line-height: 1;
    cursor: pointer; padding: 0 4px;
}
.flash-ok { background: #0d7a70; color: #fff; }
.flash-bad { background: #8d2b2b; color: #fff; }
.hp { position: absolute; left: -9999px; }
.book label.human, form label.human {
    display: flex; align-items: center; gap: 10px; margin: 2px 0 4px;
    padding: 10px 12px; border: 1px solid #d5e0ea; border-radius: 12px;
    background: #fff; color: #10253f; font-weight: 700; cursor: pointer;
}
.book label.human input[type="checkbox"], form label.human input[type="checkbox"] {
    width: 18px; height: 18px; margin: 0; padding: 0; flex: 0 0 18px; accent-color: #0d7a70;
}
.login { width: min(420px, calc(100% - 32px)); margin: 10vh auto; background: white; padding: 24px; border-radius: 20px; display: grid; gap: 12px; }
.admin-shell { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; }
.admin-shell aside { background: var(--ink); color: #efe7da; padding: 18px; display: grid; align-content: start; gap: 10px; }
.admin-shell aside a { color: #efe7da; text-decoration: none; }
.admin-main { padding: 24px; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.stats div { background: white; border-radius: 16px; padding: 16px; }
.stats b { font-family: "Fraunces", serif; font-size: 2rem; display: block; }
.table { width: 100%; border-collapse: collapse; background: white; }
.table td, .table th { text-align: left; padding: 10px; border-bottom: 1px solid var(--line); }
.stack { display: grid; gap: 12px; max-width: 860px; }
.row3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.thumb { width: 180px; border-radius: 12px; }
.danger { background: #8d2b2b; margin-top: 12px; }
.inquiry { background: white; border-radius: 14px; padding: 12px 14px; margin-bottom: 10px; }
.check { align-items: center; grid-template-columns: auto 1fr; }
@media (min-width: 800px) {
    .finder, .filters { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); align-items: end; }
}
@media (max-width: 1180px) and (min-width: 901px) {
    .foot-grid { grid-template-columns: 1.2fr 1fr 1fr; }
}
@media (max-width: 900px) {
    .hero-copy { margin-bottom: 88px; }
    .wa-float { left: 16px; right: auto; }
    .section-banner { min-height: 260px; }
    .section-banner-copy { padding: 72px 0 48px; }
    .section-banner.has-stamp .section-banner-copy,
    .section-banner.has-logos .section-banner-copy { padding-left: 0; }
    .section-banner img.banner-stamp { position: relative; left: auto; top: auto; width: 112px; margin: 0 0 8px; transform: rotate(-8deg); }
    .banner-logos { position: relative; top: auto; transform: none; flex-direction: row; align-items: center; margin: 0 0 10px; }
    .section-banner .banner-logos img { height: 52px; }
    #office-map { height: 320px; }
    .grid, .service-grid, .plan-grid, .note-grid, .band, .tour-layout, .contact, .contact-layout, .foot-grid, .split, .stats, .admin-shell, .row3 { grid-template-columns: 1fr; }
    .nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--paper); padding: 12px 18px; border-bottom: 1px solid var(--line); }
    .nav.open { display: grid; }
    .nav-toggle { display: inline-flex; }
    .book { position: static; }
    .hero { min-height: 100vh; }
    .home-about { grid-template-columns: 1fr; }
    .home-about img { width: 100%; height: 160px; }
    .top-wa { display: none; }
}
.xfer-page { padding: 8px 0 48px; }
.xfer-points {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 0 0 22px;
    padding: 0;
}
.xfer-points li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 14px;
}
.xfer-points svg, .xfer-row svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--sea); }
.xfer-points b { display: block; }
.xfer-board {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 0 0 18px;
}
.xfer-board h2 {
    margin: 0;
    padding: 12px 16px;
    background: #f4efe4;
    color: #3a2a12;
    font-family: "Outfit", "Segoe UI", sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .02em;
}
.xfer-list { overflow-x: auto; }
.xfer-head, .xfer-row {
    display: grid;
    grid-template-columns: minmax(190px, 1.6fr) minmax(120px, .9fr) 108px 92px 46px;
    gap: 8px;
    align-items: center;
    padding: 11px 16px;
}
.xfer-head {
    background: #fff;
    color: #8a7352;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    border-bottom: 1px solid #efe6d6;
}
.xfer-row {
    border-top: 1px solid #f3ecdf;
    text-decoration: none;
    color: #3a2a12;
    background: #fff;
}
.xfer-row.is-alt { background: #fbf6ec; }
.xfer-row:hover { background: #f6f0e4; }
.xfer-where, .xfer-car, .xfer-time { display: flex; align-items: center; gap: 8px; font-weight: 700; min-width: 0; }
.xfer-where small, .xfer-car small { font-weight: 700; color: #8a7352; margin-left: 4px; }
.xfer-where svg, .xfer-car svg, .xfer-time svg { color: #c4a36a; }
.xfer-time { color: #6d5b42; white-space: nowrap; }
.xfer-price { color: #3a2a12; font-weight: 800; font-size: 1.12rem; white-space: nowrap; text-align: right; }
.xfer-go {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    justify-self: end;
    background: #fff;
    color: #b08948;
    border: 1px solid #efe2c8;
}
@media (max-width: 900px) {
    .xfer-points { grid-template-columns: 1fr; }
    .xfer-head, .xfer-row { min-width: 620px; }
}
.gallery-band { width: min(1120px, calc(100% - 32px)); margin: 8px auto 56px; }
.prose .stay-gallery { margin: 22px 0 0; }
.prose .stay-gallery h2 { margin: 0 0 12px; }
.prose .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stay-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 22px; }
.stay-specs div {
    display: flex; justify-content: space-between; gap: 12px; align-items: baseline;
    background: #fff; border: 1px solid #efe6d6; border-radius: 12px; padding: 10px 12px;
}
.stay-specs div:nth-child(4n+3), .stay-specs div:nth-child(4n+4) { background: #fbf6ec; }
.stay-specs span { color: #6d6254; }
.stay-specs strong { text-align: right; font-weight: 650; }
.stay-rates { width: 100%; border-collapse: collapse; margin: 0 0 18px; background: #fff; border-radius: 12px; overflow: hidden; }
.stay-rates th, .stay-rates td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #efe6d6; vertical-align: top; }
.stay-rates th { background: #fff; font-weight: 700; }
.stay-rates tbody tr:nth-child(even) td { background: #fbf6ec; }
.stay-rates td:last-child { text-align: right; font-weight: 700; white-space: nowrap; }
.stay-rates em { display: block; margin-top: 3px; color: #9a4a32; font-style: normal; font-weight: 550; font-size: .88rem; white-space: normal; }
.gallery-lead, .gallery-grid { display: grid; gap: 10px; }
.gallery-lead { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 14px; }
.gallery-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.gallery-lead-item, .gallery-thumb {
    display: block; padding: 0; border: 0; background: #d7e2ea; border-radius: 14px;
    overflow: hidden; cursor: pointer; aspect-ratio: 4 / 3;
}
.gallery-thumb { aspect-ratio: 1; border-radius: 10px; }
.gallery-lead-item img, .gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-lead-item:hover img, .gallery-thumb:hover img { transform: scale(1.04); }
.gallery-lead-item img, .gallery-thumb img { transition: transform .35s ease; }
.gallery-view {
    position: fixed; inset: 0; z-index: 60; display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px;
    padding: 24px; background: rgba(8, 18, 32, .88);
}
.gallery-view[hidden] { display: none; }
.gallery-view figure { margin: 0; min-width: 0; }
.gallery-view img { display: block; width: 100%; max-height: calc(100vh - 110px); object-fit: contain; border-radius: 12px; }
.gallery-view figcaption { margin-top: 8px; text-align: center; color: #fff; font-weight: 700; }
.gallery-nav, .gallery-x {
    width: 48px; height: 48px; border: 0; border-radius: 50%; cursor: pointer;
    background: #fff; color: #10253f; font-size: 1.8rem; line-height: 1;
}
.gallery-x { position: absolute; top: 16px; right: 16px; }
body.gallery-open { overflow: hidden; }
.book.ask {
    padding: 0;
    overflow: hidden;
    border-radius: 22px;
    border: 1px solid #e4edf6;
    box-shadow: 0 16px 40px rgba(16, 42, 78, .1);
}
.ask-brief {
    padding: 12px 14px 10px;
    background: linear-gradient(180deg, #f7fbfe 0%, #fff 72%);
    border-bottom: 1px solid #e7eef5;
}
.ask-brief-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}
.ask-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    min-width: 0;
    color: #1a6d86;
    font-size: .84rem;
    font-weight: 650;
    letter-spacing: .01em;
}
.ask-kicker svg { width: 15px; height: 15px; color: #c9892a; flex: 0 0 auto; }
.ask-fare {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin: 0;
    flex: 0 0 auto;
}
.ask-fare strong {
    color: #123a63;
    font-size: 1.28rem;
    font-weight: 750;
    letter-spacing: -.03em;
    line-height: 1;
}
.ask-fare em {
    color: #7d8da0;
    font-style: normal;
    font-size: .72rem;
    font-weight: 650;
}
.ask-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 12px;
    margin: 6px 0 0;
    color: #516579;
    font-size: .76rem;
    font-weight: 650;
    line-height: 1.35;
}
.ask-meta span { display: inline-flex; align-items: center; gap: 4px; }
.ask-meta svg { width: 13px; height: 13px; color: #0d7a70; flex: 0 0 auto; }
.ask-links svg, .ask-sec svg, .ask-field > span svg, .fare-who svg, .fare-total svg, .ask-fine svg, .ask-send svg {
    width: 15px;
    height: 15px;
}
.ask-links { display: grid; gap: 8px; margin: 12px 14px 0; }
.ask-links a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #d7e3ef;
    background: #fff;
    text-decoration: none;
    font-weight: 700;
    color: #123a63;
}
.ask-links svg { color: #0d7a70; }
.ask form { display: grid; gap: 14px; padding: 14px; }
.ask-intro { margin: 0; color: #5c6b7a; font-size: .9rem; }
.ask-block { display: grid; gap: 8px; }
.ask-sec {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #7d8da0;
}
.ask-sec svg { color: #1d6fe0; }
.ask-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ask-field { display: grid; gap: 5px; }
.ask-field > span {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .78rem;
    font-weight: 700;
    color: #3e5166;
}
.ask-field > span svg { color: #1d6fe0; }
.ask-field em { color: #d85a32; font-style: normal; margin-left: auto; }
.ask .ask-field input,
.ask .ask-field select,
.ask .ask-field textarea {
    border: 1px solid #d7e3ef;
    background: #fbfdff;
    border-radius: 12px;
    padding: 11px 12px;
}
.ask .ask-field input:focus,
.ask .ask-field select:focus,
.ask .ask-field textarea:focus {
    outline: 2px solid rgba(29, 111, 224, .22);
    border-color: #1d6fe0;
}
.ask .fare-list { margin: 4px 0 0; gap: 8px; }
.ask .fare-row {
    padding: 8px 8px 8px 10px;
    border: 1px solid #e6eef6;
    border-radius: 14px;
    background: #fff;
}
.fare-who { display: flex; align-items: center; gap: 8px; min-width: 0; }
.fare-who i {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    background: #eef4fb;
    color: #123a63;
}
.fare-who span { display: grid; min-width: 0; }
.fare-who b { font-size: .86rem; }
.fare-who small { color: #6d7f95; font-size: .75rem; font-weight: 650; }
.ask .stepper { background: #f4f8fc; border-radius: 999px; padding: 3px; }
.ask .stepper button {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    font-size: 1.1rem;
}
.ask .fare-total {
    margin: 2px 0 0;
    padding: 10px 12px;
    border-radius: 14px;
    background: #123a63;
    color: #fff;
}
.ask .fare-total span { display: inline-flex; align-items: center; gap: 6px; }
.ask .fare-total svg { color: #f0c14a; }
.ask .fare-total strong { color: #fff; font-size: 1.25rem; }
.ask label.human { background: #f7fafc; border-style: dashed; }
.ask .ask-send {
    width: 100%;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 14px;
    padding: 12px 16px;
}
.ask .ask-send svg { width: 16px; height: 16px; }
.ask-fine {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding: 0 14px 14px;
    color: #6d7f95;
    font-size: .8rem;
}
.ask-fine svg { width: 16px; height: 16px; color: #0d7a70; flex: 0 0 auto; margin-top: 1px; }
@media (max-width: 420px) {
    .ask-pair { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
    .gallery-lead { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .stay-specs { grid-template-columns: 1fr; }
    .stay-rates td:last-child { white-space: normal; }
    .gallery-view { grid-template-columns: 1fr; padding: 64px 12px 20px; }
    .gallery-nav { position: absolute; bottom: 18px; }
    .gallery-nav.prev { left: 16px; }
    .gallery-nav.next { right: 16px; }
}
