/* ==========================================================================
   isGreat brand layer over Rehub — "Great days out, honestly priced."
   Palette is built around the logo red (#EE252D).
   ========================================================================== */

@font-face { font-family: "Fraunces"; src: url(../fonts/fraunces.woff2) format("woff2");
  font-weight: 600 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Figtree"; src: url(../fonts/figtree.woff2) format("woff2");
  font-weight: 400 700; font-style: normal; font-display: swap; }

:root {
  --isg-ink: #14232e;
  --isg-ink-2: #43535e;
  --isg-red: #e8242c;
  --isg-red-d: #b3141b;
  --isg-sea: #0b6b69;
  --isg-sea-d: #07504e;
  --isg-sea-l: #e2f1ef;
  --isg-sun: #ffc53d;
  --isg-sun-l: #fff3d1;
  --isg-cream: #fbf6ee;
  --isg-sand: #f3e8d6;
  --isg-line: #e8dcc8;
  --isg-card: #ffffff;
  --isg-r: 16px;
  --isg-shadow: 0 1px 2px rgba(20,35,46,.06), 0 8px 24px -8px rgba(20,35,46,.14);
  --isg-shadow-hi: 0 2px 4px rgba(20,35,46,.08), 0 18px 40px -12px rgba(20,35,46,.28);
  --isg-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --isg-sans: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* ---------- base ---------- */
body { background: var(--isg-cream); color: var(--isg-ink); font-family: var(--isg-sans); }
body, .post, .post p, .main-side, .sidebar, input, button, select, textarea { font-family: var(--isg-sans); }
h1, h2, h3, h4, .title_single_area h1, .news-community h2, .widget .title, .widget h2,
.wp-block-heading { font-family: var(--isg-serif); font-weight: 750; letter-spacing: -.01em; color: var(--isg-ink); }
a { color: var(--isg-sea); }
a:hover { color: var(--isg-red); }
::selection { background: var(--isg-sun); color: var(--isg-ink); }
.isg-icon { width: 1.1em; height: 1.1em; flex: none; stroke-width: 2; vertical-align: -.18em; }

/* ---------- header ---------- */
#main_header .header_top_wrap { background: var(--isg-ink); border: 0; }
#main_header .header_top_wrap .rh-container { border: 0; }
#main_header .header-top .top-nav { display: none; }            /* duplicate of the main menu */
#main_header .top_custom_content, #main_header .top_custom_content a { color: #d9e2e7; }
#main_header .logo_section_wrap { background: #fff; }
#main_header .head_search input[type="text"] { border-radius: 999px 0 0 999px; border-color: var(--isg-line); background: var(--isg-cream); }
#main_header .head_search .btnsearch, #main_header .head_search button { border-radius: 0 999px 999px 0; background: var(--isg-red) !important; }

#main_header .main-nav { background: #fff; border-top: 1px solid var(--isg-line); border-bottom: 3px solid var(--isg-sun); box-shadow: none; }
#main_header .main-nav .top_menu > ul > li > a {
  font-family: var(--isg-sans); font-weight: 650; font-size: 15px; text-transform: none; color: var(--isg-ink);
  white-space: nowrap; padding: 16px 16px; border: 0;
}
#main_header .main-nav .top_menu > ul > li { border: 0 !important; }
#main_header .main-nav .top_menu > ul > li > a:hover,
#main_header .main-nav .top_menu > ul > li.current-menu-item > a { color: var(--isg-red); box-shadow: inset 0 -3px 0 var(--isg-red); }
/* icons in front of the guide menu items (CSS masks, no markup changes) */
#main_header .top_menu a[href*="free-days-out-with-children-by-train"]::before,
#main_header .top_menu a[href*="park-holidays-parks-by-county"]::before,
#main_header .top_menu a[href*="escorted-tours-rail-holidays"]::before {
  content: ""; display: inline-block; width: 18px; height: 18px; margin-right: 7px; vertical-align: -3px;
  background: currentColor; -webkit-mask: var(--isg-mi) center/contain no-repeat; mask: var(--isg-mi) center/contain no-repeat;
}
#main_header .top_menu a[href*="free-days-out-with-children-by-train"] { --isg-mi: url(../icons/train-front.svg); }
#main_header .top_menu a[href*="park-holidays-parks-by-county"]        { --isg-mi: url(../icons/caravan.svg); }
#main_header .top_menu a[href*="escorted-tours-rail-holidays"]         { --isg-mi: url(../icons/compass.svg); }

