/* =========================================================================
   TOTALLY CANCUN — Design System
   Palette derived from the brand logo:
     Coral (sunset)  #FA534D
     Teal (lagoon)   #00BFD1
     Sun (marigold)  #FEAE00
     Sand            #FCD07F
     Palm            #4C8A12
     Stone (Mayan)   #B9793A
   ========================================================================= */

:root{
  /* --- brand colors --- */
  --coral: #FA534D;
  --coral-dark: #DE352F;
  --coral-text: #C8423E;     /* WCAG AA-safe coral for small text on light bg */
  --coral-shadow: #AD2925;
  --teal: #00BFD1;
  --teal-dark: #037D89;      /* darkened for AA-safe body/link text (was #049CAB) */
  --teal-deep: #0E2B33;      /* ink / dark sections */
  --sun: #FEAE00;
  --sun-light: #FEC94D;
  --sun-text: #986800;       /* WCAG AA-safe sun/marigold for small text on light bg */
  --sand: #FCD07F;
  --sand-light: #FFF8EA;     /* page background */
  --palm: #4C8A12;
  --palm-dark: #386B0A;
  --palm-text: #467F11;      /* WCAG AA-safe palm for small text on light bg */
  --stone: #B9793A;
  --stone-text: #9A6530;     /* WCAG AA-safe stone for small text on light bg */
  --chili: #D1453A;
  --chili-text: #C84237;     /* WCAG AA-safe chili for small text on light bg */

  /* --- neutrals --- */
  --ink: #12313A;
  --ink-soft: #3C5A62;
  --paper: #FFFFFF;
  --line: rgba(14,43,51,0.12);

  /* --- type --- */
  --font-display: 'Baloo 2', 'Arial Rounded MT Bold', sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-script: 'Caveat', cursive;
  --font-board: 'Space Mono', 'Courier New', monospace;

  /* --- layout --- */
  --maxw: 1180px;
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --shadow-sm: 0 2px 8px rgba(14,43,51,0.08);
  --shadow-md: 0 8px 24px rgba(14,43,51,0.12);
  --shadow-lg: 0 16px 40px rgba(14,43,51,0.16);
}

/* =========================================================================
   RESET
   ========================================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--sand-light);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}
img{ max-width:100%; display:block; }
a{ color: var(--teal-dark); text-decoration:none; }
a:hover{ text-decoration: underline; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family: var(--font-display); line-height:1.15; margin:0 0 .5em; color: var(--teal-deep); }
p{ margin:0 0 1em; }
button{ font-family: inherit; cursor:pointer; }
:focus-visible{ outline: 3px solid var(--sun); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.wrap{ max-width: var(--maxw); margin:0 auto; padding: 0 24px; }
.visually-hidden{ position:absolute; width:1px;height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--teal-deep); color:#fff; padding:10px 16px; z-index:999; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }

/* =========================================================================
   UTILITY TICKER BAR
   ========================================================================= */
