  nav a.active{color:var(--ink);}
  nav a.active::after,nav a:hover::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--green); }
  section{padding:84px 0;}
  .contact-grid{ display:grid; grid-template-columns:1.3fr 0.9fr; gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }
  /* ── CONTACT ── */
  .contact-list{
    border-top:1px solid var(--line);
    display:grid; grid-template-columns:1fr 1fr;
  }
  @media(max-width:860px){ .contact-list{grid-template-columns:1fr;} }
  .contact-row{ border-bottom:1px solid var(--line); }
  .contact-row:first-child{ border-right:1px solid var(--line); }
  @media(max-width:860px){ .contact-row:first-child{ border-right:none; } }
  /* The large "01" that used to head each row is gone — the row already carries
     its own label above the heading, and the number added nothing but height. */
  .c-body{ padding:48px; }
  @media(max-width:1100px){ .c-body{padding:36px;} }
  @media(max-width:640px){ .c-body{padding:28px 0;} }
  .c-tag{ font-family:'ABCNormal',sans-serif; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--green-deep); display:block; margin-bottom:10px; }
  .c-body h3{ font-size:clamp(20px,2vw,26px); font-weight:700; margin-bottom:8px; }
  .c-body > p{ color:var(--ink-soft); font-size:14.5px; line-height:1.65; margin-bottom:28px; }
  /* Form */
  .c-form{ }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
  @media(max-width:500px){ .form-row{grid-template-columns:1fr;} }
  .field{ margin-bottom:14px; }
  label{ display:block; font-family:'ABCNormal',sans-serif; font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--ink-soft); margin-bottom:7px; }
  input,select,textarea{
    width:100%; border:1px solid var(--line); background:var(--paper);
    padding:12px 14px; font-family:'ABCNormal',sans-serif; font-size:14px; color:var(--ink);
    appearance:none; -webkit-appearance:none;
  }
  input:focus,select:focus,textarea:focus{ outline:none; border-color:var(--green); }
  textarea{ resize:vertical; min-height:100px; }
  .btn-send{
    display:inline-flex; align-items:center; gap:12px;
    background:var(--ink); color:var(--paper); border:1px solid var(--ink);
    padding:14px 24px; font-family:'ABCNormal',sans-serif;
    font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
    transition:background 0.15s, border-color 0.15s; margin-top:6px;
  }
  .btn-send:hover{ background:var(--green); border-color:var(--green); }
  /* Offices */
  .offices-grid{ display:flex; flex-direction:column; gap:0; }
  .office-card{
    padding:20px 0; border-bottom:1px solid var(--line);
  }
  .office-card:last-of-type{ border-bottom:none; }
  /* Bold, and a size up: the city is the heading of its card, and at 10px
     regular it read as a caption under the address rather than over it. Both
     numbers are the live site's. */
  .off-city{ font-family:'ABCNormal',sans-serif; font-size:12px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--green-deep); display:block; margin-bottom:6px; }
  .off-name{ font-size:14px; font-weight:600; color:var(--ink); margin-bottom:4px; }
  .off-addr{ font-size:13px; color:var(--ink-soft); line-height:1.7; }
  .off-addr a{ color:var(--green-deep); display:inline; margin-right:12px; }
  .off-addr a:hover{ color:var(--green); }
  .c-social{ display:flex; gap:8px; margin-top:28px; flex-wrap:wrap; }
  .c-social a{
    border:1px solid var(--line); padding:10px 18px;
    font-family:'ABCNormal',sans-serif; font-size:11px;
    letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);
    transition:border-color 0.15s, color 0.15s;
  }
  .c-social a:hover{ border-color:var(--green); color:var(--green-deep); }
  .foot-grid a:hover{color:var(--paper);}
  .foot-social a:hover{ color:var(--paper); border-color:var(--green-pale); }
  /* HAMBURGER */
  /* MOBILE NAV OVERLAY */
  /* ═══ MOBILE COMPREHENSIVE ═══ */
  /* Hide actions buttons on very small screens, keep just hamburger */
  /* Logo area tightens on mobile */
  /* Tighter padding on small screens */
  /* Hero */
  @media (max-width:640px){
    .hero{ padding:24px 0 0; }
    .hero-grid{ grid-template-columns:1fr !important; }
    .hero-main{ padding:32px 16px !important; border-right:none !important; }
    .hero h1{ font-size:clamp(28px,8vw,42px) !important; margin:14px 0 18px !important; }
    .hero p.lede{ font-size:15px !important; max-width:100% !important; }
    .hero-actions{ gap:10px; margin-top:24px; }
    .hero-actions .btn{ font-size:13px; padding:12px 18px; }
    .hero-side{ padding:0 !important; }
    .hero-photo-grid{ height:220px !important; }
    .hero-info-strip{ grid-template-columns:1fr 1fr; }
    .hero-info-cell{ padding:14px 16px; }
    .hero-info-cell .val{ font-size:15px; }
  }
  /* Numbers strip */
  @media (max-width:640px){
    .numbers-grid{ grid-template-columns:repeat(2,1fr) !important; }
    .num-cell .figure{ font-size:34px !important; }
    .num-cell .label{ font-size:11px; }
    .num-cell{ padding:20px 14px !important; }
  }
  /* All section headings */
  @media (max-width:640px){
    section{ padding:40px 0 !important; } .hero{ padding:0 !important; } .page-hero{ padding:0 !important; }
    .section-head{ margin-bottom:28px !important; }
    h2{ font-size:clamp(22px,6vw,32px) !important; }
      }
  /* Why/org grids → single column */
  @media (max-width:640px){
    .why-grid,.about-grid,.org-grid,.contact-grid{ grid-template-columns:1fr !important; gap:20px !important; }
    .why-grid p,.org-grid p{ max-width:100% !important; }
  }
  /* Advantages grid → 2 col then 1 col */
  @media (max-width:480px){
    .adv-list{ grid-template-columns:1fr !important; }
    .adv-item{ min-height:130px; }
  }
  /* Products grid */
  @media (max-width:520px){
    .prod-grid{ grid-template-columns:1fr !important; }
    .prod-row{ min-height:200px; }
  }
  /* Exhibitor profile grid */
  @media (max-width:560px){
    .profile-grid{ grid-template-columns:repeat(2,1fr) !important; }
  }
  /* Exhibitor list grid */
  @media (max-width:560px){
    .exh-grid{ grid-template-columns:repeat(2,1fr) !important; }
  }
  /* Sponsor/partner rows */
  @media (max-width:640px){
    .sponsor-row,.mini-row{ grid-template-columns:repeat(2,1fr) !important; }
    .mini-cell{ height:56px !important; }
  }
  /* About / co-locate */
  @media (max-width:640px){
    .colocate-cards{ grid-template-columns:1fr !important; }
    .about-photo{ min-height:220px !important; }
  }
  /* Stand / fee tables */
  @media (max-width:640px){
    .stand-grid,.fee-grid{ grid-template-columns:1fr !important; }
  }
  /* Office cards on contact page */
  @media (max-width:640px){
    .offices-grid{ grid-template-columns:1fr !important; }
  }
  /* CTA band */
  @media (max-width:640px){
    .cta-band{ padding:40px 0 !important; }
    .cta-inner{ flex-direction:column !important; gap:20px !important; align-items:flex-start !important; }
    .cta-inner h2{ font-size:clamp(20px,6vw,28px) !important; }
    .cta-inner .btn-group{ flex-direction:column !important; gap:10px !important; }
  }
  /* Timeline on history */
  @media (max-width:640px){
    .timeline-grid{ grid-template-columns:1fr !important; }
  }
  /* Downloads grid */
  @media (max-width:640px){
    .dl-grid{ grid-template-columns:1fr !important; }
  }
  /* Footer */
  @media (max-width:640px){
    .social-links{ flex-wrap:wrap; }
  }
  /* Video embed */
  @media (max-width:640px){
    .video-wrap{ margin:0 -16px; }
  }
  /* Info cells on contact */
  @media (max-width:640px){
    .form-col,.info-col{ padding:24px 16px !important; }
    .form-row{ grid-template-columns:1fr !important; }
  }
  /* Venue transport cells */
  @media (max-width:640px){
    .transport-grid{ grid-template-columns:1fr !important; }
  }
  /* Exhibitor search / filter row */
  @media (max-width:640px){
    .filter-row{ flex-direction:column !important; gap:10px !important; }
    .letter-row{ gap:4px !important; flex-wrap:wrap; }
    .letter-btn{ font-size:11px !important; padding:6px 8px !important; }
  }
  /* Map */
  @media (max-width:640px){
    .map-wrap{ margin:24px -16px 0 !important; }
  }
  /* PAGE HERO — full-bleed cinematic */
  .page-hero{
    position:relative; min-height:52vh;
    display:flex; flex-direction:column; justify-content:flex-end;
    overflow:hidden; padding:0;
  }
  @media (max-width:640px){ .page-hero{min-height:60vh;} }
  .ph-bg{
    position:absolute; inset:0; background:var(--ink);
  }
  .ph-bg img{
    width:100%; height:100%; object-fit:cover; display:block;
    object-position:center 40%;
    filter:grayscale(20%);
  }
  .ph-overlay{
    position:absolute; inset:0;
    background:linear-gradient(
      to bottom,
      rgba(var(--ink-rgb,19,32,27),0.25) 0%,
      rgba(var(--ink-rgb,19,32,27),0.65) 40%,
      rgba(var(--ink-rgb,19,32,27),0.92) 75%,
      rgba(var(--ink-rgb,19,32,27),0.98) 100%
    );
  }
  .ph-content{
    position:relative; z-index:1;
    padding:0 48px 40px; max-width:1920px; margin:0 auto; width:100%;
  }
  @media (max-width:640px){ .ph-content{padding:0 16px 32px;} }
  .ph-eyebrow{
    font-family:'ABCNormal',sans-serif; font-size:11px; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--green-pale); display:flex; align-items:center;
    gap:10px; margin-bottom:16px;
    text-shadow:0 1px 6px rgba(0,0,0,0.5);
  }
  .page-hero h1{
    font-size:clamp(40px,6vw,80px); font-weight:700; line-height:0.95;
    color:var(--paper); margin:0 0 20px; letter-spacing:-0.02em;
    text-shadow:0 2px 14px rgba(0,0,0,0.35);
  }
  .page-hero .lede{
    font-size:clamp(14px,1.3vw,16.5px); color:rgba(250,248,242,0.68);
    max-width:580px; line-height:1.65; margin-bottom:28px;
  }
  .page-hero-actions{ display:flex; gap:12px; flex-wrap:wrap; }
  .page-hero-actions .btn-fill{
    background:var(--paper); color:var(--ink); border-color:var(--paper);
  }
  .page-hero-actions .btn-fill:hover{ background:var(--green); border-color:var(--green); color:var(--paper); }
  .page-hero-actions .btn-line{
    border-color:rgba(250,248,242,0.4); color:var(--paper);
  }
  .page-hero-actions .btn-line:hover{ border-color:var(--paper); }
  /* ── FORCE LIGHT MODE — overrides iOS/Android dark mode ── */
  @media (prefers-color-scheme: dark) {
    html, body {
      background-color: #FAF8F2 !important;
      color: var(--ink,#13201B) !important;
    }
  }
  /* ── RESPONSIVE NAV ── */
  /* ── MOBILE CONTENT FIXES ── */
  @media (max-width:640px){
    /* Hero — give breathing room from sticky header */
    .hero-content{ padding-top:56px !important; }
    .page-hero .ph-content{ padding-top:48px !important; }
    /* Footer — single column on small phones */
    /* Prevent any section horizontal overflow */
    section{ overflow-x:hidden; }
  }
  @media (max-width:480px){
    /* Hero heading size reduction */
    .hero h1{ font-size:clamp(30px,10vw,48px) !important; }
    .hero-bar{ grid-template-columns:1fr !important; }
    .hero-bar-cell:nth-child(2){ border-top:1px solid rgba(250,248,242,0.18); border-right:none !important; }
    .hero-bar-cell:last-child{ display:block !important; border-top:1px solid rgba(250,248,242,0.18); }
  }
  .c-info-body p, .c-info-body address, .c-info-body a, .c-address{ font-size:15px !important; }
  /* Sponsor tier final sizes */
  .sponsor-tier.plat-tier .plat-logo-link img{ max-height:92px !important; max-width:280px !important; filter:none !important; opacity:1 !important; mix-blend-mode:multiply; }
  .sponsor-tier:nth-child(2) .logo-chip img{ max-height:80px !important; }
  .logo-chip img{ max-height:66px !important; }
/* The Purpose field's label, which was the only one in sentence case.
   ---------------------------------------------------------------------------
   The enquiry form is an Elfsight widget and the uppercase on its labels is the
   widget's own, written against <label>. Purpose is a dropdown rather than a
   text field, so the widget gives its label a <div> — the same class, a
   different tag — and that one alone came through in sentence case at the
   ordinary tracking while the six around it were capitalised.

   Matching on the class instead of the tag picks up both. Only the two
   properties that differ are set: the size and weight already agree, and are
   the widget's to decide. */
.es-field-layout-label{
  text-transform:uppercase;
  letter-spacing:1.5px;
}
