  img{display:block;max-width:100%;}
  /* HEADER */
  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);}
  /* HAMBURGER */
  /* HERO */
  .page-hero{position:relative;min-height:56vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;}
  @media(max-width:640px){.page-hero{min-height:65vh;}}
  .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(25%);}
  .ph-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(var(--ink-rgb,19,32,27),0.20) 0%,rgba(var(--ink-rgb,19,32,27),0.60) 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-back{font-family:'ABCNormal',sans-serif;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(250,248,242,0.55);display:inline-flex;align-items:center;gap:8px;margin-bottom:20px;transition:color 0.15s;}
  .ph-back:hover{color:var(--green-pale);}
  .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:14px;text-shadow:0 1px 6px rgba(0,0,0,0.5);}
  .page-hero h1{font-size:clamp(38px,5.5vw,80px);font-weight:700;line-height:0.95;color:var(--paper);margin:0;letter-spacing:-0.02em;text-shadow:0 2px 14px rgba(0,0,0,0.35);}
  /* EXHIBITOR BODY */
  /* Ruled top and bottom, so the company's details read as one block closed off
     from the page rather than a column that runs out. The live site rules only
     the top and lets the footer end it; here the block finishes on its own. */
  .exh-wrap{display:grid;grid-template-columns:1fr 340px;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:start;}
  @media(max-width:900px){.exh-wrap{grid-template-columns:1fr;}}
  /* LEFT: logo + info */
  /* Less above than the live site's 56: the logos are trimmed to their own ink
     now, so the mark starts where the column starts instead of a fifth of the
     way down its own canvas, and the old figure read as a gap. */
  .exh-main{padding:15px 56px 72px 0;border-right:1px solid var(--line);}
  @media(max-width:900px){.exh-main{padding:40px 0;border-right:none;border-bottom:1px solid var(--line);}}
  /* No rule and no plate. The mark is set at a fixed size against the page's
     own paper, so a company that supplied a transparent file and one that
     supplied a white rectangle both sit at the same size in the same place —
     which is what the box was doing, at the cost of a border round every one. */
  /* No fill of its own: transparent is said outright rather than left to the
     default, because this used to be a paper plate with a rule round it and
     the absence is the point. */
  .exh-logo-frame{
    display:flex;align-items:center;justify-content:flex-start;
    background:transparent;
    max-width:400px;
    margin-bottom:40px;
  }
  /* Size lives on the element itself, next to the picture it belongs to; the
     rule here would lose to it anyway. */
  .exh-logo-frame .logo-initial{
    font-family:'ABCNormal',sans-serif;font-size:80px;font-weight:700;
    color:var(--line);line-height:1;
  }
  .exh-field{margin-bottom:32px;}
  .exh-field-label{font-family:'ABCNormal',sans-serif;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--green-deep);display:block;margin-bottom:8px;}
  .exh-field-val{font-family:'ABCNormal',sans-serif;font-size:clamp(18px,2vw,26px);font-weight:700;color:var(--ink);}
  .exh-field-sub{font-size:14px;color:var(--ink-soft);margin-top:4px;}
  /* One row of stand numbers, so two stands sit side by side and wrap rather
     than stretching the field. */
  .exh-booths{display:flex;flex-wrap:wrap;gap:12px;}
  .booth-num{
    display:inline-block;
    font-family:'ABCNormal',sans-serif;font-size:clamp(22px,3vw,36px);font-weight:700;
    color:var(--green-deep);
    border:2px solid var(--green-deep);
    padding:10px 24px;
    letter-spacing:0.08em;
    background:rgba(var(--green-rgb,47,122,77),0.06);
  }
  /* The company's own address.
     Named .exh-website-link to match the template — the rule was written as
     .exh-website, which no markup carries, so none of it had ever applied and
     the address was rendering as another line of plain dark heading text. */
  .exh-website-link{
    display:inline-flex;align-items:center;gap:7px;
    font-family:'ABCNormal',sans-serif;font-size:16px;font-weight:500;
    letter-spacing:0.01em;
    color:var(--green-deep);
    text-decoration:none;
    /* Transparent at rest rather than absent, so gaining the rule on hover
       does not move the text down by a pixel. */
    border-bottom:1px solid transparent;
    padding-bottom:2px;
    transition:color 0.15s,border-color 0.15s;
  }
  /* The mark that says this leaves the site. In the link's own colour because it
     is part of the link, and a shade smaller so it sits with the text rather
     than beside it. */
  .exh-website-link::after{
    content:"\2197";
    font-size:0.85em;
    line-height:1;
  }
  .exh-website-link:hover{color:var(--green);border-bottom-color:var(--green);}
  .exh-website-link:focus-visible{
    outline:2px solid var(--green);outline-offset:3px;
    border-bottom-color:transparent;
  }
  /* RIGHT: sidebar */
  .exh-sidebar{padding:56px 0 72px 48px;}
  @media(max-width:900px){.exh-sidebar{padding:40px 0 0;}}
  .s-card{border:1px solid var(--line);padding:28px;margin-bottom:16px;background:var(--paper);}
  .s-card-label{font-family:'ABCNormal',sans-serif;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--green-deep);display:block;margin-bottom:10px;}
  .s-card-val{font-size:15px;font-weight:600;color:var(--ink);line-height:1.4;}
  .s-card-sub{font-size:13px;color:var(--ink-soft);margin-top:4px;}
  .btn-primary{display:block;text-align:center;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:16px 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:24px;}
  .btn-primary:hover{background:var(--green);border-color:var(--green);}
  .btn-secondary{display:block;text-align:center;background:transparent;color:var(--ink);border:1px solid var(--ink);padding:16px 24px;font-family:'ABCNormal',sans-serif;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;transition:border-color 0.15s,color 0.15s;margin-top:10px;}
  .btn-secondary:hover{border-color:var(--green);color:var(--green-deep);}
  /* NOT FOUND */
  .not-found{padding:100px 0;text-align:center;}
  .not-found h2{font-size:32px;font-weight:700;margin-bottom:16px;}
  .not-found p{color:var(--ink-soft);margin-bottom:32px;}
  .not-found a{display:inline-block;background:var(--ink);color:var(--paper);padding:14px 28px;font-family:'ABCNormal',sans-serif;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;}
  /* FOOTER */
  .foot-grid a:hover{color:var(--paper);}
  .foot-logo{height:44px;width:auto;margin-bottom:16px;}
  .foot-tagline{font-size:13px;color:#C9C5BB;line-height:1.6;max-width:260px;}
  .foot-social a:hover{color:var(--paper);border-color:var(--green-pale);}
  /* ── 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); }
  }
  /* 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; }
/* Where an exhibitor's page differs from the shared furniture
   ---------------------------------------------------------------------------
   layout.css carries the header, footer and type for every page. An exhibitor's
   page is a document rather than a display, so it sits on paper instead of the
   concrete the rest of the site uses, and its secondary text is a little softer. */
:root{ --concrete-deep:#E8E2D8; --ink-soft:#4A5C54; }
body{ background:#FAF8F2; -webkit-font-smoothing:antialiased; }
.logo-meta .lm-date{ letter-spacing:normal; }

/* The link back to the list, when the banner it normally sits on is hidden. */
.ph-back--plain{
  display:inline-block; margin-bottom:4px;
  font-size:13px; letter-spacing:0.04em; color:var(--green-deep);
}
.ph-back--plain:hover{ color:var(--ink); }
