/* IFB typography layer: reading column, rhythm and spacing for long-form text.
   Loaded after ifb-fix.css on every page. Scoped to the centred text modules
   (.tzGTZ) so cards, navigation and cover blocks keep their own layout. */

:root {
  --ifb-measure: min(92vw, 54rem);
  --ifb-body: clamp(1.0625rem, 0.98rem + 0.3vw, 1.2rem);
  --ifb-leading: 1.68;
  --ifb-gap: 0.95em;
  --ifb-section: clamp(0.75rem, 0.35rem + 1.3vw, 1.6rem);
}

/* Reading column: wide on portrait tablets, capped on large screens */
.plfvA > .tzGTZ,
.plfvA > .rhaBK {
  max-width: var(--ifb-measure);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* Section rhythm: less dead air between text and image sections (cover blocks untouched) */
section.oXRwe:not([data-block-type="cover"]) > .plfvA {
  padding-top: var(--ifb-section);
  padding-bottom: var(--ifb-section);
}
.tzGTZ > .dh9us {
  padding-top: 0;
  padding-bottom: 0;
}

/* Body text */
.tzGTZ .dh9us p,
.tzGTZ .dh9us li {
  font-size: var(--ifb-body);
  line-height: var(--ifb-leading);
}
.tzGTZ .dh9us p {
  margin: 0;
}
.tzGTZ .dh9us p + p,
.tzGTZ .dh9us ul + p,
.tzGTZ .dh9us ol + p,
.tzGTZ .dh9us p + ul,
.tzGTZ .dh9us p + ol {
  margin-top: var(--ifb-gap);
}

/* Jimdo used empty paragraphs and leading line breaks as spacers: the margins above now do that job */
.tzGTZ .dh9us p:empty {
  display: none;
}
.tzGTZ .dh9us p > br:first-child:not(:only-child) {
  display: none;
}

/* Lists */
.tzGTZ .dh9us ul,
.tzGTZ .dh9us ol {
  margin-bottom: 0;
  padding-left: 1.35em;
}
.tzGTZ .dh9us li + li {
  margin-top: 0.45em;
}

/* Headings: proportionate, with space above that separates sections */
.tzGTZ .dh9us h1,
.tzGTZ .dh9us h2 {
  font-size: clamp(1.75rem, 1.2rem + 1.7vw, 2.6rem);
  line-height: 1.18;
  margin: 1.5em 0 0.45em;
  letter-spacing: -0.005em;
}
.tzGTZ .dh9us h3 {
  font-size: clamp(1.3rem, 1.05rem + 0.8vw, 1.7rem);
  line-height: 1.25;
  margin: 1.35em 0 0.4em;
}
.tzGTZ .dh9us h4 {
  font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
  margin: 1.2em 0 0.35em;
}
.tzGTZ .dh9us :is(h1, h2, h3, h4):first-child {
  margin-top: 0;
}
.tzGTZ .dh9us :is(h1, h2, h3, h4) + :is(h2, h3, h4) {
  margin-top: 0.25em;
}

/* Phones */
@media (max-width: 600px) {
  .plfvA > .tzGTZ,
  .plfvA > .rhaBK {
    max-width: 100%;
  }
  .tzGTZ .dh9us ul,
  .tzGTZ .dh9us ol {
    margin-left: 0;
    padding-left: 1.1em;
  }
}

/* Justified body text with hyphenation, so the right edge stays clean without wide gaps.
   Centred elements keep their alignment; headings stay ranged left. */
.tzGTZ .dh9us p:not(.text-align-center):not(.text-align-right),
.tzGTZ .dh9us li {
  text-align: justify;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 7 3 3;
  overflow-wrap: break-word;
}
.tzGTZ .dh9us :is(h1, h2, h3, h4):not(.text-align-center) {
  text-align: left;
  -webkit-hyphens: manual;
  hyphens: manual;
  text-wrap: balance;
}
/* Phones: a column of 35 to 40 characters is too narrow for justification
   (it opens rivers between words), so text ranges left there */
@media (max-width: 599px) {
  .tzGTZ .dh9us p:not(.text-align-center):not(.text-align-right),
  .tzGTZ .dh9us li {
    text-align: left;
  }
}

/* House fonts: Cormorant Garamond for headings, DM Sans for text (self-hosted, assets/fonts) */
:root,
[style*="--headlineFontFamily"] {
  --headlineFontFamily: "Cormorant Garamond", "Spectral", Georgia, serif !important;
  --copyFontFamily: "DM Sans", "Rubik", Arial, sans-serif !important;
  --headlineNormalFontWeight: 600 !important;
  --headlineBoldFontWeight: 700 !important;
}
.ifb-foot {
  font-family: "DM Sans", Arial, sans-serif;
}
/* Cormorant has a small x-height: set headings slightly larger and tighter */
.tzGTZ .dh9us h1,
.tzGTZ .dh9us h2 {
  font-size: clamp(1.95rem, 1.3rem + 1.9vw, 2.9rem);
  font-weight: 600;
  letter-spacing: 0;
}
.tzGTZ .dh9us h3 {
  font-size: clamp(1.45rem, 1.15rem + 0.9vw, 1.9rem);
  font-weight: 600;
}
.tzGTZ .dh9us h4 {
  font-size: clamp(1.2rem, 1.05rem + 0.45vw, 1.4rem);
  font-weight: 600;
}
/* Figures align by digit in tables and fee schedules */
table, .ifb-table {
  font-variant-numeric: tabular-nums lining-nums;
}

/* Centred statements keep their centring and a balanced line break */
.text-align-center { text-align: center; text-wrap: balance; }

/* Tables that replace Jimdo table images: hairline rules, quiet header, scrolls sideways on phones */
.ifb-table-wrap {
  margin: 1.1rem 0 0.4rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ifb-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: clamp(0.92rem, 0.86rem + 0.2vw, 1.02rem);
  line-height: 1.45;
}
.ifb-table th,
.ifb-table td {
  padding: 0.7em 0.9em;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}
.ifb-table thead th {
  font-size: 0.78em;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1.5px solid color-mix(in srgb, currentColor 55%, transparent);
  white-space: nowrap;
}
.ifb-table tbody th {
  font-weight: 600;
}
.ifb-table tbody tr:last-child > * {
  border-bottom: 0;
}
.ifb-table--compare thead th:nth-child(2),
.ifb-table--compare tbody td:first-of-type {
  background: color-mix(in srgb, currentColor 5%, transparent);
}
@media (max-width: 700px) {
  .ifb-table { min-width: 36rem; }
}

/* Short reference lists (for example country lists) set in columns */
.tzGTZ .dh9us ol.ifb-cols {
  columns: 2 14rem;
  column-gap: 2.5rem;
}
.tzGTZ .dh9us ol.ifb-cols li {
  break-inside: avoid;
  text-align: left;
}
.tzGTZ .dh9us ol.ifb-cols {
  list-style: none;
  padding-left: 0;
  counter-reset: ifb-c;
}
.tzGTZ .dh9us ol.ifb-cols li {
  counter-increment: ifb-c;
  padding-left: 2.1em;
  text-indent: -2.1em;
}
.tzGTZ .dh9us ol.ifb-cols li::before {
  content: counter(ifb-c) ".";
  display: inline-block;
  width: 2.1em;
  text-indent: 0;
  font-variant-numeric: tabular-nums;
  opacity: 0.6;
}

/* Lists in cards and side columns outside the reading column still need air between entries */
main .dh9us :is(ul, ol) > li + li {
  margin-top: 0.5em;
}
main .dh9us p + p,
main .dh9us :is(ul, ol) + p,
main .dh9us p + :is(ul, ol) {
  margin-top: 0.85em;
}
main .dh9us p:empty {
  display: none;
}
.ifb-table .num { text-align: right; white-space: nowrap; }
.ifb-table--narrow { max-width: 40rem; }
@media (max-width: 700px) { .ifb-table--narrow { min-width: 0; } }

/* Titles and notes for HTML tables that replaced table images */
.ifb-table-block { margin: 0.6rem 0 0.4rem; }
.ifb-table-title {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.35rem, 1.1rem + 0.8vw, 1.75rem);
  font-weight: 600;
  line-height: 1.25;
  margin: 0 0 0.3rem;
}
.ifb-table-note {
  font-size: 0.86rem;
  line-height: 1.5;
  opacity: 0.75;
  margin: 0.6rem 0 0;
}

