/*
Theme Name: Sustainable Fashion Week Hub Torquay
Theme URI: https://www.sfwhubtorquay.co.uk
Author: Minycled Ltd 
Author URI: https://www.sfwhubtorquay.co.uk
Description: Official WordPress theme for Sustainable Fashion Week Hub Torquay 2026. Sustainable Fashion Week Hub Torquay is proudly hosted by Minycled Ltd in partnership with A Single Thread as part of the national Sustainable Fashion Week programme led by A Single Thread. Headline Sponsor: Hampton by Hilton Torquay.
Version: 2.3.9
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sfw-hub-torquay
Tags: fashion, sustainable, event, torquay, responsive-layout, custom-menu, featured-images
*/

/* CSS Variables — SFW Hub Torquay + A Single Thread 2026 co-brand palette */
:root {
  --font-serif: "Playfair Display", Georgia, serif;
  --font-sans: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
  --font-mono: "Space Mono", monospace, monospace;

  /* Official A Single Thread supporting palette */
  --ast-cream: #FFFAF5;
  --ast-sand: #FFF0D6;
  --ast-blush: #FFD5CB;
  --ast-coral: #FF8D8F;
  --ast-red: #D04051;
  --ast-mint: #B7EFD9;
  --ast-teal: #00AAB3;
  --ast-blue: #1667CA;
  --ast-navy: #000F21;

  /* SFW Hub Torquay live UI mapping */
  --color-bg: #FFFAF5;
  --color-surface: #FFFFFF;
  --color-text-primary: #000F21;
  --color-text-muted: #40506A;
  --color-brand-eucalyptus: #B7EFD9;
  --color-brand-pistachio: #FFF0D6;
  --color-brand-peach: #FFD5CB;
  --color-brand-clay: #FF8D8F;
  --color-brand-orange: #D04051;
  --color-brand-darkwalnut: #000F21;
  --color-brand-teal: #00AAB3;
  --color-brand-blue: #1667CA;
  --color-border: #FFD5CB;
}

/* Workshops: scoped extensions of the existing Exhibitors card/profile system. */
.sfw-workshops-directory .sfw-workshop-card__details,
.sfw-whats-on-directory .sfw-workshop-card__details{
  background:var(--ast-cream);
}
.sfw-workshops-directory .sfw-workshop-card__details-copy,
.sfw-whats-on-directory .sfw-workshop-card__details-copy{
  align-items:flex-start;
  display:flex;
  flex-direction:column;
  gap:.45rem;
  justify-content:center;
  min-height:100%;
  padding:1rem;
}
.sfw-workshops-directory .sfw-workshop-card__details-copy strong,
.sfw-whats-on-directory .sfw-workshop-card__details-copy strong{
  color:var(--ast-navy);
  font-family:var(--font-serif);
  font-size:1.05rem;
}
.sfw-workshops-directory .sfw-workshop-card__price,
.sfw-whats-on-directory .sfw-workshop-card__price{
  color:var(--ast-red);
  font-family:var(--font-mono);
  font-weight:700;
}
.sfw-workshop-card .img-wrapper{
  aspect-ratio:4 / 3;
}
.sfw-workshop-card .img-wrapper img{
  height:100%;
  object-fit:cover;
}
.sfw-workshop-card .grid-summary{
  overflow-wrap:anywhere;
}
.sfw-workshop-card__availability{
  color:var(--color-text-muted);
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.sfw-workshop-profile__schedule span{
  display:block;
}
.sfw-workshop-profile__media{
  grid-template-columns:1fr;
}
.sfw-workshop-profile__host-link{
  margin:1.5rem 0;
}
.sfw-workshop-booking{
  background:var(--ast-sand);
  border:2px solid var(--ast-navy);
  margin-top:2rem;
  padding:clamp(1.25rem,3vw,2rem);
}
.sfw-workshop-booking h2{
  margin-top:0;
}
.sfw-workshop-booking__price{
  color:var(--ast-navy);
  font-size:1.25rem;
  font-weight:700;
}
.sfw-workshop-booking__form{
  align-items:flex-end;
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}
.sfw-workshop-booking__form .quantity .qty{
  min-height:44px;
}
.sfw-ticket-cta{
  align-items:center;
  background:var(--ast-red) !important;
  border:2px solid var(--ast-navy) !important;
  color:#fff !important;
  display:inline-flex;
  font-family:var(--font-mono);
  font-size:.78rem;
  font-weight:700;
  justify-content:center;
  letter-spacing:.04em;
  min-height:50px;
  padding:.85rem 1.2rem;
  text-decoration:none;
  text-transform:uppercase;
}
.sfw-ticket-cta:hover,.sfw-ticket-cta:focus{
  background:var(--ast-navy) !important;
  color:#fff !important;
}
.sfw-booking-status{
  align-items:center;
  background:var(--ast-sand);
  border:2px solid var(--ast-navy);
  color:var(--ast-navy);
  display:inline-flex;
  font-family:var(--font-mono);
  font-size:.75rem;
  font-weight:700;
  justify-content:center;
  letter-spacing:.04em;
  min-height:48px;
  padding:.75rem 1rem;
  text-align:center;
  text-transform:uppercase;
}
.sfw-workshop-card .card-footer .sfw-booking-status{
  width:100%;
}
.sfw-workshop-what-to-bring{
  background:var(--ast-mint);
  border:2px solid var(--ast-navy);
  margin-top:2rem;
  padding:clamp(1.25rem,3vw,2rem);
}
.sfw-workshop-what-to-bring h2{
  margin:.35rem 0 .75rem;
}
.sfw-workshop-what-to-bring p{
  margin:0;
}
.sfw-runway-card .card-footer{
  align-items:stretch;
}
.sfw-runway-card .sfw-ticket-cta{
  text-align:center;
  width:100%;
}
.sfw-programme-jump-nav{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0 0 3rem;
}
.sfw-programme-jump-nav a{
  align-items:center;
  background:var(--ast-navy);
  border:2px solid var(--ast-navy);
  color:#fff;
  display:flex;
  font-family:var(--font-mono);
  font-size:.75rem;
  font-weight:700;
  gap:.75rem;
  justify-content:center;
  min-height:64px;
  padding:.8rem 1rem;
  text-decoration:none;
  text-transform:uppercase;
}
.sfw-programme-jump-nav a:hover,.sfw-programme-jump-nav a:focus{
  background:var(--ast-red);
  color:#fff;
}
.sfw-programme-jump-nav svg,.sfw-runway-feature__card>svg,.sfw-runway-feature__mark{
  fill:none;
  flex:0 0 auto;
  height:28px;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.7;
  width:28px;
}
.sfw-runway-feature{
  background:var(--ast-navy);
  color:#fff;
  padding:clamp(1.5rem,4vw,3rem);
}
.sfw-runway-feature__hero{
  margin:0 auto 2rem;
  max-width:900px;
  text-align:center;
}
.sfw-runway-feature__hero h2{
  color:#fff;
  font-size:clamp(2rem,4vw,3rem);
  margin:.4rem 0 1rem;
}
.sfw-runway-feature__hero p{
  color:#fff;
}
.sfw-runway-feature__mark{
  color:var(--ast-mint);
  height:64px;
  margin-bottom:.75rem;
  width:64px;
}
.sfw-runway-feature__grid{
  display:grid;
  gap:1.25rem;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.sfw-runway-feature__card{
  background:var(--ast-cream);
  border:1px solid var(--ast-mint);
  color:var(--ast-navy);
  padding:clamp(1.25rem,3vw,2rem);
}
.sfw-runway-feature__card>svg{
  color:var(--ast-red);
  height:38px;
  margin-bottom:1rem;
  width:38px;
}
.sfw-runway-feature__card h3{
  font-size:clamp(1.4rem,2.4vw,2rem);
  margin:.4rem 0 .75rem;
}
.sfw-runway-feature__card h4{
  font-family:var(--font-serif);
  font-size:1.15rem;
  margin:1rem 0 .4rem;
}
.sfw-runway-feature__card p{
  margin:0 0 1rem;
}
.sfw-runway-feature__action{
  margin-top:1.25rem;
}
@media (max-width:800px){
  .sfw-programme-jump-nav,.sfw-runway-feature__grid{grid-template-columns:1fr}
}
.sfw-whatson-section{
  margin:0 0 3rem;
}
.sfw-whatson-section__header{
  margin:0 auto 1.5rem;
  max-width:760px;
  text-align:center;
}
.sfw-whatson-section__header h2{
  font-size:clamp(1.8rem,4vw,2.5rem);
  margin:.35rem 0 .75rem;
}
.sfw-whatson-editor-content{
  background:#fff;
  border:1px solid var(--color-border);
  margin-bottom:3rem;
  padding:clamp(1.25rem,3vw,2rem);
}
.sfw-whatson-summary-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.sfw-programme-card .card-body{
  min-height:180px;
}
.sfw-run-workshop-page{
  padding-bottom:4rem;
}
.sfw-workshop-provider-card{
  margin-top:2rem;
}
.sfw-workshop-provider-form fieldset{
  border:0;
  border-bottom:1px solid var(--color-border);
  margin:0 0 2rem;
  padding:0 0 2rem;
}
.sfw-workshop-provider-form legend{
  color:var(--ast-navy);
  font-family:var(--font-serif);
  font-size:1.5rem;
  font-weight:800;
  margin-bottom:1.25rem;
}
.sfw-form-grid{
  display:grid;
  gap:1.25rem;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.sfw-form-grid label{
  color:var(--ast-navy);
  display:flex;
  flex-direction:column;
  font-family:var(--font-mono);
  font-size:.78rem;
  font-weight:700;
  gap:.45rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.sfw-form-grid input,.sfw-form-grid select,.sfw-form-grid textarea{
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:2px;
  color:var(--ast-navy);
  font-family:var(--font-sans);
  font-size:.95rem;
  font-weight:400;
  min-height:46px;
  padding:.75rem;
  text-transform:none;
  width:100%;
}
.sfw-form-grid textarea{
  min-height:120px;
}
.sfw-form-grid input:focus,.sfw-form-grid select:focus,.sfw-form-grid textarea:focus{
  border-color:var(--ast-teal);
  outline:3px solid rgba(0,170,179,.18);
}
.sfw-form-grid small{
  color:var(--color-text-muted);
  font-family:var(--font-sans);
  font-size:.76rem;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
}
.sfw-form-span-2{
  grid-column:1/-1;
}
.sfw-workshop-ticket-choice{
  background:var(--ast-cream);
  border:1px solid var(--color-border);
  display:flex;
  flex-wrap:wrap;
  gap:.75rem 1.5rem;
  padding:1rem;
}
.sfw-workshop-ticket-choice>span{
  flex-basis:100%;
  font-family:var(--font-mono);
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
}
.sfw-workshop-ticket-choice label{
  align-items:center;
  flex-direction:row;
  font-family:var(--font-sans);
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
}
.sfw-workshop-ticket-choice input{
  min-height:0;
  width:auto;
}
@media (max-width:700px){
  .sfw-whatson-summary-grid,.sfw-form-grid{grid-template-columns:1fr}
  .sfw-form-span-2{grid-column:auto}
}

/* Reset & Base Styles */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-sans);
  background-color: var(--color-bg);
  color: var(--color-text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 800;
  color: var(--color-text-primary);
  line-height: 1.2;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Header & Navigation */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: rgba(250, 249, 246, 0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--color-border);
}

.top-announcement-bar {
  background-color: #FFF0D6;
  border-bottom: 1px solid #FFD5CB;
  padding: 0.4rem 1rem;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: var(--color-text-muted);
}

.logo-link {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.logo-img {
  height: 46px;
  width: auto;
  display: block;
}

.cart-count {
  background: var(--color-brand-clay);
  color: #FFFFFF;
  padding: 2px 6px;
  border-radius: 10px;
  font-size: 0.75rem;
  margin-left: 4px;
  font-family: var(--font-mono);
}

.header-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.site-logo {
  display: flex;
  flex-direction: column;
}

.site-logo h1 {
  font-size: 1.25rem;
  letter-spacing: -0.02em;
}

.site-logo .badge {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  color: var(--color-brand-orange);
  letter-spacing: 0.1em;
  font-weight: 700;
}

.site-nav ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  gap: 0.75rem 1.25rem;
  align-items: center;
}

.site-nav li {
  white-space: nowrap;
}

.site-nav a {
  font-size: 0.85rem;
  font-weight: 700;
  color: #000F21;
  transition: color 0.2s ease, border-color 0.2s ease;
  padding: 0.25rem 0.5rem;
  border-radius: 2px;
  white-space: nowrap;
  display: inline-block;
}

.site-nav a:hover,
.site-nav .current-menu-item > a,
.site-nav .current-menu-ancestor > a {
  color: #D04051;
  background-color: rgba(235, 236, 204, 0.6);
}

.btn-primary {
  display: inline-block;
  background-color: var(--color-brand-orange);
  color: #FFFFFF !important;
  padding: 0.5rem 1rem;
  border-radius: 2px;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.btn-primary:hover {
  background-color: var(--color-brand-darkwalnut);
}

/* Layout Container */
.site-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2.5rem 1.5rem;
}

/* Hero Section */
.hero-section {
  text-align: center;
  padding: 4rem 1rem 3rem 1rem;
  background-color: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}

.hero-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  text-transform: uppercase;
  color: var(--color-brand-orange);
  letter-spacing: 0.15em;
  font-weight: 700;
  margin-bottom: 1rem;
}

.hero-title {
  font-size: 2.75rem;
  max-width: 900px;
  margin: 0 auto 1rem auto;
  letter-spacing: -0.03em;
}

.hero-subtitle {
  font-size: 1.1rem;
  color: var(--color-text-muted);
  max-width: 650px;
  margin: 0 auto 2rem auto;
  font-weight: 300;
}

.host-badges {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: #555;
  margin-bottom: 2rem;
}

.host-badge-item {
  background: #FFF0D6;
  padding: 0.4rem 0.8rem;
  border-radius: 2px;
  border: 1px solid var(--color-border);
}

/* Hosts & Sponsors Cards */
.hosts-sponsors-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin: 2.5rem 0;
}

.host-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 1.5rem;
  border-radius: 2px;
  text-align: center;
}