.ticker{
  background: var(--teal-deep);
  color: #cdeef2;
  font-size: 13px;
  overflow:hidden;
  white-space: nowrap;
  border-bottom: 3px solid var(--sun);
}
.ticker .wrap{ display:flex; align-items:center; padding:8px 24px; gap: 28px; overflow-x:auto; scrollbar-width:none; }
.ticker .wrap::-webkit-scrollbar{ display:none; }
.ticker__item{ display:flex; align-items:center; gap:7px; flex:0 0 auto; }
.ticker__item b{ color:#fff; font-weight:700; }
.ticker__dot{ width:6px; height:6px; border-radius:50%; background: var(--sun); flex:0 0 auto; }

/* =========================================================================
   HEADER / NAV
   ========================================================================= */
.site-header{
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  position: sticky; top:0; z-index: 100;
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap: 20px; }
.brand{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.brand img{ height:40px; width:auto; }
.brand__tag{ font-family: var(--font-script); font-size: 20px; color: var(--ink-soft); display:none; }

.main-nav{ display:flex; align-items:center; gap: 4px; flex:1; justify-content:center; flex-wrap:wrap; }
.main-nav a{
  color: var(--ink);
  font-weight:600;
  font-size: 15px;
  padding: 9px 13px;
  border-radius: 999px;
  white-space:nowrap;
}
.main-nav a:hover{ background: var(--sand-light); text-decoration:none; color: var(--teal-dark); }
.main-nav a.is-active{ background: var(--teal); color:#fff; }

.header-tools{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.tool-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  background: var(--sand-light); border: 1px solid var(--line); color: var(--ink);
  border-radius: 999px; padding: 9px 14px; font-weight:600; font-size:14px;
}
.tool-btn:hover{ background:#fff; border-color: var(--teal); text-decoration:none; }
.hamburger{ display:none; background:none; border:none; padding:8px; }
.hamburger span{ display:block; width:24px; height:3px; background:var(--ink); margin:5px 0; border-radius:2px; }

/* language switcher */
.lang-switch{ position:relative; }
.lang-panel{
  display:none; position:absolute; right:0; top: calc(100% + 10px);
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg); padding: 10px; width: 300px; max-height: 380px; overflow-y:auto;
  grid-template-columns: 1fr 1fr; gap: 2px; z-index: 200;
}
.lang-panel.is-open{ display:grid; }
.lang-panel a{
  display:flex; align-items:center; gap:8px; padding:9px 10px; border-radius:8px; font-size:14px; color:var(--ink); font-weight:500;
}
.lang-panel a:hover{ background: var(--sand-light); text-decoration:none; }
.lang-panel a.is-current{ background: rgba(0,191,209,.12); color:var(--teal-dark); font-weight:700; }
.lang-panel .soon{ font-size:11px; color: var(--ink-soft); font-weight:400; margin-left:auto; }

/* mobile drawer */
.mobile-nav{
  display:none; position:fixed; inset:0; background: var(--teal-deep); z-index: 300;
  padding: 24px; overflow-y:auto;
}
.mobile-nav.is-open{ display:block; }
.mobile-nav__head{ display:flex; justify-content:space-between; align-items:center; margin-bottom: 24px; }
.mobile-nav__head img{ height:34px; }
.mobile-nav__close{ background:none; border:none; color:#fff; font-size:28px; line-height:1; padding:4px 10px; }
.mobile-nav a{ display:block; color:#fff; font-family: var(--font-display); font-size: 22px; padding: 12px 4px; border-bottom: 1px solid rgba(255,255,255,.12); }
.mobile-nav a:hover{ color: var(--sun); text-decoration:none; }

@media (max-width: 980px){
  .main-nav{ display:none; }
  .hamburger{ display:block; }
  .tool-btn.tool-search-text{ display:none; }
  .brand__tag{ display:none !important; }
}

/* =========================================================================
   BUTTONS
   ========================================================================= */
.btn{
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  font-weight:700; font-size:16px; padding: 13px 24px; border-radius: 999px;
  border: 2px solid transparent; transition: transform .15s ease, box-shadow .15s ease;
}
.btn:hover{ text-decoration:none; transform: translateY(-2px); }
.btn-primary{ background: var(--coral-dark); color:#fff; box-shadow: 0 6px 0 var(--coral-shadow); }
.btn-primary:hover{ box-shadow: 0 8px 0 var(--coral-shadow); }
.btn-primary:active{ transform: translateY(2px); box-shadow: 0 3px 0 var(--coral-shadow); }
.btn-outline{ background: transparent; border-color: var(--teal-deep); color: var(--teal-deep); }
.btn-outline:hover{ background: var(--teal-deep); color:#fff; }
.btn-light{ background:#fff; color: var(--teal-deep); box-shadow: 0 6px 0 rgba(0,0,0,.12); }
.btn-sm{ padding: 9px 16px; font-size: 14px; }

/* =========================================================================
   HERO (home)
   ========================================================================= */
.hero{ position:relative; padding: 56px 0 0; overflow:hidden; }
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:8px; font-family: var(--font-script); font-size: 22px;
  color: var(--coral-text); margin-bottom: 6px;
}
.hero__grid{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items:center; }
.hero h1{ font-size: clamp(34px, 5vw, 58px); letter-spacing: -0.5px; }
.hero h1 em{ font-style:normal; color: var(--coral); }
.hero p.lead{ font-size: 19px; color: var(--ink-soft); max-width: 46ch; }
.hero__ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-top: 22px; }
.hero__art{ position:relative; }
.hero__art img{ border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.hero__stats{ display:flex; gap:0; margin-top:36px; border-top:1px solid var(--line); padding-top: 22px; flex-wrap:wrap; }
.hero__stat{ padding-right: 30px; margin-right: 30px; border-right:1px solid var(--line); }
.hero__stat:last-child{ border-right:none; }
.hero__stat b{ display:block; font-family: var(--font-display); font-size: 30px; color: var(--teal-dark); }
.hero__stat span{ font-size: 13px; color: var(--ink-soft); }

@media (max-width: 860px){
  .hero__grid{ grid-template-columns: 1fr; }
  .hero__art{ order:-1; }
}
@media (max-width: 560px){
  .hero__stats{ display:grid; grid-template-columns: 1fr 1fr; gap: 20px 16px; }
  .hero__stat{ padding-right:0; margin-right:0; border-right:none; }
}

/* wave divider */
.wave-divider{ display:block; width:100%; height:auto; margin-bottom:-6px; }
.section{ padding: 64px 0; }
.section--tight{ padding: 40px 0; }
.section--sand{ background: var(--sand); }
.section--teal{ background: var(--teal); color:#fff; }
.section--ink{ background: var(--teal-deep); color:#eaf7f8; }
.section--ink h2, .section--ink h3{ color:#fff; }
.section-head{ max-width: 680px; margin: 0 auto 40px; text-align:center; }
.section-head.left{ margin: 0 0 36px; text-align:left; }
.eyebrow{
  display:inline-block; font-weight:800; letter-spacing:.08em; text-transform:uppercase; font-size:12.5px;
  color: var(--teal-dark); background: rgba(0,191,209,.12); padding:5px 12px; border-radius:999px; margin-bottom:12px;
}
.section--ink .eyebrow{ background: rgba(255,255,255,.12); color: var(--sun-light); }
.section-head h2{ font-size: clamp(26px,3.4vw,38px); }
.section-head p{ color: var(--ink-soft); font-size:16.5px; }
.section--ink .section-head p{ color:#bfe6ea; }

/* =========================================================================
   REGION / QUICK-JUMP CHIPS
   ========================================================================= */
.chip-grid{ display:grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap:14px; }
.region-chip{
  display:block; background:#fff; border:1px solid var(--line); border-radius: var(--radius-md);
  padding: 18px 20px; box-shadow: var(--shadow-sm); transition: box-shadow .15s ease, transform .15s ease;
}
.region-chip:hover{ box-shadow: var(--shadow-md); transform: translateY(-3px); text-decoration:none; }
.region-chip .code{ font-family: var(--font-board); font-size:12px; color: var(--coral-text); letter-spacing: .06em; }
.region-chip h3{ font-size: 18px; margin: 4px 0 4px; color: var(--ink); }
.region-chip p{ font-size: 14px; color: var(--ink-soft); margin:0; }

/* =========================================================================
   DEPARTMENT CARDS ("The Index")
   ========================================================================= */
.dept-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.dept-card{
  background:#fff; border-radius: var(--radius-md); border:1px solid var(--line);
  box-shadow: var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column;
  transition: transform .15s ease, box-shadow .15s ease;
}
.dept-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-md); }
.dept-card__top{ padding: 22px 22px 14px; border-top: 6px solid var(--accent, var(--teal)); }
.dept-card__label{ font-family: var(--font-board); font-size:11.5px; letter-spacing:.08em; color: var(--accent-text, var(--teal-dark)); font-weight:700; display:flex; align-items:center; gap:8px; }
.dept-card__icon{ font-size: 26px; }
.dept-card h3{ font-size: 21px; margin: 10px 0 6px; }
.dept-card p{ color: var(--ink-soft); font-size: 14.5px; margin-bottom: 14px; }
.dept-card__links{ padding: 0 22px 8px; flex:1; }
.dept-card__links li{ border-top: 1px dashed var(--line); }
.dept-card__links a{ display:block; padding: 10px 0; font-size: 14.5px; color: var(--ink); font-weight:600; }
.dept-card__links a:hover{ color: var(--accent-text, var(--teal-dark)); text-decoration:none; }
.dept-card__foot{ padding: 14px 22px 20px; margin-top:auto; }
.dept-card__foot a{ font-weight:700; font-size: 14.5px; color: var(--accent-text, var(--teal-dark)); }

@media (max-width: 980px){ .dept-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px){ .dept-grid{ grid-template-columns: 1fr; } }

/* =========================================================================
   DEPARTURES BOARD (signature element)
   ========================================================================= */
.board{
  background: linear-gradient(180deg,#0A2228,#0E2B33);
  border-radius: var(--radius-lg);
  padding: 8px;
  box-shadow: var(--shadow-lg);
  border: 1px solid rgba(255,255,255,.06);
}
.board__head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding: 16px 20px; color:#fff; font-family: var(--font-board); font-size:13px; letter-spacing:.05em;
}
.board__head .lamp{ width:9px; height:9px; border-radius:50%; background:#3CE07A; box-shadow:0 0 8px #3CE07A; display:inline-block; margin-right:8px; }
.board__table{ width:100%; border-collapse:collapse; font-family: var(--font-board); }
.board__table th{
  text-align:left; font-size: 11px; letter-spacing:.08em; text-transform:uppercase; color: var(--sun-light);
  padding: 10px 20px; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12);
}
.board__table td{ padding: 13px 20px; color:#EAFBEA; font-size: 14px; border-bottom: 1px solid rgba(255,255,255,.06); vertical-align:top; }
.board__table tr:last-child td{ border-bottom:none; }
.board__dept{ color: var(--sun-light); font-weight:700; font-size:12.5px; }
.board__status{ display:inline-block; padding:3px 10px; border-radius:999px; font-size:11px; font-weight:700; letter-spacing:.04em; }
.board__status--new{ background: rgba(60,224,122,.16); color:#3CE07A; }
.board__status--updated{ background: rgba(254,174,0,.18); color: var(--sun-light); }
.board__page a{ color:#fff; font-weight:600; }
.board__page a:hover{ color: var(--sun-light); }
.board__foot{ padding: 16px 20px 6px; }

@media (max-width: 700px){
  .board__table thead{ display:none; }
  .board__table, .board__table tbody, .board__table tr, .board__table td{ display:block; width:100%; }
  .board__table tr{ padding: 12px 4px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .board__table td{ border:none; padding: 3px 16px; }
}

/* progress counter */
.progress-block{ display:grid; grid-template-columns: auto 1fr; gap: 30px; align-items:center; }
.progress-num{ font-family: var(--font-display); font-size: 64px; color:#fff; line-height:1; }
.progress-num small{ display:block; font-family: var(--font-body); font-size: 14px; font-weight:600; color: var(--sun-light); margin-top:6px; }
.progress-bar{ height: 14px; background: rgba(255,255,255,.15); border-radius:999px; overflow:hidden; }
.progress-bar__fill{ height:100%; background: linear-gradient(90deg,var(--sun),var(--coral)); border-radius:999px; }
.progress-caption{ font-size:13px; color:#bfe6ea; margin-top:8px; }

/* =========================================================================
   CARDS / LISTS generic (articles, related links)
   ========================================================================= */
.card-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
.article-card{ background:#fff; border-radius: var(--radius-md); border:1px solid var(--line); overflow:hidden; box-shadow: var(--shadow-sm); transition: transform .15s ease, box-shadow .15s ease; }
.article-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-md); text-decoration:none; }
.article-card__media{ height:150px; display:flex; align-items:center; justify-content:center; font-size:44px; background: var(--tint, var(--sand)); }
.article-card__body{ padding: 16px 18px 20px; }
.article-card__cat{ font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color: var(--accent-text, var(--teal-dark)); }
.article-card h3{ font-size:17px; margin: 6px 0 6px; color: var(--ink); }
.article-card p{ font-size: 14px; color: var(--ink-soft); margin:0; }
@media (max-width: 980px){ .card-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px){ .card-grid{ grid-template-columns: 1fr; } }

/* =========================================================================
   BREADCRUMBS / PAGE HEADER (content pages)
   ========================================================================= */
.breadcrumbs{ font-size:13px; color: var(--ink-soft); padding: 16px 0; }
.breadcrumbs a{ color: var(--ink-soft); font-weight:600; }
.breadcrumbs .sep{ margin:0 6px; opacity:.5; }
.breadcrumbs .current{ color: var(--ink); }

.page-header{
  padding: 40px 0 44px; position:relative; overflow:hidden;
  background:
    linear-gradient(rgba(14,43,51,.5), rgba(14,43,51,.5)),
    linear-gradient(135deg, var(--accent, var(--teal)) 0%, var(--accent-2, var(--teal-dark)) 100%);
  color:#fff;
}
.page-header .wrap{ position:relative; z-index:2; }
.page-header__icon{ font-size: 44px; margin-bottom:10px; display:block; }
.page-header h1{ color:#fff; font-size: clamp(28px,4vw,44px); max-width: 20ch; }
.page-header p{ font-size:17px; max-width: 62ch; opacity:.95; }
.page-header__deco{ position:absolute; inset:0; opacity:.15; background-image: radial-gradient(circle at 85% 20%, #fff 0, transparent 45%), radial-gradient(circle at 10% 90%, #fff 0, transparent 40%); }

.dept-index-header{
  padding: 46px 0 90px; position:relative; overflow:hidden;
  background:
    linear-gradient(rgba(14,43,51,.5), rgba(14,43,51,.5)),
    linear-gradient(135deg, var(--accent, var(--teal)) 0%, var(--teal-deep) 100%);
  color:#fff;
}
.dept-index-header h1{ color:#fff; }
.dept-index-header .eyebrow{ background: rgba(255,255,255,.16); color:#fff; }
.dept-index-header p.lead{ color:#eafdff; font-size:18px; max-width:60ch; }

/* =========================================================================
   ARTICLE BODY TYPOGRAPHY
   ========================================================================= */
.article-layout{ display:grid; grid-template-columns: 1fr 300px; gap: 48px; align-items:flex-start; }
.article-body{ font-size:17px; color: var(--ink); }
.article-body h2{ font-size: 26px; margin-top: 1.6em; padding-top:.2em; }
.article-body h3{ font-size: 20px; margin-top: 1.4em; }
.article-body p{ margin-bottom:1.2em; }
.article-body ul, .article-body ol{ margin: 0 0 1.2em; padding-left: 1.3em; }
.article-body ul{ list-style: disc; }
.article-body ol{ list-style: decimal; }
.article-body li{ margin-bottom:.5em; }
.article-body a{ color: var(--teal-dark); font-weight:600; text-decoration: underline; text-decoration-color: rgba(0,191,209,.35); }
.article-body blockquote{
  margin: 1.8em 0; padding: 18px 22px; background: var(--sand-light); border-left: 5px solid var(--coral);
  border-radius: 0 12px 12px 0; font-style: italic; color: var(--ink-soft);
}
.callout{ background:#fff; border:1px solid var(--line); border-left: 5px solid var(--teal); border-radius: 0 12px 12px 0; padding: 18px 22px; margin: 1.8em 0; }
.callout h4{ margin: 0 0 6px; font-size:15px; display:flex; align-items:center; gap:8px; }
.callout p:last-child{ margin-bottom:0; }
.callout--warn{ border-left-color: var(--sun); }
.callout--tip{ border-left-color: var(--palm); }

table.data-table{ width:100%; border-collapse:collapse; margin:1.8em 0; font-size:15px; }
table.data-table th, table.data-table td{ padding:10px 14px; border:1px solid var(--line); text-align:left; }
table.data-table th{ background: var(--sand-light); font-family: var(--font-display); font-weight:600; }

.tag-row{ display:flex; flex-wrap:wrap; gap:8px; margin:1.6em 0; }
.tag-row a{ background: var(--sand-light); border:1px solid var(--line); padding:6px 13px; border-radius:999px; font-size:13px; font-weight:600; color: var(--ink); }
.tag-row a:hover{ background: var(--teal); color:#fff; border-color: var(--teal); text-decoration:none; }

/* sidebar */
.sidebar-card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius-md); padding: 20px; margin-bottom: 20px; box-shadow: var(--shadow-sm); }
.sidebar-card h4{ font-size:14px; text-transform:uppercase; letter-spacing:.05em; color: var(--ink-soft); margin-bottom:12px; }
.sidebar-card ul li{ border-top:1px dashed var(--line); }
.sidebar-card ul li:first-child{ border-top:none; }
.sidebar-card ul a{ display:block; padding:9px 0; font-size:14.5px; font-weight:600; color:var(--ink); }
.sidebar-card ul a:hover{ color: var(--teal-dark); }
.sidebar-card--cta{ background: var(--coral-dark); color:#fff; text-align:center; }
.sidebar-card--cta h4{ color:#ffe1df; }
.sidebar-card--cta p{ font-size:14px; margin-bottom:14px; }

@media (max-width: 900px){ .article-layout{ grid-template-columns: 1fr; } }

/* author / updated meta */
.meta-row{ display:flex; flex-wrap:wrap; gap: 18px; align-items:center; font-size: 13.5px; color: var(--ink-soft); margin: 18px 0 8px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.meta-row b{ color: var(--ink); }

/* share row */
.share-row{ display:flex; gap:10px; align-items:center; margin: 30px 0; flex-wrap:wrap; }
.share-row span{ font-size:13px; color:var(--ink-soft); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.share-row a{ width:36px; height:36px; border-radius:50%; background: var(--sand-light); display:flex; align-items:center; justify-content:center; font-size:15px; color: var(--ink); }
.share-row a:hover{ background: var(--teal); color:#fff; text-decoration:none; }

/* =========================================================================
   NEWS / BOARD LIST PAGE
   ========================================================================= */
.news-list{ display:flex; flex-direction:column; gap:0; }
.news-row{ display:grid; grid-template-columns: 110px 1fr auto; gap:18px; align-items:center; padding: 18px 0; border-bottom:1px solid var(--line); }
.news-row__date{ font-family: var(--font-board); font-size:12.5px; color: var(--ink-soft); }
.news-row h3{ font-size:16.5px; margin:0; }
.news-row__tag{ font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:4px 10px; border-radius:999px; background: var(--sand); color: var(--ink); white-space:nowrap; }
@media (max-width:640px){ .news-row{ grid-template-columns:1fr; gap:6px; } }

/* =========================================================================
   FAQ
   ========================================================================= */
.faq-item{ border-bottom:1px solid var(--line); padding: 18px 0; }
.faq-item summary{ font-family: var(--font-display); font-size:18px; cursor:pointer; color: var(--ink); list-style:none; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-size:26px; color: var(--coral); flex:0 0 auto; transition: transform .2s ease; }
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item p{ margin: 12px 0 0; color: var(--ink-soft); font-size:15.5px; }

/* =========================================================================
   SEARCH MODAL
   ========================================================================= */
.search-modal{ display:none; position:fixed; inset:0; background: rgba(14,43,51,.6); z-index:400; padding: 8vh 20px; }
.search-modal.is-open{ display:block; }
.search-modal__box{ max-width:640px; margin:0 auto; background:#fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); overflow:hidden; }
.search-modal__input-row{ display:flex; align-items:center; gap:10px; padding: 18px 22px; border-bottom:1px solid var(--line); }
.search-modal__input-row input{ flex:1; border:none; outline:none; font-size:18px; font-family: var(--font-body); }
.search-modal__close{ background:none; border:none; font-size:22px; color: var(--ink-soft); }
.search-modal__results{ max-height: 50vh; overflow-y:auto; padding: 8px; }
.search-modal__results a{ display:block; padding: 12px 16px; border-radius:10px; color:var(--ink); }
.search-modal__results a:hover{ background: var(--sand-light); text-decoration:none; }
.search-modal__results .r-dept{ font-size:11px; font-weight:800; color: var(--teal-dark); text-transform:uppercase; margin-right:8px; }
.search-modal__empty{ padding: 30px 20px; text-align:center; color: var(--ink-soft); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{ background: var(--teal-deep); color:#bfe0e4; padding-top: 56px; }
.footer-top{ display:grid; grid-template-columns: 1.4fr repeat(4,1fr); gap: 30px; padding-bottom: 40px; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-brand img{ height:34px; margin-bottom:14px; }
.footer-brand p{ font-size:14px; color:#9fc9ce; max-width:32ch; }
.footer-social{ display:flex; gap:10px; margin-top:16px; }
.footer-social a{ width:34px; height:34px; border-radius:50%; background: rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:#fff; }
.footer-social a:hover{ background: var(--coral-dark); text-decoration:none; }
.footer-col h5{ color:#fff; font-family: var(--font-display); font-size:15px; margin-bottom:14px; }
.footer-col li{ margin-bottom:9px; }
.footer-col a{ color:#a9d3d7; font-size:14px; }
.footer-col a:hover{ color:#fff; text-decoration:none; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding: 20px 0 30px; font-size:13px; color:#7fb0b5; flex-wrap:wrap; gap:10px; }
.footer-bottom a{ color:#a9d3d7; }

@media (max-width: 900px){
  .footer-top{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px){
  .footer-top{ grid-template-columns: 1fr; }
}

/* =========================================================================
   404
   ========================================================================= */
.error-page{ text-align:center; padding: 100px 24px; }
.error-page .code{ font-family: var(--font-board); font-size:16px; color: var(--coral-text); letter-spacing:.1em; }
.error-page h1{ font-size: clamp(32px,6vw,64px); margin: 10px 0 14px; }
.error-page p{ color: var(--ink-soft); font-size:17px; max-width:50ch; margin:0 auto 26px; }

/* =========================================================================
   MISC
   ========================================================================= */
.divider-space{ height: 1px; background: var(--line); margin: 0; }
.center{ text-align:center; }
.mt-0{ margin-top:0; }
.small-note{ font-size:13px; color: var(--ink-soft); }
::selection{ background: var(--sun-light); color: var(--teal-deep); }
