/* ========== Base ========== */
:root{
  --bg: #ffffff;
  --text: #1a1a1a;
  --muted: #6b7280;
  --light-lavender: rgba(233, 231, 251, 0.5);
  --blue: #203a8c;          /* deep accent (buttons/links) */
  --peach: #f8e9d8;
  --lavender: #e9e7fb;
  --sand: #f3efe5;
  --mint: #e6f4ec;
  --rose: #fde8ec;
  --gray: #f4f5f7;

  --radius: 14px;
  --shadow: 0 6px 24px rgba(0,0,0,.06);
}

*{ box-sizing: border-box; }
html,body{ height: 100%; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  font-family: 'Poppins', sans-serif; 
  color: var(--text);
  background: var(--bg);
  line-height: 1.55;
}

/* Containers & sections */
.container{
  width: min(1120px, 92%);
  margin: 0 auto;
}

.section{
  padding: 80px 0;
}
.section-muted{
  background: #fafafa;
}
h1,h2,h3{
  margin: 0 0 14px;
  line-height: 1.2;
}
h1{ font-size: clamp(28px, 4vw, 44px); font-weight: 700; }
h2{ font-size: clamp(22px, 3vw, 32px); font-weight: 700; }
h3{ font-size: 20px; font-weight: 600; }

.lead{ color: var(--muted); margin-bottom: 24px; font-size: 18px; }
.muted{ color: var(--muted); }

/* ========== Header / Nav ========== */
.site-header {
  position: fixed;   /* stays at top even when scrolling */
  top: 0; left: 0; right: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #eee;
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 95px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
}
.brand-mark {
  width: 14px; height: 14px;
  background: var(--blue);
  border-radius: 3px;
}
.brand-text {
  font-weight: 700;
  font-size: 18px;
  color: var(--blue);
}

/* Logo */
.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  margin-left: 5px;
}

.logo img {
  height: 78px;   /* adjust as needed */
  width: auto;
  display: block;
}

.logo-text {
  font-size: 16px;
  font-weight: 600;
  color: var(--blue);
  line-height: 1.3;
  width: 300px; /* prevents it from stretching too long */
}

/* Nav Links as Buttons */
.nav-links {
  display: flex;
  gap: 12px;
  align-items: center;
}

.nav-links a {
  padding: 8px 16px;
  border-radius: 999px; /* pill style */
  background: var(--sand);
  color: var(--blue);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  transition: all 0.25s ease;
  box-shadow: 0 3px 8px rgba(0,0,0,0.05);
}

.nav-links a:hover {
  background: var(--blue);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.12);
}