.host-card-role {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  color: var(--color-brand-orange);
  letter-spacing: 0.1em;
  font-weight: 700;
  display: block;
  margin-bottom: 0.5rem;
}

.host-card-name {
  font-size: 1.25rem;
  font-family: var(--font-serif);
  font-weight: 700;
  color: #000;
}

/* Footer */
.site-footer {
  background-color: var(--color-brand-pistachio, #FFF0D6);
  color: var(--color-text-primary, #000F21);
  padding: 3.5rem 1.5rem 2rem 1.5rem;
  border-top: 2px solid var(--color-brand-eucalyptus, #B7EFD9);
  margin-top: 4rem;
}

.footer-container {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}

@media (max-width: 768px) {
  .footer-container {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

.footer-title {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 800;
  color: #000F21;
  margin-bottom: 1rem;
  letter-spacing: 0.02em;
}

.footer-text {
  font-size: 0.9rem;
  color: #000F21;
  line-height: 1.7;
  font-weight: 500;
}

.footer-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-menu-list li {
  margin-bottom: 0.6rem;
}

.footer-menu-list a {
  color: #000F21 !important;
  font-weight: 600;
  font-family: var(--font-mono);
  font-size: 0.85rem;
  text-decoration: none;
  transition: all 0.2s ease;
  display: inline-block;
}

.footer-menu-list a:hover {
  color: var(--color-brand-clay, #D04051) !important;
  text-decoration: underline;
  transform: translateX(3px);
}

.footer-bottom {
  max-width: 1200px;
  margin: 2.5rem auto 0 auto;
  padding-top: 1.5rem;
  border-top: 1px solid #B7EFD9;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
  color: #40506A;
  font-weight: 600;
  flex-wrap: wrap;
  gap: 1rem;
}

/* Responsive Mobile Navigation & Dropdowns */
.mobile-menu-toggle {
  background: #000F21;
  border: none;
  padding: 0.6rem;
  border-radius: 4px;
  cursor: pointer;
  display: none;
  flex-direction: column;
  gap: 5px;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  z-index: 60;
}

.hamburger-bar {
  display: block;
  width: 22px;
  height: 2px;
  background-color: #FFFAF5;
  border-radius: 2px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* Dropdown / Submenu Styles */
.site-nav .menu-item-has-children {
  position: relative;
}

.site-nav .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background-color: #FFFAF5;
  border: 2px solid #000F21;
  border-radius: 4px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
  list-style: none;
  padding: 0.5rem 0;
  min-width: 220px;
  z-index: 100;
}

.site-nav .menu-item-has-children:hover .sub-menu,
.site-nav .menu-item-has-children:focus-within .sub-menu {
  display: block;
}

.site-nav .sub-menu a {
  display: block;
  padding: 0.6rem 1rem;
  font-size: 0.8rem;
  color: #000F21;
  border-bottom: 1px solid #B7EFD9;
  text-transform: uppercase;
  font-family: var(--font-mono);
  font-weight: 700;
}

.site-nav .sub-menu li:last-child a {
  border-bottom: none;
}

.site-nav .sub-menu a:hover {
  background-color: #000F21;
  color: #FFFAF5 !important;
}

/* Mobile Media Queries (Mobile First UX) */
@media (max-width: 991px) {
  .mobile-menu-toggle {
    display: flex !important;
  }

  .site-nav {
    display: none;
    width: 100%;
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #FFFAF5;
    border-bottom: 3px solid #000F21;
    padding: 1.5rem 1rem;
    box-shadow: 0 15px 30px rgba(0,0,0,0.2);
  }

  .site-nav.is-open {
    display: block !important;
  }

  .site-nav ul.nav-menu-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }

  .site-nav li {
    width: 100%;
  }

  .site-nav a, .btn-primary {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
    border-radius: 4px;
  }

  .site-nav .sub-menu {
    position: static;
    display: block;
    box-shadow: none;
    border: 1px solid #B7EFD9;
    margin-top: 0.25rem;
    margin-bottom: 0.5rem;
    background: #FFF0D6;
    padding: 0;
  }

  .site-nav .sub-menu a {
    padding-left: 2rem;
    font-size: 0.85rem;
  }
}

/* Touch Targets & Form Inputs Optimization */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
select,
textarea {
  font-size: 16px !important; /* Prevents iOS auto-zoom on input focus */
  min-height: 44px;
  padding: 0.6rem 0.8rem;
  border-radius: 4px;
  border: 1px solid #B7EFD9;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

button, .btn, .btn-primary, input[type="submit"] {
  min-height: 44px;
  cursor: pointer;
  touch-action: manipulation;
}

/* WooCommerce Mobile Stacking for Cart & Checkout Tables */
@media (max-width: 768px) {
  .hero-title {
    font-size: 2rem;
  }

  .header-container {
    padding: 0.75rem 1rem;
  }

  /* WooCommerce Table Stacking */
  table.cart,
  table.shop_table,
  table.shop_table_responsive {
    display: block;
    width: 100%;
  }

  table.cart thead,
  table.shop_table thead {
    display: none;
  }

  table.cart tbody,
  table.shop_table tbody {
    display: block;
    width: 100%;
  }

  table.cart tr,
  table.shop_table tr {
    display: block;
    margin-bottom: 1.25rem;
    border: 2px solid #B7EFD9;
    border-radius: 6px;
    padding: 1rem;
    background: #FFFFFF;
  }

  table.cart td,
  table.shop_table td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid #FFF0D6;
    text-align: right;
  }

  table.cart td:last-child,
  table.shop_table td:last-child {
    border-bottom: none;
  }

  table.cart td::before,
  table.shop_table td::before {
    content: attr(data-title);
    font-weight: 700;
    font-family: var(--font-mono);
    text-transform: uppercase;
    font-size: 0.75rem;
    color: #000F21;
    text-align: left;
    padding-right: 1rem;
  }
}

/* ==========================================================================
   Design System Components & Utility Classes (Technical Debt Refactoring)
   ========================================================================== */

/* Layout Containers */
.sfw-container {
  max-width: 960px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

.sfw-container-wide {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

/* Cards & Panels */
.sfw-card {
  background: var(--color-surface);
  border: 1px solid var(--color-brand-eucalyptus);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  margin-bottom: 2rem;
}

.sfw-card-banner {
  background: var(--color-bg);
  border: 1px solid var(--color-brand-eucalyptus);
  padding: 2rem 1.5rem;
  border-radius: 4px;
  margin-bottom: 2rem;
  position: relative;
}

.sfw-card-header {
  background: var(--color-brand-darkwalnut);
  color: var(--color-bg);
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--color-brand-eucalyptus);
}

.sfw-card-body {
  padding: 2rem 1.5rem;
}

.sfw-auth-gate {
  background: var(--color-bg);
  border: 2px solid var(--color-brand-eucalyptus);
  padding: 2.5rem 1.5rem;
  border-radius: 4px;
  text-align: center;
  color: var(--color-text-primary);
  margin-bottom: 2.5rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

/* Typography Tokens */
.sfw-eyebrow {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--color-brand-clay);
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.1em;
  display: block;
  margin-bottom: 0.5rem;
}

.sfw-heading-1 {
  font-family: var(--font-serif);
  font-size: 2.25rem;
  color: var(--color-text-primary);
  margin-bottom: 0.75rem;
  font-weight: 900;
  line-height: 1.2;
}

.sfw-heading-2 {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  color: var(--color-text-primary);
  margin-bottom: 0.75rem;
  font-weight: 800;
  line-height: 1.3;
}

.sfw-heading-3 {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  color: var(--color-text-primary);
  margin-bottom: 0.5rem;
  font-weight: 800;
}

.sfw-lead-text {
  font-size: 0.95rem;
  color: var(--color-text-muted);
  line-height: 1.6;
}

.sfw-body-text {
  font-size: 0.88rem;
  color: var(--color-text-muted);
  line-height: 1.5;
}

/* Category Cards & Form Grids */
.sfw-grid-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.sfw-category-card {
  border: 2px solid var(--color-brand-eucalyptus);
  background: var(--color-bg);
  padding: 1.25rem;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.sfw-category-card:hover,
.sfw-category-card.is-active {
  border-color: var(--color-brand-clay);
  background: #FFFAF5;
}

.sfw-category-title {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  color: var(--color-text-primary);
  font-weight: 700;
}

.sfw-category-price {
  font-family: var(--font-mono);
  font-weight: 700;
  color: var(--color-brand-clay);
  font-size: 0.85rem;
}

/* Badges & Indicators */
.sfw-icon-circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: var(--color-brand-darkwalnut);
  color: var(--color-bg);
  border-radius: 50%;
  margin-bottom: 1rem;
  font-size: 1.5rem;
}

.sfw-badge-pill {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  font-weight: 800;
  color: var(--color-bg);
  background: rgba(184, 98, 58, 0.9);
  padding: 0.25rem 0.65rem;
  border-radius: 4px;
}

.sfw-progress-track {
  width: 100%;
  height: 6px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
  overflow: hidden;
}

.sfw-progress-bar {
  height: 100%;
  background: var(--color-brand-clay);
  transition: width 0.3s ease;
}

/* Buttons */
.sfw-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.75rem;
  background: var(--color-brand-clay);
  color: #FFFFFF !important;
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 4px;
  transition: background 0.2s ease;
  border: none;
  cursor: pointer;
  min-height: 44px;
}

.sfw-btn-primary:hover {
  background: var(--color-brand-darkwalnut);
}

.sfw-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.75rem;
  background: var(--color-brand-darkwalnut);
  color: var(--color-bg) !important;
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 4px;
  transition: background 0.2s ease;
  border: none;
  cursor: pointer;
  min-height: 44px;
}

.sfw-btn-secondary:hover {
  background: var(--color-brand-clay);
}

/* Flex & Alignment Helpers */
.sfw-flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.sfw-flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.sfw-form-group {
  margin-bottom: 1.25rem;
}

.sfw-form-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-text-primary);
  text-transform: uppercase;
  margin-bottom: 0.4rem;
  letter-spacing: 0.05em;
}

/* Site Footer Styles (Semantic, Variable-Driven Palette) */
.site-footer {
  background-color: var(--color-bg);
  color: var(--color-text-primary);
  border-top: 1px solid var(--color-border);
  padding: 3rem 0 1.5rem;
  font-family: var(--font-sans);
}

.footer-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem 3rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2.5rem;
  border-bottom: 1px solid var(--color-border);
}

.footer-col {
  display: flex;
  flex-direction: column;
}

.footer-title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 1rem;
  color: var(--color-text-primary);
}

