/* ===========================================================
   The World of Toilet Technology — Shared Stylesheet
   =========================================================== */
:root{
  --bg-deep:#1c1a14;
  --bg-deep-2:#100f0b;
  --gold:#c9a24b;
  --gold-light:#e9d18f;
  --cream:#efe6cf;
  --maroon:#7a2426;
  --olive:#6f7d63;
  --ink:#2a271d;
  --max:1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Work Sans', sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.55;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 24px;}
.eyebrow{
  font-size:12.5px; letter-spacing:3px; text-transform:uppercase;
  color:var(--maroon); font-weight:700; margin-bottom:10px; display:block;
}
.display{font-family:'Baloo 2', sans-serif; font-weight:800; letter-spacing:.5px;}
.script{font-family:'Allura', cursive;}
h2.section-title{
  font-family:'Baloo 2', sans-serif; font-weight:800;
  font-size:clamp(28px,4vw,42px); color:var(--ink); margin-bottom:14px; line-height:1.1;
}
h1.page-title{
  font-family:'Baloo 2', sans-serif; font-weight:800;
  font-size:clamp(34px,5.5vw,56px); color:var(--cream); line-height:1.05;
}
.lede{font-size:17px; color:#5a5644; max-width:640px;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; border-radius:999px; font-weight:600; font-size:14.5px;
  text-decoration:none; cursor:pointer; border:2px solid transparent; transition:.18s;
  font-family:'Work Sans',sans-serif;
}
.btn-gold{background:var(--gold); color:var(--bg-deep-2);}
.btn-gold:hover{background:var(--gold-light);}
.btn-outline{border-color:var(--gold-light); color:var(--gold-light); background:transparent;}
.btn-outline:hover{background:rgba(233,209,143,.12);}
.btn-outline-dark{border-color:var(--ink); color:var(--ink); background:transparent;}
.btn-outline-dark:hover{background:rgba(42,39,29,.08);}
.btn-dark{background:var(--ink); color:var(--cream);}
.btn-dark:hover{background:var(--maroon);}
.btn-sm{padding:9px 18px; font-size:13px;}

/* ---------- NAV ---------- */
#nav{
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 28px; transition:.25s;
  background:var(--bg-deep-2);
}
#nav.transparent-top{background:linear-gradient(180deg, rgba(16,15,11,.85), rgba(16,15,11,0));}
#nav.transparent-top.solid{background:var(--bg-deep-2); box-shadow:0 4px 18px rgba(0,0,0,.3);}
#nav .logo{display:flex; align-items:center; gap:8px; color:var(--cream); text-decoration:none;}
#nav .logo .script{font-size:21px; color:var(--cream);}
#nav .logo .script b{color:var(--gold-light); font-style:normal; font-weight:inherit;}
#nav ul{list-style:none; display:none; gap:24px; align-items:center;}
#nav ul a{
  font-size:13.5px; color:var(--cream); text-decoration:none; font-weight:500;
  letter-spacing:.3px; opacity:.85; transition:.15s;
}
#nav ul a:hover, #nav ul a.active{opacity:1; color:var(--gold-light);}
#nav-burger{
  width:38px; height:38px; border-radius:8px; border:1px solid rgba(233,209,143,.4);
  background:rgba(255,255,255,.05); color:var(--cream); display:flex; align-items:center;
  justify-content:center; cursor:pointer;
}
@media(min-width:1040px){
  #nav ul{display:flex;}
  #nav-burger{display:none;}
}
#mobile-menu{
  position:fixed; inset:0 0 0 auto; width:280px; background:var(--bg-deep-2);
  z-index:300; transform:translateX(100%); transition:.25s; padding:24px;
  display:flex; flex-direction:column; gap:18px;
}
#mobile-menu.open{transform:translateX(0);}
#mobile-menu a{color:var(--cream); text-decoration:none; font-size:15px; font-weight:500;}
#mobile-menu a.active{color:var(--gold-light);}
#mobile-menu .close-x{align-self:flex-end; color:var(--gold-light); cursor:pointer;}
#menu-overlay{position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:290; display:none;}
#menu-overlay.open{display:block;}

