:root {
  color-scheme: light;
  --ink: #173b36;
  --text: #293f38;
  --muted: #53685e;
  --paper: #fffefa;
  --canvas: #f6f5ef;
  --wash: #edf2e9;
  --line: #cad6cc;
  --accent: #965137;
  --green: #23634d;
  --focus: #a64a24;
  --radius: 0.65rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.125rem;
  line-height: 1.65;
}
img, svg, video { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, input, select, textarea, a { -webkit-tap-highlight-color: transparent; }
button, summary, label { touch-action: manipulation; }
button { cursor: pointer; }
a { color: var(--green); text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 0.12em; }
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 4px;
}
button:disabled { cursor: not-allowed; opacity: 0.6; }
[hidden] { display: none !important; }
h1, h2, h3, h4 { color: var(--ink); line-height: 1.25; }
h1 { font-size: clamp(2rem, 4.8vw, 3.25rem); letter-spacing: -0.035em; margin: 0 0 1rem; }
h2 { font-size: clamp(1.5rem, 2.7vw, 2rem); letter-spacing: -0.025em; margin: 0 0 0.9rem; }
h3 { font-size: 1.3rem; letter-spacing: -0.015em; margin: 0 0 0.75rem; }
h4 { font-size: 1.125rem; margin: 1.5rem 0 0.6rem; }
p { margin: 0 0 1rem; }
ul, ol { padding-left: 1.4rem; margin: 0 0 1rem; }
li + li { margin-top: 0.35rem; }
hr { border: 0; border-top: 1px solid var(--line); margin: 2rem 0; }
code { font-size: 0.9em; overflow-wrap: anywhere; }
pre { max-width: 100%; overflow: auto; padding: 1rem; background: var(--wash); border-radius: var(--radius); }
.container { width: min(100% - 3rem, 76rem); margin-inline: auto; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link { position: absolute; top: -8rem; left: 1rem; z-index: 100; padding: 0.7rem 1rem; background: white; color: var(--ink); }
.skip-link:focus { top: 0.7rem; }

.site-header { background: var(--paper); border-bottom: 1px solid var(--line); }
.header-inner { display: flex; align-items: center; flex-wrap: wrap; gap: 0.8rem 1.5rem; padding-block: 1.1rem; }
.brand { font-size: 1.4rem; font-weight: 780; letter-spacing: -0.035em; color: var(--ink); text-decoration: none; line-height: 1.2; }
.utility-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem 1rem; margin-left: auto; font-size: 0.9rem; }
.utility-nav a { padding-block: 0.35rem; }
.primary-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 0.3rem 1.5rem; width: 100%; font-size: 0.98rem; }
.primary-nav ul { display: flex; align-items: center; flex-wrap: wrap; gap: 0.3rem 1.5rem; list-style: none; padding: 0; margin: 0; }
.primary-nav li { margin: 0; }
.primary-nav a { display: block; padding: 0.45rem 0; text-decoration: none; font-weight: 650; color: var(--ink); }
.primary-nav a:hover, .primary-nav a[aria-current="page"], .primary-nav a[aria-current="true"] { color: var(--accent); text-decoration: underline; text-decoration-thickness: 2px; }
.menu-toggle { display: none; min-height: 44px; padding: 0.45rem 0.8rem; border: 1px solid var(--line); border-radius: 0.4rem; color: var(--ink); background: white; }
.hero { padding-block: 3rem 2.5rem; background: var(--paper); border-bottom: 1px solid var(--line); }
.hero h1, .hero .lede { max-width: 56rem; }
.eyebrow { color: var(--accent); font-size: 0.82rem; font-weight: 750; letter-spacing: 0.075em; text-transform: uppercase; margin-bottom: 0.8rem; }
.lede { font-size: 1.25rem; line-height: 1.65; max-width: 52rem; }
.hero .lede:last-child { margin-bottom: 0; }
.breadcrumbs { margin-block: 1.2rem; font-size: 0.9rem; color: var(--muted); overflow-wrap: anywhere; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.35rem 0.65rem; padding: 0; margin: 0; list-style: none; }
.breadcrumbs li { margin: 0; }
.breadcrumbs li + li::before { content: "/"; color: var(--muted); padding-right: 0.65rem; }

