/*
Theme Name: Havonos
Theme URI: https://havonos.nl/
Author: Webshade / migration build
Description: WordPress theme reconstructed from the former Havonos Joomla website.
Version: 1.0.2
Text Domain: havonos
*/

:root {
  --havonos-red: #db212a;
  --havonos-red-dark: #b91921;
  --havonos-green: #99cf45;
  --havonos-text: #303030;
  --havonos-muted: #707070;
  --havonos-light: #f5f5f5;
  --havonos-border: #e1e1e1;
  --havonos-max: 1170px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--havonos-text);
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.85;
  background: #fff;
}
a { color: var(--havonos-red); text-decoration: none; }
a:hover, a:focus { color: var(--havonos-red-dark); text-decoration: underline; }
img { max-width: 100%; height: auto; }
figure { margin: 0 0 1.5rem; }
h1,h2,h3,h4,h5,h6 { font-family: Montserrat, Arial, sans-serif; line-height: 1.25; margin: 0 0 .75rem; color: #222; }
h1 { font-size: clamp(2rem,4vw,3rem); }
h2 { font-size: clamp(1.6rem,3vw,2.25rem); }
h3 { font-size: 1.35rem; }
.container { width: min(calc(100% - 40px), var(--havonos-max)); margin: 0 auto; }
.screen-reader-text { position:absolute; left:-9999px; }

/* Header */
.site-header { background:#fff; border-bottom:5px solid var(--havonos-red); position:relative; z-index:100; }
.header-inner { min-height:95px; display:flex; align-items:center; gap:30px; }
.site-branding { flex:0 0 auto; }
.site-logo img { height:90px; width:auto; display:block; }
.site-nav { margin-left:auto; }
.site-nav ul { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:2px; }
.site-nav li { position:relative; }
.site-nav a { display:block; padding:34px 12px 28px; color:#222; font-family:Montserrat,Arial,sans-serif; font-size:14px; font-weight:600; text-decoration:none; }
.site-nav > div > ul > li.current-menu-item > a,
.site-nav > div > ul > li.current-menu-ancestor > a,
.site-nav a:hover { color:var(--havonos-red); }
.site-nav .sub-menu { display:none; position:absolute; left:0; top:100%; min-width:245px; background:#fff; box-shadow:0 12px 30px rgba(0,0,0,.12); border-top:3px solid var(--havonos-red); }
.site-nav li:hover > .sub-menu, .site-nav li:focus-within > .sub-menu { display:block; }
.site-nav .sub-menu a { padding:11px 16px; border-bottom:1px solid #eee; font-weight:500; }
.menu-toggle { display:none; margin-left:auto; border:0; background:var(--havonos-red); color:#fff; padding:10px 14px; border-radius:4px; font-size:20px; cursor:pointer; }

/* Hero */
.home-hero { position:relative; overflow:hidden; background:#111; min-height:clamp(320px,42vw,560px); }
.hero-slide { position:absolute; inset:0; opacity:0; transition:opacity 1s ease; background-size:cover; background-position:center; }
.hero-slide.is-active { opacity:1; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,0)); }
.hero-controls { position:absolute; inset:50% 20px auto; transform:translateY(-50%); display:flex; justify-content:space-between; pointer-events:none; }
.hero-arrow { pointer-events:auto; width:44px; height:44px; border:0; border-radius:50%; background:rgba(255,255,255,.8); color:#222; font-size:24px; cursor:pointer; }
.home-quote { padding:25px 20px; text-align:center; font:400 22px/1.5 "EB Garamond", Georgia, serif; }

/* Home cards */
.home-features { padding:32px 0 18px; }
.feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.feature-card { display:flex; flex-direction:column; min-width:0; }
.feature-card h3 { min-height:54px; }
.feature-image { aspect-ratio:4/3; object-fit:cover; width:100%; border-radius:3px; }
.feature-card p { flex:1; }
.btn, .wp-block-button__link, input[type=submit], button.havonos-button { display:inline-block; background:var(--havonos-red); border:1px solid var(--havonos-red); color:#fff; padding:10px 18px; border-radius:4px; font-weight:700; line-height:1.4; text-decoration:none; transition:.2s ease; }
.btn:hover, .btn:focus, .wp-block-button__link:hover, input[type=submit]:hover { background:#fff; color:var(--havonos-red); text-decoration:none; }
.btn-green { background:var(--havonos-green); border-color:var(--havonos-green); color:#1f3210; }

/* Content */
.page-banner { background:var(--havonos-light); border-bottom:1px solid var(--havonos-border); padding:20px 0; }
.page-banner h1 { margin:0; font-size:2rem; }
.site-main { padding:42px 0 60px; }
.content-narrow { max-width:900px; }
.entry-content:after { content:""; display:block; clear:both; }
.entry-content img[style*="float: right"], .entry-content .alignright { float:right; margin:0 0 20px 25px; max-width:48%; }
.entry-content img[style*="float: left"], .entry-content .alignleft { float:left; margin:0 25px 20px 0; max-width:48%; }
.entry-content table { width:100%; border-collapse:collapse; margin:1.5rem 0; }
.entry-content td,.entry-content th { border-top:2px solid #d2d2d2; padding:10px; vertical-align:top; }
.entry-content iframe { max-width:100%; }
.entry-content img { border-radius:2px; }

/* News */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.news-card { border:1px solid var(--havonos-border); background:#fff; display:flex; flex-direction:column; min-width:0; }
.news-thumb { display:block; aspect-ratio:16/10; overflow:hidden; background:#eee; }
.news-thumb img { width:100%; height:100%; object-fit:cover; }
.news-card-body { padding:20px; display:flex; flex-direction:column; flex:1; }
.news-card h2,.news-card h3 { font-size:1.2rem; }
.news-meta { color:var(--havonos-muted); font-size:13px; margin-bottom:10px; }
.news-card .btn { margin-top:auto; align-self:flex-start; }
.section-title { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:24px; }

/* Projects */
.project-status-nav { background:var(--havonos-light); margin-bottom:32px; }
.project-status-nav .container { display:grid; grid-template-columns:repeat(3,1fr); }
.project-status-nav a { text-align:center; text-transform:uppercase; font-size:14px; padding:15px 8px; color:#222; font-weight:700; }
.project-status-nav a:hover,.project-status-nav a.is-active { color:var(--havonos-red); text-decoration:none; }
.project-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.project-card { border:1px solid var(--havonos-border); background:#fff; }
.project-thumb { aspect-ratio:4/3; overflow:hidden; background:#eee; }
.project-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.project-card:hover .project-thumb img { transform:scale(1.025); }
.project-card h2 { font-size:1rem; padding:14px; margin:0; }
.project-card a { color:#222; text-decoration:none; }
.project-card a:hover h2 { color:var(--havonos-red); }
.project-status-badge { display:inline-block; margin:0 0 20px; background:var(--havonos-green); padding:5px 10px; border-radius:3px; font-size:13px; font-weight:700; }

/* Donation */
.home-donate { margin-top:52px; background:var(--havonos-red); color:#fff; padding:35px 0; }
.home-donate .container { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.home-donate h2,.home-donate p { color:#fff; margin:0; }
.home-donate .btn { background:#fff; color:var(--havonos-red); border-color:#fff; white-space:nowrap; }

/* Footer */
.site-footer { background:#252525; color:#ccc; padding:40px 0 18px; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; }
.site-footer h3 { color:#fff; }
.site-footer a { color:#fff; }
.site-footer ul { list-style:none; margin:0; padding:0; columns:2; }
.site-footer li { margin-bottom:7px; }
.footer-bottom { border-top:1px solid #444; margin-top:30px; padding-top:16px; color:#aaa; font-size:13px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer-sponsor { color:#999; display:inline-flex; align-items:center; gap:9px; }
.footer-sponsor-label { white-space:nowrap; }
.footer-sponsor-logo { display:inline-flex; align-items:center; line-height:1; border-radius:3px; }
.footer-sponsor-logo img { display:block; width:auto; height:22px; max-width:145px; object-fit:contain; }
.footer-sponsor-logo:hover img,.footer-sponsor-logo:focus img { opacity:.86; }

.pagination,.nav-links { margin-top:35px; display:flex; gap:8px; flex-wrap:wrap; }
.page-numbers { padding:7px 11px; border:1px solid #ddd; }
.page-numbers.current { background:var(--havonos-red); border-color:var(--havonos-red); color:#fff; }

@media (max-width: 1024px) {
  .feature-grid { grid-template-columns:repeat(2,1fr); }
  .project-grid { grid-template-columns:repeat(3,1fr); }
  .news-grid { grid-template-columns:repeat(2,1fr); }
  .menu-toggle { display:block; }
  .site-nav { display:none; position:absolute; top:95px; left:0; right:0; background:#fff; border-bottom:3px solid var(--havonos-red); padding:8px 20px 20px; }
  .site-nav.is-open { display:block; }
  .site-nav ul { display:block; }
  .site-nav a { padding:10px 8px; }
  .site-nav .sub-menu { display:block; position:static; min-width:0; box-shadow:none; border:0; padding-left:18px; }
}
@media (max-width: 700px) {
  .container { width:min(calc(100% - 28px), var(--havonos-max)); }
  .site-logo img { height:72px; }
  .header-inner { min-height:78px; }
  .site-nav { top:78px; }
  .feature-grid,.news-grid,.project-grid { grid-template-columns:1fr; }
  .project-status-nav .container { grid-template-columns:1fr; }
  .project-status-nav a { border-bottom:1px solid #ddd; }
  .home-donate .container { display:block; }
  .home-donate .btn { margin-top:18px; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { align-items:flex-start; flex-direction:column; gap:4px; }
  .entry-content img[style*="float: right"],.entry-content img[style*="float: left"],.entry-content .alignright,.entry-content .alignleft { float:none; margin:15px 0; max-width:100%; }
}


@media (max-width: 600px) {
  .footer-sponsor { width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .footer-sponsor-logo img { height:20px; max-width:132px; }
}