/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{
  position:relative; padding:160px 0 70px; color:var(--cream);
  background:
    radial-gradient(ellipse 90% 60% at 50% 0%, #2c2818 0%, var(--bg-deep) 45%, var(--bg-deep-2) 100%);
  overflow:hidden;
}
.page-hero .wrap{position:relative; z-index:2;}
.page-hero .eyebrow{color:var(--gold-light);}
.page-hero .lede{color:#cfc8ad; margin-top:14px;}
.pattern-strip{width:100%; height:50px; background-size:cover; background-position:center; opacity:.85; position:relative; z-index:2;}
@media(min-width:768px){ .pattern-strip{height:70px;} }

/* ---------- SPEECH BUBBLE / SIGNATURE ---------- */
.bubble-section{padding:60px 0 20px;}
.bubble{
  border:2px dashed var(--gold); border-radius:14px; padding:26px 30px;
  max-width:780px; margin:0 auto; position:relative; background:rgba(122,36,38,.03);
}
.bubble p{font-size:19px; font-style:italic; color:var(--ink); line-height:1.5; text-align:center;}
.bubble-tag{
  position:absolute; bottom:-20px; right:24px; transform:rotate(-3deg);
  background:var(--ink); color:var(--cream); font-family:'Baloo 2',sans-serif; font-weight:700;
  font-size:11px; letter-spacing:1px; padding:7px 14px; border-radius:6px; box-shadow:0 6px 14px rgba(0,0,0,.25);
}

/* ---------- GENERIC SECTION ---------- */
section{padding:70px 0;}
.section-tight{padding:40px 0;}

/* ---------- CARDS ---------- */
.card{
  background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 10px 26px rgba(0,0,0,.07);
  transition:.2s;
}
.card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(0,0,0,.12);}

/* ---------- FILTER TABS / CHIPS ---------- */
.chip-row{display:flex; gap:10px; flex-wrap:wrap; margin:24px 0 36px;}
.chip{
  padding:9px 18px; border-radius:999px; border:1.5px solid #d9d2b8; background:#fff;
  font-size:13px; font-weight:600; cursor:pointer; transition:.15s; color:var(--ink);
}
.chip:hover{border-color:var(--gold);}
.chip.active{background:var(--ink); color:var(--cream); border-color:var(--ink);}

/* ---------- GRIDS ---------- */
.grid-3{display:grid; grid-template-columns:1fr; gap:24px;}
@media(min-width:760px){ .grid-3{grid-template-columns:repeat(3,1fr);} }
.grid-2{display:grid; grid-template-columns:1fr; gap:24px;}
@media(min-width:760px){ .grid-2{grid-template-columns:repeat(2,1fr);} }
.grid-4{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
@media(min-width:760px){ .grid-4{grid-template-columns:repeat(4,1fr);} }

/* ---------- EXHIBITOR / SPEAKER CARD ---------- */
.entity-card{padding:22px; text-align:center;}
.entity-avatar{
  width:84px; height:84px; border-radius:50%; margin:0 auto 16px;
  background:linear-gradient(135deg,var(--olive),var(--ink)); display:flex; align-items:center; justify-content:center;
  color:var(--cream); font-family:'Baloo 2',sans-serif; font-weight:700; font-size:24px;
}
.entity-card h3{font-family:'Baloo 2',sans-serif; font-size:16px; margin-bottom:4px;}
.entity-card .role{font-size:12.5px; color:var(--maroon); font-weight:600; margin-bottom:10px;}
.entity-card p{font-size:13px; color:#6b6754;}
.tag-pill{
  display:inline-block; font-size:10.5px; letter-spacing:.5px; text-transform:uppercase;
  background:rgba(122,36,38,.08); color:var(--maroon); padding:4px 10px; border-radius:20px; margin-top:10px; font-weight:700;
}

/* ---------- FORMS ---------- */
.form-card{
  background:#fff; border-radius:16px; padding:30px; box-shadow:0 10px 30px rgba(0,0,0,.07); border:1px solid #e7e0c5;
}
.form-card.dark{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); color:var(--cream);
  backdrop-filter:blur(3px);
}
.form-card label{font-size:12.5px; text-transform:uppercase; letter-spacing:.8px; display:block; margin-bottom:6px; font-weight:600;}
.form-card:not(.dark) label{color:var(--maroon);}
.form-card.dark label{color:var(--gold-light);}
.field{margin-bottom:18px;}
input, select, textarea{
  width:100%; padding:12px 14px; border-radius:8px; border:1px solid #d9d2b8;
  background:#fff; color:var(--ink); font-family:inherit; font-size:14px;
}
.form-card.dark input, .form-card.dark select, .form-card.dark textarea{
  border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.95);
}
textarea{resize:vertical; min-height:90px;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media(max-width:540px){ .row2{grid-template-columns:1fr;} }
.form-note{font-size:11.5px; opacity:.65; margin-top:10px;}
.success-msg{
  display:none; background:rgba(111,125,99,.12); border:1.5px solid var(--olive); color:#3f4a37;
  padding:14px 18px; border-radius:10px; font-size:13.5px; margin-top:16px; font-weight:600;
}
.success-msg.show{display:block;}

/* ---------- FAQ ACCORDION ---------- */
.faq-item{border-bottom:1px solid #e2dabd; padding:18px 0;}
.faq-q{
  display:flex; align-items:center; justify-content:space-between; cursor:pointer;
  font-family:'Baloo 2',sans-serif; font-weight:700; font-size:15.5px;
}
.faq-q svg{width:18px; height:18px; transition:.2s; flex:0 0 auto;}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:.25s; font-size:14px; color:#5a5644; padding-top:0;}
.faq-item.open .faq-a{max-height:300px; padding-top:12px;}

/* ---------- TABLE / SCHEDULE ---------- */
.day-tabs{display:flex; gap:10px; margin-bottom:28px; flex-wrap:wrap;}
.schedule-row{
  display:grid; grid-template-columns:90px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid #e2dabd;
}
.schedule-row .time{font-family:'Baloo 2',sans-serif; font-weight:700; color:var(--maroon); font-size:14px;}
.schedule-row h4{font-family:'Baloo 2',sans-serif; font-size:15.5px; margin-bottom:4px;}
.schedule-row .meta{font-size:12.5px; color:#8a8567;}
.schedule-row p{font-size:13.5px; color:#6b6754; margin-top:6px;}
.room-tag{
  display:inline-block; font-size:10.5px; background:rgba(201,162,75,.18); color:#8a6c1f;
  padding:3px 9px; border-radius:14px; margin-right:6px; font-weight:700; letter-spacing:.3px;
}

/* ---------- GALLERY ---------- */
.gallery-item{border-radius:12px; overflow:hidden; position:relative; cursor:pointer; aspect-ratio:4/3;}
.gallery-item img{width:100%; height:100%; object-fit:cover; transition:.3s;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item .label{
  position:absolute; bottom:0; left:0; right:0; padding:10px 12px;
  background:linear-gradient(0deg, rgba(0,0,0,.65), transparent);
  color:#fff; font-size:12px; font-weight:600;
}

/* ---------- STAT ROW ---------- */
.stat-row{display:flex; gap:30px; margin-top:28px; flex-wrap:wrap;}
.stat .n{font-family:'Baloo 2',sans-serif; font-weight:800; font-size:28px; color:var(--maroon);}
.stat .l{font-size:12.5px; color:#6b6754; letter-spacing:.5px;}

/* ---------- PARTNERS ---------- */
.partner-tier{margin-bottom:40px;}
.partner-tier h3{font-family:'Baloo 2',sans-serif; font-size:14px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); margin-bottom:18px;}
.partners-row{
  display:flex; gap:22px; flex-wrap:wrap; align-items:center;
  padding:26px; background:#fff; border-radius:16px; box-shadow:0 10px 30px rgba(0,0,0,.06);
}
.partner-placeholder{
  width:140px; height:46px; border:1.5px dashed #cdc6ac; border-radius:8px;
  display:flex; align-items:center; justify-content:center; font-size:11px; color:#a39d83; text-align:center;
}

/* ---------- NEWS ---------- */
.news-thumb{height:150px; position:relative; overflow:hidden;}
.news-thumb img{width:100%; height:100%; object-fit:cover;}
.news-thumb span{
  position:absolute; bottom:10px; left:14px; font-family:'Baloo 2',sans-serif; color:var(--cream);
  font-size:11px; background:rgba(0,0,0,.45); padding:4px 10px; border-radius:20px; letter-spacing:.5px;
}
.news-body{padding:18px 20px 22px;}
.news-body .date{font-size:11.5px; color:var(--maroon); font-weight:600; letter-spacing:.5px; text-transform:uppercase;}
.news-body h3{font-family:'Baloo 2',sans-serif; font-size:16.5px; margin:8px 0 8px; line-height:1.3;}
.news-body p{font-size:13.5px; color:#6b6754;}
.news-body a.read-more{font-size:13px; font-weight:700; color:var(--maroon); text-decoration:none; display:inline-block; margin-top:10px;}

/* ---------- MAP ---------- */
.map-frame{border-radius:14px; overflow:hidden; box-shadow:0 14px 34px rgba(0,0,0,.12); border:0;}

/* ---------- BREADCRUMB ---------- */
.breadcrumb{font-size:12.5px; color:#a39d83; margin-bottom:8px;}
.breadcrumb a{color:var(--gold-light); text-decoration:none;}

/* ---------- FOOTER ---------- */
footer{background:var(--bg-deep-2); color:var(--cream); padding:60px 0 26px;}
.foot-top{display:grid; grid-template-columns:1fr; gap:36px;}
@media(min-width:860px){ .foot-top{grid-template-columns:1.3fr 1fr 1fr 1fr;} }
.foot-tagline{font-size:17px; color:var(--gold-light); line-height:1.5; max-width:300px;}
footer h4{font-family:'Baloo 2',sans-serif; font-size:13.5px; letter-spacing:1px; text-transform:uppercase; color:var(--gold); margin-bottom:16px;}
footer ul{list-style:none;}
footer ul li{margin-bottom:10px;}
footer ul a{color:#cfc8ad; text-decoration:none; font-size:13.5px;}
footer ul a:hover{color:var(--gold-light);}
.foot-bottom{
  margin-top:50px; padding-top:24px; border-top:1px solid rgba(201,162,75,.18);
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center;
  font-size:12.5px; color:#9c9678;
}
.foot-social{display:flex; gap:10px;}
.foot-social a{
  width:34px; height:34px; border-radius:50%; border:1px solid rgba(201,162,75,.35);
  display:flex; align-items:center; justify-content:center; color:var(--cream); text-decoration:none;
}
.foot-social a:hover{background:rgba(201,162,75,.2);}
.foot-social svg{width:15px; height:15px;}

.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}