.section { padding-block: 2.5rem; }
.section + .section { border-top: 1px solid var(--line); }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin-bottom: 1.2rem; }
.section-heading h2 { margin: 0; }
.section-heading p { color: var(--muted); margin: 0; max-width: 40rem; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1.25rem; }
.card { min-width: 0; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; }
.card h2, .card h3 { font-size: 1.3rem; }
.card h2 a, .card h3 a { color: var(--ink); }
.card p { font-size: 1rem; }
.card p:last-child { margin-bottom: 0; }
.card-meta { font-size: 0.85rem; color: var(--muted); margin-top: 1rem; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 0.65rem; margin-block: 1.2rem 0; }
.button, button.button, a.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
  min-height: 46px; max-width: 100%; padding: 0.65rem 1rem; border: 1px solid var(--green);
  border-radius: 0.45rem; background: var(--green); color: white;
  text-align: center; text-decoration: none; font-size: 1rem; font-weight: 700; line-height: 1.35;
}
.button:hover { background: var(--ink); border-color: var(--ink); }
.button-secondary, button.button-secondary, a.button-secondary {
  background: var(--paper); color: var(--ink); border-color: #91a99a;
}
.button-secondary:hover { background: var(--wash); color: var(--ink); border-color: var(--green); }
button[data-save-path].is-saved { background: var(--wash); color: var(--green); border-color: var(--green); }
html:not(.js) button[data-save-path],
html:not(.js) .search-panel > label,
html:not(.js) .search-panel .search-row { display: none; }
.chip, .badge { display: inline-block; background: var(--wash); border: 1px solid var(--line); border-radius: 0.35rem; color: var(--ink); font-size: 0.8rem; font-weight: 650; padding: 0.18rem 0.55rem; line-height: 1.6; }
.badge { background: #f7eadf; border-color: #dfc5b2; color: #713b25; }

.page-layout { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; grid-template-areas: "main aside"; gap: 2rem; align-items: start; margin-block: 2rem 3.5rem; }
.page-layout > .article { grid-area: main; min-width: 0; }
.page-layout > .sidebar { grid-area: aside; min-width: 0; }
.article { max-width: 58rem; }
.article > h2:not(:first-child) { margin-top: 2rem; }
.sidebar { padding: 1.25rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); font-size: 1rem; }
.sidebar h2, .sidebar h3 { font-size: 1.2rem; }
.sidebar p:last-child, .sidebar ul:last-child { margin-bottom: 0; }
.content-block { margin-block: 1.8rem; }
.content-block h2 { margin-bottom: 1rem; }
.notice, .note { background: var(--wash); border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 0.35rem; padding: 1rem 1.2rem; margin-block: 1.25rem; }
.notice p:last-child, .note p:last-child { margin-bottom: 0; }
.notice-draft { border-color: #dfc5b2; border-left-color: var(--accent); background: #fbf1e7; color: #593d2b; }
.notice-draft h2, .notice-draft h3 { color: #593d2b; }
.note { font-size: 0.95rem; }
.empty-state { padding: 1.5rem; background: var(--paper); border: 1px dashed #9caf9f; border-radius: var(--radius); }
.empty-state p:last-child { margin-bottom: 0; }
.route-list { list-style: none; padding: 0; }
.route-list li { margin: 0; padding-block: 0.85rem; border-bottom: 1px solid var(--line); }
.route-list a { font-weight: 650; }
.route-list small { display: block; color: var(--muted); }
.source-list { font-size: 0.95rem; }
.source-list li { overflow-wrap: anywhere; }
.source-list a, .source-url { overflow-wrap: anywhere; }
.source-url { display: block; color: var(--muted); font-size: 0.8rem; margin-top: 0.25rem; }
.toc { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.2rem; margin-bottom: 1.5rem; }
.toc h2, .toc h3 { font-size: 1.2rem; }
.toc ul, .toc ol { margin-bottom: 0; }
.toc a { display: inline-block; padding-block: 0.15rem; }
.qa { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; margin-block: 1rem; scroll-margin-top: 1.5rem; }
.qa h3 { font-size: 1.28rem; line-height: 1.4; }
.qa .qno, .qno { display: block; color: var(--muted); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em; margin-bottom: 0.45rem; }
.faq-section { margin-block: 2.2rem; }
.faq-section > .section-heading { padding-bottom: 0.8rem; border-bottom: 2px solid var(--ink); }
.citations { font-size: 0.78rem; line-height: 1.3; vertical-align: super; }
.citations a { display: inline-block; padding-inline: 0.1rem; text-decoration: none; }
.back-top { font-size: 0.85rem; color: var(--muted); }
.references { margin-top: 2.5rem; padding: 1.5rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.references > p { font-size: 0.95rem; color: var(--muted); }
.references ol { list-style: none; padding: 0; margin: 1rem 0 0; }
.references li { margin: 0; padding-block: 0.9rem; border-top: 1px solid var(--line); font-size: 0.92rem; }
.table-scroll, .table-wrap { overflow-x: auto; max-width: 100%; margin-block: 1.4rem; }
table { width: 100%; border-collapse: collapse; font-size: 0.95rem; line-height: 1.5; text-align: left; }
caption { text-align: left; color: var(--muted); padding-bottom: 0.7rem; font-size: 0.9rem; }
th, td { padding: 0.75rem 0.8rem; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
thead th { background: var(--wash); color: var(--ink); font-weight: 700; }
tbody th { font-weight: 650; }

.search-form { display: flex; align-items: end; flex-wrap: wrap; gap: 0.75rem; margin-block: 1rem 1.5rem; }
.search-form .field { flex: 1 1 16rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.field { display: flex; min-width: 0; flex-direction: column; gap: 0.4rem; }
.field label, label.field { color: var(--ink); font-weight: 650; font-size: 1rem; }
.field input, .field select, .field textarea,
input[type="search"], input[data-faq-search] {
  width: 100%; min-width: 0; min-height: 48px; border: 1px solid #8fa598; border-radius: 0.35rem;
  padding: 0.65rem 0.75rem; color: var(--ink); background: white;
}
textarea { min-height: 8rem; resize: vertical; }
input[aria-invalid="true"], select[aria-invalid="true"] { border: 2px solid var(--accent); }
.form-hint, [data-faq-count], [data-save-status], [data-budget-status] { font-size: 0.9rem; color: var(--muted); margin-top: 0.6rem; }
[data-budget-status].is-error { color: #7c341c; font-weight: 650; }
[data-budget-total] { display: block; color: var(--ink); font-weight: 750; font-size: clamp(1.75rem, 4vw, 2.5rem); margin-top: 0.8rem; }
[data-saved-list] { list-style: none; padding: 0; }
.saved-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 1.2rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); margin-top: 0.8rem; }
.saved-item > a { font-weight: 650; overflow-wrap: anywhere; }
.saved-empty { color: var(--muted); }
.site-footer { border-top: 1px solid var(--line); background: var(--paper); padding-block: 2.5rem; margin-top: 2rem; font-size: 0.95rem; }
.footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 1.8rem; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer h2, .site-footer h3 { font-size: 1.1rem; }
.site-footer a { display: inline-block; padding-block: 0.2rem; }
.site-footer .footer-note { color: var(--muted); font-size: 0.85rem; margin-top: 2rem; }

@media (max-width: 62rem) {
  .js .menu-toggle { display: inline-flex; align-items: center; justify-content: center; margin-left: auto; }
  .utility-nav { margin-left: 0; width: 100%; }
  .js .primary-nav:not(.is-open) { display: none; }
  .primary-nav, .primary-nav ul { align-items: stretch; gap: 0; width: 100%; }
  .primary-nav { border-top: 1px solid var(--line); padding-top: 0.6rem; }
  .primary-nav ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
  .primary-nav > a { flex: 1 1 45%; }
  .primary-nav a { padding: 0.65rem 0; }
  .page-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main" "aside"; gap: 1.5rem; }
  .article { max-width: none; }
  .sidebar { width: 100%; }
}
@media (max-width: 38rem) {
  body { font-size: 1.0625rem; }
  .container { width: min(100% - 2rem, 76rem); }
  .header-inner { padding-block: 0.85rem; gap: 0.7rem 1rem; }
  .brand { font-size: 1.25rem; }
  .utility-nav { font-size: 0.85rem; gap: 0.35rem 1rem; }
  .hero { padding-block: 2rem; }
  .lede { font-size: 1.125rem; }
  .section { padding-block: 1.8rem; }
  .page-layout { margin-top: 1.5rem; }
  .card, .qa, .references, .toc, .sidebar { padding: 1.1rem; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  th, td { padding: 0.6rem; font-size: 0.85rem; }
  .actions { align-items: stretch; }
  .actions .button { flex: 1 1 auto; }
  .notice, .note { padding: 0.9rem 1rem; }
  .site-footer { padding-block: 1.8rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  body { background: white; color: black; font-size: 11pt; line-height: 1.5; }
  .container { width: 100%; }
  .site-header, .utility-nav, .primary-nav, .menu-toggle, .skip-link,
  .site-footer, .search-form, .search-panel, button[data-save-path], .back-top, [data-faq-clear] { display: none !important; }
  .hero { background: white; padding-block: 0 1rem; }
  h1 { font-size: 27pt; }
  h2 { font-size: 19pt; }
  h3 { font-size: 14pt; break-after: avoid; }
  .page-layout { display: block; margin-block: 1rem; }
  .sidebar { margin-top: 1rem; }
  .card, .qa, .references, .toc, .sidebar { background: white; border-color: #aaa; }
  .qa, .content-block { break-inside: auto; }
  .table-scroll, .table-wrap { overflow: visible; }
  tr { break-inside: avoid; }
  a { color: black; }
  .qa[hidden], .faq-section[hidden] { display: block !important; }
  .source-url { font-size: 8pt; }
}

/* AustraliaBali: a practical travel journal. All fonts and assets are local. */
:root { --ink:#173f3b; --text:#2d4441; --muted:#596c65; --paper:#fffdf8; --canvas:#fbf8f1; --wash:#eaf0e8; --line:#d5ded2; --accent:#9d4c2d; --green:#1d5b51; --focus:#b54f2b; --radius:.4rem; }
body { font-size:1.0625rem; line-height:1.75; }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.035em; }
h1 { line-height:1.12; }
h2 { font-size:clamp(1.8rem,3vw,2.55rem); }
h3 { font-size:1.18rem; line-height:1.4; }
.site-header { background:var(--paper); }
.masthead { min-height:100px; display:flex; align-items:center; gap:2rem; }
.brand { display:inline-flex; align-items:center; gap:.6rem; font-size:1.65rem; white-space:nowrap; }
.brand-accent { color:var(--green); }
.brand small { font-size:.75rem; font-weight:500; letter-spacing:0; margin-left:.08rem; }
.brand-note { color:var(--muted); font-size:.81rem; max-width:15rem; border-left:1px solid var(--line); padding-left:1.5rem; line-height:1.5; }
.utility-nav { gap:1.25rem; font-size:.81rem; }
.utility-nav a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; color:var(--ink); font-weight:600; }
.utility-nav .emergency-link { color:#934523; }
.navigation-border { border-top:1px solid #e5e7dc; }
.primary-nav.container { width:min(100% - 3rem,76rem); justify-content:space-between; flex-wrap:nowrap; gap:1rem; padding-block:.25rem; font-size:.87rem; }
.primary-nav a { min-height:48px; display:flex; align-items:center; font-weight:600; }
.hero { background:transparent; }
.eyebrow { letter-spacing:.13em; font-size:.72rem; margin-bottom:.8rem; color:#8f4b32; }
.lede { color:#4a625a; font-size:1.15rem; line-height:1.8; }
.button { border-radius:.22rem; padding:.85rem 1.3rem; min-height:48px; font-size:.9rem; }
.button-secondary,button.button-secondary,a.button-secondary { background:transparent; border-color:#9bad9e; }
.home-hero { display:grid; grid-template-columns:1.08fr 1fr; align-items:center; gap:4rem; padding-block:3.75rem 3.2rem; }
.home-intro h1 { font-size:clamp(2.9rem,4.8vw,4.4rem); margin-bottom:1.25rem; }
.home-intro .lede { max-width:31rem; }
.home-intro .actions { gap:.8rem; margin-top:1.5rem; }
.hero-note { font-size:.74rem; color:var(--muted); margin-top:1.25rem; }
.travel-photo { margin:0; }
.travel-photo img { width:100%; display:block; object-fit:cover; }
.travel-photo figcaption { font-size:.67rem; color:var(--muted); margin-top:.55rem; line-height:1.6; }
.travel-photo figcaption a { color:inherit; }
.hero-photo .travel-photo img { aspect-ratio:1.22; border-radius:55% 55% .3rem .3rem / 32% 32% .3rem .3rem; }
.essentials-strip { display:grid; grid-template-columns:1fr 1.7fr; gap:2.5rem; align-items:center; background:#eaf0e8; border-block:1px solid #d5decf; padding:1.8rem 2.3rem; }
.essentials-strip .eyebrow { margin-bottom:.25rem; }
.essentials-strip h2 { font-size:1.7rem; margin:0; line-height:1.25; }
.essentials-strip ol { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:.6rem 1.5rem; counter-reset:essentials; }
.essentials-strip li { counter-increment:essentials; display:flex; gap:.75rem; align-items:center; margin:0; font-size:.87rem; }
.essentials-strip li::before { content:'0' counter(essentials); font-size:.7rem; color:#6a796d; }
.essentials-strip a { display:inline-flex; min-height:44px; align-items:center; font-weight:600; text-decoration:none; }
.section { padding-block:3.4rem; }
.section-heading { margin-bottom:1.75rem; align-items:end; }
.section-heading .eyebrow { margin-bottom:.4rem; }
.section-link { font-size:.85rem; font-weight:700; text-underline-offset:.35em; padding-block:.5rem; }
.destination-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.35rem; }
.destination-card { min-width:0; background:var(--paper); border:1px solid var(--line); }
.destination-photo-link { display:block; overflow:hidden; }
.destination-photo-link img { display:block; width:100%; height:auto; aspect-ratio:1.2; object-fit:cover; }
.destination-copy { padding:1.15rem 1.1rem; }
.destination-copy h3 { font-family:Georgia,serif; font-size:1.65rem; font-weight:400; margin:0 0 .25rem; }
.destination-copy a { text-decoration:none; color:var(--ink); }
.destination-copy p { font-size:.78rem; color:var(--muted); margin:0; }
.photo-credits { font-size:.69rem; color:var(--muted); margin-top:1rem; }
.photo-credits summary { min-height:44px; display:list-item; padding-block:.6rem; cursor:pointer; }
.photo-credits p { margin-bottom:.5rem; }
.planning-panel { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:4rem; padding:2.8rem 3.2rem; background:#174d48; color:#e2ebe4; }
.planning-panel h2 { color:#fffdf5; font-size:2.65rem; max-width:26rem; }
.planning-panel .eyebrow { color:#edba98; }
.planning-panel p:not(.eyebrow) { font-size:.95rem; max-width:31rem; }
.button-light { background:#f4eddd; color:#17433c; border-color:#f4eddd; }
.button-light:hover { background:#fffdf5; color:#17433c; }
.budget-illustration { transform:rotate(3deg); background:#faf5e9; padding:1.5rem 1.8rem; color:#214d42; box-shadow:0 14px 35px #062b2b26; }
.budget-illustration>p { font-size:.7rem!important; letter-spacing:.15em; margin-bottom:1rem; }
.budget-illustration>div { display:flex; justify-content:space-between; gap:.8rem; font-size:.84rem; border-top:1px solid #d4ded1; padding-block:.75rem; }
.budget-illustration>div span+span { font-size:.65rem; color:#6a7b6a; }
.budget-illustration .budget-rule { align-items:center; padding-bottom:0; font-family:Georgia,serif; font-size:1.18rem; }
.card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.card { border-radius:.25rem; padding:1.45rem; }
.card-meta { margin-top:0; text-transform:uppercase; letter-spacing:.1em; font-size:.65rem!important; color:#6f796a; }
.card h3 { font-size:1.14rem; }
.card h3 a { text-decoration:none; }
.card h3 a:hover { text-decoration:underline; }
.card p { font-size:.89rem; }
.faq-callout { display:grid; grid-template-columns:1.2fr 1fr; gap:4rem; padding:2.4rem 0 3.4rem; border-top:1px solid var(--line); }
.faq-callout h2 { font-size:2.25rem; }
.faq-callout p { font-size:.94rem; }
.faq-callout ul { list-style:none; padding:0; }
.faq-callout li { border-bottom:1px solid var(--line); margin:0; }
.faq-callout li a { display:block; padding:1rem 0; font-size:.91rem; font-weight:600; text-decoration:none; }
.article-heading { max-width:60rem; padding-block:1.5rem 2rem; }
.article-heading h1 { font-size:clamp(2.4rem,4vw,3.6rem); }
.article-meta { display:flex; flex-wrap:wrap; gap:.3rem 1.25rem; margin-top:1.25rem; }
.article-meta p { color:var(--muted); font-size:.75rem; margin:0; }
.save-button { margin-top:1.25rem; }
.page-layout { grid-template-columns:minmax(0,1fr) 16rem; gap:4rem; margin-top:1.75rem; }
.article p,.article li { max-width:72ch; }
.template-transfer main>.content-block,.template-transfer main>.section,.template-calculator main>.content-block,.template-calculator main>.section { max-width:58rem; }
.article h2 { font-size:1.9rem; }
.article .travel-photo { margin-block:0 2rem; }
.article .travel-photo img { aspect-ratio:1.9; }
.article-toc { padding:1.3rem 1.5rem; background:var(--wash); margin-bottom:2rem; border-left:3px solid var(--green); }
.article-toc h2 { font:700 .88rem system-ui,sans-serif; margin-bottom:.65rem; }
.article-toc ol { margin:0; font-size:.88rem; }
.article-toc a { display:inline-block; padding:.15rem 0; }
.sidebar { border-radius:.2rem; background:transparent; padding:1.2rem 0; border-width:1px 0 0; }
.sidebar h2 { font-family:system-ui,sans-serif; font-weight:700; font-size:.85rem; }
.sidebar a { font-size:.86rem; text-decoration:none; }
.qa { border-width:0 0 1px; background:transparent; padding:1.2rem 0; border-radius:0; }
.qa h3 { font-family:Georgia,serif; font-size:1.5rem; font-weight:400; }
.qa p { font-size:1rem; }
.toc { border-radius:.2rem; background:transparent; }
.source-list a,.references a { overflow-wrap:anywhere; }
.share-section { max-width:52rem; border-top:1px solid var(--line); padding:2rem 0 3rem; }
[data-faq-clear] { min-height:44px; padding:.6rem 1rem; border:1px solid #9bad9e; background:var(--paper); color:var(--ink); border-radius:.2rem; }
.share-section h2 { font-size:1.6rem; }
.share-section p { font-size:.9rem; }
.share-links { display:flex; flex-wrap:wrap; gap:.6rem; align-items:start; }
.share-links>a,.page-link summary { min-height:44px; display:inline-flex; align-items:center; padding:.5rem 1rem; border:1px solid #a5b7a6; font-size:.82rem; color:var(--ink); text-decoration:none; }
.page-link summary { cursor:pointer; display:list-item; }
.page-link[open] { flex-basis:100%; }
.page-link label { display:block; font-size:.8rem; margin-top:.8rem; }
.page-link input { width:min(100%,40rem); min-height:46px; padding:.7rem; background:white; border:1px solid #a5b7a6; color:var(--ink); font-size:.85rem; }
.stay-profile { padding:1.6rem 0; border-top:1px solid var(--line); }
.emergency-contacts { padding-top:0; }
.emergency-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.emergency-list .card { padding:1rem 1.25rem; }
.emergency-list .card h3 { font-size:1rem; margin-bottom:.4rem; }
.emergency-list .card p { margin-bottom:.5rem; }
.emergency-list .card a { display:inline-flex; min-height:44px; align-items:center; font-size:1.3rem; font-weight:700; }
@media(max-width:700px) { .emergency-list { grid-template-columns:1fr; } }
.stay-facts { font-size:.9rem; }
.stay-drawback { background:var(--wash); padding:.9rem 1.1rem; font-size:.9rem; }
.site-footer { background:#ecf0e6; padding-block:2.8rem 0; margin-top:1rem; }
.footer-grid { grid-template-columns:1.3fr 1fr 1.25fr; gap:3rem; }
.footer-brand { font-family:Georgia,serif; font-size:1.9rem; font-weight:400; margin-bottom:1rem; }
.footer-grid>div>p { font-size:.9rem; }
.site-footer nav h2 { font-family:system-ui,sans-serif; font-size:.82rem; font-weight:700; }
.site-footer nav a { display:block; width:fit-content; max-width:100%; min-height:36px; font-size:.8rem; text-decoration:none; }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem; font-size:.69rem; color:var(--muted); padding-block:1.3rem; margin-top:2rem; border-top:1px solid #ced9c9; }
@media(min-width:1000px) { .sidebar { position:sticky; top:1rem; } }
@media(max-width:1100px) {
 .brand-note { display:none; }.home-hero { gap:2.2rem; }.home-intro h1 { font-size:3.7rem; }.primary-nav.container { font-size:.82rem; }.page-layout { gap:2.3rem; }
}
@media(max-width:62rem) {
 .masthead { min-height:86px; flex-wrap:wrap; padding-block:.9rem; gap:.4rem 1rem; }.utility-nav { margin-left:auto; width:auto; }.menu-toggle { margin-left:0!important; }
 .primary-nav.container { display:flex; flex-wrap:wrap; justify-content:start; padding-block:.5rem; }.primary-nav a { flex-basis:45%; min-height:48px; }
 .js .primary-nav.container:not(.is-open) { display:none; }.home-hero { padding-block:2.5rem; gap:2rem; }.home-intro h1 { font-size:clamp(2.7rem,5vw,3.5rem); }.home-intro .lede { font-size:1rem; }
 .essentials-strip { padding:1.5rem; gap:1.5rem; grid-template-columns:1fr 1.4fr; }.essentials-strip h2 { font-size:1.4rem; }.essentials-strip li { font-size:.77rem; }
 .destination-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.planning-panel { padding:2rem; gap:2rem; }.planning-panel h2 { font-size:2.15rem; }
 .page-layout { grid-template-columns:1fr; }.faq-callout { gap:2rem; }.footer-grid { gap:1.5rem; }.sidebar { position:static; }
}
@media(max-width:700px) {
 .container,.primary-nav.container { width:calc(100% - 2rem); }.masthead { gap:.6rem 1rem; }.brand { font-size:1.35rem; }.brand svg { width:29px; height:29px; }.brand small { font-size:.65rem; }
 .utility-nav { order:3; width:100%; margin:0; justify-content:space-between; font-size:.75rem; }.utility-nav a { min-height:44px; }.menu-toggle { margin-left:auto!important; }
 .home-hero { grid-template-columns:1fr; gap:1.5rem; padding-block:2.2rem 1.8rem; }.home-intro h1 { font-size:clamp(2.55rem,8vw,3.4rem); }.home-intro .lede { font-size:1.0625rem; }.hero-note { margin-bottom:0; }.hero-photo .travel-photo img { max-height:270px; aspect-ratio:1.5; border-radius:40% 40% .2rem .2rem / 26% 26% .2rem .2rem; }
 .essentials-strip { grid-template-columns:1fr; gap:.75rem; padding:1.3rem; }.essentials-strip ol { gap:.3rem .7rem; }.essentials-strip li { gap:.4rem; font-size:.79rem; }.section { padding-block:2.5rem; }
 .section-heading { gap:.7rem; }.section-heading h2 { font-size:1.95rem; }.destination-grid { gap:.8rem; }.destination-copy { padding:.8rem; }.destination-copy h3 { font-size:1.4rem; }.destination-copy p { font-size:.72rem; }
 .planning-panel { grid-template-columns:1fr; padding:1.8rem; gap:2rem; }.planning-panel h2 { font-size:2.2rem; }.budget-illustration { transform:rotate(2deg); max-width:23rem; width:100%; margin:auto; }.card-grid { grid-template-columns:1fr; }
 .faq-callout { grid-template-columns:1fr; gap:1rem; padding-bottom:2rem; }.faq-callout h2 { font-size:2.05rem; }.article-heading h1 { font-size:2.5rem; }.article-heading .lede { font-size:1.06rem; }.article-meta { display:block; }.article-meta p+p { margin-top:.3rem; }
 .article h2 { font-size:1.75rem; }.footer-grid { grid-template-columns:1fr 1fr; gap:1.5rem; }.footer-grid>div { grid-column:1/-1; }.footer-bottom { margin-top:1.2rem; }.photo-credits { font-size:.7rem; }
}
@media(max-width:350px) { .essentials-strip ol { grid-template-columns:1fr; }.brand { font-size:1.22rem; }.destination-grid { grid-template-columns:1fr; }.footer-grid { grid-template-columns:1fr; }.home-intro h1 { font-size:2.35rem; } }
@media print { .home-hero,.planning-panel,.faq-callout,.footer-grid { display:block; }.budget-illustration,.photo-credits,.share-section,.save-button { display:none; }.planning-panel { background:white; color:black; }.planning-panel h2 { color:black; }.article-meta { display:block; }.page-layout { display:block; }.hero-photo { max-width:25rem; } }
