/*
Theme Name: RePelis24
Theme URI: https://repelis24.org/
Author: RePelis24
Description: An independent movie and TV utility site for legal viewing decisions.
Version: 0.3.3
Requires at least: 7.0
Requires PHP: 8.3
Tested up to: 7.1.2
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: repelis24
*/

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Instrument+Serif:ital@0;1&display=swap');

:root {
  --ink: #19383b;
  --muted: #4e6869;
  --paper: #f2f5ed;
  --surface: #fcfcf6;
  --line: #cddbd1;
  --teal: #126b65;
  --teal-dark: #0b4d4a;
  --lime: #dce992;
  --coral: #a73d2d;
  --serif: "Instrument Serif", Georgia, serif;
  --sans: "DM Sans", "Avenir Next", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.65; }
img { max-width: 100%; height: auto; }
a { color: var(--teal-dark); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--coral); }
:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; border-radius: 3px; }
button, input, select, textarea { font: inherit; }
button, .wp-element-button, input[type="submit"] { min-height: 44px; }
.wp-site-blocks { overflow: clip; }
.wp-block-group.alignfull { padding-left: max(1.25rem, calc((100vw - 1240px)/2)); padding-right: max(1.25rem, calc((100vw - 1240px)/2)); }
.wp-block-post-title, h1, h2, h3 { color: var(--ink); font-family: var(--serif); font-weight: 500; line-height: 1.12; letter-spacing: -.035em; }
h1, .wp-block-post-title { font-size: clamp(2.55rem, 6vw, 5.7rem); margin: 0 0 1.25rem; max-width: 16ch; }
h2 { font-size: clamp(1.9rem, 3.6vw, 3.3rem); margin: 0 0 1rem; }
h3 { font-size: clamp(1.3rem, 2vw, 1.8rem); margin: 0 0 .5rem; }
p { margin: 0 0 1.25rem; }
.site-header { position: relative; z-index: 5; border-bottom: 1px solid var(--line); background: rgba(244,247,241,.96); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; max-width:1320px; min-height:82px; margin:auto; padding: .65rem clamp(1rem,4vw,3.4rem); }
.wp-block-site-title { margin:0; font-family:var(--sans); font-size:1.26rem; font-weight:800; letter-spacing:-.06em; }
.wp-block-site-title a { color:var(--ink); text-decoration:none; }
.brand-mark { display:inline-flex; align-items:center; gap:.7rem; }
.brand-mark:before { content:""; width:30px; height:30px; border-radius:9px 9px 9px 2px; background:var(--teal); display:block; box-shadow:inset -7px -7px 0 var(--lime); transform:rotate(-4deg); }
.wp-block-navigation { color:var(--ink); font-size:.92rem; font-weight:650; }
.wp-block-navigation .wp-block-navigation-item__content { display:flex; align-items:center; min-height:44px; padding:.45rem .7rem; text-decoration:none; border-radius:7px; }
.wp-block-navigation .wp-block-navigation-item__content:hover, .wp-block-navigation .current-menu-item > a { color:var(--teal-dark); background:#e6eee6; }
.wp-block-navigation__submenu-container { border:1px solid var(--line)!important; border-radius:12px; background:var(--surface)!important; padding:.4rem!important; box-shadow:0 16px 40px #18343a1a; }
.wp-block-navigation__responsive-container.is-menu-open { padding:1.5rem; background:var(--paper); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items:stretch; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap:.35rem; }
.skip-link { position:absolute; top:-100px; left:1rem; z-index:99; background:var(--surface); padding:.75rem 1rem; border:2px solid var(--teal); border-radius:6px; }
.skip-link:focus { top:1rem; }
main { width:min(100% - 2.5rem, 1180px); margin:0 auto; padding:clamp(3rem,8vw,7rem) 0; }
.home-intro { max-width:850px; padding:clamp(2.8rem,8vw,7rem) 0 3rem; }
.home-intro p, .archive-intro p { color:var(--muted); font-size:clamp(1.05rem,1.5vw,1.25rem); max-width:64ch; }
.eyebrow { color:var(--teal); font-size:.75rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; margin:0 0 1rem; }
.hero-band { position:relative; margin:0 calc((1180px - 100vw)/2); padding:clamp(2rem,6vw,4.5rem) max(1.25rem,calc((100vw - 1180px)/2)); background:var(--teal-dark); color:#f4f7f1; }
.hero-band h1 { color:#f4f7f1; }
.hero-band p { color:#d4e2d8; max-width:58ch; }
.tool-list { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1rem; margin:2rem 0 4rem; }
.tool-tile, .wp-block-post, .tool-panel, .tool-card { min-width:0; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:0 8px 28px rgba(24,52,58,.045); }
.tool-tile { grid-column:span 4; display:flex; min-height:210px; flex-direction:column; justify-content:space-between; padding:1.45rem; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; }
.tool-tile:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(24,52,58,.1); }
.tool-tile h3 { font-size:1.55rem; }
.tool-tile p { color:var(--muted); margin:0; font-size:.95rem; }
.tile-arrow { align-self:flex-end; color:var(--coral); font-size:1.45rem; line-height:1; }
.content-prose { max-width:760px; }
.archive-intro { padding-bottom:2rem; border-bottom:1px solid var(--line); margin-bottom:2rem; }
.post-grid .wp-block-post-template { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.wp-block-post { padding:1.5rem; }
.wp-block-post-title { font-size:clamp(1.4rem,2vw,2rem); letter-spacing:-.025em; }
.wp-block-post-title a { text-decoration:none; }
.wp-block-post-excerpt, .wp-block-post-date, .wp-block-post-terms { color:var(--muted); font-size:.92rem; }
.wp-block-post-featured-image { margin:0 0 1rem; }
.wp-block-post-featured-image img { display:block; border-radius:10px; }
.wp-block-query-pagination { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin-top:2rem; }
.wp-block-query-pagination a, .wp-block-query-pagination span { display:inline-flex; align-items:center; min-height:44px; padding:.45rem .8rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.single-layout { max-width:820px; margin:0 auto; }
.single-layout .wp-block-post-title { max-width:18ch; }
.single-meta { color:var(--muted); font-size:.9rem; margin-bottom:2rem; }
.single-layout .wp-block-post-content { font-size:1.08rem; }
.single-layout .wp-block-post-content h2 { margin-top:2.5rem; }
.tool-heading { padding:clamp(2rem,5vw,4rem); border-radius:20px; background:var(--teal-dark); color:#fffefa; margin-bottom:1.5rem; }
.tool-heading h1 { color:#fffefa; margin-bottom:.6rem; }
.tool-heading .tool-lede { color:#d9e7df; max-width:65ch; font-size:1.06rem; margin:0; }
.tool-panel { padding:clamp(1rem,3vw,2rem); }
.tool-form { display:grid; gap:1rem; }
.tool-form input, .tool-form select, .tool-form textarea, .wp-block-search__input { width:100%; min-height:48px; padding:.75rem .9rem; color:var(--ink); background:#fff; border:1px solid #a9bfba; border-radius:8px; }
.tool-form label { display:block; font-weight:700; margin-bottom:.35rem; }
.tool-form button, .tool-form input[type="submit"], .tool-actions a, .wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.65rem 1.1rem; color:#fffefa; background:var(--teal); border:0; border-radius:8px; font-weight:750; text-decoration:none; cursor:pointer; }
.tool-form button:hover, .tool-form input[type="submit"]:hover, .wp-block-button__link:hover { background:var(--teal-dark); color:white; }
.tool-results { margin-top:1.5rem; }
.tool-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.tool-card { padding:1.15rem; }
.tool-status { display:inline-flex; align-items:center; min-height:30px; padding:.18rem .65rem; border-radius:999px; color:#164c3d; background:#e2f1d9; font-size:.78rem; font-weight:800; }
.tool-status:not([data-state]) { display:none; }
.tool-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1rem; }
.tool-actions a { min-height:44px; padding:.5rem .85rem; }
.wp-block-search { display:flex; max-width:680px; gap:.6rem; }
.wp-block-search__button { min-height:48px; padding:.5rem 1rem; border:0; border-radius:8px; color:white; background:var(--teal); font-weight:700; cursor:pointer; }
.site-footer { background:#e4ece4; border-top:1px solid var(--line); padding:2.5rem max(1.25rem,calc((100vw - 1180px)/2)); }
.footer-inner { max-width:1180px; margin:auto; display:grid; grid-template-columns:1.2fr 1fr; gap:2rem; align-items:start; }
.footer-inner p { color:#435e5d; font-size:.88rem; }
.footer-links { display:flex; flex-wrap:wrap; gap:.3rem 1.2rem; }
.footer-links a { display:inline-flex; min-height:44px; align-items:center; font-size:.9rem; font-weight:650; }
.wp-block-repelis24-disclaimer { padding:1rem 1.1rem; border-left:3px solid var(--coral); background:#f5f0e4; color:#3c5554; font-size:.87rem; }
.error-panel { padding:clamp(2rem,6vw,5rem); border-radius:20px; background:#e4ece4; }
.error-panel .wp-block-search { margin-top:1.5rem; }
.wp-block-separator { border-color:var(--line); }
.wp-block-post-content > * { max-width:760px; }
.wp-block-post-content > .alignwide { max-width:1180px; }
.wp-block-post-content > .alignfull { max-width:none; }
@media (max-width: 900px) {
  .tool-tile { grid-column:span 6; }
  .post-grid .wp-block-post-template { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
  main { width:min(100% - 2rem,1180px); padding:2.8rem 0 4rem; }
  .header-inner { min-height:70px; }
  .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
  .tool-tile { grid-column:1 / -1; min-height:175px; }
  .post-grid .wp-block-post-template, .tool-grid { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; gap:.75rem; }
  .wp-block-search { flex-wrap:wrap; }
  .wp-block-search__input { flex:1 1 100%; }
  .wp-block-search__button { width:100%; }
  .hero-band { margin-left:-1rem; margin-right:-1rem; }
}
@media (max-width: 360px) {
  body { font-size:15px; }
  main { width:calc(100% - 1.5rem); }
  .header-inner { padding-inline:.75rem; gap:.5rem; }
  .wp-block-site-title { font-size:1.08rem; }
  .tool-panel { padding:.85rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}

/* The viewing index: generous editorial type, ruled details, and deliberate utility. */
body { -webkit-font-smoothing:antialiased; }
::selection { background:var(--lime); color:var(--ink); }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--coral); outline-offset:3px; }
a { transition:color .18s ease; }
button, input[type="button"], input[type="submit"], select { cursor:pointer; }
button:disabled, input:disabled { cursor:not-allowed; opacity:.55; }
input::placeholder, textarea::placeholder { color:#637b79; opacity:1; }
main.wp-block-group { width:min(calc(100% - 3rem),1180px); padding:clamp(3.5rem,7vw,7rem) 0 clamp(5rem,9vw,9rem); }
main > .wp-block-group:first-child:not(.hero-band) { margin-top:0; }
h1, .wp-block-post-title { font-size:clamp(3.2rem,6.4vw,6.75rem); letter-spacing:-.045em; }
h2 { font-size:clamp(2.15rem,3.7vw,3.8rem); }
h3 { font-size:clamp(1.55rem,2vw,2rem); }
.eyebrow { color:var(--teal-dark); letter-spacing:.19em; font-size:.72rem; line-height:1.4; }
.site-header { z-index:20; background:var(--paper); }
.header-inner { max-width:1328px; min-height:88px; padding-inline:clamp(1.5rem,4vw,4rem); }
.brand-mark { gap:.85rem; flex:none; }
.brand-mark::before { width:34px; height:34px; border-radius:3px 12px 3px 3px; box-shadow:inset -9px -9px 0 var(--lime); }
.wp-block-site-title { font-size:1.37rem; letter-spacing:-.07em; line-height:1; }
.wp-block-navigation { font-size:.85rem; }
.wp-block-navigation .wp-block-navigation-item__content { padding:.55rem .75rem; border-radius:4px; }
.wp-block-navigation .wp-block-navigation-submenu__toggle { min-width:44px; min-height:44px; }
.wp-block-navigation__submenu-container { min-width:245px!important; padding:.55rem!important; border-radius:6px; box-shadow:0 18px 35px #19383b20; }
.wp-block-navigation__submenu-container .wp-block-navigation-item__content { white-space:normal; line-height:1.3; }
.skip-link { top:0; left:0; transform:translateY(-150%); margin:0; z-index:100; }
.skip-link:focus-within { transform:translateY(0); }
.skip-link a { display:block; }
.home-intro { padding-top:clamp(1rem,3vw,3rem); padding-bottom:clamp(2.5rem,5vw,5rem); }
.home-intro h1 { max-width:13ch; }
.home-intro p:not(.eyebrow) { font-size:clamp(1.15rem,1.8vw,1.45rem); line-height:1.5; max-width:57ch; }
.hero-band { margin:0 calc(50% - 50vw) clamp(4rem,8vw,8rem); padding:clamp(3.5rem,7vw,7rem) max(1.5rem,calc((100vw - 1180px)/2)); background:#103f40; }
.hero-band::before { content:""; position:absolute; right:6%; top:0; width:26%; height:100%; border-left:1px solid #ffffff1b; border-right:1px solid #ffffff1b; transform:skew(-17deg); pointer-events:none; }
.hero-band .eyebrow, .tool-heading .eyebrow { color:var(--lime); }
.hero-band h1 { position:relative; max-width:12ch; font-size:clamp(3rem,6vw,6.3rem); }
.hero-band p:not(.eyebrow) { position:relative; font-size:clamp(1.1rem,1.6vw,1.35rem); line-height:1.55; }
.tool-list { margin:2.2rem 0 clamp(5rem,9vw,9rem); gap:1rem; }
.tool-tile, .post-grid .wp-block-post, .tool-card, .tool-panel { border-radius:4px; box-shadow:none; }
.tool-tile { position:relative; min-height:240px; padding:1.55rem; border-top:3px solid var(--teal); background:var(--surface); }
.tool-tile:nth-child(2n) { border-top-color:var(--coral); }
.tool-tile:nth-child(3n) { border-top-color:#829326; }
.tool-tile:hover, .tool-tile:focus-visible { transform:translateY(-3px); box-shadow:0 18px 32px #19383b12; }
.tool-tile h3 { font-size:clamp(1.7rem,2.4vw,2.15rem); margin:.8rem 0; line-height:1.05; }
.tool-tile .eyebrow { display:block; margin:0; }
.tile-arrow { font-family:var(--sans); font-size:1.5rem; }
.home-editorial { margin:0 auto 4rem; max-width:760px; }
.content-prose { padding:2rem 0 0; border-top:1px solid var(--line); }
.content-prose p { color:var(--muted); font-size:1.08rem; line-height:1.75; }
.archive-intro { padding:0 0 clamp(2rem,4vw,3.5rem); margin-bottom:clamp(2rem,4vw,3rem); border-bottom:1px solid #a7bdb3; }
.archive-intro h1 { max-width:18ch; margin-bottom:1rem; }
.archive-intro p:not(.eyebrow) { margin-bottom:0; line-height:1.55; }
.post-grid .wp-block-post-template { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; padding:0; margin:0; list-style:none; }
.post-grid .wp-block-post-template > li { width:auto!important; max-width:none; min-width:0; margin:0!important; }
.post-grid .repelis-editorial-image,
.post-grid .wp-block-post-featured-image { width:calc(100% + 3.2rem); max-width:none; margin:-1.6rem -1.6rem 1.35rem; aspect-ratio:4/3; overflow:hidden; background:#dfe8df; }
.post-grid .repelis-editorial-image a { display:block; width:100%; height:100%; }
.post-grid .repelis-editorial-image img,
.post-grid .wp-block-post-featured-image img { display:block; width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; border-radius:0; }
.post-grid .wp-block-post { display:flex; flex-direction:column; align-items:flex-start; min-width:0; min-height:290px; padding:1.6rem; border-top:3px solid var(--teal); transition:transform .2s ease, box-shadow .2s ease; }
.post-grid .wp-block-post:nth-child(3n+2) { border-top-color:var(--coral); }
.post-grid .wp-block-post:nth-child(3n) { border-top-color:#8a982d; }
.post-grid .wp-block-post:hover, .post-grid .wp-block-post:focus-within { transform:translateY(-3px); box-shadow:0 16px 32px #19383b12; }
.post-grid .wp-block-post-title { font-size:clamp(1.8rem,2.4vw,2.4rem); line-height:1.12; letter-spacing:0; word-spacing:.08em; margin:.75rem 0 1rem; max-width:none; overflow-wrap:anywhere; }
.post-grid .wp-block-post-title a { color:var(--ink); }
.post-grid .wp-block-post-title a:hover { color:var(--teal); }
.post-grid .wp-block-post-date { order:0; margin:0; font-size:.72rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--teal-dark); }
.post-grid .wp-block-post-excerpt { margin-top:auto; color:var(--muted); line-height:1.55; }
.post-grid .wp-block-post-excerpt p { margin:0; }
.post-grid .wp-block-post-excerpt__more-link { display:inline-block; margin-top:.8rem; font-weight:700; }
.tool-archive-grid .wp-block-post { min-height:210px; }
.tool-archive-grid .wp-block-post-excerpt { margin-top:.75rem; }
.tool-archive-grid .wp-block-post-title { margin:.35rem 0; }
.single-layout .repelis-editorial-image { width:100%; margin:0 0 2.5rem; aspect-ratio:16/9; overflow:hidden; background:#dfe8df; }
.single-layout .repelis-editorial-image img { display:block; width:100%; height:100%; object-fit:cover; }
.wp-block-query-pagination { justify-content:center; border-top:1px solid var(--line); padding-top:2rem; margin-top:3rem; }
.wp-block-query-pagination a, .wp-block-query-pagination span { border-radius:3px; font-weight:700; text-decoration:none; }
.wp-block-query-pagination .current { color:var(--surface); background:var(--teal-dark); border-color:var(--teal-dark); }
.single-layout { max-width:790px; }
.single-layout > .wp-block-post-title { padding-bottom:1.5rem; margin-bottom:1rem; border-bottom:1px solid #a7bdb3; max-width:20ch; }
.single-meta { gap:.5rem 1.4rem; margin-bottom:2rem; font-size:.75rem; font-weight:750; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-dark); }
.single-layout > .wp-block-post-featured-image { margin:0 0 2.5rem; }
.single-layout > .wp-block-post-featured-image img { width:100%; border-radius:3px; }
.single-layout .wp-block-post-content, .tool-content .wp-block-post-content { font-size:1.09rem; line-height:1.85; }
.single-layout .wp-block-post-content > p:first-child { font-size:1.25rem; line-height:1.65; color:#38575a; }
.wp-block-post-content > * { max-width:100%; }
.wp-block-post-content h2 { margin:3rem 0 1rem; padding-top:1.5rem; border-top:1px solid var(--line); font-size:clamp(2.1rem,3.5vw,3rem); }
.wp-block-post-content h3 { margin:2rem 0 .7rem; }
.wp-block-post-content ul, .wp-block-post-content ol { padding-left:1.5rem; margin-bottom:1.6rem; }
.wp-block-post-content li { padding-left:.25rem; margin-bottom:.5rem; }
.wp-block-post-content blockquote { margin:2.5rem 0; padding:.7rem 0 .7rem 1.5rem; border-left:3px solid var(--teal); font-family:var(--serif); font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.3; }
.wp-block-post-content table, .tool-content table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; font-size:.94rem; }
.wp-block-post-content th, .wp-block-post-content td, .tool-content th, .tool-content td { padding:.75rem 1rem; border:1px solid var(--line); text-align:left; }
.wp-block-post-content th, .tool-content th { background:#e8eee5; }
.tool-heading { position:relative; overflow:hidden; padding:clamp(2rem,6vw,5.5rem); border-radius:4px; margin-bottom:clamp(1.5rem,3vw,3rem); background:#103f40; }
.tool-heading::after { content:""; position:absolute; right:-8%; bottom:-65%; width:43%; aspect-ratio:1; border:1px solid #dce99270; border-radius:50%; box-shadow:0 0 0 44px #ffffff08, 0 0 0 90px #ffffff08; pointer-events:none; }
.tool-heading h1 { position:relative; z-index:1; max-width:16ch; }
.tool-heading .tool-lede { position:relative; z-index:1; font-size:clamp(1.05rem,1.5vw,1.3rem); line-height:1.6; }
.tool-heading .tool-lede p { margin:0; }
.tool-content { max-width:100%; }
.tool-content .wp-block-post-content { max-width:100%; }
.tool-content .wp-block-post-content > p, .tool-content .wp-block-post-content > h2, .tool-content .wp-block-post-content > h3, .tool-content .wp-block-post-content > ul { max-width:790px; }
.tool-panel { padding:clamp(1.3rem,3.5vw,3rem); background:var(--surface); border:1px solid #bdcfc2; }
.tool-panel h2, .tool-results h2 { font-size:clamp(2rem,3vw,3rem); }
.tool-form { gap:1.25rem; }
.tool-form label, .tool-panel label { color:var(--ink); font-size:.9rem; font-weight:750; }
.tool-form input, .tool-form select, .tool-form textarea, .wp-block-search__input, .tool-panel input:not([type="checkbox"]):not([type="radio"]), .tool-panel select, .tool-panel textarea { min-height:52px; padding:.75rem 1rem; color:var(--ink); background:#fcfcf6; border:1px solid #839d96; border-radius:3px; }
.tool-form :is(input,select,textarea):hover, .wp-block-search__input:hover { border-color:var(--teal-dark); }
.tool-form :is(input,select,textarea):focus, .wp-block-search__input:focus { border-color:var(--teal-dark); outline:3px solid #dce992; outline-offset:2px; }
.tool-form input[type="checkbox"], .tool-form input[type="radio"], .tool-panel input[type="checkbox"], .tool-panel input[type="radio"] { width:20px; height:20px; min-height:0; accent-color:var(--teal); }
.tool-form button, .tool-form input[type="submit"], .tool-actions a, .wp-block-button__link, .wp-block-search__button { min-height:50px; padding:.75rem 1.25rem; border-radius:3px; font-size:.9rem; font-weight:800; transition:background-color .18s ease, transform .18s ease; }
.tool-form button:hover, .tool-actions a:hover, .wp-block-button__link:hover, .wp-block-search__button:hover { background:var(--teal-dark); color:var(--surface); }
.tool-form button:active, .wp-block-button__link:active { transform:translateY(1px); }
.tool-results { margin-top:2rem; padding-top:2rem; border-top:1px solid var(--line); }
.tool-grid { gap:.85rem; }
.tool-card { padding:1.5rem; border-color:#bdcfc2; background:var(--surface); }
.tool-card h3 { margin:.5rem 0; }
.tool-card p { overflow-wrap:anywhere; }
.tool-card img { border-radius:2px; }
.tool-status { background:#deecd8; color:#245440; border-radius:3px; }
.tool-actions a { background:var(--teal-dark); }
.tool-actions a:focus-visible { outline-offset:3px; }
.wp-block-search { max-width:750px; align-items:stretch; }
.wp-block-search__inside-wrapper { display:flex; gap:.6rem; width:100%; }
.wp-block-search__button { color:var(--surface); background:var(--teal); white-space:nowrap; }
.error-panel { border-radius:4px; padding:clamp(2rem,6vw,5rem); background:#e4ece4; border-left:4px solid var(--teal); }
.error-panel h1, .error-panel h2 { max-width:17ch; }
.error-panel p { max-width:55ch; }
.error-panel .wp-block-buttons { margin-top:1.5rem; gap:.7rem; }
.wp-block-button.is-style-outline .wp-block-button__link { color:var(--teal-dark); background:transparent; border:1px solid var(--teal-dark); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { color:var(--surface); background:var(--teal-dark); }
.site-footer { padding:clamp(3rem,6vw,6rem) max(1.5rem,calc((100vw - 1180px)/2)) 2rem; background:#dfe9df; border-top:1px solid #aec4b7; }
.footer-inner { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(2rem,8vw,8rem); }
.site-footer .wp-block-site-title { font-size:1.75rem; margin-bottom:1.2rem; }
.footer-inner p { max-width:55ch; line-height:1.65; }
.footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1rem; }
.footer-links p { margin:0; }
.footer-links a { width:100%; border-bottom:1px solid #bbcec0; text-decoration:none; }
.footer-links a:hover { border-bottom-color:var(--teal); }
.wp-block-repelis24-disclaimer { background:#eef2e7; border-color:var(--coral); }
@media (max-width: 900px) {
  .post-grid .wp-block-post-template { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tool-tile { grid-column:span 6; }
}
@media (max-width: 767px) {
  main.wp-block-group { width:calc(100% - 2.5rem); padding:2.5rem 0 5rem; }
  .header-inner { min-height:72px; gap:1rem; padding-inline:1.25rem; }
  .wp-block-site-title { font-size:1.2rem; }
  .brand-mark::before { width:29px; height:29px; }
  .wp-block-navigation__responsive-container-open { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px; border:1px solid var(--line); border-radius:3px; }
  /* Core's overlay rule has higher specificity than the usual theme selector.
     Give the menu its own inset so links and the close button stay on screen. */
  .site-header .primary-navigation .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { padding:1rem 1.25rem 2rem!important; max-height:100dvh; overflow-y:auto; }
  .site-header .primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { width:100%; padding-top:3rem!important; }
  .site-header .primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .site-header .primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width:100%!important; align-items:stretch!important; gap:0; }
  .site-header .primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { width:100%; min-height:44px; justify-content:flex-start!important; padding:.65rem 0; font-size:1.1rem; text-align:left; }
  .site-header .primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position:static; display:block; width:100%; max-width:100%; min-width:0!important; margin:.25rem 0 .75rem; padding:.25rem 0 .25rem .85rem!important; border:0!important; border-left:2px solid var(--line)!important; background:transparent!important; box-shadow:none; }
  .site-header .primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding:.45rem .5rem; font-size:.95rem; }
  .site-header .primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { top:1rem; right:1.25rem; min-width:44px; min-height:44px; }
  .hero-band { margin-inline:calc(50% - 50vw); padding:3.5rem 1.25rem; }
  .hero-band::before { display:none; }
  .post-grid .wp-block-post-template, .tool-grid { grid-template-columns:1fr; }
  .post-grid .wp-block-post { min-height:230px; }
  .tool-tile { grid-column:1 / -1; min-height:190px; }
  .footer-inner { grid-template-columns:1fr; gap:2rem; }
  .wp-block-search__inside-wrapper { flex-wrap:wrap; }
  .wp-block-search__input { flex:1 1 100%; }
  .wp-block-search__button { width:100%; }
}
@media (max-width: 390px) {
  main.wp-block-group { width:calc(100% - 2rem); }
  h1, .wp-block-post-title { font-size:clamp(2.7rem,13vw,3.2rem); }
  .hero-band h1 { font-size:2.8rem; }
  .header-inner { padding-inline:1rem; }
  .tool-panel { padding:1.1rem; }
  .footer-links { gap:0 .6rem; }
}
.footer-heading { color:var(--teal-dark)!important; font-size:.72rem!important; font-weight:800; letter-spacing:.18em; text-transform:uppercase; margin:0 0 .7rem; }
.footer-attribution { padding-top:1rem; font-size:.78rem!important; }
.footer-bottom { max-width:1180px; margin:clamp(2rem,5vw,4rem) auto 0; padding-top:1.2rem; border-top:1px solid #aec4b7; gap:.5rem 1.5rem; }
.footer-bottom p { margin:0; color:var(--muted); font-size:.76rem; font-weight:650; }
.footer-bottom a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; font-weight:800; }
.tool-next { max-width:100%; padding:clamp(2rem,5vw,4rem); margin-top:clamp(4rem,7vw,7rem); border-top:3px solid var(--teal); background:#e3ece2; }
.tool-heading, .tool-content, .tool-next { width:100%; max-width:1000px; margin-inline:auto; }
.archive-intro { width:100%; max-width:none; }
.archive-intro > * { max-width:760px; }
.archive-intro > .wp-block-heading { max-width:18ch; }
.post-grid { width:100%; max-width:none; }
.hero-band { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.84fr); column-gap:clamp(2rem,6vw,6rem); align-items:center; }
.hero-band > :where(*) { max-width:none; }
.hero-band > :not(.hero-visual) { margin-left:0!important; margin-right:0!important; }
.hero-band .eyebrow, .hero-band h1, .hero-band > p { grid-column:1; }
.hero-band .eyebrow { align-self:end; }
.hero-band h1 { margin-bottom:0; }
.hero-band > p:not(.eyebrow) { align-self:start; max-width:54ch; margin-top:1.25rem; }
.hero-visual { grid-column:2; grid-row:1 / span 3; width:100%; height:100%; min-height:420px; margin:0; overflow:hidden; border:1px solid #ffffff3b; background:#214849 url('assets/images/home-cinema.jpg') center / cover no-repeat; }
.archive-intro.is-layout-constrained > * { margin-left:0!important; margin-right:auto!important; }
body.home main.wp-block-group { padding-top:0; }
@media (max-width:900px) {
  .hero-band { grid-template-columns:minmax(0,1fr) minmax(220px,.8fr); gap:1.5rem; }
  .hero-visual { min-height:330px; }
}
@media (max-width:767px) {
  .hero-band { grid-template-columns:1fr; gap:0; }
  .hero-band .eyebrow, .hero-band h1, .hero-band > p, .hero-visual { grid-column:1; }
  .hero-visual { grid-row:auto; min-height:0; height:230px; margin-top:1.4rem; }
}
.tool-next h2 { max-width:15ch; }
.tool-next p:not(.eyebrow) { max-width:55ch; color:var(--muted); }
.tool-next .wp-block-buttons { gap:.75rem; margin-top:1.5rem; }
.wp-block-search__label { display:block; font-size:.9rem; font-weight:750; margin-bottom:.5rem; }
.wp-block-query-no-results { grid-column:1/-1; }
.wp-block-query-no-results > p { padding:2.5rem; background:#e4ece4; border-left:3px solid var(--teal); }
.single-layout > .eyebrow { margin-bottom:1.5rem; }
.single-layout > .eyebrow a { text-decoration:none; }
.single-return { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); font-size:.9rem; font-weight:800; }
.single-return a { display:inline-flex; min-height:44px; align-items:center; text-decoration:none; }