/* ==========================================================================
   ConfPress — main stylesheet
   ========================================================================== */
:root {
  --cp-navy: #002855;
  --cp-navy-2: #003b7e;
  --cp-cyan: #44c8f5;
  --cp-orange: #e87722;
  --cp-blue: #0089f2;
  --cp-dark: #272727;
  --cp-border: #bdbdbd;
  --cp-stripe: rgba(217, 217, 217, .3);
  --cp-font: "Open Sans", Helvetica, Arial, sans-serif;
  --cp-font-ui: "Roboto", "Open Sans", Arial, sans-serif;
  --cp-container: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--cp-font);
  font-size: 16px;
  line-height: 1.8;
  color: var(--cp-navy);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--cp-cyan); text-decoration: none; }
a:hover, a:focus { text-decoration: underline; }
h1, h2, h3, h4, h5, h6 { font-family: var(--cp-font); font-weight: 700; line-height: 1.2; color: var(--cp-navy); margin: 0 0 .5rem; }
h1 { font-size: 2.625rem; }
h2 { font-size: 2.25rem; }
h3 { font-size: 1.625rem; }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.1rem; }
p { margin: 0 0 1rem; }
.cp-container { width: 100%; max-width: var(--cp-container); margin: 0 auto; padding: 0 12px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { clip: auto; width: auto; height: auto; z-index: 99999; top: 6px; left: 6px; background: #fff; padding: 10px 16px; color: var(--cp-navy); }

/* ---------- Top utility bar ---------- */
.cp-topbar { background: var(--cp-dark); color: #fff; font-family: var(--cp-font-ui); font-size: 14px; font-weight: 300; }
.cp-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 4px 20px; min-height: 84px; }
.cp-topbar ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; row-gap: 4px; }
.cp-topbar li a { color: #fff; padding: 0 8px; border-right: 1px solid #fff; line-height: 14px; display: inline-block; }
.cp-topbar li:first-child a { padding-left: 0; }
.cp-topbar li:last-child a { border-right: 0; }
.cp-partners { display: flex; align-items: center; gap: 22px; }
.cp-partners img { max-height: 34px; width: auto; display: block; }
.cp-partners a:hover { opacity: .85; }

/* ---------- Main navigation bar ---------- */
.cp-header { background: var(--cp-navy); border-bottom: 1px solid var(--cp-navy); position: relative; z-index: 50; font-family: var(--cp-font-ui); }
.cp-header__inner { display: flex; align-items: stretch; min-height: 70px; padding: 0 0 0 16px; }
.cp-logo { display: flex; align-items: center; margin: 8px 12px 8px 0; flex: none; }
.cp-logo img, .cp-logo .custom-logo { max-height: 54px; width: auto; display: block; }
.cp-logo__text { color: #fff; font-weight: 800; font-size: 1.6rem; letter-spacing: 1px; }
.cp-logo__text:hover { text-decoration: none; }

.cp-nav { flex: 1; display: flex; align-items: center; }
.cp-nav > ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.cp-nav li { position: relative; }
.cp-nav > ul > li { border-left: 1px solid rgba(255, 255, 255, .55); }
.cp-nav > ul > li > a { display: block; color: #fff; font-weight: 700; font-size: 16px; letter-spacing: .1em; padding: 12px 16px; line-height: 1.6; }
.cp-nav a:hover, .cp-nav a:focus { text-decoration: none; background: rgba(255, 255, 255, .08); }
.cp-nav .menu-item-has-children > a::after { content: ""; display: inline-block; margin-left: .45em; vertical-align: .2em; border-top: .3em solid; border-right: .3em solid transparent; border-left: .3em solid transparent; }
.cp-nav .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 16rem; list-style: none; margin: 0; padding: 6px 0; background: var(--cp-navy); border-top: 1px solid #fff; border-left: 1px solid #fff; z-index: 60; }
.cp-nav .sub-menu a { display: block; color: #fff; padding: 8px 18px; font-size: 15px; font-weight: 400; letter-spacing: .03em; line-height: 1.4; }
.cp-nav .sub-menu .sub-menu { top: -7px; left: 100%; }
.cp-nav li:hover > .sub-menu, .cp-nav li:focus-within > .sub-menu { display: block; }
.cp-nav .current-menu-item > a, .cp-nav .current-menu-ancestor > a { background: rgba(255, 255, 255, .1); }

.cp-search { background: #fff; width: 10.625rem; height: 4.375rem; align-self: center; margin-left: auto; flex: none; position: relative; }
.cp-search input[type="search"] { width: 100%; height: 100%; border: 0; padding: 10px 50px 10px 20px; font: 400 16px var(--cp-font-ui); color: var(--cp-dark); background: transparent; }
.cp-search input[type="search"]:focus { outline: 2px solid var(--cp-cyan); outline-offset: -2px; }
.cp-search button { position: absolute; top: 0; right: 0; bottom: 0; width: 50px; border: 0; background: none; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.cp-search svg { width: 26px; height: 28px; fill: var(--cp-dark); }
.cp-menu-toggle { display: none; background: none; color: #fff; border: 1px solid rgba(255, 255, 255, .6); padding: 6px 14px; font: 700 15px var(--cp-font-ui); letter-spacing: .08em; cursor: pointer; align-self: center; margin: 0 12px 0 auto; }

/* ---------- Breadcrumb + page title ---------- */
.cp-page-head { padding-top: 0; }
.cp-breadcrumb { margin-bottom: 1rem; }
.cp-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; padding: 0; margin: 0; font-size: .9rem; }
.cp-breadcrumb li { display: inline-flex; align-items: center; }
.cp-breadcrumb li + li::before { content: ">"; padding: 0 .5rem; color: var(--cp-cyan); }
.cp-breadcrumb li:last-child { font-weight: 700; }
.cp-breadcrumb a { color: var(--cp-blue); }
.cp-page-title { margin: 2rem 0; }

/* ---------- Content typography (matches the "text" fields) ---------- */
.cp-content { padding-bottom: 3rem; }
.entry-content { font-size: 1.25rem; line-height: 1.8; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content h2 { font-size: 2.25rem; margin-top: 1.5rem; }
.entry-content h3 { font-size: 1.625rem; margin-top: 1.25rem; }
.entry-content h4 { font-size: 1.35rem; margin-top: 1rem; }
.entry-content ul, .entry-content ol { padding-left: 2rem; margin: 0 0 1rem; }
.entry-content li { margin: 0; }
.entry-content figcaption, .entry-content .wp-element-caption { font-style: italic; font-size: 1rem; text-align: center; color: var(--cp-navy); margin-top: .5rem; }
.entry-content s, .entry-content del { opacity: .9; }
.entry-content a:not(.wp-block-button__link):not(.cp-btn) { color: var(--cp-cyan); }
.entry-content iframe { max-width: 100%; }
.has-text-align-center { text-align: center; }

/* Tables — bordered + striped, like the original */
.entry-content table, .wp-block-table table { width: 100%; border-collapse: collapse; border: 1px solid var(--cp-border); margin: 0 0 1rem; vertical-align: top; }
.entry-content td, .entry-content th { border: 1px solid var(--cp-border); padding: 1rem; vertical-align: top; text-align: left; }
.entry-content thead th, .entry-content thead td { font-weight: 700; background: var(--cp-stripe); }
.entry-content tbody tr:nth-child(odd) > * { background: var(--cp-stripe); }
.wp-block-table { margin: 0 0 1rem; overflow-x: auto; }
.wp-block-table.is-style-plain tbody tr > * { background: #fff !important; }
.wp-block-table figcaption { font-style: italic; }

/* Image grid ("Moments" / gallery style: image inside light bordered frame) */
.entry-content .wp-block-gallery.is-style-cp-framed, .cp-frame-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--cp-border); gap: 0 !important; margin-bottom: 1rem; }
.entry-content .wp-block-gallery.is-style-cp-framed > figure.wp-block-image { width: 100% !important; margin: 0 !important; padding: 1rem; border: 1px solid var(--cp-border); background: var(--cp-stripe); }
.entry-content .wp-block-gallery.is-style-cp-framed > figure img { height: auto !important; object-fit: cover; aspect-ratio: 3 / 2; }
.entry-content .wp-block-gallery.is-style-cp-framed > figure figcaption { position: static; background: none; color: var(--cp-navy); padding: .4rem 0 0; font-size: .95rem; }
.entry-content .wp-block-image.is-style-cp-framed img { border: 1px solid var(--cp-border); padding: 1rem; background: var(--cp-stripe); }
.entry-content .wp-block-image.is-style-cp-framed { margin-bottom: 1rem; }

/* ---------- Buttons: cyan box with orange offset corner ---------- */
.cp-btn, .entry-content .wp-block-button__link, .cp-side-links a {
  display: inline-block; position: relative; background: var(--cp-cyan); color: var(--cp-dark) !important;
  border: 4px solid var(--cp-cyan); border-radius: 0; padding: 6px 16px; font: 400 1rem/1.8 var(--cp-font);
  text-decoration: none !important; margin: 0 1rem 1.5rem 0; transition: background-color .15s;
}
.cp-btn::after, .entry-content .wp-block-button__link::after, .cp-side-links a::after {
  content: ""; position: absolute; bottom: -.5rem; left: -.5rem; width: 100%; height: 100%;
  border-left: 3px solid var(--cp-orange); border-bottom: 3px solid var(--cp-orange); pointer-events: none;
}
.cp-btn:hover, .entry-content .wp-block-button__link:hover, .cp-side-links a:hover { background: #60d0f7; border-color: #57cef6; }
.cp-btn--white, .entry-content .is-style-outline .wp-block-button__link { background: #fff; color: var(--cp-dark) !important; }
.cp-btn--white::after, .entry-content .is-style-outline .wp-block-button__link::after { border-color: var(--cp-cyan); }
.cp-btn--white:hover, .entry-content .is-style-outline .wp-block-button__link:hover { background: #f1fbff; }
.wp-block-buttons { gap: 0 !important; }
.cp-btn .cp-ext, .cp-side-links .cp-ext { width: .8em; height: .8em; margin-right: 3px; vertical-align: -.05em; fill: currentColor; }

/* ---------- HERO SLIDER ---------- */
.cp-hero { position: relative; }
.cp-slider { position: relative; overflow: hidden; background: var(--cp-navy); aspect-ratio: 4 / 1; min-height: 240px; max-height: 420px; width: 100%; }
.cp-slider__track { display: flex; height: 100%; transition: transform .7s ease; }
.cp-slide { flex: 0 0 100%; height: 100%; }
.cp-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-slider__nav { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; background: rgba(0, 40, 85, .8); padding: .5rem .25rem; z-index: 3; }
.cp-slider__nav button { background: none; border: 0; cursor: pointer; }
.cp-slider__arrow { color: #fff; width: 28px; height: 30px; position: relative; }
.cp-slider__arrow::before { content: ""; border-style: solid; border-width: .25em .25em 0 0; display: inline-block; width: .75em; height: .75em; transform: rotate(-135deg); position: relative; left: .15em; }
.cp-slider__arrow--next::before { transform: rotate(45deg); left: -.15em; }
.cp-slider__dots { display: flex; list-style: none; margin: 0 0 0 .3rem; padding: 0; }
.cp-slider__dots li { margin: 0 .5rem; }
.cp-slider__dots button { display: block; width: 1rem; height: 1rem; border-radius: 50%; background: rgba(255, 255, 255, .5); padding: 0; border: 1px solid rgba(0,0,0,.25); }
.cp-slider__dots .is-active button { background: #fff; }

/* Intro box overlapping the slider */
.cp-intro { position: relative; z-index: 4; color: #fff; background: linear-gradient(180deg, var(--cp-navy-2), var(--cp-navy) 70%, var(--cp-navy)); width: 56.25rem; max-width: 60%; margin: -3.75rem auto 2rem; padding: 3.125rem 5rem; }
.cp-intro h1 { color: #fff; font-size: 2.625rem; margin: 0 0 .5rem; }
.cp-intro .cp-intro__loc { color: #fff; font-size: 1.625rem; font-weight: 400; margin: 0; }
.cp-intro .cp-intro__date { color: #fff; font-size: 1.25rem; font-weight: 400; margin: 1.5rem 0; }
.cp-intro__links { display: flex; flex-wrap: wrap; }
.cp-intro__links .cp-btn { margin: 0 2.5rem 1rem 0; }
.cp-intro__links .cp-btn:last-child { margin-right: 0; }

/* ---------- Home sections / reusable block styles ---------- */
.cp-home-sections { padding-bottom: 2rem; }
.cp-home-sections > * { margin-bottom: 2rem; }
.cp-home-sections > .alignfull { margin-left: 0; margin-right: 0; }

/* Orange corner frames (Group block styles) */
.is-style-cp-corner-top, .is-style-cp-corners, .is-style-cp-corner-top-left { position: relative; padding: 1.5rem !important; margin-bottom: 1.5rem; }
.is-style-cp-corner-top::before, .is-style-cp-corners::before { content: ""; position: absolute; top: 0; right: 0; width: 100%; height: 3.4375rem; border-top: 3px solid var(--cp-orange); border-right: 3px solid var(--cp-orange); pointer-events: none; }
.is-style-cp-corners::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 3.4375rem; border-bottom: 3px solid var(--cp-orange); border-left: 3px solid var(--cp-orange); pointer-events: none; }
.is-style-cp-corner-top-left::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3.4375rem; border-top: 3px solid var(--cp-orange); border-left: 3px solid var(--cp-orange); pointer-events: none; }
.is-style-cp-corner-bottom { position: relative; padding: 1.5rem !important; }
.is-style-cp-corner-bottom::after { content: ""; position: absolute; bottom: 0; right: 0; width: calc(100% - 1rem); height: 1.8rem; border-bottom: 3px solid var(--cp-orange); border-left: 3px solid var(--cp-orange); pointer-events: none; }
.is-style-cp-blue-box { border: 2px solid var(--cp-blue); padding: 2.5rem 3.75rem !important; max-width: 100%; }
.cp-home-sections .is-style-cp-corners p, .cp-home-sections .is-style-cp-corners { font-size: 1.25rem; }

/* News list inside blue box */
.cp-news-list { list-style: disc; padding-left: 1.2rem; margin: 0; }
.cp-news-list li { color: var(--cp-cyan); }
.cp-news-list h5 { font-size: 1.1rem; font-weight: 700; margin: 0 0 .35rem; line-height: 1.5; }
.cp-news-list a { color: var(--cp-cyan) !important; font-style: italic; }

/* Media & Text "destination" style */
.wp-block-media-text.is-style-cp-destination { grid-template-columns: 33% auto !important; align-items: start; }
.wp-block-media-text.is-style-cp-destination .wp-block-media-text__content { position: relative; padding: 1.5rem 0 1.5rem 1.5rem; margin-left: 1.5rem; }
.wp-block-media-text.is-style-cp-destination .wp-block-media-text__content::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3.4375rem; border-top: 3px solid var(--cp-orange); border-left: 3px solid var(--cp-orange); }
.wp-block-media-text.is-style-cp-destination .wp-block-media-text__media { padding-top: 1.5rem; }
.wp-block-media-text.is-style-cp-logo-row { grid-template-columns: 33% auto !important; align-items: center; margin-bottom: 3rem; }
.wp-block-media-text.is-style-cp-logo-row .wp-block-media-text__content { position: relative; padding: 1.5rem 0 2.5rem 1.5rem; }
.wp-block-media-text.is-style-cp-logo-row .wp-block-media-text__content::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 1.8rem; border-bottom: 3px solid var(--cp-orange); border-left: 3px solid var(--cp-orange); }
.wp-block-media-text .wp-block-media-text__content p:last-child { margin-bottom: 0; }
.wp-block-media-text figcaption, .cp-caption { font-size: .9rem; font-style: italic; line-height: 1.4; margin-top: .3rem; }

/* ---------- Important dates block (home) ---------- */
.cp-dates-block { position: relative; min-height: 28rem; margin: 0 1rem 2rem; }
.cp-dates-block__title { position: absolute; top: 0; left: -1rem; z-index: 2; background: var(--cp-navy); color: #fff; padding: 3rem; max-width: 30%; margin: 0; font-size: 1.625rem; }
.cp-dates-block__img { position: absolute; top: 0; left: 0; width: 75%; z-index: 0; }
.cp-dates-block__img img { width: 100%; display: block; aspect-ratio: 2 / 1; object-fit: cover; }
.cp-dates-block__img--empty { aspect-ratio: 2 / 1; background: linear-gradient(135deg, #0b1f3f 0%, #0d4a7a 55%, #33b6e8 100%); }
.cp-dates-block__items { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-end; padding-top: 2rem; }
.cp-dates-block__item { display: flex; justify-content: flex-end; margin-bottom: 1rem; max-width: 70%; }
.cp-dates-block__date { background: var(--cp-navy); color: #fff; padding: 1rem 1.5rem; font-weight: 600; white-space: nowrap; }
.cp-dates-block__label { border: 3px solid var(--cp-navy); background: #fff; color: var(--cp-navy); padding: 1rem; width: 18.75rem; font-weight: 700; }
.cp-dates-block__more { text-align: right; width: 100%; margin-top: .5rem; }
.cp-dates-list s { margin-right: .3rem; }

/* ---------- Keynote / event cards ---------- */
.cp-events { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0 0 3rem; }
.cp-event { border: 3px solid var(--cp-cyan); display: flex; flex-direction: column; background: #fff; }
.cp-event__img img, .cp-event__img .cp-event__ph { width: 100%; height: 18.75rem; object-fit: cover; display: block; }
.cp-event__ph { background: linear-gradient(135deg, #e5f6fd, #bfe9fb); display: flex !important; align-items: center; justify-content: center; }
.cp-event__ph svg { width: 40%; height: 60%; fill: #8fd7f3; }
.cp-event__body { padding: 1rem; position: relative; flex: 1; font-size: 1rem; }
.cp-event__body h5 { margin: 0; font-size: 1.1rem; line-height: 1.5; }
.cp-event__body h5 a { color: var(--cp-cyan); }
.cp-event__time { font-weight: 300; margin-top: 1rem; }
.cp-event__date { font-weight: 700; margin-top: 1rem; }
.cp-event__tag { position: absolute; right: 0; bottom: 0; border: 1px solid var(--cp-cyan); border-right: 0; border-bottom: 0; font-size: .8rem; padding: 2px 8px; background: #fff; }
.cp-event__foot { background: var(--cp-cyan); text-align: center; padding: .5rem 1rem; }
.cp-event__foot a { color: #000; font-size: 1.25rem; font-weight: 700; }
.cp-section-heading { font-size: 1.875rem; margin: 0 0 3rem; }

/* Single keynote */
.cp-speaker-head { display: flex; gap: 2rem; align-items: flex-start; margin-bottom: 2rem; flex-wrap: wrap; }
.cp-speaker-head img { width: 260px; border: 3px solid var(--cp-cyan); }
.cp-speaker-meta { font-size: 1.1rem; }
.cp-speaker-meta strong { display: block; }

/* ---------- Committees (tabs + person cards) ---------- */
.cp-tabs__nav { display: flex; justify-content: center; flex-wrap: wrap; list-style: none; margin: 0 0 1.5rem; padding: 0; }
.cp-tabs__nav button { background: none; border: 0; border-bottom: 3px solid #fff; color: rgba(0, 0, 0, .5); padding: .5rem 3rem; font: 600 1.125rem var(--cp-font); cursor: pointer; }
.cp-tabs__nav button[aria-selected="true"] { border-color: var(--cp-orange); color: var(--cp-dark); }
.cp-tabs__panel[hidden] { display: none; }
.cp-people { display: flex; flex-wrap: wrap; }
.cp-person { border-left: 3px solid var(--cp-orange); padding-left: 1rem; width: 15rem; max-width: 15rem; margin: 1rem 2rem 1.5rem 0; font-size: 1rem; line-height: 1.6; }
.cp-person__img { display: block; width: 12.25rem; margin: -.5rem 0 0 -1rem; padding: 0 0 .5rem .5rem; border-bottom: 3px solid var(--cp-orange); }
.cp-person__img img, .cp-person__img .cp-person__ph { display: block; width: 100%; aspect-ratio: 370 / 392; object-fit: cover; }
.cp-person__ph { background: #eef3f8; display: flex !important; align-items: flex-end; justify-content: center; overflow: hidden; }
.cp-person__ph svg { width: 80%; fill: #c5d2e0; }
.cp-person__name { font-size: 1.25rem; font-weight: 700; margin-top: .5rem; }
.cp-person__role { text-transform: uppercase; }
.cp-people-break { flex-basis: 100%; height: 0; }
.cp-tpc-list { columns: 2; column-gap: 3rem; font-size: 1.1rem; padding-left: 1.2rem; }

/* ---------- Page with side buttons ---------- */
.cp-with-links { display: grid; grid-template-columns: 2fr 1fr; gap: 1.5rem; }
.cp-side-links { padding: 1rem 12px; display: flex; flex-direction: column; align-items: flex-start; }
.cp-side-links a { margin: 0 0 1.5rem .5rem; }

/* ---------- Posts / search ---------- */
.cp-post-list article { padding: 0 0 1.5rem; margin: 0 0 1.5rem; border-bottom: 1px solid #e3e3e3; }
.cp-post-list h2 { font-size: 1.6rem; }
.cp-post-list h2 a { color: var(--cp-navy); }
.cp-meta { color: #5b6b7f; font-size: .95rem; margin-bottom: .5rem; }
.nav-links { display: flex; gap: .5rem; flex-wrap: wrap; }
.nav-links .page-numbers { padding: 4px 12px; border: 2px solid var(--cp-cyan); }
.nav-links .current { background: var(--cp-cyan); color: var(--cp-dark); }

/* ---------- Footer ---------- */
.cp-footer { background: var(--cp-navy); color: #fff; }
.cp-footer a { color: #fff !important; }
.cp-footer__menus { display: flex; flex-wrap: wrap; padding: 3rem 12px; font-size: 1.25rem; }
.cp-footer__col { flex: 0 0 auto; }
.cp-footer__col--1 { width: 25%; font-weight: 700; }
.cp-footer__col--2 { width: 16.666%; }
.cp-footer__col--3 { width: 16.666%; font-weight: 700; }
.cp-footer__col ul { list-style: none; margin: 0; padding: 0; }
.cp-footer__col li { padding: .2rem 0; line-height: 1.5; }
.cp-footer__col .cp-footer__heading > a, .cp-footer__col--2 li:first-child > a { font-weight: 700; }
.cp-social { background: var(--cp-cyan); color: var(--cp-navy); font-family: var(--cp-font-ui); }
.cp-social .cp-container { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 1.25rem 2rem; font-size: .95rem; }
.cp-social a { color: var(--cp-navy) !important; }
.cp-social__icons { display: flex; gap: 1.25rem; }
.cp-social__icons svg { width: 26px; height: 26px; fill: var(--cp-navy); display: block; }
.cp-footer__bottom { background: var(--cp-dark); font-family: var(--cp-font-ui); font-size: .875rem; letter-spacing: .1rem; padding: 1rem 20px 1.25rem; }
.cp-footer__bottom ul { list-style: none; margin: 0 0 .75rem; padding: 0; display: flex; flex-wrap: wrap; row-gap: 6px; }
.cp-footer__bottom li a { padding: 0 1rem; border-right: 1px solid #fff; display: inline-block; line-height: 1.2; }
.cp-footer__bottom li:first-child a { padding-left: 0; }
.cp-footer__bottom li:last-child a { border-right: 0; }
.cp-footer__bottom p { margin: 0; line-height: 1.8; }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
  .cp-nav > ul > li > a { padding: 12px 12px; font-size: 15px; letter-spacing: .06em; }
  .cp-search { height: 2.25rem; width: 9.25rem; }
  .cp-search input[type="search"] { font-size: .875rem; padding: 5px 40px 5px 12px; }
  .cp-search svg { width: 20px; height: 22px; }
}
@media (max-width: 991px) {
  .cp-topbar__inner { min-height: 0; padding: 8px 12px; }
  .cp-header__inner { flex-wrap: wrap; padding-right: 0; }
  .cp-menu-toggle { display: block; }
  .cp-search { order: 3; width: 100%; height: 2.75rem; margin: 0 12px 12px 0; display: none; }
  .cp-nav { order: 4; flex-basis: 100%; display: none; }
  .cp-header.is-open .cp-nav, .cp-header.is-open .cp-search { display: block; }
  .cp-nav > ul { flex-direction: column; width: 100%; padding-bottom: 12px; }
  .cp-nav > ul > li { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .2); }
  .cp-nav .sub-menu { position: static; display: block; border: 0; padding: 0 0 6px 16px; }
  .cp-intro { max-width: calc(100% - 24px); width: auto; padding: 2rem 1.5rem; margin-top: 0; }
  .cp-intro__links { flex-direction: column; align-items: flex-start; }
  .cp-intro__links .cp-btn { margin: 0 0 1.25rem .5rem; }
  .cp-events { grid-template-columns: repeat(2, 1fr); }
  .cp-dates-block { min-height: 0; margin: 0 0 2rem; }
  .cp-dates-block__title { position: static; max-width: none; padding: 1.25rem 1.5rem; }
  .cp-dates-block__img { position: static; width: 100%; }
  .cp-dates-block__items { align-items: stretch; padding-top: 1rem; }
  .cp-dates-block__item { max-width: none; }
  .cp-dates-block__label { width: auto; flex: 1; }
  .cp-footer__col--1, .cp-footer__col--2, .cp-footer__col--3 { width: 50%; margin-bottom: 1.5rem; }
  .cp-with-links { grid-template-columns: 1fr; }
  .wp-block-media-text.is-style-cp-destination, .wp-block-media-text.is-style-cp-logo-row { grid-template-columns: 100% !important; }
  .wp-block-media-text.is-style-cp-destination .wp-block-media-text__content, .wp-block-media-text.is-style-cp-logo-row .wp-block-media-text__content { grid-row: 2; grid-column: 1; margin-left: 0; }
}
@media (max-width: 600px) {
  h1, .cp-intro h1 { font-size: 2rem; }
  h2, .entry-content h2 { font-size: 1.75rem; }
  .entry-content { font-size: 1.1rem; }
  .cp-topbar__inner { flex-direction: column; align-items: flex-start; }
  .cp-slider { aspect-ratio: 16 / 9; min-height: 0; }
  .cp-slider__dots li { margin: 0 .3rem; }
  .cp-events { grid-template-columns: 1fr; }
  .cp-dates-block__item { flex-direction: column; }
  .cp-dates-block__date { white-space: normal; }
  .is-style-cp-blue-box { padding: 1.5rem !important; }
  .entry-content .wp-block-gallery.is-style-cp-framed, .cp-frame-grid { grid-template-columns: 1fr 1fr; }
  .cp-person { width: calc(50% - 1rem); margin-right: 1rem; }
  .cp-person__img { width: calc(100% + .5rem); }
  .cp-tabs__nav button { padding: .5rem 1rem; }
  .cp-tpc-list { columns: 1; }
  .cp-footer__col--1, .cp-footer__col--2, .cp-footer__col--3 { width: 100%; }
  .entry-content table { font-size: .95rem; }
  .entry-content td, .entry-content th { padding: .6rem; }
}

/* ---------- Additions: gallery columns, destination column ---------- */
.entry-content .wp-block-gallery.is-style-cp-framed.columns-2 { grid-template-columns: repeat(2, 1fr); }
.entry-content .wp-block-gallery.is-style-cp-framed.columns-4 { grid-template-columns: repeat(4, 1fr); }
.entry-content .wp-block-gallery.is-style-cp-framed.columns-2 > figure img { aspect-ratio: auto; object-fit: contain; max-height: 160px; }
.entry-content .wp-block-columns { gap: 1.5rem; margin-bottom: 2.5rem; }
.entry-content .cp-destination-img { margin-top: 1.5rem; }
.entry-content .cp-destination-img figcaption { text-align: left; font-size: .9rem; line-height: 1.4; }
.entry-content .wp-block-group.is-style-cp-corner-top-left h2 { margin-top: 0; }
.entry-content .wp-block-group.is-style-cp-corner-top-left p { font-size: 1.1rem; margin-bottom: .5rem; }
.entry-content .wp-block-group.is-style-cp-corner-top-left h3 { margin: 1rem 0 .75rem; }
.entry-content .wp-block-buttons .wp-block-button { margin: 0 1rem 1rem 0; }
.entry-content .wp-block-buttons .wp-block-button__link { margin: 0; }
.entry-content .cp-section-heading { margin-top: 0; }
.cp-home-sections .wp-block-shortcode, .cp-home-sections > p:empty { margin: 0; }
.entry-content .wp-block-image.aligncenter { text-align: center; }
.entry-content .wp-block-image.aligncenter img { margin: 0 auto; }
@media (max-width: 781px) { .entry-content .wp-block-columns { gap: 1rem; } }
.cp-event__foot a, .entry-content .cp-event__foot a { color: #000 !important; }
.entry-content .cp-event__body h5 a { color: var(--cp-cyan); }