/* Home hero: portal image with live text (2026-10-21) */
.ifb-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 50%;display:block}
.ifb-hero-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(10,18,38,.35) 0%,rgba(10,18,38,0) 50%)}
.ifb-hero-text{position:absolute;z-index:2;left:clamp(1.25rem,6vw,7rem);top:50%;transform:translateY(-50%);max-width:min(46%,36rem);color:#fff;pointer-events:none}
.ifb-hero-text p,.ifb-hero-text h1{text-align:left!important;margin:0!important;padding:0!important}
.ifb-hero-eyebrow,.ifb-hero-sub{font-family:"DM Sans",system-ui,sans-serif!important;text-transform:uppercase;letter-spacing:.22em;font-size:clamp(.66rem,.9vw,.8rem)!important;line-height:1.5!important}
.ifb-hero-text .ifb-hero-eyebrow{color:#c9a85c!important;margin-bottom:1.3em!important}
.ifb-hero-eyebrow span{white-space:nowrap}
.ifb-hero-sub{color:rgba(255,255,255,.8)!important}
.ifb-hero-title{font-family:"Cormorant Garamond",Georgia,serif!important;font-weight:500!important;font-size:clamp(2rem,4.4vw,4.6rem)!important;line-height:1.02!important;letter-spacing:.005em;color:#fff!important;text-wrap:balance}
.ifb-hero-rule{display:block;width:4.5rem;height:1px;background:#c9a85c;margin:1.4em 0 1.2em}
@media (max-aspect-ratio:1/1){
 .ifb-hero-img{object-position:72% 40%}
 .ifb-hero-shade{background:linear-gradient(180deg,rgba(10,18,38,0) 35%,rgba(10,18,38,.72) 66%,rgba(10,18,38,.92) 100%)}
 .ifb-hero-text{top:auto;bottom:11%;transform:none;left:clamp(1.25rem,6vw,4rem);right:clamp(1.25rem,6vw,4rem);max-width:none}
 .ifb-hero-title{font-size:clamp(2.1rem,8.5vw,4.4rem)!important}
 .ifb-hero-eyebrow,.ifb-hero-sub{letter-spacing:.16em}
 .ifb-hero-rule{margin:1em 0 .9em}
 .ifb-hero-text .ifb-hero-eyebrow{margin-bottom:.9em!important}
}
/* section heroes (series images) */
.ifb-hero-text--section .ifb-hero-sub{text-transform:none!important;letter-spacing:.01em!important;font-size:clamp(.95rem,1.25vw,1.15rem)!important;line-height:1.5!important;color:rgba(255,255,255,.82)!important;max-width:30rem}
section.oXRwe:has(.ifb-hero-img) .YgYWh{display:none}
section.oXRwe:has(.ifb-hero-img) .qTwpq{display:none}
@media (max-aspect-ratio:1/1){section.oXRwe .FHs03:has(.ifb-hero-img){height:78vh!important;min-height:520px;padding-bottom:0!important}}
.ifb-split-img{object-fit:cover!important;object-position:80% 50%!important}
@media (min-aspect-ratio:1/1){section.oXRwe .FHs03:has(.ifb-hero-img){padding-bottom:0!important;height:min(56.25vw,calc(100vh - 104px))!important;min-height:480px}}
@media (min-aspect-ratio:1/1){section.oXRwe.oXRwe[data-block-type="cover"][id]:has(.ifb-hero-img),section.oXRwe.oXRwe[data-block-type="cover"][id]:has(.ifb-hero-img) ._SGLC{min-height:0!important}}@media (max-aspect-ratio:1/1){section.oXRwe.oXRwe[data-block-type="cover"][id]:has(.ifb-hero-img),section.oXRwe.oXRwe[data-block-type="cover"][id]:has(.ifb-hero-img) ._SGLC{min-height:0!important}section.oXRwe .FHs03:has(.ifb-hero-img){height:78vh!important;min-height:520px}}
html body section.oXRwe.oXRwe.oXRwe[data-block-type="cover"][id]:has(.ifb-hero-img){min-height:0!important}
@media (min-aspect-ratio:1/1){html body section.oXRwe.oXRwe.oXRwe[data-block-type="cover"][id]:has(.FHs03 .ifb-hero-img){height:min(56.25vw,calc(100vh - 104px))!important;min-height:480px!important}html body section.oXRwe.oXRwe.oXRwe[data-block-type="cover"][id]:has(.FHs03 .ifb-hero-img) .FHs03{height:100%!important}}
/* banner-type heroes (j3fjg) turned into full series heroes */
section.ifb-banner-hero .FHs03{position:relative;padding-bottom:0!important;height:min(56.25vw,calc(100vh - 104px));min-height:480px}
section.ifb-banner-hero .OAT9p{position:absolute;inset:0}
section.ifb-banner-hero .qTwpq{display:none}
@media (max-aspect-ratio:1/1){section.ifb-banner-hero .FHs03{height:78vh;min-height:520px}}
@media (max-aspect-ratio:1/1){.ifb-hero-img.ifb-pos-r{object-position:80% 40%!important}}
/* fix 2026-10-22: video-type covers (T6A7Z) now carrying an <img> need an explicit height */
html body section.oXRwe.oXRwe.oXRwe[data-block-type="cover"][id]:has(.T6A7Z .ifb-hero-img){height:min(56.25vw,calc(100vh - 104px))!important;min-height:480px!important}
html body section.oXRwe.oXRwe.oXRwe[data-block-type="cover"][id]:has(.T6A7Z .ifb-hero-img) :is(._SGLC,.Cf__d,.lSzs0,.Orxgw,.aY8w1){height:100%!important}
@media (max-aspect-ratio:1/1){html body section.oXRwe.oXRwe.oXRwe[data-block-type="cover"][id]:has(.T6A7Z .ifb-hero-img){height:78vh!important;min-height:520px!important}}
html body section.oXRwe[data-block-type="cover"][id]:has(.T6A7Z .ifb-hero-img){overflow:hidden!important}
html body section.oXRwe[data-block-type="cover"][id]:has(.T6A7Z .ifb-hero-img) .T6A7Z{position:absolute!important;inset:0!important;height:100%!important;padding:0!important}