.footer-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
  line-height: 2.2;
  font-family: var(--font-sans);
  font-size: 0.875rem;
}

.footer-menu-list li a {
  color: var(--color-text-primary);
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-menu-list li a:hover {
  color: var(--color-brand-clay);
}

.footer-text {
  font-size: 0.85rem;
  color: var(--color-text-muted);
  margin-bottom: 1rem;
  line-height: 1.5;
}

.footer-newsletter-form {
  display: flex;
  gap: 0.5rem;
}

.footer-newsletter-input {
  padding: 0.6rem 0.85rem;
  border: 1px solid var(--color-brand-eucalyptus);
  border-radius: 4px;
  font-size: 0.85rem;
  width: 100%;
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-text-primary);
  font-family: var(--font-sans);
}

.footer-newsletter-btn {
  background: var(--color-brand-clay);
  color: #FFFFFF;
  border: none;
  padding: 0.6rem 1rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-family: var(--font-mono);
  transition: background 0.2s ease;
}

.footer-newsletter-btn:hover {
  background: var(--color-brand-darkwalnut);
}

.sponsor-name {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--color-text-primary);
  margin-bottom: 0.5rem;
}

.sponsor-logo-wrap {
  margin: 0.5rem 0;
}

/* Responsive Sponsor Logo Constraints */
.footer-sponsor-logo img,
.sponsor-logo,
.sponsor-logo img,
.sponsor-logo-wrap img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 80px !important;
  height: auto !important;
  object-fit: contain !important;
  display: block;
}

@media (max-width: 768px) {
  .footer-sponsor-logo img,
  .sponsor-logo,
  .sponsor-logo img,
  .sponsor-logo-wrap img {
    max-height: 60px !important;
  }
}

.sponsor-address {
  font-size: 0.75rem;
  color: var(--color-text-muted);
  margin-top: 0.5rem;
}

.footer-bottom-bar {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.5rem 1.5rem 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-size: 0.75rem;
  color: var(--color-text-muted);
}

