:root {
  --gold: #a77a00;
  --gold-dark: #795800;
  --dark: #161616;
  --ink: #1d1d1b;
  --muted: #575753;
  --line: #e4e1d8;
  --soft: #f7f6f2;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--ink); font: 17px/1.65 system-ui, -apple-system, "Segoe UI", Arial, sans-serif; }
img { display: block; max-width: 100%; }
a { color: var(--gold-dark); }
button { font: inherit; }
:focus-visible { outline: 3px solid #b07c05; outline-offset: 4px; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 200; padding: 10px 15px; background: white; transform: translateY(-160%); }
.skip-link:focus { transform: none; }

.site-notice { padding: 5px 16px; background: #272725; color: #fff; font-size: .82rem; text-align: center; }
.site-notice a { color: inherit; }
.header { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 78px; max-width: 1440px; margin-inline: auto; padding: 10px clamp(20px, 4vw, 48px); background: #fff; }
.header .logo img { width: clamp(175px, 21vw, 250px); height: auto; }
.header .nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px clamp(13px, 2vw, 26px); }
.header .nav a { color: var(--ink); font-size: .76rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; }
.header .nav a:hover, .header .nav a[aria-current] { color: var(--gold-dark); }
.menu-toggle { display: none; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--ink); font-size: 23px; cursor: pointer; }

.swansea .wrap { width: min(100% - 2 * clamp(20px, 5vw, 64px), 1100px); margin-inline: auto; }
.swansea .hero { background: #1b1b19; color: #fff; padding-block: clamp(44px, 5vw, 72px); }
.swansea h1, .swansea h2, .swansea h3 { margin: 0; line-height: 1.15; }
.swansea h1 { max-width: 100%; font-size: clamp(2.15rem, 5vw, 3.5rem); letter-spacing: -.037em; text-wrap: balance; }
.swansea .hero p { max-width: 38em; margin: 20px 0 28px; color: #f2f1ed; font-size: clamp(1rem, 1.7vw, 1.15rem); }
.swansea .actions { display: flex; flex-wrap: wrap; gap: 12px; }
.swansea .button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 11px 22px; border: 2px solid transparent; border-radius: 6px; font-weight: 750; text-decoration: none; }
.swansea .button.white { background: #fff; color: var(--ink); border-color: #fff; }
.swansea .button.white:hover { background: #eeeae0; border-color: #eeeae0; }
.swansea .button.outline { color: #fff; border-color: #fff; }
.swansea .button.outline:hover { background: #fff; color: var(--ink); }
.swansea .button.dark { margin-top: 20px; background: var(--ink); color: #fff; }
.swansea .button.dark:hover { background: #383834; }
.swansea .trust { background: #242422; color: #fff; }
.swansea .trust .checks { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 26px; padding-block: 14px; font-size: .89rem; font-weight: 650; }
.swansea .trust .checks li::before { color: #e0b92e; }
.swansea .section { padding-block: clamp(46px, 6vw, 78px); }
.swansea .soft { background: var(--soft); }
.swansea .section h2 { font-size: clamp(1.65rem, 3.2vw, 2.15rem); letter-spacing: -.025em; }
.swansea .section h2::after { content: ""; display: block; width: 55px; height: 3px; margin: 14px 0 16px; background: var(--gold); }
.swansea p { max-width: 47em; margin: 0; color: var(--muted); }
.swansea .two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(26px, 5vw, 48px); align-items: center; }
.swansea .intro-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.swansea .checks { margin: 0; padding: 0; list-style: none; }
.swansea .section .checks { margin-top: 18px; }
.swansea .section .checks li + li { margin-top: 7px; }
.swansea .checks li { position: relative; padding-left: 23px; }
.swansea .checks li::before { position: absolute; left: 0; content: "✓"; color: var(--gold-dark); font-weight: 800; }
.swansea .chips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 26px 0 0; padding: 0; list-style: none; }
.swansea .chips li { display: flex; align-items: center; padding: 13px 15px; border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 5px; background: #fff; font-weight: 650; }
.swansea .projects, .swansea .benefits { display: grid; gap: 26px; margin-top: 28px; }
.swansea .projects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.swansea .projects figure { margin: 0; }
.swansea .projects img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.swansea .projects figcaption { padding-top: 13px; }
.swansea .projects small { color: var(--gold-dark); font-weight: 700; }
.swansea .projects h3, .swansea .benefits h3 { margin: 4px 0 8px; font-size: 1.13rem; }
.swansea .benefits { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.swansea .benefits > div { border-top: 3px solid var(--gold); padding-top: 12px; }
.swansea .faq details { border-bottom: 1px solid var(--line); }
.swansea .faq summary { padding: 15px 0; font-weight: 700; cursor: pointer; }
.swansea .faq details p { padding-bottom: 16px; }
.swansea .enquiry { background: #232321; color: #fff; text-align: center; }
.swansea .enquiry h2::after { margin-inline: auto; }
.swansea .enquiry p { margin: 0 auto 22px; color: #f2f1ed; }
.swansea .related { background: var(--soft); }
.swansea .related-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.swansea .related-links a { display: flex; align-items: center; min-height: 46px; padding: 10px 15px; border: 1px solid var(--line); border-radius: 5px; background: #fff; color: var(--ink); text-decoration: none; font-weight: 650; }
.swansea .related-links a:hover { border-color: var(--gold); }

@media (max-width: 840px) {
  .swansea .chips, .swansea .benefits, .swansea .related-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 743px) {
  .menu-toggle { display: inline-flex; }
  .jj-header-system .header .nav { display: none; }
  .jj-header-system .header .nav.open { display: flex; }
  .swansea .two, .swansea .projects { grid-template-columns: minmax(0, 1fr); }
  .swansea .trust .checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 390px) {
  .swansea .related-links { grid-template-columns: minmax(0, 1fr); }
  .swansea .actions .button { width: 100%; }
}

.swansea .hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr);
  gap: clamp(28px, 5vw, 62px);
  align-items: center;
}
.swansea .hero-copy { text-align: left; }
.swansea .hero-copy h1 { font-size: clamp(2.15rem, 4.15vw, 3.5rem); text-wrap: initial; }
.swansea .hero-photo { width: 100%; height: auto; border-radius: 8px; }
.swansea .coverage-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 34px;
  margin: 24px 0;
  padding: 0;
  list-style: none;
}
.swansea .coverage-list li { padding-left: 14px; border-left: 2px solid var(--gold); }
.swansea .coverage-list span { display: block; margin-top: 3px; color: var(--muted); }

@media (max-width: 700px) {
  .swansea .hero-layout, .swansea .coverage-list { grid-template-columns: minmax(0, 1fr); }
}
