:root {
  --ink: #0d0f0c;
  --ink-soft: #1b1e19;
  --paper: #f6f2e9;
  --paper-2: #ebe4d6;
  --white: #fff;
  --gold: #aa8747;
  --gold-light: #c2a164;
  --muted: #696a65;
  --line: rgba(13, 15, 12, .14);
  --radius: 24px;
  --shadow: 0 24px 70px rgba(12, 13, 10, .12);
}

/* BERLO Journal: shared homepage feature and editorial pages. */
.journal-home { background: #ede6d9; }
.journal-home-heading { display:grid; grid-template-columns: 1.2fr .8fr; gap:60px; align-items:end; margin-bottom:36px; }
.journal-home-heading > p { max-width:460px; color:var(--muted); margin:0; font-size:15px; }
.journal-home-feature { display:grid; grid-template-columns: 1.18fr .82fr; min-height:450px; background:var(--ink); color:#fff; overflow:hidden; border-radius:22px; }
.journal-home-feature img { height:100%; min-height:450px; object-fit:cover; }
.journal-home-feature-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(28px,5vw,76px); }
.journal-home-feature-copy strong { display:block; font:600 clamp(42px,5vw,76px)/.95 "Cormorant Garamond",Georgia,serif; letter-spacing:-.025em; }
.journal-home-feature-copy > span:not(.kicker):not(.journal-arrow) { display:block; margin-top:24px; max-width:410px; font-size:14px; line-height:1.75; color:rgba(255,255,255,.76); }
.journal-arrow { display:inline-block; margin-top:27px; padding-bottom:6px; border-bottom:1px solid currentColor; font-size:12px; font-weight:700; letter-spacing:.02em; }
.journal-home-all { display:inline-block; margin-top:27px; border-bottom:1px solid currentColor; padding-bottom:6px; font-size:12px; font-weight:700; }
.journal-home-all span { margin-left:9px; }
.journal-page { background:var(--paper); }
.journal-topbar { position:sticky; top:0; }
.journal-page h1 { font-size:clamp(68px,9vw,140px); line-height:.87; }
.journal-page h1 em { color:var(--gold); font-weight:500; }
.journal-index-intro { padding:clamp(80px,11vw,150px) 5vw 80px; max-width:1500px; margin:auto; }
.journal-index-intro > p:last-of-type { max-width:580px; color:var(--muted); font-size:17px; margin:30px 0 40px; }
.journal-intro-rule { display:block; width:90px; height:1px; background:var(--gold); }
.journal-index-content { padding:0 5vw 125px; max-width:1500px; margin:auto; }
.journal-card { display:block; overflow:hidden; background:#fff; border-radius:20px; box-shadow:0 14px 38px rgba(20,20,15,.07); }
.journal-card-image { overflow:hidden; }
.journal-card img { height:315px; object-fit:cover; transition:transform .45s ease; }
.journal-card:hover img { transform:scale(1.025); }
.journal-card-copy { padding:30px 33px 35px; }
.journal-card-copy h2 { font-size:clamp(38px,4vw,58px); }
.journal-card-copy > p:not(.kicker) { color:var(--muted); font-size:14px; max-width:530px; }
.journal-card-featured { display:grid; grid-template-columns:1.25fr .75fr; align-items:stretch; margin-bottom:24px; }
.journal-card-featured img { height:100%; min-height:510px; }
.journal-card-featured .journal-card-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(34px,5vw,72px); }
.journal-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.journal-exposure { padding:100px 5vw; background:#e6dccb; }
.journal-exposure-alt { background:#f2ebdf; }
.journal-exposure-intro { max-width:760px; margin:0 auto 48px; text-align:center; }
.journal-exposure-intro > p:last-child { color:var(--muted); font-size:15px; }
.journal-exposure-frame { width:min(100%,1050px); margin:auto; border:1px solid rgba(13,15,12,.1); border-radius:16px; overflow:hidden; background:#fff; box-shadow:var(--shadow); }
.journal-exposure-frame iframe { width:100%; height:760px; display:block; border:0; }
.journal-exposure-fallback { text-align:center; font-size:12px; }
.journal-exposure-fallback a { border-bottom:1px solid var(--ink); font-weight:700; }
.journal-end { padding:100px 20px 110px; text-align:center; }
.journal-end p:not(.kicker) { max-width:550px; margin:22px auto 28px; color:var(--muted); }
.journal-end .pill { background:var(--ink); color:#fff; }
.journal-article-header { padding:70px 5vw 55px; max-width:1120px; margin:auto; text-align:center; }
.journal-back { display:block; width:fit-content; margin:0 auto 62px; font-size:12px; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:5px; }
.journal-article-header h1 { margin:auto; }
.journal-article-deck { color:var(--muted); font-size:18px; max-width:700px; margin:26px auto 0; }
.journal-article-figure { max-width:1400px; margin:0 auto; }
.journal-article-figure img { width:100%; height:min(62vw,700px); min-height:320px; object-fit:cover; }
.journal-article-figure figcaption { margin:12px 5vw; font-size:10px; color:var(--muted); letter-spacing:.12em; text-transform:uppercase; }
.journal-article-text { max-width:760px; margin:70px auto 110px; padding:0 24px; }
.journal-article-text .journal-article-lead { font:600 clamp(27px,3vw,37px)/1.21 "Cormorant Garamond",Georgia,serif; color:var(--ink); margin:0 0 55px; }
.journal-article-text section { margin:0 0 50px; }
.journal-article-text h2 { font-size:clamp(37px,4vw,53px); margin-bottom:16px; }
.journal-article-text p { color:#4b4d46; font-size:16px; line-height:1.9; }
.journal-article-text blockquote { margin:70px 0 0; padding:22px 0 22px 28px; border-left:2px solid var(--gold); font:600 clamp(27px,3vw,37px)/1.18 "Cormorant Garamond",Georgia,serif; }
.journal-next { display:grid; grid-template-columns:.8fr 1.2fr; gap:40px; align-items:center; padding:80px 5vw; background:#ede6d9; }
.journal-next .journal-card { display:grid; grid-template-columns:1fr 1fr; }
.journal-next .journal-card img { height:100%; min-height:260px; }
.journal-next .journal-card-copy { padding:25px; }
.journal-next .journal-card-copy h2 { font-size:38px; }
.journal-next .journal-card-copy > p:not(.kicker) { display:none; }
.journal-page a:focus-visible, .journal-home a:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@media(max-width:900px) {
  .journal-home-heading, .journal-next { grid-template-columns:1fr; gap:22px; }
  .journal-home-feature { grid-template-columns:1fr; }
  .journal-home-feature img { min-height:0; height:350px; }
  .journal-card-featured { grid-template-columns:1fr; }
  .journal-card-featured img { min-height:0; height:400px; }
}
@media(max-width:680px) {
  .journal-home { padding:70px 18px; }
  .journal-home-heading { text-align:center; }
  .journal-home-heading > p { margin:auto; }
  .journal-home-feature img { height:270px; }
  .journal-home-feature-copy { padding:30px 26px 36px; }
  .journal-home-feature-copy strong { font-size:48px; }
  .journal-home-all { display:block; width:fit-content; margin:27px auto 0; }
  .journal-page h1 { font-size:clamp(58px,17vw,88px); }
  .journal-index-intro { padding:70px 20px 55px; text-align:center; }
  .journal-index-intro > p:last-of-type { margin:23px auto 32px; font-size:15px; }
  .journal-intro-rule { margin:auto; }
  .journal-index-content { padding:0 18px 80px; }
  .journal-card-grid { grid-template-columns:1fr; gap:18px; }
  .journal-card-featured img { height:290px; }
  .journal-card img { height:250px; }
  .journal-card-featured img { height:290px; }
  .journal-card-copy, .journal-card-featured .journal-card-copy { padding:29px 26px; }
  .journal-card-copy h2 { font-size:43px; }
  .journal-exposure { padding:75px 18px; }
  .journal-exposure-intro { margin-bottom:28px; }
  .journal-exposure-frame iframe { height:650px; }
  .journal-article-header { padding:40px 19px 40px; }
  .journal-back { margin-bottom:48px; }
  .journal-article-deck { font-size:15px; }
  .journal-article-figure img { height:360px; }
  .journal-article-text { margin:55px auto 70px; padding:0 22px; }
  .journal-article-text p { font-size:15px; }
  .journal-next { padding:70px 18px; }
  .journal-next .journal-card { grid-template-columns:1fr; }
  .journal-next .journal-card img { height:220px; min-height:0; }
  .journal-end { padding:75px 20px; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

h1, h2, h3 {
  margin: 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  letter-spacing: -.025em;
}
h1 { font-size: clamp(56px, 7.7vw, 118px); line-height: .84; }
h2 { font-size: clamp(43px, 5.2vw, 76px); line-height: .95; }
h3 { font-size: clamp(30px, 3vw, 43px); line-height: 1; }
p { line-height: 1.75; }

.topbar {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  min-height: 78px;
  padding: 0 4.5vw;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
  color: #fff;
  transition: background .25s ease, color .25s ease, box-shadow .25s ease;
}
.topbar.scrolled {
  background: rgba(250, 248, 243, .96);
  color: var(--ink);
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
  backdrop-filter: blur(14px);
}
.wordmark { display: inline-flex; align-items: baseline; gap: 10px; width: fit-content; }
.wordmark-main { font-family: "Cormorant Garamond", Georgia, serif; font-size: 27px; font-weight: 700; letter-spacing: .06em; }
.wordmark-sub { font-size: 9px; font-weight: 700; letter-spacing: .28em; color: var(--gold-light); }
.desktop-nav { display: flex; align-items: center; gap: 30px; font-size: 13px; font-weight: 600; }
.desktop-nav a { opacity: .88; }
.desktop-nav a:hover { opacity: 1; }
.topbar > .pill { justify-self: end; }
.pill { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 12px 20px; font-size: 12px; font-weight: 700; letter-spacing: .03em; }
.pill-dark { background: rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.35); color: #fff; }
.scrolled .pill-dark { background: var(--ink); border-color: var(--ink); }

.hero { min-height: 92vh; position: relative; display: flex; align-items: flex-end; padding: 130px 5vw 155px; overflow: visible; }
.hero-image { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center 52%; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,8,7,.12) 10%, rgba(5,8,6,.08) 38%, rgba(5,7,5,.65) 100%); }
.hero-copy { position: relative; z-index: 2; max-width: 860px; color: #fff; }
.hero-text { max-width: 690px; margin: 24px 0 0; font-size: 17px; color: rgba(255,255,255,.88); }
.kicker { margin: 0 0 15px; font-size: 10px; font-weight: 700; letter-spacing: .24em; }
.kicker.light { color: rgba(255,255,255,.78); }
.kicker.gold { color: var(--gold); }
.micro { margin: 0 0 10px; color: var(--gold); font-size: 9.5px; font-weight: 700; letter-spacing: .18em; }

.search-panel {
  position: absolute;
  z-index: 3;
  width: min(1120px, 90vw);
  left: 50%;
  bottom: -49px;
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: 1.25fr 1fr .55fr auto;
  background: #fff;
  border-radius: 24px;
  padding: 11px;
  box-shadow: 0 26px 76px rgba(0,0,0,.2);
}
.search-panel label { padding: 10px 18px; display: flex; flex-direction: column; gap: 5px; border-right: 1px solid #ebe7df; }
.search-panel label span { font-size: 10px; font-weight: 700; letter-spacing: .08em; color: #777; }
.search-panel input, .search-panel select { border: 0; outline: 0; background: transparent; color: var(--ink); font-weight: 600; min-width: 0; }
.search-panel button { border: 0; border-radius: 16px; padding: 0 26px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 700; }

.section-pad { padding: 110px 5vw; }
.statement { padding-top: 165px; max-width: 1150px; margin: 0 auto; text-align: center; }
.statement h2 { max-width: 900px; margin: 0 auto; }
.statement-copy { max-width: 800px; margin: 27px auto 0; color: var(--muted); font-size: 17px; }
.trust-row { margin: 44px auto 0; padding-top: 26px; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; color: #4e504b; font-size: 11px; font-weight: 700; letter-spacing: .04em; }

.stay-section { background: #efe9dd; }
.section-heading { margin-bottom: 42px; }
.split-heading { display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: end; }
.split-heading > p { margin: 0; max-width: 530px; justify-self: end; color: var(--muted); font-size: 15px; }
.stay-feature { display: grid; grid-template-columns: 1.25fr .75fr; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.stay-image-wrap { min-height: 500px; }
.stay-image-wrap img { height: 100%; object-fit: cover; object-position: center center; }
.stay-info { padding: 58px 52px; display: flex; flex-direction: column; justify-content: center; }
.stay-info > p:not(.micro) { color: var(--muted); margin: 20px 0 26px; }
.stay-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.stay-meta span { border: 1px solid var(--line); border-radius: 999px; padding: 9px 12px; font-size: 10px; font-weight: 700; }
.text-link { font-size: 12px; font-weight: 700; width: fit-content; padding-bottom: 5px; border-bottom: 1px solid currentColor; }
.text-link span { margin-left: 8px; }
.coming-soon { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; padding: 34px 38px; border: 1px solid rgba(13,15,12,.16); border-radius: 20px; background: rgba(255,255,255,.35); }
.coming-soon h3 { font-size: 33px; }
.coming-soon p:last-child { margin: 0; color: var(--muted); font-size: 13px; }

.experience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.experience-card { overflow: hidden; background: #fff; border-radius: 22px; box-shadow: 0 15px 40px rgba(0,0,0,.07); }
.experience-card > img { height: 310px; object-fit: cover; }
.experience-card:nth-child(3) > img { object-position: center 42%; }
.experience-body { padding: 27px; }
.experience-body h3 { font-size: 35px; }
.experience-body > p:not(.micro) { min-height: 126px; color: var(--muted); font-size: 13.5px; }
.price-row { display: flex; align-items: baseline; gap: 9px; margin: 22px 0; }
.price-row strong { font-size: 22px; }
.price-row span { font-size: 10px; color: #777; }
.outline-button, .solid-button { width: 100%; border-radius: 12px; padding: 14px 18px; font-size: 11px; font-weight: 700; }
.outline-button { border: 1px solid var(--ink); background: transparent; color: var(--ink); }
.solid-button { border: 1px solid var(--ink); background: var(--ink); color: #fff; }
.featured-card { transform: translateY(-13px); }

.editorial { padding: 90px 5vw; display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; align-items: center; }
.editorial-dark { background: var(--ink); color: #fff; }
.editorial-copy p:not(.kicker) { color: rgba(255,255,255,.68); max-width: 520px; margin: 24px 0 30px; }
.light-link { color: #fff; }
.editorial-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 245px; gap: 12px; }
.editorial-grid img { height: 100%; object-fit: cover; border-radius: 14px; }
.editorial-grid .wide { grid-column: 1 / -1; }

.mission-strip { display: grid; grid-template-columns: 1.1fr .9fr; background: #e6dfd1; }
.mission-image img { height: 100%; min-height: 660px; object-fit: cover; }
.mission-copy { padding: 90px 7vw; display: flex; flex-direction: column; justify-content: center; }
.mission-copy > p:not(.kicker) { color: #5f615b; font-size: 15px; }
.mission-note { padding-top: 22px; border-top: 1px solid rgba(0,0,0,.12); font-size: 12px !important; font-weight: 600; }

.creator-mosaic { display: grid; grid-template-columns: 1.1fr .9fr; grid-template-rows: 360px 360px; gap: 16px; }
.creator-mosaic img { width: 100%; height: 100%; object-fit: cover; border-radius: 18px; }
.creator-a { grid-row: 1 / 3; }
.creator-b { object-position: center 60%; }
.creator-c { object-position: center 45%; }

.sea-story { min-height: 78vh; position: relative; display: flex; align-items: flex-end; padding: 80px 5vw; color: #fff; }
.sea-hero { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center 52%; }
.sea-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.66)); }
.sea-copy { position: relative; z-index: 2; max-width: 720px; }
.sea-copy p:not(.kicker) { max-width: 600px; color: rgba(255,255,255,.78); }
.photo-row { display: grid; grid-template-columns: 1.3fr .8fr 1.1fr; gap: 14px; }
.photo-row figure { margin: 0; }
.photo-row img { height: 450px; object-fit: cover; border-radius: 18px; }
.photo-row figure:nth-child(2) img { object-position: center 60%; }
.photo-row figcaption { padding: 10px 4px 0; font-size: 10px; font-weight: 700; letter-spacing: .1em; color: #5e605b; }

.nature-block { display: grid; grid-template-columns: .9fr 1.1fr; align-items: stretch; background: #efe9dd; }
.nature-image img { height: 720px; object-fit: cover; object-position: center 48%; }
.nature-copy { padding: 90px 8vw; display: flex; flex-direction: column; justify-content: center; }
.nature-copy p:not(.kicker) { max-width: 540px; color: var(--muted); }

.island-wide { height: 68vh; min-height: 520px; position: relative; overflow: hidden; color: #fff; }
.island-wide > img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center; }
.island-wide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.48)); }
.island-wide-copy { position: absolute; z-index: 2; left: 5vw; bottom: 70px; max-width: 780px; }

.reserve { padding: 100px 5vw; background: #0b0d0b; color: #fff; display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; align-items: start; }
.reserve-intro { position: sticky; top: 120px; }
.reserve-intro > p:not(.kicker) { color: rgba(255,255,255,.65); max-width: 500px; }
.reserve-points { display: flex; flex-direction: column; gap: 12px; padding-top: 28px; margin-top: 28px; border-top: 1px solid rgba(255,255,255,.18); }
.reserve-points span { font-size: 11px; color: rgba(255,255,255,.72); }
.inquiry-form { background: #f8f5ee; color: var(--ink); border-radius: 24px; padding: 34px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.inquiry-form label { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; font-size: 10px; font-weight: 700; letter-spacing: .05em; }
.inquiry-form input, .inquiry-form select, .inquiry-form textarea { width: 100%; border: 1px solid #d9d3c8; border-radius: 11px; background: #fff; color: var(--ink); padding: 14px 13px; outline: 0; }
.inquiry-form input:focus, .inquiry-form select:focus, .inquiry-form textarea:focus { border-color: #96815c; box-shadow: 0 0 0 3px rgba(170,135,71,.1); }
.form-submit { width: 100%; border: 0; border-radius: 12px; background: var(--ink); color: #fff; padding: 16px; font-size: 11px; font-weight: 700; }
.form-note { margin: 12px 0 0; color: #777; font-size: 9.5px; }
.form-status { margin: 10px 0 0; font-size: 11px; font-weight: 600; }
.form-status.ok { color: #256c45; }
.form-status.err { color: #9a2c2c; }

footer { padding: 35px 5vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; background: #070807; color: #fff; border-top: 1px solid rgba(255,255,255,.08); }
footer p { margin: 0; color: rgba(255,255,255,.48); font-size: 9.5px; }
footer p:last-child { justify-self: end; }
.footer-mark { color: #fff; }
.footer-brand { display:flex; flex-direction:column; align-items:flex-start; gap:7px; width:fit-content; }
.footer-affiliation { color:var(--gold-light); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }

@media (max-width: 1020px) {
  .desktop-nav { display: none; }
  .topbar { grid-template-columns: 1fr auto; }
  .hero { min-height: 800px; }
  .search-panel { grid-template-columns: 1fr 1fr; bottom: -105px; }
  .search-panel label:nth-child(2) { border-right: 0; }
  .search-panel button { grid-column: 1 / -1; min-height: 52px; }
  .statement { padding-top: 220px; }
  .split-heading, .mission-strip, .reserve, .nature-block, .editorial { grid-template-columns: 1fr; }
  .split-heading > p { justify-self: start; }
  .stay-feature { grid-template-columns: 1fr; }
  .stay-image-wrap { min-height: 460px; max-height: 620px; }
  .stay-image-wrap img { object-position: center center; }
  .experience-grid { grid-template-columns: 1fr; }
  .experience-card { display: grid; grid-template-columns: 1fr 1fr; }
  .experience-card > img { height: 100%; min-height: 390px; }
  .featured-card { transform: none; }
  .experience-body > p:not(.micro) { min-height: auto; }
  .editorial { gap: 45px; }
  .mission-image img { min-height: 520px; }
  .creator-mosaic { grid-template-rows: 300px 300px; }
  .photo-row { grid-template-columns: 1fr 1fr; }
  .photo-row figure:first-child { grid-column: 1 / -1; }
  .reserve-intro { position: static; }
  footer { grid-template-columns: 1fr; text-align: left; }
  footer p:last-child { justify-self: start; }
}

@media (max-width: 680px) {
  .topbar { min-height: 70px; padding: 0 20px; }
  .wordmark-main { font-size: 23px; }
  .wordmark-sub { display: inline-block; font-size: 8px; letter-spacing: .18em; margin-left: 6px; vertical-align: middle; }
  .pill { padding: 10px 15px; }
  .hero { min-height: 720px; padding: 120px 22px 155px; }
  .hero-image { object-position: center 50%; }
  h1 { font-size: clamp(55px, 17vw, 78px); }
  .hero-text { font-size: 14px; }
  .search-panel { width: calc(100% - 24px); grid-template-columns: 1fr; bottom: -202px; border-radius: 18px; }
  .search-panel label { border-right: 0; border-bottom: 1px solid #ebe7df; }
  .statement { padding-top: 280px; }
  .section-pad { padding: 78px 20px; }
  .trust-row { grid-template-columns: 1fr 1fr; }
  .split-heading { gap: 22px; }
  .stay-image-wrap { min-height: 400px; }
  .stay-info { padding: 34px 27px; }
  .coming-soon { grid-template-columns: 1fr; gap: 15px; padding: 28px 25px; }
  .experience-card { display: block; }
  .experience-card > img { height: 300px; min-height: 0; }
  .editorial { padding: 75px 20px; }
  .editorial-grid { grid-auto-rows: 190px; }
  .mission-copy { padding: 70px 20px; }
  .mission-image img { min-height: 430px; }
  .creator-mosaic { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 420px 235px; gap: 10px; }
  .creator-a { grid-column: 1 / -1; grid-row: 1; }
  .creator-b, .creator-c { grid-row: 2; }
  .sea-story { min-height: 650px; padding: 60px 20px; }
  .photo-row { grid-template-columns: 1fr; }
  .photo-row figure:first-child { grid-column: auto; }
  .photo-row img { height: 390px; }
  .nature-image img { height: 580px; }
  .nature-copy { padding: 65px 20px; }
  .island-wide { min-height: 570px; }
  .island-wide-copy { left: 20px; right: 20px; bottom: 45px; }
  .reserve { padding: 75px 20px; gap: 45px; }
  .inquiry-form { padding: 24px 18px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  footer { padding: 30px 20px; }
}

/* BERLO-MOBILE-BRAND-FIX */
@media (max-width: 680px) {
  .wordmark { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; }
  .wordmark-main { font-size: 22px; }
  .wordmark-sub { display: inline-block !important; font-size: 8px !important; letter-spacing: .16em; margin-left: 0 !important; color: var(--gold); }
  footer .wordmark { display: flex; }
}


/* --- Closing BERLO links section --- */
.closing-banner{
  position:relative;
  min-height:440px;
  aspect-ratio:5 / 2;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
}
.closing-banner img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 64%;
}
.closing-banner-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(6,7,6,.08) 20%,rgba(6,7,6,.72) 100%);
}
.closing-banner-copy{
  position:relative;
  z-index:1;
  color:#fff;
  padding:56px 6vw;
  max-width:900px;
}
.closing-banner-copy h2{
  margin:0;
  font-family:'Cormorant Garamond',serif;
  font-weight:600;
  font-size:clamp(42px,6vw,72px);
  line-height:.96;
}
.connect-section{
  background:#0b0c0a;
  color:#f5efe2;
  padding:76px 6vw 84px;
  border-top:1px solid rgba(255,255,255,.07);
}
.connect-wrap{max-width:1200px;margin:0 auto;}
.connect-kicker{
  margin:0 0 14px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.22em;
  color:#c8a96a;
}
.connect-heading{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:40px;
  align-items:end;
}
.connect-heading h2{
  margin:0;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(38px,5vw,60px);
  line-height:1;
  font-weight:600;
  color:#fff;
}
.connect-heading p{
  margin:0;
  color:rgba(245,239,226,.72);
  font-size:15px;
  line-height:1.8;
  max-width:560px;
}
.connect-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:34px;
}
.connect-card{
  min-height:246px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:1px solid rgba(200,169,106,.24);
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
  border-radius:24px;
  padding:25px;
  color:inherit;
  text-decoration:none;
  transition:transform .2s ease,border-color .2s ease,background .2s ease;
}
.connect-card:hover{
  transform:translateY(-4px);
  border-color:rgba(200,169,106,.58);
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025));
}
.connect-icon{
  width:54px;
  height:54px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#d1b475;
  background:rgba(200,169,106,.10);
  border:1px solid rgba(200,169,106,.25);
}
.connect-icon svg{width:23px;height:23px;fill:currentColor;}
.connect-card h3{
  margin:18px 0 9px;
  color:#fff;
  font-family:'Cormorant Garamond',serif;
  font-size:31px;
  line-height:1;
  font-weight:600;
}
.connect-card p{
  margin:0;
  color:rgba(245,239,226,.72);
  font-size:14px;
  line-height:1.7;
}
.connect-link{
  display:block;
  margin-top:22px;
  color:#d1b475;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
@media(max-width:900px){
  .closing-banner{min-height:380px;aspect-ratio:16 / 9;}
  .connect-heading{grid-template-columns:1fr;gap:18px;}
  .connect-grid{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .closing-banner{min-height:330px;aspect-ratio:4 / 3;}
  .closing-banner-copy{padding:38px 20px;}
  .connect-section{padding:60px 20px 70px;}
  .connect-card{min-height:220px;}
}

/* =========================================================
   BERLO ST. LUCIA — MOBILE POLISH PASS
   Desktop/tablet styles above remain unchanged.
   ========================================================= */
@media (max-width: 680px) {
  html, body { overflow-x: hidden; }

  /* Header */
  .topbar {
    min-height: 68px;
    padding: 0 16px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
  }
  .wordmark {
    max-width: 220px;
    gap: 5px;
    min-width: 0;
  }
  .wordmark-main { font-size: 21px; }
  .wordmark-sub {
    font-size: 7.5px !important;
    letter-spacing: .14em;
  }
  .topbar .pill {
    padding: 9px 13px;
    font-size: 10px;
    white-space: nowrap;
  }

  /* Hero */
  .hero {
    min-height: 700px;
    padding: 108px 18px 150px;
    text-align: center;
  }
  .hero-copy {
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
  }
  .hero .kicker {
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.55;
  }
  .hero h1 {
    max-width: 340px;
    margin: 0 auto;
    font-size: clamp(48px, 14.5vw, 66px);
    line-height: .92;
  }
  .hero-text {
    max-width: 340px;
    margin: 18px auto 0;
    font-size: 14px;
    line-height: 1.65;
  }
  .hero-image { object-position: center 50%; }

  /* Search / date panel */
  .search-panel {
    width: calc(100% - 28px);
    bottom: -190px;
    padding: 10px;
    border-radius: 18px;
  }
  .search-panel label {
    padding: 12px 14px;
    text-align: left;
  }
  .search-panel button {
    min-height: 48px;
    border-radius: 13px;
  }

  /* Global mobile rhythm */
  .statement {
    padding-top: 265px;
    padding-left: 20px;
    padding-right: 20px;
    text-align: center;
  }
  .section-pad { padding: 68px 18px; }
  h2 { font-size: clamp(39px, 12vw, 53px); line-height: 1; }
  h3 { line-height: 1.04; }
  .section-heading,
  .split-heading {
    text-align: center;
  }
  .split-heading > p {
    justify-self: center;
    margin-left: auto;
    margin-right: auto;
    max-width: 520px;
  }
  .statement-copy {
    font-size: 15px;
    line-height: 1.75;
  }
  .trust-row {
    text-align: center;
    gap: 14px;
  }

  /* Featured stay */
  .stay-feature {
    border-radius: 20px;
  }
  .stay-image-wrap {
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 16 / 10;
  }
  .stay-image-wrap img {
    height: 100%;
    object-position: center center;
  }
  .stay-info {
    padding: 34px 24px 38px;
    text-align: center;
  }
  .stay-meta { justify-content: center; }
  .stay-info .text-link { margin-left: auto; margin-right: auto; }
  .coming-soon {
    text-align: center;
    padding: 27px 23px;
  }

  /* Experience cards */
  .experience-card {
    border-radius: 20px;
  }
  .experience-card > img {
    height: 260px;
    min-height: 0;
  }
  .experience-body {
    padding: 26px 23px 28px;
    text-align: center;
  }
  .experience-body h3 { font-size: 34px; }
  .price-row { justify-content: center; }

  /* Real St. Lucia / editorial */
  .editorial {
    padding: 68px 18px;
    gap: 34px;
    text-align: center;
  }
  .editorial-copy p:not(.kicker) {
    margin: 20px auto 28px;
  }
  .editorial-copy .text-link {
    margin-left: auto;
    margin-right: auto;
  }
  .editorial-grid {
    grid-auto-rows: 180px;
    gap: 9px;
  }

  /* Mission */
  .mission-image img { min-height: 360px; max-height: 430px; }
  .mission-copy {
    padding: 60px 20px 66px;
    text-align: center;
  }
  .mission-note { margin-top: 6px; }

  /* Creator story */
  .creator-story .section-heading { text-align: center; }
  .creator-mosaic {
    grid-template-rows: 330px 190px;
    gap: 9px;
  }
  .creator-mosaic img { border-radius: 15px; }

  /* Premium by sea */
  .sea-story {
    min-height: 570px;
    padding: 56px 20px;
    text-align: center;
  }
  .sea-copy {
    max-width: 350px;
    margin-left: auto;
    margin-right: auto;
  }
  .sea-copy p:not(.kicker) { margin-left: auto; margin-right: auto; }
  .photo-row { gap: 18px; }
  .photo-row img { height: 330px; }
  .photo-row figcaption { text-align: center; }

  /* Nature */
  .nature-image img { height: 450px; }
  .nature-copy {
    padding: 58px 20px 64px;
    text-align: center;
  }
  .nature-copy p:not(.kicker) { margin-left: auto; margin-right: auto; }

  /* Island-wide banner */
  .island-wide { min-height: 520px; height: 65vh; }
  .island-wide-copy {
    left: 20px;
    right: 20px;
    bottom: 38px;
    max-width: 350px;
    margin: 0 auto;
    text-align: center;
  }

  /* Reservations */
  .reserve {
    padding: 68px 18px;
    gap: 36px;
  }
  .reserve-intro { text-align: center; }
  .reserve-intro > p:not(.kicker) {
    margin-left: auto;
    margin-right: auto;
  }
  .reserve-points {
    align-items: center;
    text-align: center;
  }
  .inquiry-form {
    padding: 23px 17px;
    border-radius: 20px;
  }
  .inquiry-form label { text-align: left; }

  /* Flag closing banner: preserve the entire flag on phones */
  .closing-banner {
    display: block;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    background: #0b0c0a;
  }
  .closing-banner img {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
  }
  .closing-banner-shade { display: none; }
  .closing-banner-copy {
    max-width: none;
    padding: 34px 20px 40px;
    text-align: center;
    background: #0b0c0a;
  }
  .closing-banner-copy h2 {
    font-size: clamp(39px, 12vw, 51px);
  }

  /* Bottom BERLO links */
  .connect-section {
    padding: 58px 18px 68px;
    text-align: center;
  }
  .connect-heading { text-align: center; }
  .connect-heading p {
    margin-left: auto;
    margin-right: auto;
  }
  .connect-grid { gap: 14px; }
  .connect-card {
    min-height: 0;
    padding: 24px 22px;
    align-items: center;
    text-align: center;
  }
  .connect-icon { margin-left: auto; margin-right: auto; }

  /* Footer */
  footer {
    padding: 30px 20px 34px;
    justify-items: center;
    text-align: center;
    gap: 10px;
  }
  footer .wordmark { justify-self: center; }
  footer p,
  footer p:last-child {
    justify-self: center;
    text-align: center;
  }
}

@media (max-width: 380px) {
  .topbar { padding: 0 13px; }
  .wordmark-main { font-size: 19px; }
  .wordmark-sub { font-size: 7px !important; }
  .topbar .pill { padding: 8px 11px; font-size: 9px; }
  .hero { padding-left: 16px; padding-right: 16px; }
  .hero h1 { font-size: 48px; }
  .section-pad { padding-left: 16px; padding-right: 16px; }
}

/* =========================================================
   BERLO ST. LUCIA — RESPONSIVE TABLET / DESKTOP-SITE MODE
   The original <=1020px layout above is intentionally kept:
   desktop typography with a clean stacked composition.
   True mobile remains <=680px; full desktop remains >1020px.
   ========================================================= */

/* --- Backend availability embedded inside reservation form --- */
.form-availability{
  margin:2px 0 18px;
  padding:0;
}
.form-availability-label{
  display:block;
  margin:0 0 8px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#807a70;
}
.inquiry-form .reserve-live-status{
  margin:0;
  padding:13px 14px;
  border-radius:11px;
  border:1px solid #ded8cd;
  background:#fff;
  color:#66645f;
  font-size:10.5px;
  line-height:1.55;
}
.inquiry-form .reserve-live-status strong{color:#22231f;}
.inquiry-form .reserve-live-status.checking{color:#77756f;}
.inquiry-form .reserve-live-status.open{
  border-color:rgba(68,126,82,.25);
  background:#f5faf6;
  color:#42664a;
}
.inquiry-form .reserve-live-status.limited{
  border-color:rgba(184,128,32,.30);
  background:#fff9ed;
  color:#7e5c22;
}
.inquiry-form .reserve-live-status.sold{
  border-color:rgba(151,67,59,.30);
  background:#fff6f4;
  color:#824942;
}

/* =========================================================
   BERLO ST. LUCIA — BUILD MY ST. LUCIA TRIP
   Distinct personalized planning service; separate from hosted trips.
   ========================================================= */
.trip-planner {
  background: #f4efe5;
}
.planner-intro {
  display: grid;
  grid-template-columns: 1.04fr .96fr;
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.planner-image {
  min-height: 720px;
  overflow: hidden;
}
.planner-image img {
  height: 100%;
  object-fit: cover;
  object-position: center 50%;
}
.planner-copy {
  padding: 72px 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.planner-copy h2 {
  max-width: 610px;
}
.planner-lead {
  margin: 24px 0 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  line-height: 1.25;
  color: #32342f;
}
.planner-copy > p:not(.kicker):not(.planner-lead):not(.planner-trust) {
  margin: 22px 0 0;
  color: var(--muted);
  font-size: 14px;
}
.planner-price {
  display: flex;
  align-items: baseline;
  gap: 12px;
  width: fit-content;
  margin: 28px 0 0;
  padding: 12px 17px;
  border: 1px solid rgba(170,135,71,.38);
  border-radius: 13px;
  background: #fbf7ee;
}
.planner-price strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 40px;
  line-height: 1;
  color: #765a2a;
}
.planner-price span {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #8b7855;
}
.planner-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 25px;
}
.planner-tags span {
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 700;
  color: #464943;
  background: #fff;
}
.planner-trust {
  margin: 28px 0 0;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  color: #62645f;
  font-size: 12.5px;
}
.planner-trust strong {
  color: var(--ink);
}
.planner-cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  width: fit-content;
  min-width: 265px;
  margin-top: 25px;
  padding: 15px 18px;
  border-radius: 12px;
  background: var(--ink);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}
.planner-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 22px;
}
.planner-compare-card {
  padding: 34px 36px;
  border: 1px solid rgba(13,15,12,.13);
  border-radius: 20px;
  background: rgba(255,255,255,.46);
}
.planner-compare-card h3 {
  font-size: 36px;
}
.planner-compare-card p:last-child {
  margin: 14px 0 0;
  max-width: 570px;
  color: var(--muted);
  font-size: 13px;
}
.planner-compare-featured {
  background: #151713;
  color: #fff;
  border-color: #151713;
}
.planner-compare-featured .micro {
  color: #c9aa6c;
}
.planner-compare-featured p:last-child {
  color: rgba(255,255,255,.68);
}
.planner-form-shell {
  margin-top: 70px;
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 70px;
  align-items: start;
}
.planner-form-intro {
  position: sticky;
  top: 110px;
}
.planner-form-intro > p:not(.kicker) {
  color: var(--muted);
  max-width: 520px;
  font-size: 14px;
}
.planner-fee-note {
  margin-top: 24px !important;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: 11px !important;
  font-weight: 600;
}
.planner-form {
  background: #fff;
  border: 1px solid rgba(13,15,12,.11);
  border-radius: 24px;
  padding: 34px;
  box-shadow: 0 18px 50px rgba(12,13,10,.06);
}
.planner-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .05em;
}
.planner-form input,
.planner-form select,
.planner-form textarea {
  width: 100%;
  border: 1px solid #d9d3c8;
  border-radius: 11px;
  background: #fff;
  color: var(--ink);
  padding: 14px 13px;
  outline: 0;
}
.planner-form input:focus,
.planner-form select:focus,
.planner-form textarea:focus {
  border-color: #96815c;
  box-shadow: 0 0 0 3px rgba(170,135,71,.1);
}
.planner-interests {
  margin: 2px 0 18px;
  padding: 17px;
  border: 1px solid #d9d3c8;
  border-radius: 13px;
}
.planner-interests legend {
  padding: 0 6px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #6d6d67;
}
.planner-interests {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
}
.planner-interests label {
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
}
.planner-interests input {
  width: 15px;
  height: 15px;
  padding: 0;
  accent-color: #151713;
}
.planner-ack {
  flex-direction: row !important;
  align-items: flex-start;
  gap: 10px !important;
  margin: 8px 0 20px !important;
  color: #60625d;
  font-size: 9.5px !important;
  line-height: 1.6;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}
.planner-ack input {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  margin-top: 2px;
  padding: 0;
  accent-color: #151713;
}
.planner-submit {
  width: 100%;
  border: 0;
  border-radius: 12px;
  background: var(--ink);
  color: #fff;
  padding: 16px;
  font-size: 11px;
  font-weight: 800;
}
.planner-submit:disabled {
  opacity: .58;
  cursor: wait;
}

@media (max-width: 1020px) {
  .planner-intro { grid-template-columns: 1fr; }
  .planner-image { min-height: 0; max-height: none; aspect-ratio: 16 / 10; }
  .planner-image img { object-position: center 49%; }
  .planner-copy { padding: 52px 44px 58px; }
  .planner-form-shell { grid-template-columns: 1fr; gap: 32px; }
  .planner-form-intro { position: static; max-width: 760px; }
}

@media (max-width: 680px) {
  .trip-planner { padding-left: 18px; padding-right: 18px; }
  .planner-intro { border-radius: 20px; }
  .planner-image { aspect-ratio: 4 / 3; }
  .planner-image img { object-position: center 52%; }
  .planner-copy { padding: 38px 23px 42px; text-align: center; align-items: center; }
  .planner-copy h2 { font-size: clamp(43px, 12.5vw, 55px); }
  .planner-lead { font-size: 23px; }
  .planner-copy > p:not(.kicker):not(.planner-lead):not(.planner-trust) { font-size: 13px; }
  .planner-price { margin-left: auto; margin-right: auto; }
  .planner-tags { justify-content: center; }
  .planner-trust { text-align: center; }
  .planner-cta { width: 100%; min-width: 0; }
  .planner-compare { grid-template-columns: 1fr; gap: 12px; }
  .planner-compare-card { padding: 28px 23px; text-align: center; }
  .planner-form-shell { margin-top: 55px; text-align: center; }
  .planner-form-intro > p:not(.kicker) { margin-left: auto; margin-right: auto; }
  .planner-form { padding: 23px 17px; border-radius: 20px; text-align: left; }
  .planner-interests { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 380px) {
  .planner-interests { grid-template-columns: 1fr; }
}

/* =========================================================
   BERLO ST. LUCIA — COMPACT DESKTOP / PHONE "DESKTOP SITE"
   v27: preserve the clean stacked desktop composition from v23
   on simulated desktop viewports without changing true mobile.
   ========================================================= */
@media (min-width: 681px) and (max-width: 1180px) {
  html, body {
    overflow-x: hidden;
  }

  /* Keep the header clean instead of squeezing five nav items. */
  .desktop-nav {
    display: none !important;
  }
  .topbar {
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 24px;
  }

  /* Hero/search retains desktop typography, but uses the elegant
     two-column search panel instead of a squeezed desktop row. */
  .hero {
    min-height: 800px;
  }
  .search-panel {
    grid-template-columns: 1fr 1fr !important;
    bottom: -105px;
  }
  .search-panel label {
    min-width: 0;
  }
  .search-panel label:nth-child(2) {
    border-right: 0;
  }
  .search-panel button {
    grid-column: 1 / -1;
    min-height: 52px;
  }
  .statement {
    padding-top: 220px;
  }

  /* Restore the v23 "perfect" intermediate composition. */
  .split-heading,
  .mission-strip,
  .reserve,
  .nature-block,
  .editorial {
    grid-template-columns: 1fr !important;
  }
  .split-heading > p {
    justify-self: start !important;
  }

  .stay-feature {
    grid-template-columns: 1fr !important;
  }
  .stay-image-wrap {
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 16 / 10;
  }
  .stay-image-wrap img {
    height: 100%;
    object-position: center center;
  }
  .stay-info {
    width: 100%;
  }

  .experience-grid {
    grid-template-columns: 1fr !important;
  }
  .experience-card {
    display: grid;
    grid-template-columns: 1fr 1fr !important;
  }
  .experience-card > img {
    height: 100%;
    min-height: 390px;
  }
  .featured-card {
    transform: none;
  }
  .experience-body > p:not(.micro) {
    min-height: auto;
  }

  .editorial {
    gap: 45px;
  }
  .mission-image img {
    min-height: 520px;
  }
  .creator-mosaic {
    grid-template-rows: 300px 300px;
  }
  .photo-row {
    grid-template-columns: 1fr 1fr;
  }
  .photo-row figure:first-child {
    grid-column: 1 / -1;
  }
  .reserve-intro {
    position: static;
  }

  /* New Build My St. Lucia Trip section: stack it like the featured
     stay so it never becomes a narrow two-column squeeze. */
  .planner-intro {
    grid-template-columns: 1fr !important;
  }
  .planner-image {
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 16 / 10;
  }
  .planner-image img {
    height: 100%;
    object-position: center 49%;
  }
  .planner-copy {
    padding: 52px 44px 58px;
  }
  .planner-form-shell {
    grid-template-columns: 1fr !important;
    gap: 32px;
  }
  .planner-form-intro {
    position: static;
    max-width: 760px;
  }

  /* Prevent any child from forcing Chrome's simulated viewport wider. */
  .section-pad,
  .stay-feature,
  .experience-card,
  .planner-intro,
  .planner-form-shell,
  .inquiry-form,
  .planner-form,
  .connect-section,
  footer {
    min-width: 0;
    max-width: 100%;
  }

  footer {
    grid-template-columns: 1fr;
    text-align: left;
  }
  footer p:last-child {
    justify-self: start;
  }
}

/* Keep the editorial header in document flow across existing responsive rules. */
.topbar.journal-topbar { position: sticky; top: 0; }
@media (max-width: 680px) {
  .journal-page footer { grid-template-columns: 1fr; }
  footer .footer-brand { justify-self:center; align-items:center; }
}