.nav-links a.active {
  background: var(--peach);
  color: var(--text);
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

/* Mobile toggle */
.nav-toggle {
  display: none;
  border: none;
  background: transparent;
  font-size: 24px;
  cursor: pointer;
}

/* ========== Hero ========== */
.hero{ padding: 90px 0 70px; }
.hero-grid{
  display: grid; gap: 40px;
  grid-template-columns: 1.1fr .9fr;
  align-items: center;
}
.hero-text .cta-row{ display: flex; gap: 14px; flex-wrap: wrap; }
.soft-block{
  height: 320px; border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.peach{ background: rgba(248, 233, 216, 0.5); }
.lavender{ background: var(--lavender); }
.sand{ background: var(--sand); }
.mint{ background: var(--mint); }
.rose{ background: var(--rose); }
.gray{ background: var(--gray); }
.hero-patch {
  background: rgb(246, 245, 253); /* transparent peach */
  padding: 28px;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.hero-patch h1 {
  margin-top: 0;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 500;
  text-align: left;
}

.hero-patch .lead {
  margin-bottom: 18px;
}
.right-column {
  display: grid;
  gap: 20px;
}

.gif-card {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 12px;
  border-radius: var(--radius);
  background: #fff;
}

.gif-card img {
  max-width: 150%;
  height: 310px;
}

.slideshow {
  position: relative;
  overflow: hidden;
  padding: 0; /* remove extra padding inside peach block */
}

.slideshow img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius);
  border: 8px solid var(--peach); 
  position: absolute;
  top: 0; left: 0;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slideshow img.active {
  opacity: 1;
  position: relative; /* keep active one in flow */
}

/* Light lavender patch for About section */
.soft-card.light-lavender {
  background: rgba(248, 233, 216, 0.5); /* very light lavender/peach */
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 44px;
  text-align: justify;  
}
.soft-card.lavender {
  text-align: justify;
  padding: 44px;
}

/* Buttons */
.btn{
  display: inline-block;
  padding: 12px 18px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 600;
  transition: transform .05s ease, box-shadow .2s ease, background .2s ease;
}
.btn:active{ transform: translateY(1px); }
.btn-primary{
  background: var(--blue); color: #fff; box-shadow: var(--shadow);
}
.btn-primary:hover{ filter: brightness(1.05); }
.btn-outline{
  border: 2px solid var(--blue); color: var(--blue); background: transparent;
}
.btn-outline:hover{ background: rgba(32,58,140,.06); }
.btn.slim{ padding: 10px 14px; }

/* ========== About Split ========== */
.split{
  display: grid; gap: 28px;
  grid-template-columns: 1.1fr .9fr;
  align-items: start;
}
.soft-card{
  padding: 24px;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.facts{ margin: 10px 0 0; padding-left: 18px; }

/* ========== Grids / Cards ========== */
.grid {
  display: grid;
  gap: 20px;
}
.cards-3 {
  grid-template-columns: repeat(3, 1fr);
  justify-content: center;   /* center last row with fewer items */
}

.theme-card{
  padding: 22px; border-radius: var(--radius); box-shadow: var(--shadow);
}
.theme-card h3{ margin-bottom: 8px; }

.speaker-card{
  background: #fff; border-radius: var(--radius); border: 4px solid var(--lavender); box-shadow: var(--shadow);
  padding: 16px; text-align: center;
}
.speaker-card .avatar{
  width: 100%; aspect-ratio: auto; height:auto;  overflow: hidden;
  background: #f3f4f6; margin-bottom: 10px;
}
.speaker-card img{ width: 100%; height: auto; object-fit: initial; display: block;   border: 4px solid var(--peach); border-radius: 12px;    }
.speaker-card figcaption span{ display:block; color: var(--muted); font-size: 14px; }
/* Speakers refinements */
.speakers h2 { margin-bottom: 18px; }
.speakers-grid { row-gap: 22px; }
.speaker-card .name {
  font-weight: 700;
  display: block;
  margin-bottom: 4px;
}
.speaker-card .role {
  color: var(--muted);
  font-size: 14px;
  display: block;
}
/* Prefer square portraits */
.speaker-card .avatar { aspect-ratio: 1 / 1; }
.speaker-card img { object-fit: cover; }

/* ========== Schedule ========== */
.schedule{
  display: grid; gap: 12px;
  margin: 18px 0 24px;
  background: white;
}
.slot{
  display: grid; grid-template-columns: 90px 1fr; gap: 16px;
  padding: 12px 14px; border-radius: 12px; background: #fff; box-shadow: var(--shadow);
}
.slot time{ font-weight: 700; color: var(--blue); }
/* Tags + badges inside slots */
.tl-tags { margin-top: 6px; }

.tag {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  background: var(--blue);
  color: #fff;
  margin-right: 6px;
}
.tag.outline {
  background: transparent;
  border: 1px solid var(--blue);
  color: var(--blue);
}

.badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  background: #fdf3d3;
  color: #9a6a00;
  margin-right: 4px;
}

.tl-desc { margin: 6px 0 0; padding-left: 18px; }
.tl-desc li { margin-bottom: 4px; }

/* ========== Contact ========== */
.contact-grid{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 24px;
  margin-top: 22px;
}

.contact-card{
  display: grid;
  gap: 14px;
  padding: 42px; 
  background: var(--light-lavender);
}

.contact-item h4{
  margin: 0 0 4px;
  font-size: 16px;
  color: var(--blue);
  font-weight: 700;
}
.contact-item .name{
  margin: 0 0 6px;
  font-weight: 600;
}
.contact-item .line{
  margin: 2px 0;
  color: var(--text);
}
.contact-item .ico{
  margin-right: 6px;
}

.divider{
  height: 1px;
  background: rgba(0,0,0,0.08);
  margin: 4px 0;
}

/* Map card (peach patch) */
.map-card{
  padding: 12px;
  text-align: center;
}
.map-card.with-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: calc(var(--radius) - 8px);
  background: #fff;
}
.map-card figcaption{
  margin-top: 8px;
  font-size: 14px;
  color: var(--muted);
}

/* Gold button */
.btn-gold{
  background: #fdf3d3;
  color: #6752e0;
  border: 1px solid #4b4dda;
}
.btn-gold:hover{
  filter: brightness(1.02);
  box-shadow: var(--shadow);
}

/* ========== Footer ========== */
.footer{ border-top: 1px solid #eee; padding: 28px 0; background: #fafafa; }
.footer-grid{ display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.footer-links a{ color: var(--muted); text-decoration: none; margin-left: 14px; }
.footer-links a:hover{ color: var(--text); }

/* ========== Responsive (TABLET & DOWN) ========== */
@media (max-width: 980px){
  .hero-grid, .split{ grid-template-columns: 1fr; }
  .cards-3{ grid-template-columns: 1fr 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }

  .nav { height: 80px; }
  .logo img { height: 64px; }
  .logo-text { width: 220px; font-size: 14px; }
  .soft-block { height: 260px; }

  .inaugural-card { width: 100%; max-width: 420px; margin-inline: auto; }
  .inaugural-card img { height: 240px; }
  .guests-of-honour {
  text-align: center;
  margin-top: 20px;
}

.guests-of-honour .inaugural-grid {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  margin-top: 16px;
}

}



/* ========== Responsive (MOBILE) ========== */
@media (max-width: 720px){
  .section{ padding: 64px 0; }

  .cards-3{ grid-template-columns: 1fr; }

  .nav { height: 70px; padding-inline: 8px; }
  .nav-toggle{ display: inline-block; }
  .nav-links{
    position: fixed; inset: 70px 0 auto 0; background: #fff; border-bottom: 1px solid #eee;
    padding: 14px 20px; display: none; gap: 10px; flex-direction: column;
  }
  body.menu-open .nav-links{ display: flex; }

  .logo img { height: 54px; }
  .logo-text { display: none; } /* keep bar tidy on small phones */

  .hero{ padding: 84px 0 56px; }
  .soft-block { height: 220px; }
  .gif-card img { height: 200px; }
  .slideshow img { border-width: 6px; }

  .slot{ grid-template-columns: 70px 1fr; } /* time column narrower on phones */
  .tag{ font-size: 11px; padding: 3px 8px; }
  .badge{ font-size: 12px; padding: 2px 6px; }

  .reg-grid { grid-template-columns: 1fr; }

  .countdown-card{ padding: 14px; }
  .cd-box{ min-width: 72px; padding: 8px 10px; }
  .cd-box span{ font-size: 22px; }
  .cd-box small{ font-size: 11px; }

  .wave-divider svg { height: 60px; }

  .inaugural-grid { gap: 28px; }
  .inaugural-card img { height: 200px; }
}

/* Additional small devices */
@media (max-width: 400px){
  .btn{ padding: 10px 14px; }
  .btn.slim{ padding: 8px 12px; }
  .soft-block { height: 200px; }
  .hero-patch{ padding: 28px; }
}

/* ========== Extras moved here for clarity (shared) ========== */
.soft-block.with-img {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;              /* creates the peach border around */
  background: var(--peach);   /* peach border color */
}
.soft-block.with-img img {
  width: 95%;
  height: 80%;
  object-fit: cover;
  border-radius: calc(var(--radius) - 8px);
  background: #fff;
}

/* ===== Registration Section ===== */
.reg-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 28px;
}
.reg-card {
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 22px 24px;
  background: #fff;
  transition: transform .2s ease, box-shadow .2s ease;
}
.reg-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}
.reg-card h3 {
  margin-top: 0;
  margin-bottom: 14px;
  font-size: 20px;
  font-weight: 600;
  color: var(--blue);
}
.highlight {
  background: #fff7d6;
  padding: 2px 6px;
  border-radius: 6px;
  font-weight: 600;
}
.reg-card.peach { background: var(--peach); }
.reg-card.lavender { background: var(--lavender); }
.reg-card.mint { background: var(--peach); }
.reg-card p { margin: 6px 0; }
/* Mobile responsive */
@media (max-width: 900px) {
  .reg-grid { grid-template-columns: 1fr; }
}

/* ===== Inaugural Guests (cards style) ===== */
.inaugural h2 {
  text-align: left;
  margin-bottom: 32px;
}
.inaugural-grid {
  display: flex;
  justify-content: center;
  gap: 120px;
  flex-wrap: wrap;
}
.inaugural-card {
  width: 260px;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  background: #fff;
  transition: transform .25s ease, box-shadow .25s ease;
}
.inaugural-card img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  display: block;
}
.inaugural-card .info {
  padding: 14px;
  text-align: center;
  background: var(--lavender);
}
.inaugural-card.peach .info { background: var(--peach); }
.inaugural-card.lavender .info { background: var(--lavender); }
.inaugural-card .info h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--blue);
}
.inaugural-card .info p {
  margin: 4px 0 0;
  font-size: 14px;
  color: var(--text);
}
.inaugural-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}
.inaugural-wrap{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;                  /* space between ribbon and card */
}

