.news-intro-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:.7rem 0 1.5rem; }
.news-intro-row .home-intro { flex:1; min-width:0; margin:0; }
.news-intro-row .filter-dropdown-container { flex:0 0 auto; }
.news-intro-row .icon-btn { display:flex; align-items:center; justify-content:center; width:44px; height:44px; }
.news-intro-row .filter-popover { width:280px; min-width:0; max-width:calc(100vw - 40px); }
.about-dialog { position:fixed; inset:0; width:min(880px,calc(100% - 32px)); max-height:calc(100% - 32px); max-height:calc(100dvh - 32px); margin:auto; padding:clamp(1.2rem,4vw,2rem); border:1px solid var(--border-color); border-radius:20px; color:var(--text-dark); background:var(--white); box-shadow:0 16px 60px #00285540; overflow:auto; overscroll-behavior:contain; }
.about-dialog::backdrop { background:rgba(7,24,43,.48); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.about-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.about-dialog h2 { margin:0; color:var(--primary-blue); font-size:1.5rem; line-height:1.25; }
.about-dialog h3 { margin:1.5rem 0 .8rem; font-size:1.15rem; color:var(--text-dark); }
.about-dialog p, .about-dialog li { line-height:1.65; font-size:1rem; }
.about-dialog p { margin:0; }
.about-dialog ul { padding-left:1.3rem; margin:0; }
.about-dialog li + li { margin-top:1rem; }
.about-dialog a { color:var(--link-color,var(--primary-blue)); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.about-dialog-close { display:flex; align-items:center; justify-content:center; flex:0 0 40px; width:40px; height:40px; margin-top:-.4rem; border:0; border-radius:8px; background:transparent; color:var(--primary-blue); font:inherit; font-size:1.8rem; cursor:pointer; }
.about-dialog :focus-visible { outline:2px solid var(--primary-blue); outline-offset:3px; }
html.about-dialog-open, html.about-dialog-open body { overflow:hidden; }
.header-menu-control { position:relative; }
.header-menu-toggle { padding:0; }
.header-menu-icon { display:grid; gap:4px; width:20px; }
.header-menu-icon span { display:block; width:20px; height:2px; border-radius:2px; background:currentColor; }
.header-menu { position:absolute; z-index:10; top:calc(100% + 10px); right:0; min-width:190px; padding:.45rem; border:1px solid var(--border-color); border-radius:12px; background:var(--white); box-shadow:var(--shadow-hover,0 15px 30px -5px rgba(0,0,0,.24)); }
.header-menu[hidden] { display:none; }
.header-menu button, .header-menu a { display:block; width:100%; box-sizing:border-box; min-height:42px; padding:.6rem .75rem; border:0; border-radius:8px; color:var(--text-dark); background:transparent; font:inherit; font-weight:600; text-align:left; text-decoration:none; cursor:pointer; }
.header-menu button:hover, .header-menu a:hover { background:var(--surface-soft); }
.header-menu button:focus-visible, .header-menu a:focus-visible { outline:2px solid var(--primary-blue); outline-offset:2px; }
.header-menu-divider { height:1px; margin:.45rem .35rem; background:var(--border-color); }
.header-menu .theme-control { position:static; }
.header-menu .theme-toggle { display:block; width:100%; min-height:42px; padding:.6rem .75rem; border:0; border-radius:8px; color:var(--text-dark); background:transparent; font:inherit; font-weight:600; text-align:left; cursor:pointer; }
.header-menu .theme-panel { position:static; width:auto; margin:.15rem 0 .4rem; padding:.45rem; border-radius:10px; box-shadow:none; }
.header-menu .theme-panel label { min-height:36px; }
.contact-dialog { width:min(560px,calc(100% - 32px)); }
.contact-form { display:grid; gap:1rem; margin-top:1.4rem; }
.contact-dialog.is-exiting { animation:contact-dialog-success-exit 280ms cubic-bezier(.3,.8,.5,1) forwards; }
.contact-form-field { display:grid; gap:.45rem; }
.contact-form label { font-weight:700; }
.contact-optional { color:var(--text-muted); font-weight:400; }
.contact-form input, .contact-form textarea { width:100%; box-sizing:border-box; padding:.8rem .9rem; border:1px solid var(--input-border,var(--border-color)); border-radius:10px; color:var(--text-dark); background:var(--background-gray,var(--white)); font:inherit; }
.contact-form textarea { resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus { outline:2px solid var(--primary-blue); outline-offset:2px; }
.contact-phone-row { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr); gap:.65rem; }
.contact-phone-row select { min-width:0; padding:.8rem .7rem; border:1px solid var(--input-border,var(--border-color)); border-radius:10px; color:var(--text-dark); background:var(--background-gray,var(--white)); font:inherit; }
.contact-phone-row select:focus { outline:2px solid var(--primary-blue); outline-offset:2px; }
.contact-form-status { min-height:1.5em; margin:0; color:var(--text-muted); line-height:1.5; }
.contact-form-status.is-error { color:var(--error-color,#b42318); }
.contact-form-status.is-success { color:#16794c; font-weight:700; }
.contact-submit-row { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1rem; }
.contact-submit-row .contact-form-status { flex:1 1 220px; }
.contact-submit { justify-self:start; min-height:42px; padding:.7rem 1rem; border:0; border-radius:10px; color:#002855; background:var(--accent-yellow); font:inherit; font-weight:700; cursor:pointer; }
.contact-submit:hover { filter:brightness(.97); }
.contact-success-dialog { position:fixed; inset:0; z-index:2; width:max-content; height:max-content; max-width:calc(100% - 32px); margin:auto; padding:.75rem 1.15rem; border:1px solid #8ed4ae; border-radius:999px; color:#0e5f38; background:#e9f8ee; box-shadow:0 14px 32px rgba(22,121,76,.2); overflow:visible; }
.contact-success-dialog::backdrop { background:rgba(7,24,43,.48); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.contact-success-dialog p { position:relative; z-index:1; margin:0; font-size:1rem; font-weight:800; line-height:1.4; white-space:nowrap; }
.contact-confetti { position:fixed; z-index:0; inset:0; width:100vw; height:100dvh; overflow:hidden; pointer-events:none; }
.contact-confetti span { position:absolute; bottom:-28px; width:14px; height:22px; border-radius:3px; background:var(--confetti-color,#ffc400); animation:contact-confetti 1500ms cubic-bezier(.1,.75,.22,1) forwards; animation-delay:var(--confetti-delay,0ms); }
html.contact-success-open, html.contact-success-open body { overflow:hidden; }
@keyframes contact-dialog-success-exit { to { transform:translateY(-130dvh) scale(.96); opacity:0; } }
@keyframes contact-confetti { to { transform:translate(var(--confetti-x),var(--confetti-y)) rotate(var(--confetti-rotate)); opacity:0; } }
@media (max-width:480px) { .contact-phone-row { grid-template-columns:1fr; } .contact-success-dialog { max-width:calc(100% - 32px); padding:.7rem 1rem; } .contact-success-dialog p { white-space:normal; text-align:center; } }
@media (prefers-reduced-motion:reduce) { .contact-dialog.is-exiting { animation:none; } .contact-confetti { display:none; } }
@media(max-width:480px) { .news-intro-row { gap:.5rem; align-items:center; } .about-dialog h2 { font-size:1.3rem; } }
.header-actions .icon-btn { border-radius:50%; }
/* Keep the hover circular even when compact header buttons are rectangular. */
html .header-actions .icon-btn:hover { background:radial-gradient(circle closest-side, var(--surface-soft) 98%, transparent 100%); }