.social-icons {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.social-link {
  color: var(--color-text-primary);
  transition: color 0.2s ease;
  display: inline-flex;
}

.social-link:hover {
  color: var(--color-brand-clay);
}




/* v1.4.2 — native WordPress menu hierarchy, preserving approved AI Studio header */
.site-nav .nav-menu-list,
.site-nav .menu {
  display:flex;
  align-items:center;
  gap:clamp(1rem,1.8vw,2rem);
  list-style:none;
  padding:0;
  margin:0;
}
.site-nav .menu-item { position:relative; }
.site-nav .menu-item-has-children > a::after {
  content:" ▾";
  font-size:.78em;
  vertical-align:.08em;
}
.site-nav .sub-menu {
  display:none;
  position:absolute;
  z-index:1000;
  top:100%;
  left:0;
  min-width:200px;
  margin:0;
  padding:.45rem 0;
  list-style:none;
  background:#FFFAF5;
  border:1px solid #B7EFD9;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.site-nav .menu-item-has-children:hover > .sub-menu,
.site-nav .menu-item-has-children:focus-within > .sub-menu { display:block; }
.site-nav .sub-menu a {
  display:block;
  padding:.7rem .9rem;
  white-space:nowrap;
}
@media (max-width:991px){
  .mobile-menu-toggle { display:flex !important; }
}

/* Native WordPress content images within the approved editorial shell */
.wp-block-image img,
.wp-block-gallery img { max-width:100%; height:auto; }
.wp-block-image.aligncenter,
.aligncenter { margin-left:auto; margin-right:auto; text-align:center; }
.alignwide { width:100%; max-width:1180px; margin-left:auto; margin-right:auto; }
.alignfull { width:100%; max-width:none; }
.page-featured-media-container img,
.featured-banner-section img { display:block; width:100%; height:auto; object-fit:cover; }


/* ==========================================================
   SFW Hub Torquay — approved editorial homepage composition
   ========================================================== */
.sfw-front-page{background:#FFFAF5;color:#000F21}
.sfw-home-section{padding:34px 20px}
.sfw-home-shell{width:min(1180px,100%);margin:0 auto}
.sfw-home-hero-grid,.sfw-runway-grid,.sfw-venue-grid,.sfw-stall-cta-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:46px;align-items:center}
.sfw-home-hero{padding-top:46px}
.sfw-home-hero-copy h1{font-family:var(--font-serif);font-size:clamp(3rem,6vw,5.4rem);line-height:.96;margin:26px 0;color:#000F21}
.sfw-home-kicker,.sfw-section-kicker,.sfw-home-eyebrow,.sfw-dark-kicker,.sfw-dark-label,.sfw-clay-label{font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.15em;font-weight:700}
.sfw-home-kicker{border:1px solid #FFD5CB;padding:14px 16px}.sfw-home-kicker span,.sfw-section-kicker{color:#D04051}
.sfw-home-eyebrow{display:inline-block;border:1px solid #FFD5CB;padding:8px 12px;margin-top:26px}
.sfw-home-hostline{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;font-weight:700}
.sfw-home-lead{font-size:1.08rem;line-height:1.65;max-width:690px}
.sfw-home-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.sfw-home-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;text-decoration:none;border:1px solid #000F21}
.sfw-home-button--clay{background:#D04051;color:#fff;border-color:#D04051}.sfw-home-button--dark{background:#000F21;color:#fff}.sfw-home-button--outline{background:transparent;color:#000F21}
.sfw-home-media{overflow:hidden;border:1px dashed #FFD5CB;background:#ece6dc}
.sfw-home-media-image{display:block;width:100%;height:100%;object-fit:cover}
.sfw-media-fallback{display:grid;place-items:center;min-height:240px;padding:24px;text-align:center;color:#6b645a;background:#FFF0D6;border:1px dashed #FFD5CB;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.sfw-dark-panel{background:#000F21;color:#FFF0D6;border:1px solid #D04051;padding:42px}
.sfw-countdown-head{display:grid;grid-template-columns:1.4fr .8fr;gap:36px;align-items:end;border-bottom:1px solid rgba(255,255,255,.24);padding-bottom:28px}
.sfw-countdown-head h2,.sfw-stall-cta-grid h2{font-family:var(--font-serif);font-size:clamp(2.3rem,4vw,4rem);line-height:1;margin:10px 0;color:#FFF0D6}
.sfw-countdown-partner{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.18em;text-align:right}
.sfw-timer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin:44px 0}
.sfw-timer-unit{border:1px solid rgba(255,255,255,.24);padding:26px 10px;text-align:center}.sfw-timer-unit--accent{border-color:#D04051;background:rgba(168,91,46,.15)}
.sfw-timer-unit strong{display:block;font-family:var(--font-serif);font-size:4rem;font-weight:500}.sfw-timer-unit span{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;color:#FF8D8F}
.sfw-metric-banner{display:grid;grid-template-columns:1fr 1fr;gap:34px;border-top:1px solid rgba(255,255,255,.18);padding-top:28px}.sfw-metric-banner>div{border-left:3px solid #D04051;padding-left:20px}.sfw-metric-banner span{display:block;font-family:var(--font-mono);font-size:.7rem;color:#FF8D8F;text-transform:uppercase;letter-spacing:.13em}.sfw-metric-banner strong{display:block;font-family:var(--font-serif);font-size:1.5rem;margin:8px 0}
.sfw-editorial-panel{background:#FFF0D6;border:1px solid #FFD5CB;padding:42px}
.sfw-runway-copy h2,.sfw-venue-copy h2,.sfw-section-heading-row h2{font-family:var(--font-serif);font-size:clamp(2.2rem,4vw,3.4rem);line-height:1.04;color:#000F21;margin:14px 0}
.sfw-dark-label{display:inline-block;background:#000F21;color:#FFF0D6;padding:7px 10px}.sfw-clay-label{display:inline-block;background:#D04051;color:#fff;padding:7px 10px}
.sfw-runway-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0}.sfw-runway-facts>div{background:#FFFAF5;border:1px solid #FFD5CB;padding:18px}.sfw-runway-facts span{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;color:#D04051}.sfw-runway-facts strong{display:block;font-family:var(--font-serif);font-size:1.05rem;margin:7px 0}
.sfw-stall-cta-grid{grid-template-columns:minmax(0,1fr) auto}.sfw-stall-cta-grid p{font-family:var(--font-mono);font-weight:700;max-width:760px}
.sfw-section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:30px;border-bottom:1px solid #FFD5CB;padding-bottom:22px;margin-bottom:28px}.sfw-section-heading-row p{margin:0}
.sfw-home-exhibitor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.sfw-home-exhibitor-card{background:#FFF0D6;border:1px solid #FFD5CB;padding:18px;min-width:0}.sfw-home-exhibitor-card h3{font-family:var(--font-serif);font-size:1.7rem;margin:12px 0;color:#000F21}.sfw-exhibitor-meta{display:flex;justify-content:space-between;gap:8px;font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;color:#D04051}.sfw-stand-badge{background:#000F21;color:#fff;padding:5px 8px}.sfw-exhibitor-media{margin:16px 0}.sfw-exhibitor-copy{min-height:72px}.sfw-home-exhibitor-card>a{font-family:var(--font-mono);font-size:.75rem;color:#000F21}
.sfw-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.sfw-gallery-card{margin:0;background:#FFFAF5;border:1px solid #FFD5CB;padding:12px}.sfw-gallery-card figcaption{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;color:#D04051;margin-bottom:10px}
.sfw-venue-address{font-family:var(--font-mono);font-weight:700}.sfw-venue-times{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0}.sfw-venue-times>div{background:#FFFAF5;border:1px solid #FFD5CB;padding:18px}.sfw-venue-times strong,.sfw-venue-times span{display:block}
.sfw-editorial-flow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.sfw-editorial-card{background:#fff;border:1px solid #FFD5CB;padding:26px}.sfw-editorial-card--feature{background:#000F21;color:#FFF0D6}.sfw-editorial-card h3{font-family:var(--font-serif);font-size:1.8rem;margin:10px 0}.sfw-editorial-card--feature h3{color:#FFF0D6}.sfw-home-editor-content{margin-top:28px;background:#fff;border:1px solid #FFD5CB;padding:26px}
.cart-contents{display:inline-flex;align-items:center;gap:7px}.cart-icon svg{display:block}.cart-label{font:inherit}
@media(max-width:991px){
  .sfw-home-hero-grid,.sfw-runway-grid,.sfw-venue-grid,.sfw-stall-cta-grid,.sfw-countdown-head{grid-template-columns:1fr}
  .sfw-countdown-partner{text-align:left}.sfw-home-exhibitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sfw-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .sfw-home-section{padding:22px 14px}.sfw-dark-panel,.sfw-editorial-panel{padding:24px 18px}.sfw-timer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sfw-metric-banner,.sfw-runway-facts,.sfw-home-exhibitor-grid,.sfw-gallery-grid,.sfw-venue-times,.sfw-editorial-flow-grid{grid-template-columns:1fr}.sfw-section-heading-row{align-items:flex-start;flex-direction:column}
}


/* ==========================================================
   Header stability patch — logo sizing + desktop navigation
   ========================================================== */
.site-header{
  position:relative;
}

.site-header .header-container,
.site-header .sfw-header-wrapper{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  width:100%;
}

.site-branding,
.site-logo,
.custom-logo-link{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  max-width:200px;
  height:auto;
}

.site-branding img,
.site-logo img,
.custom-logo-link img,
.sfw-header-logo img,
.logo-img{
  display:block;
  width:100%;
  max-width:200px;
  height:auto;
  object-fit:contain;
}

.site-nav{
  margin-left:auto;
  min-width:0;
}

.site-nav .nav-menu-list,
.main-navigation ul{
  display:flex;
  align-items:center;
  list-style:none;
  margin:0;
  padding:0;
  gap:1.5rem;
}

.site-nav .nav-menu-list > li,
.main-navigation ul > li{
  position:relative;
  flex:0 0 auto;
}

.mobile-menu-toggle{
  display:none;
}

@media (max-width:991px){
  .site-header .header-container,
  .site-header .sfw-header-wrapper{
    gap:1rem;
  }

  .site-branding,
  .site-logo,
  .custom-logo-link{
    max-width:160px;
  }

  .site-branding img,
  .site-logo img,
  .custom-logo-link img,
  .sfw-header-logo img,
  .logo-img{
    max-width:160px;
  }

  .mobile-menu-toggle{
    display:flex;
    margin-left:auto;
  }

  .site-nav{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    z-index:1000;
    display:none;
    margin-left:0;
    background:#FFFAF5;
    border-top:1px solid #B7EFD9;
    border-bottom:1px solid #B7EFD9;
  }

  .site-nav.is-open{
    display:block;
  }

  .site-nav .nav-menu-list,
  .main-navigation ul{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:12px 16px 18px;
  }

  .site-nav .nav-menu-list > li,
  .main-navigation ul > li{
    width:100%;
  }
}


/* Homepage copy update */
.sfw-home-event-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:26px 0 0;
}
.sfw-home-event-facts div{
  border-top:1px solid #FFD5CB;
  padding-top:10px;
}
.sfw-home-event-facts dt{
  font-family:var(--font-mono);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#D04051;
}
.sfw-home-event-facts dd{
  margin:4px 0 0;
  font-weight:700;
}
.sfw-home-focus{
  margin-top:28px;
}
.sfw-home-focus h3{
  font-family:var(--font-serif);
  font-size:1.6rem;
  margin:0 0 14px;
  color:#000F21;
}
.sfw-home-focus ul{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}
.sfw-home-focus li{
  border:1px solid #FFD5CB;
  background:#FFFAF5;
  padding:8px 12px;
  font-family:var(--font-mono);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
@media(max-width:640px){
  .sfw-home-event-facts{grid-template-columns:1fr}
}


/* Structural restoration: Welcome/Focus is distinct from Runway Showcase */
.sfw-home-welcome{
  padding-top:12px;
}
.sfw-welcome-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:34px;
  align-items:start;
  background:#FFFAF5;
  border-top:1px solid #FFD5CB;
  border-bottom:1px solid #FFD5CB;
  padding:36px 0;
}
.sfw-welcome-copy h2{
  font-family:var(--font-serif);
  font-size:clamp(2.3rem,4vw,3.7rem);
  line-height:1.04;
  color:#000F21;
  margin:12px 0 18px;
}
.sfw-welcome-copy p{
  max-width:760px;
  line-height:1.7;
}
.sfw-home-focus--panel{
  background:#FFF0D6;
  border:1px solid #FFD5CB;
  padding:24px;
  margin-top:0;
}
@media(max-width:991px){
  .sfw-welcome-grid{
    grid-template-columns:1fr;
    padding:28px 0;
  }
}


/* AI Studio blueprint restoration */
.sfw-home-kicker--manifesto{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.sfw-home-kicker--manifesto a{
  flex:0 0 auto;
  background:#000F21;
  color:#fff;
  padding:10px 16px;
  text-decoration:none;
}
.sfw-home-exhibitor-card--open{
  border:1px dashed #D04051;
}
@media(max-width:640px){
  .sfw-home-kicker--manifesto{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* Approved homepage exhibitor roster metadata */
.sfw-exhibitor-footer-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:12px;
  margin-top:12px;
  border-top:1px solid #FFD5CB;
  font-family:var(--font-mono);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#D04051;
}
.sfw-open-slot-cta{
  display:inline-block;
  margin-top:10px;
  font-weight:700;
}


/* ==========================================================
   Site-wide media architecture
   ========================================================== */
.sfw-global-media-fallback{
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  min-height:180px;
  background:#FFF0D6;
  border:1px dashed #FFD5CB;
  color:#000F21;
}
.sfw-global-media-fallback svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.sfw-global-media-fallback span{
  position:relative;
  z-index:1;
  max-width:75%;
  padding:9px 12px;
  background:rgba(255,249,226,.88);
  border:1px solid #B7EFD9;
  font-family:var(--font-mono);
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  text-align:center;
}
.sfw-page-banner{
  margin-bottom:2rem;
  overflow:hidden;
  border:1px solid #B7EFD9;
}
.sfw-page-banner img,
.sfw-page-featured-image{
  display:block;
  width:100%;
  height:auto;
  max-height:480px;
  object-fit:cover;
}
.sfw-site-gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:1.5rem;
}
.sfw-site-gallery-card{
  background:#fff;
  border:1px solid var(--color-border);
  overflow:hidden;
}
.sfw-site-gallery-media{
  position:relative;
  overflow:hidden;
}
.sfw-site-gallery-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.sfw-site-gallery-label{
  position:absolute;
  top:10px;
  left:10px;
  background:#D04051;
  color:#fff;
  padding:.3rem .55rem;
  font-family:var(--font-mono);
  font-size:.65rem;
  text-transform:uppercase;
  font-weight:700;
}
.sfw-site-gallery-copy{padding:1.25rem}
.sfw-site-gallery-copy h3{margin:0 0 .5rem;font-family:var(--font-serif)}
.sfw-single-exhibitor-media{margin-bottom:2rem}
.sfw-single-exhibitor-main{overflow:hidden;border:1px solid var(--color-border)}
.sfw-single-exhibitor-main-image{display:block;width:100%;height:auto;object-fit:contain;object-position:center top}
.sfw-single-exhibitor-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.sfw-single-exhibitor-gallery-image{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:640px){
  .sfw-single-exhibitor-gallery{grid-template-columns:1fr}
}


/* ==========================================================
   Approved Exhibitors Directory — AI Studio restoration
   ========================================================== */
.sfw-exhibitors-page{
  background:#f7f1e6;
  padding:36px 20px 64px;
}
.sfw-exhibitors-shell{
  width:min(1180px,100%);
  margin:0 auto;
}
.sfw-directory-section{
  margin-top:24px;
}
.sfw-directory-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  padding-bottom:22px;
  margin-bottom:20px;
  border-bottom:1px solid #FFD5CB;
}
.sfw-directory-kicker{
  font-family:var(--font-mono);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.13em;
  color:#D04051;
  font-weight:700;
}
.sfw-directory-heading h1{
  margin:8px 0 6px;
  font-family:var(--font-serif);
  font-size:clamp(2.5rem,5vw,4.2rem);
  line-height:1;
  color:#000F21;
}
.sfw-directory-heading p{
  margin:0;
}
.sfw-directory-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.sfw-directory-button{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  padding:0 18px;
  border:1px solid #000F21;
  font-family:var(--font-mono);
  font-size:.72rem;
  text-transform:uppercase;
  text-decoration:none;
  font-weight:700;
}
.sfw-directory-button--dark{background:#000F21;color:#fff}
.sfw-directory-button--clay{background:#D04051;border-color:#D04051;color:#fff}
.sfw-directory-filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:24px;
}
.sfw-directory-filter-row span{
  border:1px solid #FFD5CB;
  background:#fffaf0;
  padding:7px 10px;
  font-family:var(--font-mono);
  font-size:.62rem;
  text-transform:uppercase;
  color:#6b533e;
}
.sfw-directory-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.sfw-directory-card{
  display:flex;
  flex-direction:column;
  background:#FFF0D6;
  border:1px solid #FFD5CB;
  padding:18px;
  min-width:0;
}
.sfw-directory-card--host{
  border-color:#D04051;
  box-shadow:inset 0 0 0 1px #D04051;
}
.sfw-directory-card-topline{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.sfw-directory-stand{
  background:#000F21;
  color:#fff;
  padding:5px 8px;
  font-family:var(--font-mono);
  font-size:.65rem;
  text-transform:uppercase;
  font-weight:700;
}
.sfw-directory-card--host .sfw-directory-stand{
  background:#D04051;
}
.sfw-directory-category{
  max-width:58%;
  text-align:right;
  font-family:var(--font-mono);
  font-size:.65rem;
  text-transform:uppercase;
  color:#D04051;
  font-weight:700;
}
.sfw-directory-card h2{
  font-family:var(--font-serif);
  font-size:1.65rem;
  line-height:1.08;
  color:#000F21;
  margin:14px 0;
}
.sfw-directory-media{
  overflow:hidden;
  border:1px dashed #FFD5CB;
  background:#e8e1d5;
}
.sfw-directory-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.sfw-directory-role{
  margin-top:12px;
  font-family:var(--font-mono);
  font-size:.72rem;
  color:#6d523f;
  text-transform:uppercase;
}
.sfw-directory-specs{
  margin:14px 0 18px 1.1rem;
  padding:0;
  line-height:1.55;
  font-size:.9rem;
}
.sfw-directory-card-footer{
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid #FFD5CB;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.sfw-directory-domain{
  font-family:var(--font-mono);
  font-size:.68rem;
  color:#D04051;
  overflow-wrap:anywhere;
}
.sfw-directory-card-footer a{
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:700;
  color:#000F21;
  white-space:nowrap;
}
@media(max-width:900px){
  .sfw-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .sfw-directory-heading{align-items:flex-start;flex-direction:column}
  .sfw-directory-grid{grid-template-columns:1fr}
}


/* Remaining global media paths */
.sfw-post-image,
.sfw-index-image,
.sfw-exhibitor-card-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.sfw-post-media .sfw-global-media-fallback,
.sfw-index-media .sfw-global-media-fallback{
  min-height:260px;
}


/* Branding media fallbacks */
.sfw-brand-fallback{
  display:inline-flex;
  width:200px;
  max-width:100%;
  color:#000F21;
}
.sfw-brand-fallback svg{
  display:block;
  width:100%;
  height:auto;
}
.sfw-sponsor-fallback{
  display:grid;
  place-items:center;
  width:100%;
  max-width:220px;
  min-height:90px;
  color:#000F21;
  border:1px dashed #B7EFD9;
  background:#FFFAF5;
}
.sfw-sponsor-fallback svg{
  width:100%;
  height:auto;
}


/* ==========================================================
   A Single Thread / Sustainable Fashion Week co-branding
   ========================================================== */
.sfw-national-brand-strip{
  background:var(--ast-navy);
  color:var(--ast-cream);
  border-top:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
}
.sfw-national-brand-inner{
  width:min(1280px,calc(100% - 48px));
  margin:0 auto;
  padding:18px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.sfw-national-brand-copy{
  max-width:500px;
}
.sfw-national-brand-copy strong{
  display:block;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ast-coral);
  margin-bottom:4px;
}
.sfw-national-brand-copy span{
  font-size:.88rem;
  line-height:1.5;
}
.sfw-national-brand-logos{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:24px;
  flex-wrap:wrap;
}
.sfw-national-brand-logo{
  display:block;
  width:auto;
  height:auto;
  max-height:52px;
  max-width:220px;
  object-fit:contain;
}
.sfw-national-brand-logo--sfw{max-height:72px;max-width:150px}
.sfw-national-brand-mark{max-width:38px;max-height:44px}
.top-announcement-bar{
  background:var(--ast-navy) !important;
  color:var(--ast-cream) !important;
}
.top-announcement-bar .sfw-announcement-mark{
  display:inline-flex;
  width:18px;
  height:22px;
  margin-right:8px;
  vertical-align:middle;
  object-fit:contain;
}
.site-header{
  background:var(--ast-cream);
  border-bottom-color:var(--ast-blush);
}
.btn-primary,
.sfw-home-button--dark,
.sfw-directory-button--clay,
.footer-newsletter-btn{
  background:var(--ast-red) !important;
  border-color:var(--ast-red) !important;
  color:#fff !important;
}
a{color:inherit}
.entry-content a,
.page-gutenberg-content a,
.sfw-body-text a{color:var(--ast-blue)}
.entry-content a:hover,
.page-gutenberg-content a:hover,
.sfw-body-text a:hover{color:var(--ast-red)}
@media(max-width:760px){
  .sfw-national-brand-inner{width:min(100% - 32px,1280px);align-items:flex-start;flex-direction:column}
  .sfw-national-brand-logos{justify-content:flex-start;gap:18px}
  .sfw-national-brand-logo{max-height:46px;max-width:180px}
  .sfw-national-brand-logo--sfw{max-height:62px;max-width:130px}
}

/* ==========================================================
   1.4.5 — Inner page / WooCommerce layout restoration
   Approved maximum content width: 1200px
   ========================================================== */
:root{
  --sfw-ui-teal:#009698;
  --sfw-ui-teal-hover:#007f81;
  --sfw-layout-max:1200px;
  --sfw-layout-gutter:20px;
}

/* Keep the affected inner pages on one clean centred grid. */
body.woocommerce-cart #content.site-content,
body.woocommerce-checkout #content.site-content,
body.woocommerce-account #content.site-content,
body.page-template-page-contact #content.site-content,
body.page-template-page-newsletter #content.site-content{
  width:100%;
  max-width:var(--sfw-layout-max);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--sfw-layout-gutter);
  padding-right:var(--sfw-layout-gutter);
}

.sfw-wc-core-page,
.sfw-wc-page-shell,
.sfw-wc-page-content,
.sfw-contact-page,
.sfw-contact-shell,
.sfw-newsletter-page,
.sfw-newsletter-shell{
  width:100%;
  max-width:var(--sfw-layout-max);
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}

.sfw-wc-page-shell,
.sfw-wc-page-content{
  padding-left:0;
  padding-right:0;
}

/* WooCommerce core pages must not inherit the generic card treatment. */
.sfw-wc-page-content{
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:visible;
  margin:0;
}

.sfw-wc-page-content > .entry-content{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

/* Suppress rogue page-brand images inside affected page content only.
   Legitimate account/exhibitor media previews are explicitly preserved. */
body.woocommerce-cart .entry-content img[src*="logo" i]:not(.sfw-account-media-preview):not(.avatar),
body.woocommerce-checkout .entry-content img[src*="logo" i]:not(.sfw-account-media-preview):not(.avatar),
body.woocommerce-account .entry-content img[src*="logo" i]:not(.sfw-account-media-preview):not(.avatar),
body.page-template-page-contact .entry-content img[src*="logo" i],
body.page-template-page-contact .page-gutenberg-content img[src*="logo" i],
body.woocommerce-cart .entry-content .page-logo,
body.woocommerce-account .entry-content .page-logo,
body.woocommerce-checkout .entry-content .page-logo,
body.woocommerce-cart .entry-content .inner-page-logo,
body.woocommerce-account .entry-content .inner-page-logo,
body.woocommerce-checkout .entry-content .inner-page-logo{
  display:none !important;
}

/* Standard approved banner behaviour. */
.sfw-page-banner{
  width:100%;
  max-width:100%;
  margin:0 0 32px;
  border:0;
  overflow:hidden;
  aspect-ratio:16 / 9;
}
.sfw-page-banner .sfw-page-featured-image,
.sfw-page-banner > img,
.sfw-page-banner .sfw-global-media-fallback{
  width:100%;
  height:100%;
  max-height:none;
  object-fit:cover;
}

/* ==========================================================
   My Account — responsive dashboard grid
   ========================================================== */
body.logged-in.woocommerce-account .woocommerce{
  width:100%;
  max-width:100%;
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr);
  gap:40px;
  align-items:start;
}

body.logged-in.woocommerce-account .woocommerce::before,
body.logged-in.woocommerce-account .woocommerce::after{
  display:none;
  content:none;
}

body.logged-in.woocommerce-account .woocommerce > .woocommerce-notices-wrapper,
body.logged-in.woocommerce-account .woocommerce > .woocommerce-message,
body.logged-in.woocommerce-account .woocommerce > .woocommerce-error,
body.logged-in.woocommerce-account .woocommerce > .woocommerce-info{
  grid-column:1 / -1;
}

body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content{
  float:none;
  width:100%;
  max-width:none;
  min-width:0;
  margin:0;
  outline:0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation{
  border:0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul{
  width:100%;
  margin:0;
  padding:0;
  list-style:none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li,
body.woocommerce-account .woocommerce-MyAccount-navigation a{
  width:100%;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a{
  display:block;
  box-sizing:border-box;
}

body.woocommerce-account .woocommerce-MyAccount-content{
  border:0;
  box-shadow:none;
}

body.woocommerce-account .woocommerce-MyAccount-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.woocommerce-account .woocommerce-MyAccount-content select,
body.woocommerce-account .woocommerce-MyAccount-content textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

/* Companion plugin account cards: clean panels, no teal/red debug outlines. */
.sfw-account-media-card,
.sfw-account-status-card{
  width:100%;
  margin:0 0 16px;
  padding:18px;
  background:#fff;
  border:1px solid #e5e5e5;
  box-shadow:none;
  outline:0;
}

.sfw-account-status-card{
  background:#FFFAF5;
}

.sfw-account-media-preview{
  display:block !important;
  width:auto !important;
  max-width:280px !important;
  height:auto !important;
  margin:0 0 12px;
  object-fit:contain;
}

.sfw-account-exhibitor-media-form,
.sfw-account-file-input{
  width:100%;
  max-width:100%;
}

/* ==========================================================
   Basket / Cart — classic and block layouts
   ========================================================== */
body.woocommerce-cart .woocommerce,
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals,
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-cart .wc-block-cart{
  width:100%;
  max-width:100%;
  float:none;
  clear:both;
  margin-left:0;
  margin-right:0;
  box-sizing:border-box;
}

body.woocommerce-cart .woocommerce{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:32px;
}

body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce > .woocommerce-message,
body.woocommerce-cart .woocommerce > .woocommerce-error,
body.woocommerce-cart .woocommerce > .woocommerce-info{
  width:100%;
}

body.woocommerce-cart table.shop_table{
  width:100%;
  max-width:100%;
  table-layout:auto;
}

body.woocommerce-cart .cart-collaterals{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:24px;
}

body.woocommerce-cart .cart-collaterals::before,
body.woocommerce-cart .cart-collaterals::after{
  display:none;
  content:none;
}

body.woocommerce-cart .cart-collaterals .cart_totals{
  float:none;
  width:100%;
  max-width:600px;
  margin-left:auto;
  margin-right:0;
}

body.woocommerce-cart .product-thumbnail img{
  width:auto;
  max-width:110px;
  height:auto;
  object-fit:contain;
}

body.woocommerce-cart .wc-block-components-sidebar-layout{
  width:100%;
  max-width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  gap:32px;
  align-items:start;
}

body.woocommerce-cart .wc-block-components-main,
body.woocommerce-cart .wc-block-components-sidebar{
  width:100% !important;
  max-width:100% !important;
  min-width:0;
  margin:0 !important;
}

/* ==========================================================
   Contact — full-width form/card within 1200px shell
   ========================================================== */
.sfw-contact-shell{
  padding:0;
}

.sfw-contact-card{
  width:100%;
  max-width:100%;
  padding:clamp(28px,5vw,56px);
  background:#fff;
  border:0;
  box-shadow:none;
  outline:0;
}

.sfw-contact-eyebrow,
.sfw-newsletter-eyebrow{
  display:block;
  margin-bottom:8px;
  font-family:var(--font-mono);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--sfw-ui-teal);
}

.sfw-contact-title{
  margin:0 0 16px;
  font-size:clamp(2rem,4vw,2.8rem);
}

.sfw-contact-intro{
  width:100%;
  max-width:760px;
  margin:0 0 28px;
  color:var(--color-text-muted);
}

.sfw-contact-editor-content{
  width:100%;
  max-width:100%;
  margin:0 0 28px;
  padding:0 0 24px;
  border-bottom:1px solid #e5e5e5;
}

.sfw-contact-form,
.sfw-newsletter-form{
  width:100%;
  max-width:100%;
  display:grid;
  gap:20px;
  margin:0;
}

.sfw-form-field{
  width:100%;
  max-width:100%;
}

.sfw-form-field label{
  display:block;
  margin-bottom:7px;
  font-family:var(--font-mono);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.sfw-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.sfw-contact-form select,
.sfw-contact-form textarea,
.sfw-newsletter-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.sfw-newsletter-form select,
.sfw-newsletter-form textarea,
.sfw-newsletter-inline-form input[type="email"],
.footer-newsletter-form input[type="email"]{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  padding:12px 14px;
  border:1px solid #cfcfcf;
  background:#fff;
  color:var(--color-text-primary);
  font:inherit;
  box-sizing:border-box;
}

.sfw-contact-form textarea{
  resize:vertical;
}

.sfw-honeypot{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
}

.sfw-contact-success{
  width:100%;
  margin:0 0 24px;
  padding:14px 16px;
  background:#eef8f3;
  color:#205c43;
  border:1px solid #cfe8da;
}

.sfw-contact-response[hidden]{display:none !important}

.sfw-contact-security-note{
  margin:28px 0 0;
  padding-top:20px;
  border-top:1px solid #e5e5e5;
  color:var(--color-text-muted);
  font-size:.85rem;
}

/* ==========================================================
   Newsletter — full-width card/form within 1200px shell
   ========================================================== */
.sfw-newsletter-shell{
  padding:0;
}

.sfw-newsletter-card{
  width:100%;
  max-width:100%;
  margin:0;
  padding:clamp(28px,5vw,56px);
  background:#fff;
  border:0;
  box-shadow:none;
  outline:0;
}

.sfw-newsletter-card h1,
.sfw-newsletter-card h3{
  margin:0 0 14px;
}

.sfw-newsletter-intro{
  width:100%;
  max-width:720px;
  margin:0 0 28px;
  color:var(--color-text-muted);
}

.sfw-newsletter-consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:.9rem;
  color:var(--color-text-muted);
}

.sfw-newsletter-consent input{
  flex:0 0 auto;
  margin-top:4px;
}

.sfw-newsletter-card--compact{
  margin:40px 0;
  padding:36px;
}

.sfw-newsletter-inline-form,
.footer-newsletter-form{
  width:100%;
  max-width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:stretch;
}

/* Teal controls: forms, newsletter, WooCommerce actions and filter pills. */
.sfw-ui-button,
.sfw-contact-form button[type="submit"],
.sfw-newsletter-form button[type="submit"],
.sfw-newsletter-inline-form button[type="submit"],
.footer-newsletter-form button[type="submit"],
body.woocommerce-cart .woocommerce a.button,
body.woocommerce-cart .woocommerce button.button,
body.woocommerce-cart .woocommerce input.button,
body.woocommerce-account .woocommerce a.button,
body.woocommerce-account .woocommerce button.button,
body.woocommerce-account .woocommerce input.button,
body.woocommerce-checkout .woocommerce a.button,
body.woocommerce-checkout .woocommerce button.button,
body.woocommerce-checkout .woocommerce input.button,
.wc-block-components-button,
.sfw-filter-pill,
.sfw-directory-filter-row button{
  background:var(--sfw-ui-teal) !important;
  border-color:var(--sfw-ui-teal) !important;
  color:#fff !important;
  box-shadow:none !important;
  text-shadow:none !important;
}

.sfw-ui-button:hover,
.sfw-ui-button:focus-visible,
.sfw-contact-form button[type="submit"]:hover,
.sfw-newsletter-form button[type="submit"]:hover,
.sfw-newsletter-inline-form button[type="submit"]:hover,
.footer-newsletter-form button[type="submit"]:hover,
body.woocommerce-cart .woocommerce a.button:hover,
body.woocommerce-cart .woocommerce button.button:hover,
body.woocommerce-account .woocommerce a.button:hover,
body.woocommerce-account .woocommerce button.button:hover,
body.woocommerce-checkout .woocommerce a.button:hover,
body.woocommerce-checkout .woocommerce button.button:hover,
.wc-block-components-button:hover,
.sfw-filter-pill:hover,
.sfw-directory-filter-row button:hover{
  background:var(--sfw-ui-teal-hover) !important;
  border-color:var(--sfw-ui-teal-hover) !important;
  color:#fff !important;
}

.sfw-contact-submit,
.sfw-newsletter-submit{
  width:100%;
  min-height:48px;
  text-align:center;
  cursor:pointer;
}

@media(max-width:782px){
  :root{--sfw-layout-gutter:16px}

  body.logged-in.woocommerce-account .woocommerce{
    grid-template-columns:1fr;
    gap:28px;
  }

  body.woocommerce-cart .wc-block-components-sidebar-layout{
    grid-template-columns:1fr;
    gap:24px;
  }

  body.woocommerce-cart .cart-collaterals .cart_totals{
    max-width:100%;
    margin-left:0;
  }

  .sfw-newsletter-inline-form,
  .footer-newsletter-form{
    grid-template-columns:1fr;
  }

  .sfw-newsletter-inline-form button,
  .footer-newsletter-form button{
    width:100%;
  }
}

@media(max-width:480px){
  :root{--sfw-layout-gutter:14px}
  .sfw-contact-card,
  .sfw-newsletter-card,
  .sfw-newsletter-card--compact{padding:24px 18px}
  body.woocommerce-cart .product-thumbnail img{max-width:80px}
}

/* Native newsletter handler: footer consent and success state. */
.footer-newsletter-consent {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--color-text-muted);
}

.footer-newsletter-consent input[type="checkbox"] {
  flex: 0 0 auto;
  width: auto;
  margin-top: 3px;
}

.footer-newsletter-success {
  margin: 0 0 10px;
  font-size: 0.8rem;
  line-height: 1.4;
  color: #205c43;
}

/* ==========================================================
   1.4.5 — Contact + My Account visual refinement
   Uses existing approved theme palette only; no palette or gradient changes.
   ========================================================== */

/* Contact page: match the polished application-card language. */
.sfw-contact-card{
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:12px;
  box-shadow:0 12px 32px rgba(0,15,33,.06);
  overflow:hidden;
}

.sfw-contact-form{
  padding:clamp(22px,4vw,36px);
  background:var(--color-bg);
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:10px;
  box-shadow:0 4px 18px rgba(0,15,33,.04);
}

.sfw-contact-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.sfw-contact-form .sfw-form-field{
  margin:0;
}

.sfw-contact-form .sfw-form-field label{
  margin-bottom:8px;
  color:var(--color-text-primary);
  text-transform:none;
  letter-spacing:.02em;
  font-size:.82rem;
}

.sfw-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.sfw-contact-form select,
.sfw-contact-form textarea{
  min-height:50px;
  padding:14px 16px;
  border:1.5px solid var(--color-brand-eucalyptus);
  border-radius:8px;
  background:var(--color-surface);
  color:var(--color-text-primary);
  line-height:1.4;
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.sfw-contact-form textarea{
  min-height:160px;
  resize:vertical;
}

.sfw-contact-form input:hover,
.sfw-contact-form select:hover,
.sfw-contact-form textarea:hover{
  border-color:var(--color-brand-teal);
}

.sfw-contact-form input:focus,
.sfw-contact-form select:focus,
.sfw-contact-form textarea:focus{
  outline:none;
  border-color:var(--color-brand-teal);
  box-shadow:0 0 0 4px rgba(0,170,179,.12);
  background:var(--color-surface);
}

.sfw-contact-form input[type="checkbox"],
.sfw-contact-form input[type="radio"]{
  width:18px;
  height:18px;
  margin:2px 8px 0 0;
  accent-color:var(--color-brand-clay);
}

.sfw-contact-form select{
  cursor:pointer;
}

.sfw-contact-submit{
  justify-self:start;
  width:auto;
  min-width:180px;
  border-radius:8px;
  padding:13px 24px;
}

.sfw-contact-security-note{
  margin-top:22px;
  padding:16px 18px;
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:8px;
  background:var(--color-bg);
}

/* WooCommerce My Account: one outer shell, tabbed navigation and content card. */
body.woocommerce-account .sfw-wc-page-shell{
  padding-top:28px;
  padding-bottom:40px;
}

body.woocommerce-account .sfw-wc-page-content{
  width:100%;
  padding:clamp(20px,4vw,36px);
  background:var(--color-surface);
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:12px;
  box-shadow:0 12px 32px rgba(0,15,33,.06);
  overflow:visible;
}

body.woocommerce-account .sfw-wc-page-content > .entry-content{
  width:100%;
  max-width:100%;
}

body.logged-in.woocommerce-account .woocommerce{
  gap:28px;
}

body.woocommerce-account .woocommerce-MyAccount-navigation{
  padding:14px;
  background:var(--color-bg);
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:10px;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul{
  display:flex;
  flex-direction:column;
  gap:7px;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li{
  margin:0;
  border:0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a{
  padding:11px 13px;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:var(--color-text-primary);
  font-weight:700;
  line-height:1.35;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible{
  background:var(--color-brand-pistachio);
  border-color:var(--color-brand-eucalyptus);
  color:var(--color-text-primary);
  transform:translateX(2px);
  outline:none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{
  background:var(--color-brand-darkwalnut);
  border-color:var(--color-brand-darkwalnut);
  color:var(--color-bg);
}

body.woocommerce-account .woocommerce-MyAccount-content{
  min-height:280px;
  padding:clamp(22px,4vw,34px);
  background:var(--color-surface);
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:10px;
  box-shadow:0 4px 18px rgba(0,15,33,.04);
}

body.woocommerce-account .woocommerce-MyAccount-content > :first-child{
  margin-top:0;
}

body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3{
  margin-top:0;
  margin-bottom:14px;
}

body.woocommerce-account .woocommerce-MyAccount-content p + p{
  margin-top:12px;
}

body.woocommerce-account .woocommerce-MyAccount-content table,
body.woocommerce-account .woocommerce-orders-table,
body.woocommerce-account .woocommerce-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:8px;
  overflow:hidden;
}

body.woocommerce-account .woocommerce-MyAccount-content th,
body.woocommerce-account .woocommerce-MyAccount-content td{
  padding:12px 14px;
  border-bottom:1px solid var(--color-brand-eucalyptus);
  text-align:left;
}

body.woocommerce-account .woocommerce-MyAccount-content tr:last-child td{
  border-bottom:0;
}

body.woocommerce-account .woocommerce-MyAccount-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.woocommerce-account .woocommerce-MyAccount-content select,
body.woocommerce-account .woocommerce-MyAccount-content textarea{
  min-height:48px;
  padding:12px 14px;
  border:1.5px solid var(--color-brand-eucalyptus);
  border-radius:8px;
  background:var(--color-surface);
}

body.woocommerce-account .woocommerce-MyAccount-content input:focus,
body.woocommerce-account .woocommerce-MyAccount-content select:focus,
body.woocommerce-account .woocommerce-MyAccount-content textarea:focus{
  outline:none;
  border-color:var(--color-brand-teal);
  box-shadow:0 0 0 4px rgba(0,170,179,.12);
}

body.woocommerce-account .sfw-account-media-card,
body.woocommerce-account .sfw-account-status-card{
  padding:20px;
  border-color:var(--color-brand-eucalyptus);
  border-radius:8px;
  background:var(--color-bg);
}

body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register{
  padding:clamp(22px,4vw,34px);
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:10px;
  background:var(--color-surface);
  box-shadow:0 4px 18px rgba(0,15,33,.04);
}

@media(max-width:782px){
  .sfw-contact-form-grid{
    grid-template-columns:1fr;
  }

  .sfw-contact-submit{
    width:100%;
  }

  body.woocommerce-account .sfw-wc-page-content{
    padding:18px;
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation ul{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  body.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
  body.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible{
    transform:none;
  }
}

@media(max-width:520px){
  body.woocommerce-account .woocommerce-MyAccount-navigation ul{
    grid-template-columns:1fr;
  }

  body.woocommerce-account .woocommerce-MyAccount-content{
    padding:18px;
  }
}



/* ==========================================================
   1.4.5 targeted QA fixes — no palette/gradient changes
   ========================================================== */

/* Basket remains the existing nav item, now icon-only. */
.site-nav .sfw-basket-icon-link,
.site-nav .cart-contents{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:44px;
  min-height:44px;
}
.site-nav .cart-icon{display:inline-flex;align-items:center;justify-content:center}
.site-nav .cart-icon svg{display:block}
.site-nav .cart-label{display:none !important}


/* Homepage hero image moved to a true full-width banner above the heading. */
.sfw-home-top-hero{
  width:100%;
  margin:0;
  padding:0;
  overflow:hidden;
}
.sfw-home-top-hero-image{
  display:block;
  width:100%;
  height:clamp(260px,38vw,560px);
  object-fit:cover;
  object-position:center;
}
.sfw-home-hero .sfw-home-hero-grid{
  grid-template-columns:minmax(0,1fr);
}
.sfw-home-hero-copy{
  max-width:900px;
}
@media(max-width:640px){
  .sfw-home-top-hero-image{height:220px}
}

/* Contact form now uses the same sizing, padding and borders as the Volunteer Release Form. */
.sfw-contact-card{
  padding:2rem 1.5rem;
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:4px;
  background:var(--color-surface);
  box-shadow:0 4px 20px rgba(0,0,0,.04);
}
.sfw-contact-heading-card{margin-bottom:1.5rem}
.sfw-contact-form{
  width:100%;
  max-width:680px;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.sfw-contact-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.sfw-contact-form .sfw-form-group{margin:0 0 1.25rem}
.sfw-contact-form .sfw-form-label{
  display:block;
  font-family:var(--font-mono);
  font-size:.75rem;
  font-weight:700;
  color:var(--color-text-primary);
  text-transform:uppercase;
  margin-bottom:.4rem;
  letter-spacing:.05em;
}
.sfw-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.sfw-contact-form select,
.sfw-contact-form textarea{
  width:100%;
  max-width:100%;
  min-height:44px;
  padding:12px 16px;
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:4px;
  background:var(--color-surface);
  color:var(--color-text-primary);
  box-shadow:none;
}
.sfw-contact-form textarea{min-height:150px;resize:vertical}
.sfw-contact-form input:focus,
.sfw-contact-form select:focus,
.sfw-contact-form textarea:focus{
  outline:2px solid var(--color-brand-clay);
  outline-offset:2px;
  border-color:var(--color-brand-clay);
  box-shadow:none;
}
.sfw-contact-submit{
  width:auto;
  min-width:0;
  align-self:flex-start;
  border-radius:4px;
  padding:.85rem 1.75rem;
}
.sfw-contact-security-note{
  margin:1.5rem 0 0;
  padding:1rem 0 0;
  border:0;
  border-top:1px solid var(--color-brand-eucalyptus);
  border-radius:0;
  background:transparent;
}

/* Exactly two exhibitor application image controls; one for Volunteer/Model. */
.sfw-application-upload-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin:1.25rem 0 1.5rem;
  padding:1.25rem;
  border:1px solid var(--color-brand-eucalyptus);
  border-radius:4px;
  background:var(--color-bg);
}
.sfw-application-upload-grid--single{grid-template-columns:1fr}
.sfw-application-upload-heading{grid-column:1 / -1}
.sfw-application-upload-heading p{
  margin:.25rem 0 0;
  color:var(--color-text-muted);
  font-size:.85rem;
  line-height:1.5;
}
.sfw-application-upload-field input[type="file"]{
  display:block;
  width:100%;
  padding:.75rem;
  border:1px dashed var(--color-brand-eucalyptus);
  border-radius:4px;
  background:var(--color-surface);
  color:var(--color-text-primary);
}

/* Exhibitor profile intentionally shows two image slots. */
.sfw-single-exhibitor-media--two{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.sfw-single-exhibitor-media--two .sfw-single-exhibitor-main{min-width:0}
.sfw-single-exhibitor-media--two img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center top;
}
.sfw-single-exhibitor-media--two .sfw-media-fallback{
  width:100%;
  min-height:240px;
}

@media(max-width:700px){
  .sfw-contact-form-grid,
  .sfw-application-upload-grid,
  .sfw-single-exhibitor-media--two{grid-template-columns:1fr}
}


/* ==========================================================
   1.4.5 targeted Contact + Exhibitor Bio pipeline fix
   Existing approved palette/gradients remain unchanged.
   ========================================================== */

/* The template owns the live nonce-protected form; legacy editor forms are not displayed. */
.sfw-contact-editor-content form{display:none !important}

/* Hide spam honeypot completely from human view. */
.sfw-contact-form .sfw-honeypot,
.sfw-contact-form input[name="sfw_hp_check"],
.sfw-honeypot{
  display:none !important;
}

/* Match Volunteer form field rhythm while preserving approved theme colours. */
body.page-template-page-contact .sfw-contact-card{
  padding:clamp(24px,4vw,40px);
}
body.page-template-page-contact .sfw-contact-form{
  width:100%;
  max-width:760px;
  display:flex;
  flex-direction:column;
  gap:0;
}
body.page-template-page-contact .sfw-contact-form .sfw-form-group{
  width:100%;
  margin:0 0 1.25rem;
}
body.page-template-page-contact .sfw-contact-form .sfw-form-label{
  display:block;
  margin:0 0 .5rem;
  line-height:1.35;
}
body.page-template-page-contact .sfw-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.page-template-page-contact .sfw-contact-form select,
body.page-template-page-contact .sfw-contact-form textarea{
  display:block;
  width:100% !important;
  max-width:100% !important;
  min-width:0;
  padding:12px 16px !important;
  border:1px solid var(--color-brand-eucalyptus) !important;
  border-radius:8px !important;
  background:var(--color-surface);
  color:var(--color-text-primary);
  font:inherit;
  font-size:1rem;
  line-height:1.5;
  box-sizing:border-box;
}
body.page-template-page-contact .sfw-contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.page-template-page-contact .sfw-contact-form select{
  min-height:48px;
}
body.page-template-page-contact .sfw-contact-form textarea{
  min-height:160px;
  resize:vertical;
}
body.page-template-page-contact .sfw-contact-form input:focus,
body.page-template-page-contact .sfw-contact-form select:focus,
body.page-template-page-contact .sfw-contact-form textarea:focus{
  outline:2px solid var(--color-brand-clay);
  outline-offset:2px;
  border-color:var(--color-brand-clay) !important;
}
body.page-template-page-contact .sfw-contact-submit{
  padding:12px 24px;
  border-radius:8px;
}

/* Exhibitor profile: exactly two images followed by a dedicated bio section. */
.sfw-single-exhibitor-bio{
  margin:0 0 2.5rem;
  padding:1.5rem 0 0;
  border-top:1px solid var(--color-border);
}
.sfw-single-exhibitor-bio-eyebrow{
  display:block;
  margin:0 0 .45rem;
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--color-brand-orange);
}
.sfw-single-exhibitor-bio h2{
  margin:0 0 .8rem;
  font-family:var(--font-serif);
  font-size:clamp(1.5rem,3vw,2rem);
  color:var(--color-text-primary);
}
.sfw-single-exhibitor-bio-copy{
  font-size:1rem;
  line-height:1.8;
  color:var(--color-text-primary);
}
.sfw-single-exhibitor-bio-copy > :first-child{margin-top:0}
.sfw-single-exhibitor-bio-copy > :last-child{margin-bottom:0}

.sfw-contact-form-intro{
  max-width:760px;
  margin:0 0 1.25rem;
}
.sfw-contact-form-intro h2{
  margin:.2rem 0 .45rem;
  font-family:var(--font-serif);
  font-size:clamp(1.55rem,3vw,2rem);
  color:var(--color-text-primary);
}
.sfw-contact-form-intro p{
  margin:0;
  line-height:1.6;
  color:var(--color-text-primary);
}

/* =========================================================
   EXHIBITORS DIRECTORY — PROGRESSIVE-ENHANCEMENT MODAL
   Existing approved SFW Hub Torquay palette only.
   ========================================================= */
.exhibitors-directory{
  padding:2rem 1.25rem 4rem;
}
.exhibitors-container{
  width:100%;
  max-width:1320px;
  margin:0 auto;
}
.exhibitors-page-header{
  margin:0 0 1.75rem;
}
.exhibitors-page-header .page-title{
  margin:.35rem 0 .5rem;
  font-size:clamp(2rem,4vw,3.25rem);
}
.exhibitors-page-intro{
  max-width:760px;
  color:var(--color-text-muted);
}
.exhibitors-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  align-items:stretch;
}
.exhibitor-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  border:1px solid var(--color-border);
  background:var(--ast-blush);
  box-shadow:0 2px 6px rgba(0,15,33,.08);
}
.exhibitor-card:nth-child(3n+2){background:var(--ast-sand)}
.exhibitor-card:nth-child(3n+3){background:var(--ast-mint)}
.exhibitor-card--host{outline:2px solid var(--ast-teal);outline-offset:-2px}
.exhibitor-card .card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:.7rem 1rem;
  background:var(--ast-navy);
  color:#fff;
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.72rem;
  font-weight:700;
}
.exhibitor-card .badge-intro{color:var(--ast-sand)}
.exhibitor-card .badge-stand{color:#fff}
.exhibitor-card .card-body{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:1.35rem 1.35rem 1rem;
}
.exhibitor-name{
  margin:0 0 .3rem;
  font-size:clamp(1.45rem,2vw,2rem);
  text-align:center;
}
.exhibitor-subtitle{
  margin:0 0 1rem;
  text-align:center;
  color:var(--color-text-primary);
  font-family:var(--font-mono);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.image-duo{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.img-wrapper{
  position:relative;
  overflow:hidden;
  min-width:0;
  background:var(--color-surface);
}
.img-wrapper img,
.exhibitor-image-fallback{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.exhibitor-image-fallback{
  background:var(--ast-sand);
  border:1px solid var(--color-border);
}
.img-label{
  position:absolute;
  z-index:2;
  top:.5rem;
  left:.5rem;
  max-width:calc(100% - 1rem);
  padding:.35rem .55rem;
  background:rgba(0,15,33,.9);
  color:#fff;
  font-family:var(--font-mono);
  font-size:.6rem;
  font-weight:700;
  line-height:1.2;
  text-transform:uppercase;
}
.grid-summary{
  margin:1rem 0;
  padding:1.15rem;
  border:1px solid rgba(0,15,33,.14);
  background:rgba(255,255,255,.78);
  color:var(--color-text-primary);
  font-style:normal;
  line-height:1.55;
}
.tag-list{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:.25rem 0 0;
  padding:0;
  list-style:none;
}
.tag-list li{
  padding:.35rem .55rem;
  background:rgba(0,15,33,.08);
  border-radius:2px;
  font-family:var(--font-mono);
  font-size:.68rem;
  font-weight:700;
}
.exhibitor-card .card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:auto;
  padding:0 1.35rem 1.35rem;
}
.website-link{
  min-width:0;
  overflow:hidden;
  color:var(--ast-teal);
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:700;
  text-decoration:underline;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sfw-open-modal-btn,
.sfw-exhibitor-modal__website,
.sfw-exhibitor-profile__website{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:.7rem 1rem;
  border:1px solid var(--ast-navy);
  border-radius:0;
  background:var(--ast-navy);
  color:#fff;
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  text-transform:uppercase;
  cursor:pointer;
}
.sfw-open-modal-btn:hover,
.sfw-open-modal-btn:focus-visible,
.sfw-exhibitor-modal__website:hover,
.sfw-exhibitor-modal__website:focus-visible,
.sfw-exhibitor-profile__website:hover,
.sfw-exhibitor-profile__website:focus-visible{
  background:var(--ast-teal);
  border-color:var(--ast-teal);
  color:#fff;
  outline:2px solid var(--ast-navy);
  outline-offset:2px;
}

/* One reusable modal shell populated by assets/js/public.js. */
.sfw-exhibitor-modal[hidden]{
  display:none!important;
}
.sfw-exhibitor-modal{
  position:fixed;
  z-index:99999;
  inset:0;
  display:grid;
  place-items:center;
  overflow:auto;
  padding:28px;
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease,visibility .18s ease;
}
.sfw-exhibitor-modal.is-active{
  opacity:1;
  visibility:visible;
}
.sfw-exhibitor-modal__backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,15,33,.72);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}
.sfw-exhibitor-modal__dialog,
.sfw-modal-container{
  position:relative;
  z-index:1;
  width:90vw;
  max-width:1100px;
  max-height:85vh;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding:2.2rem;
  border:1px solid var(--color-border);
  border-radius:10px;
  background:var(--color-surface);
  box-shadow:0 26px 90px rgba(0,15,33,.36);
  transform:translateY(10px) scale(.985);
  transition:transform .18s ease;
  outline:none;
}
.sfw-exhibitor-modal.is-active .sfw-exhibitor-modal__dialog,
.sfw-exhibitor-modal.is-active .sfw-modal-container{
  transform:translateY(0) scale(1);
}
.sfw-exhibitor-modal__close{
  position:absolute;
  top:1rem;
  right:1rem;
  display:flex;
  width:40px;
  height:40px;
  align-items:center;
  justify-content:center;
  border:1px solid var(--color-border);
  border-radius:50%;
  background:var(--ast-sand);
  color:var(--ast-navy);
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
}
.sfw-exhibitor-modal__close:hover,
.sfw-exhibitor-modal__close:focus-visible{
  background:var(--ast-blush);
  outline:2px solid var(--ast-teal);
  outline-offset:2px;
}
.sfw-exhibitor-modal__header{
  padding:0 3rem 1.15rem 0;
  border-bottom:1px solid var(--color-border);
}
.sfw-exhibitor-modal__meta,
.sfw-exhibitor-modal__body h3{
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.sfw-exhibitor-modal__meta,
.sfw-exhibitor-modal__sustainability h3{
  color:var(--ast-teal);
}
.sfw-exhibitor-modal__title{
  margin:.3rem 0 .2rem;
  font-size:clamp(1.7rem,4vw,2.35rem);
}
.sfw-exhibitor-modal__maker{
  margin:.35rem 0 0;
  color:var(--color-text-muted);
  font-family:var(--font-mono);
  font-size:.82rem;
}
.sfw-exhibitor-modal__gallery,
.sfw-modal-images-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(350px,1fr));
  gap:24px;
  align-items:start;
  width:100%;
  padding:1.35rem 0;
}
.sfw-exhibitor-modal__gallery.has-one-image,
.sfw-modal-images-grid.has-one-image{
  grid-template-columns:minmax(0,1fr);
}
.sfw-exhibitor-modal__image,
.sfw-modal-image-wrapper{
  position:relative;
  width:100%;
  height:auto;
  min-width:0;
  min-height:0;
  max-height:none;
  overflow:hidden;
  margin:0;
  border-radius:6px;
  background:var(--ast-sand);
}
.sfw-exhibitor-modal__image[hidden],
.sfw-modal-image-wrapper[hidden]{display:none!important}
.sfw-exhibitor-modal__image img,
.sfw-modal-image-wrapper img{
  display:block;
  width:100%;
  height:auto!important;
  max-width:100%;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center top;
}
.sfw-exhibitor-modal__image-label,
.sfw-modal-image-badge{
  display:none!important;
}
.sfw-exhibitor-modal__body{
  padding-top:1rem;
  border-top:1px solid var(--color-border);
}
.sfw-exhibitor-modal__bio[hidden],
.sfw-exhibitor-modal__sustainability[hidden]{
  display:none!important;
}
.sfw-exhibitor-modal__bio h3,
.sfw-exhibitor-modal__sustainability h3{
  margin:0 0 .45rem;
}
.sfw-exhibitor-modal__bio p,
.sfw-exhibitor-modal__sustainability p{
  margin:0;
  color:var(--color-text-muted);
  line-height:1.65;
}
.sfw-exhibitor-modal__bio p{
  white-space:pre-line;
}
.sfw-exhibitor-modal__sustainability{
  margin-top:1.25rem;
  padding:1.1rem 1.2rem;
  border:1px solid var(--color-border);
  border-radius:6px;
  background:var(--ast-sand);
}
.sfw-exhibitor-modal__sustainability p{
  color:var(--color-text-primary);
}
.sfw-exhibitor-modal__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:1.4rem;
}
.sfw-exhibitor-modal__website[hidden],
.sfw-exhibitor-modal__social[hidden]{
  display:none!important;
}
.sfw-exhibitor-modal__social{
  color:var(--color-text-muted);
  font-family:var(--font-mono);
  font-size:.75rem;
  font-weight:700;
}
.exhibitors-empty{
  grid-column:1/-1;
  padding:2rem;
  border:1px solid var(--color-border);
  background:var(--color-surface);
  text-align:center;
}
@media (max-width:980px){
  .exhibitors-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .sfw-exhibitor-modal__dialog,
  .sfw-modal-container{
    width:94vw;
    max-width:94vw;
    max-height:88vh;
  }
  .sfw-exhibitor-modal__gallery,
  .sfw-modal-images-grid{
    grid-template-columns:minmax(0,1fr);
    gap:20px;
  }
}
@media (max-width:680px){
  .exhibitors-directory{padding:1.25rem .9rem 3rem}
  .exhibitors-grid{grid-template-columns:1fr}
  .image-duo{grid-template-columns:1fr}
  .exhibitor-card .card-footer,
  .sfw-exhibitor-modal__footer{
    align-items:stretch;
    flex-direction:column;
  }
  .website-link{white-space:normal}
  .sfw-open-modal-btn,
  .sfw-exhibitor-modal__website,
  .sfw-exhibitor-profile__website{width:100%}
  .sfw-exhibitor-modal{
    align-items:start;
    padding:12px;
  }
  .sfw-exhibitor-modal__dialog,
  .sfw-modal-container{
    width:calc(100vw - 24px);
    max-width:calc(100vw - 24px);
    max-height:calc(100vh - 24px);
    max-height:calc(100dvh - 24px);
    overflow-y:auto;
    padding:1.35rem;
  }
  .sfw-exhibitor-modal__header{padding-right:2.5rem}
  .sfw-exhibitor-modal__gallery,
  .sfw-modal-images-grid{grid-template-columns:1fr;gap:16px}
}

/* =========================================================
   EXHIBITOR SINGLE PROFILE — progressive-enhancement fallback
   Uses the existing approved theme palette only.
   ========================================================= */
.sfw-exhibitor-profile-page{
  padding:2rem 1.25rem 4rem;
}
.sfw-exhibitor-profile{
  width:100%;
  max-width:980px;
  margin:0 auto;
  padding:clamp(1.4rem,4vw,2.5rem);
  border:1px solid var(--color-border);
  border-radius:8px;
  background:var(--color-surface);
}
.sfw-exhibitor-profile__back{
  display:inline-flex;
  margin:0 0 1.5rem;
  color:var(--ast-red);
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:700;
  text-decoration:none;
  text-transform:uppercase;
}
.sfw-exhibitor-profile__back:hover,
.sfw-exhibitor-profile__back:focus-visible{
  color:var(--ast-teal);
  text-decoration:underline;
}
.sfw-exhibitor-profile__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.5rem;
  margin-bottom:1.5rem;
  padding-bottom:1.5rem;
  border-bottom:1px solid var(--color-border);
}
.sfw-exhibitor-profile__eyebrow,
.sfw-exhibitor-profile__maker,
.sfw-exhibitor-profile__stand span,
.sfw-exhibitor-profile__sustainability h2,
.sfw-exhibitor-profile__social{
  font-family:var(--font-mono);
}
.sfw-exhibitor-profile__eyebrow{
  margin:0 0 .45rem;
  color:var(--ast-red);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sfw-exhibitor-profile__header h1{
  margin:0;
  font-size:clamp(2rem,5vw,3rem);
}
.sfw-exhibitor-profile__tagline{
  margin:.45rem 0 0;
  font-weight:600;
}
.sfw-exhibitor-profile__maker{
  margin:.55rem 0 0;
  color:var(--color-text-muted);
  font-size:.78rem;
}
.sfw-exhibitor-profile__stand{
  min-width:180px;
  padding:.8rem 1rem;
  border:1px solid var(--color-border);
  background:var(--ast-sand);
  text-align:center;
}
.sfw-exhibitor-profile__stand span{
  display:block;
  margin-bottom:.25rem;
  color:var(--color-text-muted);
  font-size:.62rem;
  text-transform:uppercase;
}
.sfw-exhibitor-profile__stand strong{
  font-family:var(--font-mono);
  font-size:.82rem;
}
.sfw-exhibitor-profile__sustainability{
  margin:0 0 1.5rem;
  padding:1.2rem 1.3rem;
  border:1px solid var(--color-border);
  border-radius:6px;
  background:var(--ast-sand);
}
.sfw-exhibitor-profile__sustainability h2{
  margin:0 0 .45rem;
  color:var(--ast-teal);
  font-size:.72rem;
  text-transform:uppercase;
}
.sfw-exhibitor-profile__sustainability p{
  margin:0;
  line-height:1.65;
}
.sfw-exhibitor-profile__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-top:1.25rem;
  border-top:1px solid var(--color-border);
}
.sfw-exhibitor-profile__social{
  color:var(--color-text-muted);
  font-size:.75rem;
  font-weight:700;
}
@media(max-width:700px){
  .sfw-exhibitor-profile-page{padding:1rem .75rem 2.5rem}
  .sfw-exhibitor-profile__header,
  .sfw-exhibitor-profile__footer{
    align-items:stretch;
    flex-direction:column;
  }
  .sfw-exhibitor-profile__stand{width:100%;min-width:0}
}

/* --- Exhibitor stall pricing gate ------------------------------------- */
.sfw-price-locked-badge{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:.8rem;
  line-height:1.5;
  color:#25332C;
  background:#FFF9E2;
  border:1px solid #CDD4B1;
  border-radius:3px;
  padding:8px 12px;
}
.sfw-price-locked-badge a{
  color:#B8623A;
  font-weight:700;
  text-decoration:underline;
}
.sfw-price-locked-badge a:hover,
.sfw-price-locked-badge a:focus{ color:#25332C; }

.sfw-price-gate-banner{
  background:#FFF9E2;
  border:1px solid #CDD4B1;
  border-radius:4px;
  padding:24px;
  margin-bottom:24px;
}
.sfw-price-gate-banner p{ margin:0 0 12px; color:#405047; }

a.sfw-lock-btn{ background:#B8623A; color:#FFF; }
a.sfw-lock-btn:hover, a.sfw-lock-btn:focus{ background:#25332C; color:#FFF; }

/* --- Gutenberg editor content ----------------------------------------- */
.sfw-editor-content,
[class*="-editor-content"]{ padding-block: 48px; }
.sfw-editor-content h2,
[class*="-editor-content"] h2{ font-family: var(--font-serif); color:#25332C; }
.sfw-editor-content p,
[class*="-editor-content"] p{ color:#405047; line-height:1.65; }
.sfw-editor-content a,
[class*="-editor-content"] a{ color:#B8623A; }
.sfw-editor-content .alignwide{ max-width:1100px; margin-inline:auto; }
.sfw-editor-content .alignfull{ max-width:none; }
.sfw-editor-content img{ max-width:100%; height:auto; }
.sfw-exhibitor-profile__body{ margin-top:24px; color:#405047; line-height:1.65; }

/* --- v1.7.5 copy & branding refinements ------------------------------- */

/* Host credit line: a credit, not a headline. Sentence case, quiet. */
.sfw-home-hostline{
  font-family:var(--font-sans);
  text-transform:none;
  letter-spacing:normal;
  font-weight:400;
  font-size:.8rem;
  line-height:1.55;
  color:#6E7A70;
  max-width:640px;
  margin-bottom:14px;
}
.sfw-countdown-partner{
  font-family:var(--font-sans);
  text-transform:none;
  letter-spacing:normal;
  font-weight:400;
  font-size:.8rem;
  line-height:1.55;
  opacity:.72;
}

/* Header logo: constrain by height so tall uploads stay in proportion. */
.site-branding img,
.site-logo img,
.custom-logo-link img,
.sfw-header-logo img,
.logo-img{
  width:auto;
  max-width:200px;
  max-height:72px;
  height:auto;
  object-fit:contain;
}
.site-logo,
.custom-logo-link{
  max-height:72px;
}
@media (max-width:782px){
  .site-branding img,
  .site-logo img,
  .custom-logo-link img,
  .sfw-header-logo img,
  .logo-img{ max-height:56px; max-width:150px; }
  .site-logo,
  .custom-logo-link{ max-height:56px; }
}

/* --- v2.0.4 corrections ------------------------------------------------ */

/* Packaged hero fallback is 808x240. Show it at its own ratio rather than
   cropping it into a much taller container. */
.sfw-home-top-hero-image--fallback{
  width:100%;
  max-width:808px;
  height:auto;
  max-height:none;
  object-fit:contain;
  margin-inline:auto;
  display:block;
}

/* Outer gutters so no page sits hard against the viewport edge. */
@media (max-width:640px){
  .sfw-container,
  .sfw-container-wide,
  .exhibitors-container{ padding-left:1.25rem; padding-right:1.25rem; }
}

/* Readability floor for interface labels. */
.img-label,
.sfw-directory-kicker,
.sfw-section-kicker,
.sfw-dark-kicker,
.sfw-dark-label,
.sfw-eyebrow,
.badge-intro{ font-size:0.74rem; letter-spacing:0.1em; }

/* ======================================================================
   v2.1.1 — Editorial consistency
   Every image inside page content sits in a framed container, and the
   About / Visit / What's On pages share the site's typographic scale.
   ====================================================================== */

/* --- Framed images across all editor and page content ---------------- */
.page-gutenberg-content figure,
.page-gutenberg-content .wp-block-image,
.sfw-editor-content figure,
.sfw-editor-content .wp-block-image,
.about-container figure,
.about-container .wp-block-image{
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-brand-eucalyptus, #CDD4B1);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.04);
  margin: 2rem 0;
  padding: 0;
}

.page-gutenberg-content figure img,
.page-gutenberg-content .wp-block-image img,
.sfw-editor-content figure img,
.sfw-editor-content .wp-block-image img,
.about-container figure img,
.about-container .wp-block-image img{
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}

/* Bare images with no figure wrapper get the same frame. */
.page-gutenberg-content > img,
.sfw-editor-content > img,
.about-container > img{
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--color-brand-eucalyptus, #CDD4B1);
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0,0,0,.04);
  margin: 2rem 0;
}

/* Captions read as editorial credits, not stray text. */
.page-gutenberg-content figcaption,
.sfw-editor-content figcaption,
.about-container figcaption{
  font-family: var(--font-mono);
  font-size: .74rem;
  letter-spacing: .04em;
  color: #6E7A70;
  background: var(--color-brand-ivory, #FFF9E2);
  border-top: 1px solid var(--color-brand-eucalyptus, #CDD4B1);
  margin: 0;
  padding: 10px 14px;
  text-align: left;
}

/* Image galleries keep even gutters inside the frame. */
.page-gutenberg-content .wp-block-gallery,
.sfw-editor-content .wp-block-gallery{
  gap: 12px;
  margin: 2rem 0;
}
.page-gutenberg-content .wp-block-gallery figure,
.sfw-editor-content .wp-block-gallery figure{ margin: 0; }

/* --- Shared typographic scale ---------------------------------------- */
.about-container h1,
.sfw-container h1{
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 2.5rem);
  font-weight: 900;
  line-height: 1.15;
  color: #25332C;
}
.about-container h2,
.sfw-container h2{
  font-family: var(--font-serif);
  font-size: clamp(1.4rem, 2.6vw, 1.75rem);
  font-weight: 800;
  line-height: 1.25;
  color: #25332C;
  margin-top: 2.5rem;
  margin-bottom: .75rem;
}
.about-container h3,
.sfw-container h3{
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: #25332C;
}
.about-container p,
.about-container li{
  font-family: var(--font-sans);
  font-size: .95rem;
  line-height: 1.8;
  color: #405047;
}

/* Editorial rhythm between blocks on the About page. */
.about-container > div,
.about-container > section{ margin-bottom: 2rem; }
.about-container > div:last-child,
.about-container > section:last-child{ margin-bottom: 0; }

/* Image framing must also catch images WordPress outputs without a figure
   wrapper, and images nested deeper inside editor blocks. */
.page-gutenberg-content img:not(.sfw-no-frame),
.about-container .page-gutenberg-content img:not(.sfw-no-frame),
.sfw-editor-content img:not(.sfw-no-frame){
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--color-brand-eucalyptus, #CDD4B1);
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0,0,0,.04);
  margin: 2rem auto;
  background: var(--color-surface, #FFFFFF);
}
/* An image already inside a framed figure must not be double-bordered. */
.page-gutenberg-content figure img,
.page-gutenberg-content .wp-block-image img,
.sfw-editor-content figure img,
.sfw-editor-content .wp-block-image img,
.about-container figure img,
.about-container .wp-block-image img{
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
}

/* Logo lock-ups on the About page are never re-coloured, cropped or framed
   by the editorial image rules — they are supplied brand assets. */
.about-container .sfw-sponsor-lockup img,
.about-container .sfw-programme-lockup img{
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
  width: auto;
  height: auto;
}
@media (max-width: 520px){
  .about-container .sfw-programme-lockup{ gap: 1.5rem; }
}


/* 2.3.9 targeted application/workshop usability additions */
.sfw-inline-file-error{margin:.5rem 0 0;padding:.65rem .75rem;border:1px solid currentColor;border-radius:3px;font-weight:700;}
.sfw-workshop-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;}
.sfw-workshop-details-link{font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.sfw-workshop-booking__availability,.sfw-workshop-booking__help{margin:.35rem 0;}
.sfw-workshop-booking__help{max-width:58ch;}
