/* Minimal UI replacement for removed Materialize CSS */
:root {
  --brand-bg: #1a7a99;
  --brand-bg-dark: #145866;
  --brand-accent: #0d4b56;
  --dropdown-bg: #0f1b21;
  --dropdown-bg-hover: #1d2d35;
  --dropdown-border: #22363f;
  --dropdown-separator: #2d4650;
  --dropdown-text: #f5f8f9;
  --dropdown-text-dim: #c4d2d8;
  --radius-s:4px; --radius-m:8px;
  --shadow-elev:0 4px 14px rgba(0,0,0,.15);
  --focus-ring:0 0 0 3px rgba(26,122,153,.35);
  --transition-fast:120ms cubic-bezier(.4,.0,.2,1);
  font-size:16px;
}

/* Basic reset subset */
* { box-sizing:border-box; }
html,body { margin:0; padding:0; }
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; line-height:1.4; }

/* Navigation */
header { background: var(--brand-bg); box-shadow: var(--shadow-elev); }
header#main-header { display:flex; flex-direction:row; align-items:center; gap:8px; }
header#main-header nav { flex:1 1 auto; }
header#main-header .language-current span { display:inline-block; min-width:18px; }
header#main-header .language-current i { line-height:1; }
header#main-header .language-dropdown { margin-left:4px; }
header#main-header .language-current { font-weight:600; }
nav ul { list-style:none; margin:0; padding:0; display:flex; align-items:center; }
nav ul li { margin:0; }
nav ul a { padding:0 8px; height:48px; display:flex; align-items:center; color:#fff; text-decoration:none; font-weight:500; font-size:.9rem; letter-spacing:.5px; position:relative; }
nav ul a.active, nav ul a:focus, nav ul a:hover { background: var(--brand-bg-dark); }
nav ul a:focus-visible { outline: var(--focus-ring); }

/* Language dropdown */
.header-language-selector { margin-left:auto; display:flex; align-items:center; padding-right:8px; }
.language-dropdown { position:relative; cursor:pointer; user-select:none; }
.language-current { display:flex; align-items:center; gap:4px; padding:4px 6px; border-radius: var(--radius-s); color:#fff; }
.language-dropdown.open .language-current { background: var(--brand-bg-dark); }
.language-options { position:absolute; top:100%; right:0; background:var(--dropdown-bg); color:var(--dropdown-text); min-width:160px; border-radius: var(--radius-m); box-shadow: var(--shadow-elev); padding:4px 0; display:none; z-index:20; border:1px solid var(--dropdown-border); backdrop-filter:saturate(160%) blur(2px); }
.language-dropdown.open .language-options { display:block; }
.language-option { display:flex; align-items:center; gap:8px; padding:8px 12px; font-size:.85rem; cursor:pointer; line-height:1.1; position:relative; }
.language-option + .language-option { border-top:1px solid var(--dropdown-separator); }
.language-option span { color:var(--dropdown-text); }
.language-option:hover { background:var(--dropdown-bg-hover); }
.language-option:active { background:var(--brand-bg); }
.language-option:focus-visible { outline: var(--focus-ring); outline-offset:0; }

/* Current language highlight inside dropdown */
.language-option[data-active="true"] { background:var(--brand-bg-dark); }
.language-option[data-active="true"] span { font-weight:600; }

/* Buttons */
button, .btn { background: var(--brand-bg); color:#fff; border:none; border-radius: var(--radius-s); padding:10px 18px; font-size:.9rem; font-weight:500; cursor:pointer; line-height:1; display:inline-flex; align-items:center; gap:6px; transition:background var(--transition-fast), transform var(--transition-fast); }
button:hover, .btn:hover { background: var(--brand-bg-dark); }
button:active, .btn:active { transform:translateY(1px); }
button:focus-visible, .btn:focus-visible { outline: var(--focus-ring); }

/* Forms */
form input[type=text], form input[type=email], form textarea { width:100%; padding:10px 12px; border:1px solid #b8c9d1; border-radius: var(--radius-s); font:inherit; background:#fff; transition:border-color var(--transition-fast), box-shadow var(--transition-fast); }
form textarea { resize:vertical; min-height:120px; }
form input:focus, form textarea:focus { border-color: var(--brand-bg); box-shadow: var(--focus-ring); outline:none; }

/* Modals */
.modal { display:none; position:fixed; inset:0; z-index:1000; padding:32px 16px; background:rgba(0,0,0,.45); backdrop-filter:saturate(160%) blur(3px); }
.modal.open { display:block; }
.modal > .modal-dialog { background:#fff; margin:auto; max-width:420px; width:100%; border-radius: var(--radius-m); box-shadow: var(--shadow-elev); overflow:hidden; display:flex; flex-direction:column; animation:pop .35s cubic-bezier(.34,1.4,.64,1); }
@keyframes pop { 0% { transform:scale(.92); opacity:0; } 100% { transform:scale(1); opacity:1; } }
.modal-content { padding:22px 22px 10px; }
.modal-footer { display:flex; justify-content:flex-end; gap:10px; padding:10px 16px 18px; background:#f3f7f9; }
.modal h4 { margin:0 0 10px; font-size:1.15rem; }
.modal-close { cursor:pointer; color: var(--brand-bg); text-decoration:none; font-weight:600; font-size:.85rem; }
.modal-close:hover { text-decoration:underline; }

/* Utility */
.hidden { display:none !important; }
.flex { display:flex !important; }
.center { text-align:center; }

/* Remove leftover waves classes gracefully */
[class*="waves-"] { all:unset; }

/* Accessibility focus outline fallback */
:focus-visible { outline: var(--focus-ring); }

/* Basic container adjustments to reduce CLS */
#main picture, #main img { display:block; max-width:100%; height:auto; }

/* Hero (restore cover behavior after Materialize removal) */
#main { position:relative; width:100%; min-height:60vh; height:60vh; overflow:hidden; }
#main #main-picture { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 25%; max-width:none; }

@media (max-width: 800px) {
  #main { min-height:55vh; height:55vh; }
  #main #main-picture { object-position:50% 35%; }
}

@media (max-width: 480px) {
  #main { min-height:50vh; height:50vh; }
  #main #main-picture { object-position:50% 40%; }
}

/* Ensure welcome section starts immediately below hero without unintended large margin */
#welcome { margin-top:0 !important; padding-top:1.5rem; }
.spacer-hero-offset { padding-top:10vh; }