/* ---------- Rehub listings (archives, /page/2/, search) ---------- */
.hotmeter_wrap, .news-community .hotmeter, .news-community .table_cell_hot { display: none !important; }
.news-community {
  background: var(--isg-card); border: 1px solid var(--isg-line) !important; border-radius: var(--isg-r);
  box-shadow: var(--isg-shadow); transition: box-shadow .2s, transform .2s;
}
.news-community:hover { box-shadow: var(--isg-shadow-hi); transform: translateY(-2px); }
.news-community .newsimage img, .news-community .rh_gr_img img { border-radius: 12px; }
.news-community h2 a { color: var(--isg-ink); }
.news-community h2 a:hover { color: var(--isg-red); }
.btn_more, a.btn_more {
  border-radius: 999px !important; border: 2px solid var(--isg-ink) !important; color: var(--isg-ink) !important;
  font-weight: 700; letter-spacing: .02em; background: transparent !important;
}
.btn_more:hover { background: var(--isg-ink) !important; color: #fff !important; }

/* ---------- sidebar ---------- */
.sidebar .widget { background: var(--isg-card); border: 1px solid var(--isg-line); border-radius: var(--isg-r); padding: 20px 22px; box-shadow: var(--isg-shadow); }
.sidebar .widget h2, .sidebar .widget .title { font-size: 20px; border: 0; padding: 0 0 10px; margin-bottom: 12px; border-bottom: 3px solid var(--isg-sun) !important; display: inline-block; }
.sidebar .widget a { color: var(--isg-ink); }
.sidebar .widget a:hover { color: var(--isg-red); }
.sidebar .wp-block-search__button { background: var(--isg-ink); border-radius: 999px; }
.sidebar .wp-block-search__input { border-radius: 999px; border-color: var(--isg-line); }

/* ---------- single post ---------- */
.single .main-side, .page .main-side { background: var(--isg-card); border: 1px solid var(--isg-line) !important; border-radius: var(--isg-r); box-shadow: var(--isg-shadow); }
.title_single_area h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.08; }
.title_single_area .post-meta a { color: var(--isg-ink-2); }
.rh-cat-label-title, .title_single_area .rh-cat-label-title a { background: var(--isg-ink) !important; border-radius: 999px; padding: 3px 10px !important; }
.single .post p, .single .post li { font-size: 17.5px; line-height: 1.75; color: #22323c; }
.single .post h2 { font-size: 28px; margin-top: 1.6em; }
.single .post h2::after { content: ""; display: block; width: 44px; height: 4px; margin-top: 10px; background: var(--isg-sun); border-radius: 4px; }
.single .post ul li::marker { color: var(--isg-red); }
.single .post .wp-post-image, .single .post .featured_single_left img { border-radius: var(--isg-r); }
/* the big "Click here to book…" affiliate CTAs become proper buttons */
.single .post p.has-text-align-center.has-large-font-size a[rel~="sponsored"] {
  display: inline-flex; align-items: center; gap: 10px; background: var(--isg-red); color: #fff !important;
  padding: 16px 28px; border-radius: 999px; text-decoration: none; font-size: 19px; box-shadow: 0 10px 22px -10px rgba(232,36,44,.7);
  transition: transform .15s, background .15s;
}
.single .post p.has-text-align-center.has-large-font-size a[rel~="sponsored"]::before {
  content: ""; width: 22px; height: 22px; background: #fff; -webkit-mask: url(../icons/ticket.svg) center/contain no-repeat; mask: url(../icons/ticket.svg) center/contain no-repeat;
}
.single .post p.has-text-align-center.has-large-font-size a[rel~="sponsored"][href*="TransPennine"]::before {
  -webkit-mask-image: url(../icons/train-front.svg); mask-image: url(../icons/train-front.svg);
}
.single .post p.has-text-align-center.has-large-font-size a[rel~="sponsored"]:hover { background: var(--isg-red-d); transform: translateY(-2px); }

/* badges */
.isg-badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.isg-badge {
  display: inline-flex; align-items: center; gap: 6px; font: 700 12.5px/1 var(--isg-sans); letter-spacing: .02em;
  padding: 7px 12px 7px 10px; border-radius: 999px; text-transform: uppercase;
}
.isg-badge .isg-icon { width: 15px; height: 15px; }
.isg-badge--sun { background: var(--isg-sun); color: var(--isg-ink); }
.isg-badge--sea { background: var(--isg-sea-l); color: var(--isg-sea-d); }
.isg-badge--red { background: #fde4e5; color: var(--isg-red-d); }
.isg-badge--ink { background: #e6ecef; color: var(--isg-ink); }

/* "How this guide works" */
.isg-rule { background: var(--isg-sun-l); border: 1px solid #f4dd9a; border-radius: var(--isg-r); padding: 18px 20px; margin: 0 0 26px; }
.isg-rule__title { display: flex; align-items: center; gap: 8px; margin: 0 0 12px !important; font: 800 13px/1 var(--isg-sans) !important; text-transform: uppercase; letter-spacing: .08em; color: var(--isg-ink) !important; }
.isg-rule ol { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; counter-reset: isg; }
.isg-rule li { margin: 0 !important; padding: 0 0 0 42px !important; position: relative; font-size: 14.5px !important; line-height: 1.45 !important; }
.isg-rule li .isg-icon { position: absolute; left: 0; top: 0; width: 32px; height: 32px; padding: 7px; background: #fff; border-radius: 10px; color: var(--isg-red); box-shadow: var(--isg-shadow); }
.isg-rule li strong { display: block; font-family: var(--isg-serif); font-size: 16px; }
.isg-rule li span { color: var(--isg-ink-2); }

/* credited photo */
.isg-photo { margin: 26px 0 30px; }
.isg-photo img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--isg-r); box-shadow: var(--isg-shadow); display: block; }
.isg-photo figcaption { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin-top: 10px; font-size: 14px; color: var(--isg-ink-2); }
.isg-photo figcaption .isg-icon { color: var(--isg-red); align-self: center; }
.isg-photo figcaption span { font-weight: 700; color: var(--isg-ink); }
.isg-photo figcaption small { flex-basis: 100%; font-size: 12px; color: #7b8790; }
.isg-photo figcaption small a { color: inherit; text-decoration: underline; }

/* affiliate disclosure */
.isg-disclosure { display: flex; gap: 12px; align-items: flex-start; margin: 34px 0 6px; padding: 16px 18px; border-radius: 12px; background: var(--isg-sea-l); color: var(--isg-sea-d); }
.isg-disclosure .isg-icon { width: 22px; height: 22px; margin-top: 3px; }
.isg-disclosure p { margin: 0 !important; font-size: 14.5px !important; line-height: 1.55 !important; color: var(--isg-sea-d) !important; }

/* ---------- footer ---------- */
.footer-bottom.dark_style, .footer_most_bottom { background: var(--isg-ink) !important; }
.footer-bottom.dark_style { border-top: 6px solid var(--isg-sun); }

/* ==========================================================================
   Homepage
   ========================================================================== */
.isg-home { display: block; }
.isg-home h2 { font-size: clamp(28px, 3.4vw, 40px); line-height: 1.1; margin: 0 0 8px; }
.isg-eyebrow { display: inline-flex; align-items: center; gap: 7px; font: 800 12.5px/1 var(--isg-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--isg-red); margin-bottom: 10px; }
.isg-section { padding-top: 64px; padding-bottom: 64px; }
.isg-section__head { margin-bottom: 28px; max-width: 720px; }
.isg-section__head p { font-size: 18px; color: var(--isg-ink-2); margin: 6px 0 0; }

.isg-btn { display: inline-flex; align-items: center; gap: 10px; padding: 15px 24px; border-radius: 999px; font: 750 16.5px/1 var(--isg-sans); text-decoration: none !important; transition: transform .15s, box-shadow .15s, background .15s; }
.isg-btn .isg-icon { width: 20px; height: 20px; }
.isg-btn:hover { transform: translateY(-2px); }
.isg-btn--sun { background: var(--isg-sun); color: var(--isg-ink) !important; box-shadow: 0 12px 24px -12px rgba(255,197,61,.9); }
.isg-btn--sun:hover { background: #ffd566; }
.isg-btn--ghost { background: rgba(255,255,255,.12); color: #fff !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.75); backdrop-filter: blur(4px); }
.isg-btn--ghost:hover { background: rgba(255,255,255,.22); }

/* hero */
.isg-hero {
  position: relative; color: #fff; overflow: hidden;
  background: linear-gradient(100deg, rgba(20,35,46,.92) 0%, rgba(20,35,46,.72) 45%, rgba(20,35,46,.15) 100%), var(--isg-hero, none) center 60%/cover no-repeat, var(--isg-sea-d);
}
.isg-hero::after { /* sun disc motif */
  content: ""; position: absolute; right: -120px; top: -140px; width: 420px; height: 420px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,197,61,.55), rgba(255,197,61,0) 68%); pointer-events: none;
}
.isg-hero__inner { position: relative; z-index: 1; padding-top: 104px; padding-bottom: 112px; }
.isg-kicker { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.14); padding: 8px 14px; border-radius: 999px; font: 700 13.5px/1 var(--isg-sans); letter-spacing: .04em; margin: 0 0 22px; }
.isg-hero h1 { color: #fff; font-size: clamp(44px, 7vw, 84px); line-height: .98; letter-spacing: -.025em; margin: 0 0 22px; max-width: 12ch; }
.isg-hero h1 em { font-style: normal; color: var(--isg-sun); }
.isg-hero__lede { font-size: clamp(18px, 2vw, 21px); line-height: 1.55; max-width: 36rem; margin: 0 0 32px; color: #eef3f5; }
.isg-hero__lede strong { color: #fff; box-shadow: inset 0 -.38em 0 rgba(232,36,44,.65); }
.isg-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }
.isg-credit { position: absolute; right: 14px; bottom: 10px; z-index: 1; margin: 0; font-size: 11px; color: rgba(255,255,255,.7); max-width: 60%; text-align: right; }
.isg-credit a { color: inherit; text-decoration: underline; }

/* rule bar (the USP) */
.isg-rulebar { background: #fff; border-bottom: 1px solid var(--isg-line); }
.isg-rulebar__grid { display: grid; grid-template-columns: 1.1fr repeat(3, 1fr); gap: 30px; padding-top: 38px; padding-bottom: 38px; align-items: start; }
.isg-rulebar__intro p { font-family: var(--isg-serif); font-size: 24px; font-weight: 700; line-height: 1.2; margin: 0; }
.isg-pillar h3 { font-size: 20px; margin: 14px 0 6px; }
.isg-pillar p { margin: 0; color: var(--isg-ink-2); font-size: 15.5px; line-height: 1.55; }
.isg-pillar__icon { display: inline-grid; place-items: center; width: 50px; height: 50px; border-radius: 14px; transform: rotate(-4deg); }
.isg-pillar__icon .isg-icon { width: 26px; height: 26px; transform: rotate(4deg); }
.isg-bg--sun { background: var(--isg-sun); color: var(--isg-ink); }
.isg-bg--red { background: var(--isg-red); color: #fff; }
.isg-bg--sea { background: var(--isg-sea); color: #fff; }

/* tiles */
.isg-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.isg-tile { display: flex; flex-direction: column; background: var(--isg-card); border-radius: 20px; overflow: hidden; text-decoration: none !important; color: var(--isg-ink) !important; box-shadow: var(--isg-shadow); transition: transform .2s, box-shadow .2s; }
.isg-tile:hover { transform: translateY(-4px); box-shadow: var(--isg-shadow-hi); }
.isg-tile__img { display: block; aspect-ratio: 4 / 3; background: var(--isg-sand) center/cover no-repeat; position: relative; transition: transform .5s; }
.isg-tile:hover .isg-tile__img { transform: scale(1.03); }
.isg-tile__body { display: flex; flex-direction: column; gap: 8px; padding: 22px 22px 24px; position: relative; background: var(--isg-card); }
.isg-tile__meta { display: inline-flex; align-items: center; gap: 7px; font: 800 12.5px/1 var(--isg-sans); letter-spacing: .08em; text-transform: uppercase; }
.isg-tile--daysout .isg-tile__meta { color: var(--isg-sea); }
.isg-tile--parks .isg-tile__meta   { color: var(--isg-red); }
.isg-tile--travel .isg-tile__meta  { color: #8a6200; }
.isg-tile__title { font: 750 24px/1.15 var(--isg-serif); }
.isg-tile__text { color: var(--isg-ink-2); font-size: 15.5px; line-height: 1.5; }
.isg-tile__go { display: inline-flex; align-items: center; gap: 6px; font-weight: 750; margin-top: 6px; color: var(--isg-red); }
.isg-tile:hover .isg-tile__go .isg-icon { transform: translateX(4px); }
.isg-tile__go .isg-icon { transition: transform .2s; }

/* bands */
.isg-band--sea { background: var(--isg-sea); color: #fff; }
.isg-band--sea h2, .isg-band--sea .isg-eyebrow { color: #fff; }
.isg-band--sea .isg-eyebrow { color: var(--isg-sun); }
.isg-band--sea .isg-section__head p { color: #cfe7e4; }
.isg-band--sand { background: var(--isg-sand); }

/* chips */
.isg-chips { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 10px; }
.isg-chips li { margin: 0 !important; padding: 0 !important; }
.isg-chips a { display: inline-flex; align-items: center; gap: 7px; padding: 11px 16px; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff !important; font-weight: 700; font-size: 15.5px; text-decoration: none !important; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.35); transition: background .15s, color .15s, transform .15s; }
.isg-chips a .isg-icon { width: 16px; height: 16px; color: var(--isg-sun); }
.isg-chips a:hover { background: var(--isg-sun); color: var(--isg-ink) !important; transform: translateY(-2px); }
.isg-chips a:hover .isg-icon { color: var(--isg-ink); }
.isg-chips--count a { background: #fff; color: var(--isg-ink) !important; box-shadow: inset 0 0 0 1.5px var(--isg-line); }
.isg-chips--count a span { display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 7px; border-radius: 999px; background: var(--isg-red); color: #fff; font-size: 13px; margin-left: 4px; }
.isg-chips--count a:hover { background: var(--isg-ink); color: #fff !important; }

/* cards */
.isg-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.isg-card { background: var(--isg-card); border-radius: 18px; overflow: hidden; box-shadow: var(--isg-shadow); display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.isg-card:hover { transform: translateY(-3px); box-shadow: var(--isg-shadow-hi); }
.isg-card__img { display: block; aspect-ratio: 1200 / 630; overflow: hidden; background: var(--isg-sand); }
.isg-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.isg-card:hover .isg-card__img img { transform: scale(1.04); }
.isg-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.isg-card .isg-badges { margin-bottom: 12px; }
.isg-card .isg-badge { font-size: 11px; padding: 6px 10px 6px 8px; }
.isg-card h3 { font-size: 20px; line-height: 1.22; margin: 0 0 8px; }
.isg-card h3 a { color: var(--isg-ink); text-decoration: none; }
.isg-card h3 a:hover { color: var(--isg-red); }
.isg-card p { color: var(--isg-ink-2); font-size: 15px; line-height: 1.55; margin: 0 0 14px; flex: 1; }
.isg-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 750; color: var(--isg-red) !important; text-decoration: none !important; }

/* promise */
.isg-promise { display: flex; gap: 26px; align-items: flex-start; max-width: 920px; }
.isg-promise__icon { flex: none; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 18px; background: var(--isg-sea-l); color: var(--isg-sea); }
.isg-promise__icon .isg-icon { width: 32px; height: 32px; }
.isg-promise h2 { font-size: 28px; }
.isg-promise p { font-size: 17px; line-height: 1.65; color: var(--isg-ink-2); margin: 0; }

/* the homepage owns its width; hide Rehub's sidebar wrapper spacing if any */
.home .rh-content-wrap { padding-top: 0; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
  .isg-rulebar__grid { grid-template-columns: 1fr 1fr; }
  .isg-rulebar__intro { grid-column: 1 / -1; }
  .isg-tiles, .isg-cards { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
  .isg-hero__inner { padding-top: 64px; padding-bottom: 76px; }
  .isg-rulebar__grid, .isg-tiles, .isg-cards { grid-template-columns: 1fr; }
  .isg-rule ol { grid-template-columns: 1fr; }
  .isg-section { padding-top: 44px; padding-bottom: 44px; }
  .isg-promise { flex-direction: column; }
  .isg-credit { max-width: 90%; }
}
@media (prefers-reduced-motion: reduce) {
  .isg-tile, .isg-card, .isg-btn, .news-community, .isg-tile__img, .isg-card__img img { transition: none !important; transform: none !important; }
}

/* single post: clean photo on top in place of the text-baked card */
.top_featured_image .isg-top-photo { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--isg-r); display: block; }
.isg-top-caption { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 10px 0 4px; font-size: 14px; color: var(--isg-ink-2); text-align: left; }
.isg-top-caption .isg-icon { color: var(--isg-red); }
.isg-top-caption strong { color: var(--isg-ink); }
.isg-top-caption small { flex-basis: 100%; font-size: 12px; color: #7b8790; }
.isg-top-caption small a { color: inherit; text-decoration: underline; }
/* an empty "Recent Comments" block adds nothing */
.sidebar .widget:has(.no-comments) { display: none; }
/* in-body links: brand sea-green instead of Rehub's tan (#ce965f) */
.rh-post-wrapper .post-inner a:not([class]), .page .post-inner a:not([class]) { color: var(--isg-sea); text-decoration-color: rgba(11,107,105,.35); text-underline-offset: 3px; }
.rh-post-wrapper .post-inner a:not([class]):hover { color: var(--isg-red); }