.guest-ribbon{
  margin: 0;
  font-size: 19px;
  font-weight: 700;
  color: var(--blue);
  padding: 6px 12px;
  border-radius: 999px;
  box-shadow: var(--shadow);
  background: #fff;           /* base chip */
  border: 2px solid transparent;
}

/* pastel borders for the labels */
.guest-ribbon.peach{ border-color: var(--peach); }
.guest-ribbon.lavender{ border-color: var(--lavender); }

/* keep your existing inaugural-card styles */


/* ===== Floating CALENDAR ===== */
.floating-dates{
  position: fixed; right: 22px; bottom: 22px;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 16px;
  border: none; cursor: pointer;
  border-radius: 999px;
  background: var(--peach); color: var(--text);
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
  z-index: 60;
  transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.floating-dates:hover{ transform: translateY(-2px); box-shadow: 0 14px 36px rgba(0,0,0,.16); }
.floating-dates img{ width: 24px; height: 24px; border-radius: 6px; object-fit: cover; }
.fab-emoji{ font-size: 18px; }
.fab-label{ font-weight: 700; font-size: 14px; }
/* Optional pulse */
.floating-dates::after{
  content:""; position:absolute; inset:0; border-radius:999px; pointer-events:none;
  box-shadow: 0 0 0 0 rgba(253, 232, 236, .9);
  animation: fabPulse 2.2s ease-out infinite;
}
@keyframes fabPulse{
  0%{ box-shadow: 0 0 0 0 rgba(253, 232, 236, .9); }
  70%{ box-shadow: 0 0 0 16px rgba(253, 232, 236, 0); }
  100%{ box-shadow: 0 0 0 0 rgba(253, 232, 236, 0); }
}

/* Modal base */
.dates-modal{
  position: fixed; inset: 0; background: rgba(0,0,0,.35);
  display: none; align-items: center; justify-content: center;
  padding: 20px; z-index: 70;
}
.dates-modal[aria-hidden="false"]{ display: flex; }

/* Modal dialog */
.dates-dialog{
  position: relative; width: min(560px, 92%); background: #fff; border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 22px 22px 18px;
  border: 6px solid var(--lavender);
}
.dates-dialog h3{ margin: 0 0 10px; color: var(--blue); }
.dates-list{ margin: 10px 0 16px; padding-left: 18px; }
.dates-list li{ margin-bottom: 6px; }
.modal-close{
  position: absolute; right: 12px; top: 8px;
  border: none; background: transparent; font-size: 26px; cursor: pointer;
}

/* Small, neat button variant */
.btn-slim{ padding: 6px 12px; font-size: 14px; }

@media (max-width: 720px){
  .floating-dates{ right: 14px; bottom: 14px; padding: 10px 12px; }
  .fab-label{ display: none; } /* icon-only */
}
.modal-close {
  position: absolute;
  top: 12px;
  right: 14px;
  font-size: 22px;
  font-weight: bold;
  color: var(--blue);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: transform 0.2s ease, color 0.2s ease;
}
.modal-close:hover {
  transform: scale(1.2);
  color: #000;
}
/* Floating FAB: Flash Talk Themes (stacked above dates FAB) */
.floating-themes{
  position: fixed; right: 22px; bottom: 86px;   /* sits above the dates FAB */
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 16px;
  border: none; cursor: pointer;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
  z-index: 61;                                   /* just above the other FAB */
  transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.floating-themes:hover{ transform: translateY(-2px); box-shadow: 0 14px 36px rgba(0,0,0,.16); }

/* Optional pulse like the other FAB */
.floating-themes::after{
  content:""; position:absolute; inset:0; border-radius:999px; pointer-events:none;
  box-shadow: 0 0 0 0 rgba(233, 231, 251, .9);
  animation: fabPulse 2.2s ease-out infinite;
}
.modal-note{
  margin: 8px 0 10px;
  color: var(--text);
}
.modal-note a{
  color: var(--blue);
  font-weight: 600;
  text-decoration: none;
}
.modal-note a:hover{
  text-decoration: underline;
}

/* Mobile tweak: stack tighter */
@media (max-width: 720px){
  .floating-themes{ right: 14px; bottom: 78px; padding: 10px 12px; }
}


/* ===== Registration Countdown ===== */
.countdown-card{
  margin-top: 26px;
  padding: 18px;
  border-radius: var(--radius);
  background: var(--sand);
  border: 2px solid var(--lavender);
  box-shadow: var(--shadow);
  text-align: center;
}
.cd-label{
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 10px;
}
.cd-timer{
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.cd-box{
  min-width: 90px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  border: 2px solid var(--peach);
}
.cd-box span{
  display: block;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}
.cd-box small{
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: var(--muted);
  letter-spacing: .5px;
  text-transform: uppercase;
}
.cd-deadline{
  margin: 0;
  color: var(--muted);
}
/* Closed state */
.countdown-card.closed{
  background: #f8f8f8;
  border-color: #e5e7eb;
}
.countdown-card.closed .cd-label{
  color: #9a6a00;
}
.countdown-card.closed .cd-timer{
  display: none;
}
.countdown-card.closed .cd-deadline::before{
  content: "Registration Closed";
  display: block;
  font-weight: 800;
  color: #9a6a00;
  margin-bottom: 6px;
}

/* ===== Associates Section ===== */
.associates h2 {
  text-align: left;
  margin-bottom: 28px;
}
/* Highlighted top 3 */
.assoc-leaders {
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.assoc-card {
  text-align: center;
  width: 250px;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  background: #fff;
  padding: 20px 16px;
  transition: transform .2s ease;
}
.assoc-card:hover { transform: translateY(-6px); }
.assoc-card .icon { font-size: 28px; margin-bottom: 10px; }
.assoc-card h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--blue);
}
.assoc-card p {
  margin: 4px 0 0;
  font-size: 14px;
  color: var(--muted);
}
/* Accents */
.assoc-card.peach { border-top: 6px solid var(--peach); }
.assoc-card.lavender { border-top: 6px solid var(--lavender); }
.assoc-card.mint { border-top: 6px solid var(--mint); }
/* Members grid */
.assoc-members {
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* 4 per row */
  gap: 16px;
  margin-top: 20px;
}
@media (max-width: 992px) {
  .assoc-members {
    grid-template-columns: repeat(2, 1fr); /* 2 per row on tablet */
  }
}
@media (max-width: 600px) {
  .assoc-members {
    grid-template-columns: 1fr; /* 1 per row on mobile */
  }
}
.assoc-name {
  display: block;
  text-align: center;
  padding: 10px 14px;
  border-radius: 8px;
  background: var(--light-lavender);
  font-weight: 500;
  color: var(--blue);
  box-shadow: 0 2px 6px rgba(0,0,0,.05);
}

/* ===== SVG Wave Divider ===== */
.wave-divider {
  line-height: 0;
  overflow: hidden;
  margin-top: -1px;         /* hides seam between backgrounds */
}
.wave-divider svg {
  display: block;
  width: 100%;
  height: 80px;             /* adjust wave height */
}
.wave-divider path {
  fill: var(--peach);       /* default wave color */
  opacity: 1;
}
/* Quick color variants */
.wave-peach path { fill: var(--peach); }
.wave-lavender path { fill: var(--lavender); }
.wave-mint path { fill: var(--mint); }
/* Flip if needed */
.wave-flip svg { transform: scaleY(-1); }
/* Taller wave option */
.wave-tall svg { height: 120px; }
.wave-fafafa path {
  fill: #fafafa;
}


/* ===== Form Modal FOR GOOGLE FORM (if used) ===== */
.form-modal {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.5);
  display: none; align-items: center; justify-content: center;
  z-index: 100;
}
.form-modal[aria-hidden="false"] { display: flex; }
.form-dialog {
  background: #fff;
  border-radius: var(--radius);
  padding: 12px;
  width: 90%;
  max-width: 800px;
  box-shadow: var(--shadow);
  position: relative;
}
.form-dialog iframe { border-radius: 6px; }
.close-btn {
  position: absolute; top: 10px; right: 14px;
  border: none; background: transparent;
  font-size: 26px; cursor: pointer;
  font-weight: bold;
  color: var(--blue);
  transition: transform .2s ease;
}
.close-btn:hover { transform: scale(1.2); }
