
:root {
  --navy: #073b66;
  --blue: #1687a7;
  --sky: #d8f1f2;
  --cream: #fffaf1;
  --orange: #f47b3c;
  --ink: #183044;
  --muted: #647786;
  --white: #ffffff;
  --shadow: 0 18px 45px rgba(7,59,102,.12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.55;
}
a { color: inherit; }
.site-header {
  position: sticky; top: 0; z-index: 20;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(6,45,99,.12);
  backdrop-filter: blur(8px);
}
.header-inner {
  max-width: 1180px; margin: auto; padding: 12px 22px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.brand { display:flex; align-items:center; gap:14px; text-decoration:none; }
.brand img { width: 210px; max-width: 42vw; height:auto; border-radius:4px; }
.nav { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.nav a {
  text-decoration:none; font-weight:700; padding:10px 12px; border-radius:999px;
}
.nav a:hover, .nav a.active { background:#eaf4fa; color:var(--navy); }
.nav .login { background:var(--orange); color:white; }
.nav .login:hover { background:#c94b11; color:white; }
.hero {
  min-height: 640px;
  background:
    linear-gradient(90deg, rgba(4,34,73,.86), rgba(4,34,73,.25)),
    url('assets/torquay-fair-flyer.png') center/cover no-repeat;
  color:white; display:flex; align-items:center;
}
.hero-inner { max-width:1180px; margin:auto; padding:80px 22px; width:100%; }
.kicker { text-transform:uppercase; letter-spacing:.14em; font-weight:800; color:#ffd6b8; }
h1 { font-family: Georgia, 'Times New Roman', serif; font-size:clamp(3rem,8vw,6.8rem); line-height:.92; margin:12px 0 20px; max-width:800px; }
.hero p { max-width:650px; font-size:1.25rem; }
.date-strip {
  display:inline-flex; flex-wrap:wrap; gap:10px; margin:24px 0;
}
.pill { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35); padding:10px 14px; border-radius:999px; font-weight:700; }
.actions { display:flex; gap:12px; flex-wrap:wrap; }
.btn {
  display:inline-block; text-decoration:none; font-weight:800;
  padding:14px 20px; border-radius:10px; border:2px solid transparent;
}
.btn-primary { background:var(--orange); color:white; }
.btn-secondary { border-color:white; color:white; background:rgba(255,255,255,.08); }
main section { padding:70px 22px; }
.container { max-width:1180px; margin:auto; }
.section-title { color:var(--navy); font-family:Georgia,serif; font-size:clamp(2rem,4vw,3.4rem); margin:0 0 12px; }
.lead { color:var(--muted); font-size:1.15rem; max-width:780px; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:34px; }
.card {
  background:white; border-radius:28px 10px 28px 10px; padding:28px; box-shadow:var(--shadow);
  border:1px solid rgba(6,45,99,.08);
}
.card h3 { color:var(--navy); margin-top:0; }
.card .icon { font-size:2rem; margin-bottom:10px; }
.feature-band { background:linear-gradient(135deg, #073b66 0%, #1687a7 60%, #58b8b0 100%); color:white; }
.feature-band .section-title, .feature-band .lead { color:white; }
.two-col { display:grid; grid-template-columns:1.05fr .95fr; gap:38px; align-items:center; }
.flyer { width:100%; border-radius:32px 12px 32px 12px; box-shadow:var(--shadow); }
.info-list { display:grid; gap:14px; margin-top:24px; }
.info-row { background:white; border-left:5px solid var(--orange); padding:16px 18px; border-radius:10px; box-shadow:var(--shadow); }
.page-hero { background:linear-gradient(135deg,#073b66 0%,#1687a7 65%,#58b8b0 100%); color:white; padding:80px 22px; }
.page-hero h1 { font-size:clamp(2.6rem,6vw,5rem); margin:0; }
.form-grid { display:grid; gap:16px; max-width:720px; }
label { font-weight:700; color:var(--navy); }
input, textarea {
  width:100%; padding:13px 14px; border-radius:10px; border:1px solid #bcc8d4; font:inherit;
}
textarea { min-height:150px; resize:vertical; }
.footer { background:#031f45; color:white; padding:35px 22px; }
.footer-inner { max-width:1180px; margin:auto; display:flex; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.footer img { width:190px; }
.portal-shell { max-width:1180px; margin:40px auto; padding:0 22px 70px; }
.portal-grid { display:grid; grid-template-columns:260px 1fr; gap:24px; }
.portal-nav { background:var(--navy); color:white; border-radius:16px; padding:18px; height:max-content; position:sticky; top:90px; }
.portal-nav a { display:block; padding:11px 12px; border-radius:8px; text-decoration:none; }
.portal-nav a:hover, .portal-nav a.active { background:rgba(255,255,255,.14); }
.notice { background:#fff4df; border:1px solid #efc071; border-radius:12px; padding:16px; }
.download { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px; border:1px solid #d8e0e8; border-radius:12px; margin:12px 0; background:white; }
.login-wrap { max-width:520px; margin:70px auto; padding:0 22px; }
.login-box { background:white; padding:34px; border-radius:32px 12px 32px 12px; box-shadow:var(--shadow); }
.error { color:#b00020; font-weight:700; display:none; margin-top:12px; }
.mobile-toggle { display:none; border:0; background:var(--navy); color:white; padding:10px 12px; border-radius:8px; }
@media (max-width: 850px) {
  .grid { grid-template-columns:1fr; }
  .two-col { grid-template-columns:1fr; }
  .portal-grid { grid-template-columns:1fr; }
  .portal-nav { position:static; }
  .mobile-toggle { display:block; }
  .nav { display:none; width:100%; padding-top:10px; }
  .nav.open { display:flex; flex-direction:column; align-items:stretch; }
  .header-inner { flex-wrap:wrap; }
  .hero { min-height:560px; }
}


/* V2 refinements: lighter, less boxy, more coastal */
body {
  background:
    radial-gradient(circle at 10% 10%, rgba(244,123,60,.07), transparent 24%),
    radial-gradient(circle at 90% 20%, rgba(88,184,176,.08), transparent 28%),
    var(--cream);
}
.site-header {
  box-shadow: 0 8px 25px rgba(7,59,102,.08);
}
.hero {
  position: relative;
  overflow: hidden;
}
.hero::after {
  content:"";
  position:absolute;
  left:-5%;
  right:-5%;
  bottom:-62px;
  height:120px;
  background:var(--cream);
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
}
.hero-inner { position:relative; z-index:1; padding-bottom:120px; }
.card {
  position:relative;
  overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease;
}
.card::before {
  content:"";
  position:absolute;
  width:90px; height:90px;
  right:-28px; top:-28px;
  background:linear-gradient(135deg, rgba(244,123,60,.14), rgba(88,184,176,.12));
  border-radius:50%;
}
.card:hover {
  transform:translateY(-4px);
  box-shadow:0 24px 50px rgba(7,59,102,.16);
}
.grid .card:nth-child(2) { transform:translateY(18px); }
.grid .card:nth-child(2):hover { transform:translateY(14px); }
.section-title {
  position:relative;
  display:inline-block;
}
.section-title::after {
  content:"";
  display:block;
  width:72px;
  height:5px;
  margin-top:10px;
  background:linear-gradient(90deg,var(--orange),#58b8b0);
  border-radius:999px;
}
.page-hero {
  position:relative;
  overflow:hidden;
}
.page-hero::after {
  content:"";
  position:absolute;
  width:260px; height:260px;
  right:-70px; top:-90px;
  border:2px solid rgba(255,255,255,.16);
  border-radius:50%;
}
.info-row {
  border-left:0;
  border-top:4px solid var(--orange);
  border-radius:20px 8px 20px 8px;
}
.btn { border-radius:999px; }
.exhibitor-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:28px;
}
.exhibitor-item {
  background:white;
  border:1px solid rgba(7,59,102,.10);
  border-radius:22px 8px 22px 8px;
  padding:20px;
  min-height:110px;
  box-shadow:var(--shadow);
}
.exhibitor-item strong {
  display:block;
  color:var(--navy);
  font-size:1.06rem;
  margin-bottom:6px;
}
.placeholder-note {
  background:linear-gradient(135deg,#fff1e8,#edfafa);
  border:1px dashed rgba(7,59,102,.25);
  border-radius:24px 8px 24px 8px;
  padding:20px;
  margin-top:18px;
}
@media (max-width: 850px) {
  .grid .card:nth-child(2) { transform:none; }
  .exhibitor-list { grid-template-columns:1fr; }
}

.consent-row{display:flex;align-items:flex-start;gap:12px;font-weight:400;color:var(--ink)}
.consent-row input{width:auto;margin-top:5px;flex:0 0 auto}

/* Keep technical form settings hidden from visitors. */
input[type="hidden"] {
  display: none !important;
}

.footer-legal { display:flex; flex-direction:column; gap:6px; }
.footer-legal a { color:white; text-decoration:underline; text-underline-offset:3px; }
.footer-legal a:hover { text-decoration:none; }
