<!DOCTYPE html>
<html lang="en-NZ">
<head>
    
    
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
    <meta name="google-adsense-account" content="ca-pub-8231772842113086">
    <title>The Dunedin Voice &amp; Quill — Ōtepoti&#39;s independent voice since the gold rush</title>
    <meta name="description" content="Ōtepoti&#39;s independent voice since the gold rush">
    <meta property="og:title" content="The Dunedin Voice &amp; Quill — Ōtepoti&#39;s independent voice since the gold rush">
    <meta property="og:description" content="Ōtepoti&#39;s independent voice since the gold rush">
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://dvq.co.nz">
    <meta property="og:site_name" content="The Dunedin Voice &amp; Quill">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="The Dunedin Voice &amp; Quill — Ōtepoti&#39;s independent voice since the gold rush">
    <meta name="twitter:description" content="Ōtepoti&#39;s independent voice since the gold rush">
    <meta property="og:image" content="https://dvq.co.nz/cdn-image/w=1200,h=675,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp">
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="675">
    <meta name="twitter:image" content="https://dvq.co.nz/cdn-image/w=1200,h=675,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp">
    <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
    <script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"The Dunedin Voice & Quill","alternateName":"Dunedin Voice & Quill","url":"https://dvq.co.nz","description":"Ōtepoti's independent voice since the gold rush","inLanguage":"en-NZ","publisher":{"@id":"https://dvq.co.nz/#organization"},"potentialAction":{"@type":"SearchAction","target":"https://dvq.co.nz/search?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
    <script type="application/ld+json">{"@context":"https://schema.org","@type":"NewsMediaOrganization","name":"The Dunedin Voice & Quill","url":"https://dvq.co.nz","logo":{"@type":"ImageObject","url":"https://ffqbmbvywrypmfjybtyu.supabase.co/storage/v1/object/public/article-images/publisher-logos/8635cbf1-a6f3-474e-a38a-bf67e353fd6f.svg","width":440,"height":60},"@id":"https://dvq.co.nz/#organization","inLanguage":"en-NZ","foundingDate":"2026-03-09","areaServed":{"@type":"AdministrativeArea","name":"Dunedin"},"publishingPrinciples":"https://dvq.co.nz/editorial-standards-and-ethics","contactPoint":{"@type":"ContactPoint","contactType":"editorial","email":"editor@dvq.co.nz"}}</script>
    <link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cmVjdCB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHJ4PSI4IiBmaWxsPSJoc2woMjE2IDEwMCUgMTIlKSIvPjx0ZXh0IHg9IjMyIiB5PSIzMiIgZG9taW5hbnQtYmFzZWxpbmU9ImNlbnRyYWwiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtZmFtaWx5PSJBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZiIgZm9udC13ZWlnaHQ9IjcwMCIgZm9udC1zaXplPSIxOCIgZmlsbD0id2hpdGUiPkRWUTwvdGV4dD48L3N2Zz4=">
    <link rel="canonical" href="https://dvq.co.nz">
    <link rel="alternate" type="application/rss+xml" title="The Dunedin Voice &amp; Quill RSS Feed" href="https://dvq.co.nz/feed">
    <link rel="preconnect" href="https://ffqbmbvywrypmfjybtyu.supabase.co" crossorigin>
    <link rel="preload" href="https://ffqbmbvywrypmfjybtyu.supabase.co/storage/v1/object/public/fonts/dm-serif-text-latin.woff2" as="font" type="font/woff2" crossorigin>
    <link rel="preload" href="https://ffqbmbvywrypmfjybtyu.supabase.co/storage/v1/object/public/fonts/public-sans-latin.woff2" as="font" type="font/woff2" crossorigin>
    <link rel="preload" href="https://ffqbmbvywrypmfjybtyu.supabase.co/storage/v1/object/public/fonts/public-sans-latin-italic.woff2" as="font" type="font/woff2" crossorigin>
    <style>
    @font-face{font-family:'DM Serif Text';src:url('https://ffqbmbvywrypmfjybtyu.supabase.co/storage/v1/object/public/fonts/dm-serif-text-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
    @font-face{font-family:'Public Sans';src:url('https://ffqbmbvywrypmfjybtyu.supabase.co/storage/v1/object/public/fonts/public-sans-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
    @font-face{font-family:'Public Sans';src:url('https://ffqbmbvywrypmfjybtyu.supabase.co/storage/v1/object/public/fonts/public-sans-latin-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
  
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{overflow-x:hidden;scroll-padding-top:5rem}
    :root{
      --background:0 0% 100%;--foreground:222 47% 11%;
      --primary:216 100% 12%;--primary-fg:210 40% 98%;
      --secondary:210 40% 96%;--secondary-fg:222 47% 11%;
      --muted:210 40% 96%;--muted-fg:215 16% 40%;
      --accent:38 90% 50%;--accent-fg:222 47% 11%;
      --border:214 32% 91%;
      --nav-bg:216 100% 12%;--nav-fg:0 0% 100%;--nav-fg-muted:0 0% 100%;--nav-border:rgba(255,255,255,0.1);--nav-border-subtle:rgba(255,255,255,0.06);--nav-hover:rgba(255,255,255,0.1);
      --link-color:215 20% 30%;
      --link-underline:38 90% 50%;
      --dot-chrome:38 90% 50%;--dot-body:38 90% 50%;--dot-size:0.5rem;--avatar-ring:38 90% 50%;--hover-tint:38 90% 50%;--heading-accent:38 90% 50%;
      --live-badge:0 72% 51%;--live-badge-fg:0 0% 100%;
      --cat-badge-bg:210 40% 96%;--cat-badge-fg:215 20% 25%;--cat-badge-border:214 32% 91%;--cat-dot:38 90% 50%;
      --nav-fw:600;--nav-fw-light:500;--nav-bw:1px;--nav-bw-heavy:1px;--masthead-stroke:0;--nav-btn-border:hsl(0 0% 100%/0.18);--nav-icon-sw:2;
      --radius:0.75rem;
      font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
      -webkit-font-smoothing:antialiased;
    }
    body{background:hsl(var(--background));color:hsl(var(--foreground));line-height:1.5;overflow-x:hidden}
    a{color:inherit;text-decoration:none}

    /* ── Unified underline system ──
       Pattern: always underline + transparent color in base state,
       transition text-decoration-color on hover. Zero flicker. */
    .hover-underline,.card-title a,.card-meta a,.card-byline a,.hero-title,.hero-cat,.hero-author,
    .just-in-meta,.just-in-link,.most-read a{
      text-decoration:underline;text-decoration-color:transparent;
      text-underline-offset:2px;transition:text-decoration-color 0.15s}
    .hover-underline:hover,.hero-cat:hover,.hero-author:hover,
    .just-in-meta:hover,.just-in-link:hover,.most-read a:hover,
    .card-title a:hover,.card-meta a:hover,.card-byline a:hover,
    .hero-title-link:hover .hero-title{text-decoration-color:hsl(var(--link-underline))}

    /* Article body + breadcrumb links — always visible underline */
    .article-body a,.breadcrumb a{color:hsl(var(--link-color));text-decoration:underline;
      text-decoration-color:hsl(var(--link-underline));text-underline-offset:3px;transition:text-decoration-color 0.2s,color 0.2s,background-size 0.3s ease}
    .article-body a{background:linear-gradient(hsl(var(--link-underline)/0.1),hsl(var(--link-underline)/0.1));background-size:0% 100%;background-repeat:no-repeat;background-position:0 0;padding:0.0625rem 0.125rem;margin:-0.0625rem -0.125rem;border-radius:2px;transition:background-size 0.3s ease,color 0.2s}
    .article-body a:hover{background-size:100% 100%;color:hsl(var(--foreground))}

    img{max-width:100%;height:auto;display:block}

    /* Layout */
    .mw{max-width:1440px;margin:0 auto;padding:0 1rem}
    .mw-article{max-width:1140px;margin:0 auto;padding:0 1rem}
    .flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}
    .justify-between{justify-content:space-between}.gap-1{gap:0.25rem}.gap-2{gap:0.5rem}
    .gap-3{gap:0.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}
    .shrink-0{flex-shrink:0}.min-w-0{min-width:0}.flex-1{flex:1 1 0%}
    .grid{display:grid}
    .grid-cols-2{grid-template-columns:repeat(2,1fr)}
    .grid-cols-3{grid-template-columns:repeat(3,1fr)}
    .grid-cols-4{grid-template-columns:repeat(4,1fr)}
    .grid-cols-1{grid-template-columns:1fr}
    .hidden{display:none}
    .mobile-only{display:none}
    .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

    /* Nav */
    .nav{background:hsl(var(--nav-bg));border-bottom:none}
    .nav a{color:hsl(var(--nav-fg))}
    .nav-accent-stripe{height:3px;background:var(--nav-border)}

    /* Row 1: masthead + CTAs */
    .nav-row1{padding:1.5rem 0 1.25rem}
    .nav-row1-inner{display:flex;align-items:stretch;gap:2.5rem}
    .masthead-col{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;justify-content:center}
    .masthead-block{display:flex;flex-direction:column;align-items:flex-start;gap:0;text-decoration:none;line-height:1}
    .masthead-block.masthead-short{align-items:center}
    .site-location{font-family:'DM Serif Text','Public Sans',serif;font-size:clamp(0.875rem,1.8vw,1.15rem);font-weight:400;color:hsl(var(--nav-fg));line-height:1;letter-spacing:0.08em;padding-left:0.75rem;text-transform:capitalize}
    .masthead-short .site-location{padding-left:0;text-align:center;align-self:center}
    .site-title{font-family:'DM Serif Text','Public Sans',serif;font-size:clamp(3rem,7vw,4.75rem);font-weight:400;color:hsl(var(--nav-fg));line-height:0.85;letter-spacing:-0.03em;text-transform:uppercase;-webkit-text-stroke:var(--masthead-stroke) hsl(var(--nav-fg))}
    .site-title.has-descender{padding-bottom:0.15em}

    /* Middle column: tagline + CTAs */
    .nav-center-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;gap:0.75rem}
    .site-tagline{color:hsl(var(--nav-fg));font-family:'Public Sans',-apple-system,sans-serif;font-size:clamp(0.6875rem,1.2vw,0.8125rem);font-style:normal;font-weight:var(--nav-fw);letter-spacing:0.18em;line-height:1.3;text-align:center;margin:0;text-transform:uppercase;display:flex;align-items:center;gap:0.625rem}
    .site-tagline::before{content:'';display:inline-block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:hsl(var(--dot-chrome));flex-shrink:0}
    .cta-row{display:flex;align-items:center;justify-content:center;gap:0.25rem;margin-top:0.25rem;padding-top:0.625rem;border-top:1px solid var(--nav-border-subtle);flex-wrap:nowrap}
    .cta-line{display:flex;align-items:center;gap:0.25rem;flex-wrap:wrap;justify-content:center}
    .cta-sep{width:1px;height:1.125rem;background:hsl(var(--nav-fg)/0.15);margin:0 0.375rem;flex-shrink:0}
    .cta-group-label{font-size:0.6875rem;font-weight:var(--nav-fw);color:hsl(var(--nav-fg)/0.75);text-transform:uppercase;letter-spacing:0.1em;padding-right:0.125rem;white-space:nowrap}
    .cta-link,.sticky-cta,.sticky-mega-cta,.footer-cta{font-size:0.75rem;font-weight:var(--nav-fw-light);color:hsl(var(--nav-fg));padding:0.4375rem 0.625rem;border-radius:0.1875rem;text-decoration:none;transition:all 0.2s cubic-bezier(0.25,0.1,0.25,1);white-space:nowrap;display:inline-flex;align-items:center;gap:0.25rem;letter-spacing:0.01em;text-transform:uppercase}
    .cta-link:hover,.sticky-cta:hover,.sticky-mega-cta:hover,.footer-cta:hover{color:hsl(var(--nav-fg));background:var(--nav-hover);transform:translateY(-1px)}
    .cta-link svg,.sticky-cta svg,.sticky-mega-cta svg,.footer-cta svg{width:0.875rem;height:0.875rem;flex-shrink:0;stroke-width:var(--nav-icon-sw);opacity:0.85;transition:opacity 0.15s}
    .cta-link:hover svg,.sticky-cta:hover svg,.sticky-mega-cta:hover svg,.footer-cta:hover svg{opacity:1}
    .cta-link-primary,.sticky-cta-primary,.sticky-mega-cta-accent,.footer-cta-primary{background:hsl(var(--accent))!important;color:hsl(var(--accent-fg))!important;opacity:1;font-weight:700;padding:0.4375rem 0.75rem;border:1px solid hsl(var(--accent))}
    .cta-link-primary:hover,.sticky-cta-primary:hover,.sticky-mega-cta-accent:hover,.footer-cta-primary:hover{filter:brightness(1.08);background:hsl(var(--accent))!important;transform:translateY(-1px);color:hsl(var(--accent-fg))!important}
    .cta-link-primary svg,.sticky-cta-primary svg,.sticky-mega-cta-accent svg,.footer-cta-primary svg{opacity:1;color:hsl(var(--accent-fg))!important}
    .cta-link-outline,.sticky-cta-outline,.footer-cta-outline{border:var(--nav-bw) solid var(--nav-btn-border)}
    .cta-link-outline:hover,.sticky-cta-outline:hover,.footer-cta-outline:hover{background:var(--nav-border-subtle);border-color:hsl(var(--nav-fg)/0.35);border-width:var(--nav-bw);transform:translateY(-1px)}

    /* Right column: date + weather */
    .nav-right-col{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;flex-shrink:0;gap:0.25rem}
    .nav-date-weather{display:flex;flex-direction:column;align-items:flex-end;gap:0.25rem;flex-shrink:0}
    .nav-date{font-size:0.8125rem;font-weight:var(--nav-fw-light);color:hsl(var(--nav-fg))}
    .nav-weather{font-size:0.8125rem;color:hsl(var(--nav-fg));display:flex;align-items:center;gap:0.5rem}
    .nav-weather-icon{flex-shrink:0;display:flex;align-items:center}
    .nav-weather-icon svg{display:block}
    .nav-weather-temp{font-size:0.9375rem;font-weight:var(--nav-fw);color:hsl(var(--nav-fg));line-height:1}
    .nav-weather-cond{color:hsl(var(--nav-fg));font-size:0.8125rem;line-height:1}
    .nav-weather-more:hover{border-color:hsl(var(--accent-hsl,var(--primary-hsl)))!important}
    .nav-links{display:flex;align-items:center;gap:0.25rem;height:3.25rem;overflow:visible}
    .nav-link{font-size:0.875rem;font-weight:var(--nav-fw-light);padding:0.375rem 0.75rem;border-radius:0.5rem;
      color:hsl(var(--nav-fg));white-space:nowrap;transition:background 0.15s}
    .nav-more-wrap{position:relative;display:flex;align-items:center}
    .nav-more-btn{display:inline-flex;align-items:center;background:none;border:none;cursor:pointer;font-family:inherit}
    .nav-more-btn svg{transition:transform 0.2s}
    .nav-more-wrap.open .nav-more-btn svg{transform:rotate(180deg)}
    .nav-more-dropdown{display:none;position:absolute;top:calc(100% + 0.625rem);right:0;min-width:10rem;background:hsl(var(--nav-bg));border:1px solid var(--nav-border);border-radius:0.1875rem;padding:0.375rem;box-shadow:0 8px 24px rgba(0,0,0,0.2);z-index:55;flex-direction:column}
    .nav-more-wrap.open .nav-more-dropdown{display:flex}
    .nav-more-item{display:flex;align-items:center;gap:0.375rem;padding:0.5rem 0.75rem;border-radius:0.1875rem;font-size:0.875rem;font-weight:var(--nav-fw-light);color:hsl(var(--nav-fg));white-space:nowrap;transition:background 0.15s;text-decoration:none}
    .nav-more-item:hover{background:var(--nav-hover)}
    .nav-link:hover{background:var(--nav-hover)}
    

    /* Header compact (sticky) */
    .sticky-header{position:fixed;top:0;left:0;right:0;z-index:50;background:hsl(var(--nav-bg)/0.95);
      backdrop-filter:blur(8px);border-bottom:1px solid var(--nav-border);
      transform:translateY(-100%);opacity:0;transition:transform 0.3s,opacity 0.3s}
    .sticky-header.show{transform:translateY(0);opacity:1}
    .sticky-header.instant-hide{transition:none!important;transform:translateY(-100%)!important;opacity:0!important}
    .sticky-header .site-title{font-size:clamp(1.125rem,1.6vw,1.375rem);line-height:1;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-text-stroke:0 !important}
    .sticky-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:0.75rem;height:3.375rem}
    .sticky-left{display:flex;align-items:center;gap:0.5rem}
    .sticky-right{display:flex;align-items:center;gap:0.5rem;justify-content:flex-end;min-width:0}
    .sticky-logo-link{display:block;justify-self:center;min-width:0;max-width:clamp(11rem,34vw,25rem);padding:0 0.5rem;text-align:center}
    .sticky-ctas{display:flex;align-items:center;gap:0.5rem;margin-left:0;margin-right:0}
    .sticky-cta{min-height:2.125rem;border-radius:0.25rem;padding:0.4375rem 0.875rem}
    .sticky-cta-primary{border:var(--nav-bw) solid hsl(var(--accent))}




    /* Shared dropdown menu */
    .sticky-mega-menu{position:fixed;top:0;left:0;right:0;z-index:60;background:hsl(var(--nav-bg));
      transform:translateY(-100%);opacity:0;pointer-events:none;
      transition:transform 0.35s cubic-bezier(0.25,0.1,0.25,1),opacity 0.25s;
      box-shadow:0 8px 32px rgba(0,0,0,0.3);max-height:100vh;overflow-y:auto}
    .sticky-mega-menu.open{transform:translateY(0);opacity:1;pointer-events:auto}
    .mega-overlay{position:fixed;inset:0;z-index:59;background:rgba(0,0,0,0);pointer-events:none;transition:background 0.35s}
    .mega-overlay.open{background:rgba(0,0,0,0.45);pointer-events:auto}
    .sticky-mega-inner{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:2.5rem}
    .sticky-mega-col .nav-col-heading{display:block;font-size:0.8125rem;font-weight:var(--nav-fw);text-transform:uppercase;letter-spacing:0.1em;color:hsl(var(--nav-fg));margin-bottom:1rem;padding-bottom:0.625rem;border-bottom:var(--nav-bw-heavy) solid hsl(var(--nav-fg)/0.15)}
    .sticky-mega-col a{display:flex;align-items:center;font-size:0.9375rem;font-weight:normal;color:hsl(var(--nav-fg));padding:0.5rem 0;text-decoration:none;transition:opacity 0.15s,padding-left 0.2s;line-height:1.3}
    .sticky-mega-col a:hover{opacity:0.75;padding-left:0.375rem}
    .sticky-mega-col a svg{display:inline;width:0.875rem;height:0.875rem;margin-right:0.5rem;vertical-align:-1px;opacity:1;flex-shrink:0;stroke-width:var(--nav-icon-sw)}
    .sticky-mega-col--sections{display:grid;grid-template-columns:1fr 1fr;column-gap:1.5rem;align-content:start}
    .sticky-mega-col--sections .nav-col-heading{grid-column:1/-1;margin-bottom:1rem;padding-bottom:0.625rem}
    .sticky-mega-col--sections a{break-inside:avoid}
    .sticky-mega-ctas{display:flex;align-items:center;flex-wrap:wrap;gap:0.625rem;padding-top:1.25rem;margin-top:1rem;border-top:1px solid hsl(var(--nav-fg)/0.15)}
    .mega-socials-group{display:flex;align-items:center;gap:0.5rem;margin-left:auto}
    .mega-socials-label{font-size:0.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:hsl(var(--nav-fg)/0.6);white-space:nowrap}
    .sticky-mega-cta{font-size:0.8125rem;padding:0.625rem 1.25rem;border:var(--nav-bw) solid var(--nav-btn-border);border-radius:0.3125rem;gap:0.4375rem}

    /* Search icon button */
    .search-btn{padding:0.5rem;border-radius:0.375rem;background:transparent;border:none;cursor:pointer;color:hsl(var(--nav-fg));display:flex;align-items:center;justify-content:center;transition:background 0.2s;position:relative}
    .search-btn:hover{background:var(--nav-hover)}
    .search-btn svg{width:1.125rem;height:1.125rem}
    .search-btn-mobile{padding:0.5rem;border-radius:0.375rem;background:transparent;border:none;cursor:pointer;color:hsl(var(--nav-fg));
      display:none;align-items:center;justify-content:center}
    .search-btn-mobile:hover{background:var(--nav-hover);color:hsl(var(--nav-fg))}
    .search-btn-mobile svg{width:1.25rem;height:1.25rem}

    /* Desktop inline search — slides open to the left */
    .search-inline{display:flex;align-items:center;position:relative}
    .search-inline-input{width:0;opacity:0;border:none;background:var(--nav-hover);color:hsl(var(--nav-fg));font-size:0.875rem;padding:0.5rem 0.75rem;border-radius:0.375rem;outline:none;transition:width 0.3s ease,opacity 0.25s ease,padding 0.3s ease;height:2.125rem;box-sizing:border-box;-webkit-appearance:none;appearance:none}
    .search-inline-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;height:0.875rem;width:0.875rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center/contain no-repeat;cursor:pointer}
    .search-inline-input::placeholder{color:hsl(var(--nav-fg)/0.7)}
    .search-inline.open .search-inline-input{width:14rem;opacity:1;padding:0.5rem 0.75rem;margin-right:0.375rem}
    .search-inline-btn{padding:0.5rem;border-radius:0.375rem;background:transparent;border:none;cursor:pointer;color:hsl(var(--nav-fg));display:flex;align-items:center;justify-content:center;transition:background 0.2s;flex-shrink:0;z-index:1}
    .search-inline-btn:hover{background:var(--nav-hover)}
    .search-inline-btn svg{width:1.125rem;height:1.125rem}

    /* mobile-only utility shown via @media(max-width:767px) */

    /* Mobile search dropdown */
    .search-dropdown{display:none;background:hsl(var(--nav-bg));border-top:1px solid var(--nav-border);padding:0.75rem 1rem}
    .search-dropdown.open{display:block}
    .search-dropdown form{display:flex;align-items:center;background:var(--nav-hover);border:1px solid hsl(var(--nav-fg)/0.15);border-radius:0.5rem;padding:0.5rem 0.75rem;gap:0.5rem;transition:background 0.2s,border-color 0.2s}
    .search-dropdown form:focus-within{background:hsl(var(--nav-fg)/0.15);border-color:hsl(var(--nav-fg)/0.3)}
    .search-dropdown input{flex:1;background:transparent;border:none;outline:none;color:hsl(var(--nav-fg));font-size:1rem;-webkit-appearance:none;appearance:none}
    .search-dropdown input::placeholder{color:hsl(var(--nav-fg)/0.45)}
    .search-dropdown input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;height:0.875rem;width:0.875rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center/contain no-repeat;cursor:pointer}
    .search-dropdown input[type="search"]::-ms-clear,.search-dropdown input[type="search"]::-ms-reveal{display:none;width:0;height:0}

    /* Breadcrumb — editorial accent-dot trail */
    .breadcrumb{display:flex;align-items:center;font-size:0.875rem;color:hsl(var(--foreground));margin-bottom:1.75rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase}
    .breadcrumb ol{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}
    .breadcrumb::before{content:'';display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;background:hsl(var(--dot-body));margin-right:0.625rem;flex-shrink:0}
    .breadcrumb a{color:hsl(var(--foreground));text-decoration:none;border-bottom:1.5px solid transparent;padding-bottom:1px;transition:border-color 0.15s}
    .breadcrumb a:hover{border-color:hsl(var(--link-underline))}
    .breadcrumb .bc-sep{margin:0 0.5rem;display:inline-flex;align-items:center;color:hsl(var(--muted-fg))}
    .breadcrumb .bc-sep::before{content:'>'}
    .breadcrumb .bc-sep svg{display:none}
    .breadcrumb .bc-current{color:hsl(var(--foreground))}
    .breadcrumb a.bc-current{border-bottom-color:transparent}
    .breadcrumb a.bc-current:hover{border-color:hsl(var(--link-underline))}

    /* Page header — hero-style banner for inner pages */
    .page-header{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid hsl(var(--border))}
    .page-header h1{font-family:'Public Sans',-apple-system,sans-serif;font-size:clamp(1.75rem,2.5vw,2.5rem);font-weight:800;line-height:1.12;letter-spacing:-0.02em;margin-bottom:0.5rem}
    .page-header .page-subtitle{font-size:0.9375rem;color:hsl(var(--muted-fg));line-height:1.5}
    .page-header .page-meta{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap;margin-top:0.75rem;font-size:0.8125rem;color:hsl(var(--muted-fg))}
    .page-header .page-meta-count{display:inline-flex;align-items:center;gap:0.375rem;font-weight:700;color:hsl(var(--foreground)/0.7);background:#ecf2fb;padding:0.25rem 0.75rem;border-radius:9999px;font-size:0.75rem}

    /* Author profile — editorial magazine layout */
    .author-profile{max-width:42rem;margin:0 auto}
     .author-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:1rem;padding:2.5rem;margin-bottom:2.5rem}
    .author-card-top{display:flex;gap:1.75rem;align-items:center;margin-bottom:1.5rem}
    .author-hero-avatar{width:5.5rem;height:5.5rem;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid hsl(var(--border))}
    .author-hero-initial{width:5.5rem;height:5.5rem;border-radius:50%;background:hsl(var(--primary));display:flex;align-items:center;justify-content:center;font-family:'DM Serif Text',serif;font-size:2rem;font-weight:400;color:hsl(var(--primary-fg));flex-shrink:0}
    .author-card-identity h1{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:800;letter-spacing:-0.02em;line-height:1.15;margin-bottom:0.125rem}
    .author-card-identity .author-role{font-size:0.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:hsl(var(--muted-fg))}
   .author-bio{font-size:1.0625rem;line-height:1.8;color:hsl(var(--foreground)/0.85);margin-bottom:1.25rem}
    .author-expertise{display:flex;gap:0.375rem;flex-wrap:wrap}
    .expertise-tag{font-size:0.6875rem;font-weight:600;padding:0.3rem 0.75rem;border-radius:9999px;border:1px solid hsl(var(--border));color:hsl(var(--muted-fg));text-transform:uppercase;letter-spacing:0.03em;text-decoration:none;transition:background 0.15s,border-color 0.15s}
    .expertise-tag:hover{background:#ecf2fb;border-color:#d6e4f7}
    .author-meta-bar{display:flex;align-items:center;flex-wrap:wrap;gap:1.25rem;padding-top:1.25rem;border-top:1px solid hsl(var(--border));margin-top:1.5rem}
    .author-stat{display:flex;align-items:center;gap:0.375rem;font-size:0.75rem;font-weight:600;color:hsl(var(--muted-fg));text-transform:uppercase;letter-spacing:0.04em}
    .author-stat svg{width:0.875rem;height:0.875rem;stroke:currentColor;fill:none;stroke-width:2}
    .author-meta-spacer{flex:1}
    .author-email-link{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.8125rem;font-weight:600;color:hsl(var(--foreground)/0.7);text-decoration:none;padding:0.4rem 0.875rem;border-radius:9999px;border:1px solid hsl(var(--border));transition:all 0.2s ease;letter-spacing:0.01em}
    .author-email-link svg{width:0.875rem;height:0.875rem;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}
    .author-email-link:hover{background:hsl(var(--primary));color:hsl(var(--primary-fg));border-color:hsl(var(--primary))}
    .author-articles-header{font-size:1.5rem;font-weight:800;letter-spacing:-0.01em;margin-bottom:1.5rem;display:flex;align-items:center;gap:0.5rem}
    .author-articles-header::after{content:'';flex:1;height:1px;background:hsl(var(--border))}

    /* List-style article cards */
    .card-list{display:flex;gap:1.25rem;padding:1.25rem 0;border-bottom:1px solid hsl(var(--border))}
    .card-list:first-child{padding-top:0}
    .card-list:last-child{border-bottom:none}
    .card-list-img{flex-shrink:0;width:140px;height:94px;border-radius:0.5rem;overflow:hidden}
    .card-list-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s}
    .card-list:hover .card-list-img img{transform:scale(1.04)}
    .card-list-body{min-width:0;display:flex;flex-direction:column;gap:0.125rem}
    .card-list-excerpt{font-size:0.875rem;line-height:1.6;color:hsl(var(--foreground)/0.7);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:0.25rem}
    @media(max-width:500px){.card-list-img{width:100px;height:68px}}

    /* Pagination */
    .pagination{display:flex;align-items:center;justify-content:center;gap:0.375rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid hsl(var(--border))}
    .pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;border-radius:0.5rem;font-size:0.8125rem;font-weight:600;text-decoration:none;transition:background 0.15s,color 0.15s}
    .pagination a{color:hsl(var(--foreground)/0.7);border:1px solid hsl(var(--border))}
    .pagination a:hover{background:#ecf2fb;border-color:#d6e4f7}
    .pagination .pg-current{background:hsl(var(--primary));color:hsl(var(--primary-fg));border:1px solid hsl(var(--primary))}
    .pagination .pg-dots{border:none;color:hsl(var(--muted-fg))}

    @media(max-width:600px){.author-card-top{flex-direction:column;align-items:center;text-align:center}.author-card{padding:1.75rem}.author-expertise{justify-content:center}.author-meta-bar{justify-content:center}.author-meta-spacer{display:none}.author-email-link{margin-top:0.25rem}}

    /* Search results page */
    .search-page-input{display:flex;align-items:center;gap:0.75rem;background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:0.75rem 1rem;margin-bottom:2rem;transition:border-color 0.2s}
    .search-page-input:focus-within{border-color:hsl(var(--primary))}
    .search-page-input svg{flex-shrink:0;color:hsl(var(--muted-fg))}
    .search-page-input input{flex:1;border:none;outline:none;background:transparent;font-size:1rem;color:hsl(var(--foreground))}
    .search-page-input input::placeholder{color:hsl(var(--muted-fg))}
    .search-no-results{text-align:center;padding:4rem 1rem}
    .search-no-results svg{margin:0 auto 1.5rem;opacity:0.3}
    .search-no-results p{color:hsl(var(--muted-fg));font-size:1.0625rem}

    /* Static page content typography */
    .static-content{}
    .static-content p{font-size:1.0625rem;line-height:1.8;margin-bottom:1.25rem;color:hsl(var(--foreground)/0.9)}
    .static-content h2{font-size:1.25rem;font-weight:700;margin:2.5rem 0 0.75rem;letter-spacing:-0.01em;color:hsl(var(--foreground));position:relative;padding-left:1rem;border-left:3px solid hsl(var(--heading-accent))}
    .static-content h3{font-size:1.0625rem;font-weight:700;margin:1.75rem 0 0.5rem;color:hsl(var(--foreground))}
    .static-content ul{line-height:1.8;margin-bottom:1.5rem;padding-left:1.5rem;list-style:disc;color:hsl(var(--foreground)/0.9)}
    .static-content li{margin-bottom:0.5rem;font-size:1.0625rem}
    .static-content a{color:hsl(var(--link-color));text-decoration:underline;text-decoration-color:hsl(var(--link-underline));text-underline-offset:3px;background:linear-gradient(hsl(var(--link-underline)/0.1),hsl(var(--link-underline)/0.1));background-size:0% 100%;background-repeat:no-repeat;background-position:0 0;padding:0.0625rem 0.125rem;margin:-0.0625rem -0.125rem;border-radius:2px;transition:background-size 0.3s ease,color 0.2s}
    .static-content a:hover{background-size:100% 100%}

    /* Categories index — polished card */
    .cat-index-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.75rem;padding:1.5rem 1rem;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color 0.2s,box-shadow 0.2s,background 0.2s}
    .cat-index-card:hover{border-color:#d6e4f7;background:#ecf2fb;box-shadow:none}
    .cat-index-icon{width:3rem;height:3rem;border-radius:50%;background:hsl(var(--primary));display:flex;align-items:center;justify-content:center;flex-shrink:0}
    .cat-index-icon svg{width:1.25rem;height:1.25rem;stroke:hsl(var(--primary-fg));fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    .cat-index-name{font-weight:700;font-size:0.9375rem;margin-bottom:0.125rem}
    .cat-index-desc{font-size:0.75rem;color:hsl(var(--muted-fg));line-height:1.4}
    @media(max-width:600px){.cat-index-card{padding:1rem 0.75rem;gap:0.5rem}.cat-index-icon{width:2.5rem;height:2.5rem}.cat-index-icon svg{width:1rem;height:1rem}.cat-index-name{font-size:0.8125rem}.cat-index-desc{font-size:0.6875rem}}

    /* Authors index — writer card (elevated, polished) */
    .author-writer-card{display:flex;gap:1.125rem;align-items:center;padding:1rem 1.25rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color 0.2s,background 0.2s,box-shadow 0.25s}
    .author-writer-card:hover{border-color:#d0dff3;background:#ecf2fb;box-shadow:0 2px 12px rgba(0,0,0,0.04)}
    .author-writer-avatar{width:4rem;height:4rem;border-radius:50%;object-fit:cover;flex-shrink:0;border:2.5px solid hsl(var(--border));transition:border-color 0.2s}
    .author-writer-card:hover .author-writer-avatar{border-color:#b8cde8}
    .author-writer-initial{width:4rem;height:4rem;border-radius:50%;background:hsl(var(--muted));display:flex;align-items:center;justify-content:center;flex-shrink:0}
    .author-writer-initial span{font-size:1.25rem;font-weight:700;color:hsl(var(--foreground)/0.45)}
    .author-writer-name{font-family:'Public Sans',sans-serif;font-weight:700;font-size:1.125rem;line-height:1.25;color:hsl(var(--foreground))}
    .author-writer-role{font-family:'Public Sans',sans-serif;font-size:0.8125rem;color:hsl(var(--muted-fg));font-weight:600;text-transform:uppercase;letter-spacing:0.06em;margin-top:0.125rem}
    .author-writer-bio{font-family:'Public Sans',sans-serif;font-size:0.875rem;color:hsl(var(--foreground)/0.65);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:0.25rem}
    .author-writer-articles{font-family:'Public Sans',sans-serif;font-size:0.75rem;color:hsl(var(--muted-fg));font-weight:700;margin-top:0.3rem;display:inline-flex;align-items:center;gap:0.25rem;text-transform:uppercase;letter-spacing:0.04em}
    .author-writer-articles svg{opacity:0.5;width:11px;height:11px;transition:transform 0.2s}
    .author-writer-card:hover .author-writer-articles svg{transform:translateX(2px);opacity:0.8}

    /* Authors index — staff card (grid, polished) */
    .author-staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:0.75rem}
    @media(max-width:600px){.author-staff-grid{grid-template-columns:1fr 1fr}}
    .author-staff-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.125rem 0.75rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);transition:border-color 0.2s,background 0.2s,box-shadow 0.25s}
    .author-staff-card:hover{border-color:#d0dff3;background:#ecf2fb;box-shadow:0 2px 12px rgba(0,0,0,0.04)}
    .author-staff-avatar{width:3.5rem;height:3.5rem;border-radius:50%;object-fit:cover;margin-bottom:0.625rem;border:2.5px solid hsl(var(--border));transition:border-color 0.2s}
    .author-staff-card:hover .author-staff-avatar{border-color:#b8cde8}
    .author-staff-initial{width:3.5rem;height:3.5rem;border-radius:50%;background:hsl(var(--muted));display:flex;align-items:center;justify-content:center;margin-bottom:0.625rem}
    .author-staff-initial span{font-size:1.125rem;font-weight:700;color:hsl(var(--foreground)/0.45)}
    .author-staff-name{font-family:'Public Sans',sans-serif;font-weight:700;font-size:0.9375rem;line-height:1.25;margin-bottom:0.125rem;color:hsl(var(--foreground))}
    .author-staff-role{font-family:'Public Sans',sans-serif;font-size:0.75rem;color:hsl(var(--muted-fg));font-weight:600;text-transform:uppercase;letter-spacing:0.04em}

    /* Section label */
    .author-section-label{display:flex;align-items:center;gap:0.75rem;margin-bottom:1.25rem}
    .author-section-label::before{content:'';flex:0 0 4px;height:1.375rem;background:hsl(var(--primary));border-radius:2px}
    .author-section-label span{font-family:'Public Sans',sans-serif;font-size:0.875rem;font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:hsl(var(--foreground)/0.7)}

    @media(max-width:600px){.author-writer-avatar,.author-writer-initial{width:3.25rem;height:3.25rem}.author-writer-initial span{font-size:1rem}.author-staff-grid{gap:0.5rem}.author-staff-card{padding:0.875rem 0.5rem}.author-staff-avatar,.author-staff-initial{width:3rem;height:3rem}}

    /* Skip link */
    .skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:9999}
    .skip-link:focus{position:fixed;top:12px;left:12px;width:auto;height:auto;overflow:visible;padding:12px 20px;background:#111;color:#fff;font-size:14px;font-weight:600;border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,0.3);text-decoration:none;outline:2px solid #fff;outline-offset:2px}

    /* 404 page */
    .not-found{text-align:center;padding:8rem 1rem 6rem}
    .not-found h1{font-family:'Public Sans',sans-serif;font-size:clamp(6rem,12vw,11rem);font-weight:900;color:hsl(var(--foreground)/0.33);line-height:0.85;margin-bottom:0;letter-spacing:-0.04em;user-select:none}
    .not-found h2{font-size:1.375rem;font-weight:700;margin-bottom:0.5rem;letter-spacing:-0.01em}
    .not-found p{color:hsl(var(--muted-fg));font-size:1rem;margin-bottom:2.5rem;max-width:28rem;margin-left:auto;margin-right:auto;line-height:1.6}
    .not-found-link{display:inline-flex;align-items:center;gap:0.5rem;font-weight:600;font-size:0.875rem;color:hsl(var(--foreground));background:transparent;padding:0.625rem 1.25rem;border:1.5px solid hsl(var(--border));border-radius:0.375rem;text-decoration:none;transition:all 0.2s;text-transform:uppercase;letter-spacing:0.04em}
    .not-found-link:hover{border-color:hsl(var(--border));background:#ecf2fb;color:hsl(var(--foreground))}

    /* Article card */
    .card{display:block;border-radius:0.5rem;overflow:hidden;text-decoration:none;color:inherit;padding:0.5rem;margin:-0.5rem}
    .card a:has(img){display:block;overflow:hidden;border-radius:0.5rem}
    .card img{width:100%;height:10rem;object-fit:cover;border-radius:0.5rem;transition:transform 0.4s cubic-bezier(0.25,0.1,0.25,1)}
    .card a:hover img{transform:scale(1.05)}
    .card-body{padding:0.625rem 0 0}
    .card-meta{font-size:0.6875rem;font-weight:600;color:hsl(var(--muted-fg));text-transform:uppercase;letter-spacing:0.05em;margin-top:0.5rem;display:flex;align-items:center;gap:0.375rem}
    .card-meta a{color:inherit}
    .card-meta a:hover{text-decoration-color:hsl(var(--link-underline))}
    .card-meta::before{content:'';display:inline-block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:hsl(var(--dot-body));flex-shrink:0}
    .card-title{font-weight:700;font-size:1.125rem;line-height:1.35;margin-top:0.25rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
    .card-title a{color:inherit}
    .card-byline{font-size:0.75rem;color:hsl(var(--muted-fg));margin-top:0.375rem}
    .card-byline a{color:inherit}
    .card-byline a:hover{color:hsl(var(--foreground))}

    /* Horizontal card */
    .card-h{display:flex;gap:1rem;align-items:flex-start;text-decoration:none;color:inherit;padding:0.5rem;margin:-0.5rem;border-radius:0.5rem}
    .card-h a:has(img){display:block;overflow:hidden;border-radius:0.5rem;flex-shrink:0}
    .card-h img{width:10rem;height:6.5rem;object-fit:cover;border-radius:0.5rem;flex-shrink:0;transition:transform 0.4s cubic-bezier(0.25,0.1,0.25,1)}
    .card-h a:hover img{transform:scale(1.05)}
    .card-h .card-title{-webkit-line-clamp:2;font-size:1.0625rem}
    .card-h .card-meta::before{width:0.375rem;height:0.375rem}

    /* Hero card */
    .hero{background:#f2f2f2;border-radius:0.75rem;overflow:hidden;border:none;transition:none;position:relative}
    .hero::before{display:none}
    .hero:hover{box-shadow:none;transform:none}
    .hero-inner{display:flex;flex-direction:column}
    @media(min-width:768px){.hero-inner{flex-direction:row}}
    .hero-img-wrap{display:block;flex-shrink:0;overflow:hidden;position:relative}
    @media(min-width:768px){.hero-img-wrap{width:50%}}
    .hero img{width:100%;height:16rem;object-fit:cover;transition:transform 0.4s cubic-bezier(0.25,0.1,0.25,1)}
    .hero-img-wrap:hover img{transform:scale(1.05)}
    @media(min-width:768px){.hero img{height:100%}}
    .hero-body{padding:1.5rem;display:flex;flex-direction:column;justify-content:center}
    @media(min-width:768px){.hero-body{width:50%;padding:2rem 2.5rem}}
    .hero-cat{font-size:0.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:hsl(var(--muted-fg));margin-bottom:0.625rem;display:flex;align-items:center;gap:0.4rem}
    .hero-cat::before{content:'';display:inline-block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:hsl(var(--dot-body));flex-shrink:0}
    .hero-title-link{text-decoration:none;color:inherit}
    .hero-title{font-weight:700;font-size:1.375rem;line-height:1.2;letter-spacing:-0.01em;margin-bottom:0.75rem}
    @media(min-width:768px){.hero-title{font-size:1.75rem}}
    .hero-excerpt{font-size:0.9375rem;color:hsl(var(--muted-fg));line-height:1.6}
    .hero-meta{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;font-size:0.8125rem;color:hsl(var(--muted-fg));margin-top:1rem}
    .hero-author{font-weight:600;color:hsl(var(--link-color))}

    /* Category badge */
    .cat-badge{display:inline-block;font-size:0.6875rem;font-weight:600;padding:0.25rem 0.625rem;border-radius:9999px;
      border:none;color:hsl(var(--cat-badge-fg));background:hsl(var(--cat-badge-bg));text-transform:uppercase;letter-spacing:0.03em;
      transition:background 0.15s,color 0.15s}
    .cat-badge:hover{background:#d6e4f7}

    /* Live badge */
    .live-badge{display:inline-block;font-size:0.75rem;font-weight:700;padding:0.125rem 0.75rem;border-radius:9999px;
      text-transform:uppercase;background:hsl(var(--live-badge));color:hsl(var(--live-badge-fg))}

    /* Time */
    .ts{font-size:0.75rem;color:hsl(var(--muted-fg))}

    /* Section header — bold editorial */
    .section-hdr{margin:0 0 1.5rem;position:relative;display:flex;align-items:baseline;gap:0.75rem}
    .section-hdr h2{font-family:'DM Serif Text','Public Sans',serif;font-size:clamp(2rem,1.75rem + 1.2vw,3rem);font-weight:400;color:hsl(var(--foreground));letter-spacing:-0.02em;line-height:1.15;white-space:nowrap}
    .section-hdr h2::before{content:'';display:inline-block;width:0.625rem;height:0.625rem;border-radius:50%;background:hsl(var(--dot-body));margin-right:0.625rem;vertical-align:0.15em}
    .section-hdr::after{content:'';flex:1;height:1px;background:hsl(var(--border));align-self:center}
    .section-hdr-link{font-size:0.6875rem;font-weight:700;color:hsl(var(--foreground));text-decoration:underline;text-decoration-color:transparent;text-transform:uppercase;letter-spacing:0.06em;white-space:nowrap;transition:text-decoration-color 0.15s;flex-shrink:0;align-self:center;text-underline-offset:3px;text-decoration-thickness:2px}
    .section-hdr-link:hover{text-decoration-color:hsl(var(--link-underline))}
    .section-hdr-link span{display:inline-block;transition:transform 0.2s;margin-left:0.25rem}
    .section-hdr-link:hover span{transform:translateX(3px)}

    /* Section bands */
    .cat-section{padding:2.5rem 0 1.5rem}
    .cat-section+.cat-section{border-top:none}

    /* Section hero — single featured article with tinted bg */
    .section-hero{border-radius:0.75rem;overflow:hidden;transition:none}
    .section-hero-inner{display:flex;flex-direction:column}
    @media(min-width:768px){.section-hero-inner{flex-direction:row}}
    .section-hero-img{display:block;flex-shrink:0;overflow:hidden}
    @media(min-width:768px){.section-hero-img{width:50%}}
    .section-hero-img img{width:100%;height:14rem;object-fit:cover;transition:transform 0.4s cubic-bezier(0.25,0.1,0.25,1)}
    .section-hero-img:hover img{transform:scale(1.05)}
    @media(min-width:768px){.section-hero-img img{height:100%;min-height:15rem;max-height:20rem}}
    .section-hero-body{padding:1.5rem;display:flex;flex-direction:column;justify-content:center}
    @media(min-width:768px){.section-hero-body{width:50%;padding:2rem 2.5rem}}
    .section-hero-body .hero-cat{margin-bottom:0.625rem}
    .section-hero-body .hero-title{font-size:1.375rem;margin-bottom:0.75rem}
    @media(min-width:768px){.section-hero-body .hero-title{font-size:1.75rem}}
    .section-hero-body .hero-excerpt{font-size:0.9375rem;color:hsl(var(--muted-fg));line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
    .section-hero-body .hero-meta{margin-top:1rem;font-size:0.8125rem}

    /* Horizontal card group beneath section hero */
    .section-cards{display:grid;gap:1rem;grid-template-columns:1fr;margin-top:2rem}
    @media(min-width:640px){.section-cards{grid-template-columns:repeat(2,1fr)}}

    /* Entity pages */
    .entity-facts{background:hsl(var(--secondary));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem 1.5rem;margin:1.5rem 0;display:grid;gap:0.625rem}
    .entity-fact{display:flex;gap:0.75rem;font-size:0.875rem;line-height:1.5}
    .entity-fact strong{min-width:5rem;flex-shrink:0;color:hsl(var(--muted-fg));font-weight:600}
    .entity-fact a{color:hsl(var(--link-color));text-decoration:underline;text-decoration-color:hsl(var(--link-underline));text-underline-offset:2px}
    .entity-hero-img{margin:0 0 1.5rem;border-radius:var(--radius);overflow:hidden}
    .entity-hero-img img{width:100%;height:auto;border-radius:var(--radius)}
    /* ── Shared entity card (matches article .card style) ── */
    .ent-card{display:block;border-radius:0.5rem;overflow:hidden;text-decoration:none;color:inherit;padding:0.5rem;margin:-0.5rem}
    .ent-card-img{position:relative;display:block;overflow:hidden;border-radius:0.5rem}
    .ent-card-img img{width:100%;height:10rem;object-fit:cover;border-radius:0.5rem;transition:transform 0.4s cubic-bezier(0.25,0.1,0.25,1)}
    .ent-card:hover .ent-card-img img{transform:scale(1.05)}
    .ent-card-body{padding:0.625rem 0 0;display:flex;flex-direction:column;gap:0.125rem}
    .ent-card-cat{font-size:0.6875rem;font-weight:600;color:hsl(var(--muted-fg));text-transform:uppercase;letter-spacing:0.05em;display:flex;align-items:center;gap:0.375rem}
    .ent-card-cat::before{content:'';display:inline-block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:hsl(var(--dot-body));flex-shrink:0}
    .ent-card-name{font-weight:700;font-size:1.125rem;line-height:1.35;color:hsl(var(--foreground))}
    .ent-card-rating{display:inline-flex;align-items:center;gap:3px;font-size:0.75rem;font-weight:700;color:hsl(var(--foreground))}
    .ent-card-rating svg{width:0.875rem;height:0.875rem;fill:#f59e0b;stroke:none}
    .ent-card-addr{font-size:0.75rem;color:hsl(var(--muted-fg));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .ent-card-badge{position:absolute;top:0.5rem;left:0.5rem;display:inline-flex;align-items:center;gap:0.25rem;padding:0.1875rem 0.5rem;border-radius:999px;font-size:0.6875rem;font-weight:600;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
    .ent-card-badge--open{background:hsla(145,60%,40%,0.9);color:#fff}
    .ent-card-badge--closed{background:hsla(0,0%,30%,0.85);color:#fff}
    @media(min-width:640px){.ent-card-img img{height:13rem}.ent-card-name{font-size:1.1875rem}}
    @media(max-width:600px){.ent-card-name{font-size:0.9375rem}.ent-card-img img{height:10rem}}
    .entity-index-placeholder{width:100%;height:9rem;background:hsl(var(--secondary))}
    .entity-faq{border-bottom:1px solid hsl(var(--border));padding:1rem 0}
    .entity-faq summary{font-weight:600;font-size:1rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
    .entity-faq summary::after{content:'+';font-size:1.25rem;color:hsl(var(--muted-fg));transition:transform 0.2s}
    .entity-faq[open] summary::after{content:'−'}
    .entity-faq p{margin-top:0.75rem;font-size:0.9375rem;color:hsl(var(--muted-fg));line-height:1.7}
    @media(max-width:600px){.entity-facts{padding:1rem}.entity-fact{flex-direction:column;gap:0.125rem}.entity-fact strong{min-width:auto}}

    .sidebar{width:100%;flex-shrink:0;display:flex;flex-direction:column;gap:1.5rem}
    .sidebar-box{background:#f2f2f2;border:none;border-radius:0.75rem;padding:1.5rem;transition:none}
    .sidebar-box:hover{box-shadow:none}
    .sidebar-box h2{font-family:'Public Sans',-apple-system,sans-serif;font-size:0.8125rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;color:hsl(var(--foreground));margin-bottom:0.75rem}

    /* Sidebar newsletter box */
    .sidebar-nl{background:hsl(var(--primary));border-radius:0;padding:2rem 1.5rem 1.5rem 1.25rem;color:hsl(var(--primary-fg));text-align:center;position:relative;overflow:hidden}
    .sidebar-nl-header{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin-bottom:0.25rem;margin-left:-0.375rem}
    .sidebar-nl-icon{display:flex;align-items:center}
    .sidebar-nl-icon svg{width:1.25rem;height:1.25rem;color:hsl(var(--smart-accent))}
    .sidebar-nl-title{font-family:'Public Sans',-apple-system,sans-serif;font-size:0.8125rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em}
    .sidebar-nl-desc{font-size:0.8125rem;line-height:1.5;opacity:0.85;margin-bottom:1rem}
    .sidebar-nl-form{display:flex;flex-direction:column;gap:0.375rem;position:relative;z-index:1}
    .sidebar-nl-form input[type="email"]{width:100%;padding:0.75rem 0.75rem;border:1.5px solid hsl(var(--primary-fg)/0.3);border-radius:0.1875rem;font-size:0.8125rem;font-family:'Public Sans',sans-serif;background:hsl(var(--primary-fg)/0.1);color:hsl(var(--primary-fg));outline:none;transition:border-color 0.15s;box-sizing:border-box}
    .sidebar-nl-form input[type="email"]::placeholder{color:hsl(var(--primary-fg)/0.5)}
    .sidebar-nl-form input[type="email"]:focus{border-color:hsl(var(--primary-fg)/0.6)}
    .sidebar-nl-form button{width:100%;padding:0.75rem 0.75rem;background:hsl(var(--accent));color:hsl(var(--accent-fg));border:none;border-radius:0.1875rem;font-size:0.75rem;font-weight:700;font-family:'Public Sans',sans-serif;cursor:pointer;transition:filter 0.15s,transform 0.15s;text-transform:uppercase;letter-spacing:0.01em}
    .sidebar-nl-form button:hover{filter:brightness(1.08);transform:translateY(-1px)}
    .sidebar-nl-form button:disabled{opacity:0.5;cursor:not-allowed}
    .sidebar-nl-msg{font-size:0.75rem;margin-top:0.375rem;min-height:0.875rem;position:relative;z-index:1}
    .sidebar-nl-msg.success{color:hsl(var(--primary-fg))}
    .sidebar-nl-msg.error{color:#fca5a5}

    .just-in-item{display:flex;gap:0.625rem;padding:0.5rem 0}
    .just-in-item+.just-in-item{border-top:none}
    .just-in-dot{width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:hsl(var(--dot-body));flex-shrink:0;margin-top:0.375rem}
    .just-in-content{min-width:0;flex:1}
    .just-in-meta{font-size:0.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:hsl(var(--muted-fg))}
    .just-in-item a.just-in-link{font-size:1rem;font-weight:600;line-height:1.3;color:hsl(var(--foreground))}
    .most-read li{display:flex;gap:0.75rem;padding:0.4rem 0;align-items:flex-start}
    .most-read-num{font-size:1.75rem;font-weight:900;color:hsl(var(--primary));line-height:1;width:2rem;flex-shrink:0;opacity:0.25}
    .most-read a{font-size:1rem;font-weight:600;line-height:1.3}

    /* Weather sidebar */
    .weather-card{padding-bottom:1.25rem}
    .weather-card .weather-hdr{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:0.625rem}
    .weather-card .weather-hdr h2{margin-bottom:0}
    .weather-card .weather-hdr .weather-location{margin-bottom:0;font-size:0.8125rem;color:hsl(var(--muted-fg));font-weight:500;display:flex;align-items:center;gap:0.25rem}
    .weather-current{display:flex;align-items:center;gap:0.75rem;margin-bottom:0.75rem}
    .weather-current-icon svg{width:2.5rem;height:2.5rem}
    .weather-current-temp{font-size:2rem;font-weight:800;line-height:1;letter-spacing:-0.02em}
    .weather-current-cond{font-size:0.8125rem;color:hsl(var(--muted-fg));display:block;margin-top:0.125rem}
    .weather-current-detail{margin-left:auto;font-size:0.8125rem;font-weight:600;text-align:right;line-height:1.5}
    .weather-hi{color:hsl(var(--foreground))}
    .weather-lo{color:hsl(var(--muted-fg));margin-left:0.25rem}
    .weather-detail-line{font-size:0.75rem;color:hsl(var(--muted-fg));font-weight:500;display:block}
    .weather-forecast{display:flex;justify-content:space-between;gap:0.25rem;border-top:1px solid hsl(var(--foreground)/0.08);padding-top:0.75rem;margin-top:0.5rem}
    .weather-day-col{display:flex;flex-direction:column;align-items:center;gap:0.25rem;flex:1}
    .weather-day-label{font-size:0.6875rem;font-weight:700;text-transform:uppercase;color:hsl(var(--muted-fg))}
    .weather-day-icon{display:flex;align-items:center;justify-content:center}
    .weather-day-icon svg{width:1.5rem;height:1.5rem}
    .weather-day-temps{font-size:0.75rem;font-weight:600;white-space:nowrap}

    /* Article page — editorial broadsheet */
    .article-cat-btn{display:inline-flex;align-items:center;gap:0.375rem;font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;padding:0.4375rem 1rem;border-radius:9999px;border:1px solid hsl(var(--border));color:hsl(var(--cat-badge-fg));background:transparent;text-decoration:none;transition:all 0.2s}
    .article-cat-btn::before{content:'';display:inline-block;width:0.4rem;height:0.4rem;border-radius:50%;background:hsl(var(--cat-dot))}
    .article-cat-btn:hover{background:hsl(var(--primary));color:hsl(var(--primary-fg));border-color:hsl(var(--primary))}
    .article-updated{display:flex;align-items:center;gap:0.375rem;font-size:0.75rem;font-weight:600;color:hsl(var(--muted-fg));margin-top:0.25rem}
    .article-updated svg{flex-shrink:0;opacity:0.7}
    .article-toc{padding:2rem 2rem 1.75rem;background:#ecf2fb;margin-bottom:2rem;border-radius:0.75rem}
    .article-toc-title{font-family:'Public Sans',sans-serif;font-size:1.25rem;font-weight:700;margin:0 0 1.25rem;padding:0;letter-spacing:0;line-height:1.3;color:hsl(var(--foreground));text-transform:none}
    .article-toc ol{list-style:none;padding:0;margin:0;counter-reset:toc}
    .article-toc li{counter-increment:toc;margin-bottom:0.625rem}
    .article-toc li a{display:flex;gap:0.5rem;font-size:1rem;line-height:1.5;color:hsl(var(--foreground)/0.75);text-decoration:none;transition:color 0.15s}
    .article-toc li a::before{content:counter(toc) '.';color:hsl(var(--primary));font-weight:700;flex-shrink:0;min-width:1.25rem}
    .article-toc li a:hover{color:hsl(var(--primary))}
    .article-body h2,.article-body h3,.article-body h4{scroll-margin-top:5rem}
    #main-content{scroll-margin-top:5rem}
    #article-top-markers{scroll-margin-top:5rem}
    .article-cat-btn:hover::before{background:hsl(var(--accent)) !important}
    .article-headline{font-family:'DM Serif Text','Public Sans',serif;font-size:clamp(3rem,7vw,3.75rem);font-weight:400;line-height:1.05;letter-spacing:-0.025em;margin-bottom:1rem;color:hsl(var(--foreground))}
    .article-deck{font-size:1.0625rem;line-height:1.6;color:hsl(var(--foreground)/0.65);margin-bottom:1.75rem;max-width:40rem;font-weight:400}
    @media(min-width:768px){.article-deck{font-size:1.125rem;line-height:1.6}}

    .article-avatar{flex-shrink:0;display:block}
    .article-avatar img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2.5px solid hsl(var(--avatar-ring));display:block}
    .article-avatar-fallback{width:48px;height:48px;border-radius:50%;border:2.5px solid hsl(var(--avatar-ring));display:flex;align-items:center;justify-content:center;background:hsl(var(--muted));font-weight:700;font-size:1.0625rem;color:hsl(var(--foreground));text-decoration:none}
    .article-author-line{font-size:0.9375rem;color:hsl(var(--muted-fg))}
    .article-author-role{color:hsl(var(--muted-fg))}
    .article-author-name{font-weight:700;color:hsl(var(--foreground))}
    .article-dateline{display:flex;align-items:center;gap:0.375rem;margin-top:0.1875rem;font-size:0.8125rem;color:hsl(var(--muted-fg))}
    .article-dot{width:3px;height:3px;border-radius:50%;background:hsl(var(--muted-fg))}

    .article-hero-fig{margin-bottom:2.5rem}
    .article-hero-fig img{width:100%;border-radius:var(--radius);height:auto;aspect-ratio:16/9;object-fit:cover}
    .article-hero-fig figcaption{font-size:1rem;color:hsl(var(--muted-fg));margin-top:0.75rem;text-align:center;line-height:1.5;font-style:italic}

    .article-inline-fig{margin:2rem 0}
    .article-inline-fig img{width:100%;border-radius:var(--radius);height:auto}
    .article-inline-fig figcaption{font-size:0.875rem;color:hsl(var(--muted-fg));margin-top:0.625rem;text-align:center;line-height:1.5;font-style:italic}

    .article-body p{font-size:1rem;line-height:1.8;margin-bottom:1.25rem;color:hsl(var(--foreground)/0.9)}
    .article-body h2{font-size:clamp(1.5rem,1.25rem + 0.7vw,2rem);font-weight:700;line-height:1.2;margin:2.5rem 0 0.75rem;letter-spacing:-0.01em;color:hsl(var(--foreground))}
    .article-body h3{font-size:1.1875rem;font-weight:700;line-height:1.25;margin:2rem 0 0.75rem}
    .article-body ul,.article-body ol{font-size:1rem;line-height:1.8;margin:0 0 1.25rem 1.5rem;color:hsl(var(--foreground)/0.9);padding-left:0.5rem}
    .article-body ul{list-style-type:disc}
    .article-body ol{list-style-type:decimal}
    .article-body li{margin-bottom:0.5rem;padding-left:0.25rem}
    .article-body li::marker{color:hsl(var(--primary))}
    .article-body blockquote{position:relative;margin:2.5rem 0;padding:2.5rem 2.5rem 2rem 3.5rem;background:#f1effa;border:none;border-radius:0.75rem;font-family:'Public Sans',-apple-system,sans-serif;font-size:1.1875rem;line-height:1.65;font-style:italic;font-weight:500;color:hsl(var(--foreground)/0.8)}
    .article-body blockquote::before{content:'\201C';position:absolute;top:0.75rem;left:1.25rem;font-size:4.5rem;line-height:1;font-family:'DM Serif Text','Public Sans',serif;color:hsl(var(--foreground)/0.1);font-style:normal;font-weight:400;pointer-events:none}
    .article-body blockquote cite,.article-body blockquote footer{display:block;margin-top:1.25rem;font-style:normal;font-weight:700;font-size:0.8125rem;letter-spacing:0.08em;text-transform:uppercase;color:hsl(var(--muted-fg));font-family:'Public Sans',-apple-system,sans-serif}
    @media(max-width:767px){.article-body blockquote{padding:1.75rem 1.5rem 1.5rem 2.5rem;font-size:1rem;margin:2rem 0}.article-body blockquote::before{font-size:3.5rem;top:0.5rem;left:0.75rem}}

    /* Key takeaways box */
    .key-takeaways{margin:2.5rem 0;padding:2rem 2rem 1.75rem;background:#eef6f0;border-radius:0.75rem}
    .key-takeaways-title{font-family:'Public Sans',sans-serif;font-size:1.25rem;font-weight:700;margin:0 0 1.25rem;padding:0;letter-spacing:0;line-height:1.3;color:hsl(var(--foreground))}
    .key-takeaways ul{list-style:none;padding:0;margin:0}
    .key-takeaways li{position:relative;padding:0.5rem 0 0.5rem 1.5rem;margin:0;font-size:1rem;line-height:1.7;color:hsl(var(--foreground)/0.85)}
    .key-takeaways li::before{content:'';position:absolute;left:0;top:1rem;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:hsl(var(--dot-body))}

    /* FAQ section */
    .article-faq{margin-top:2.5rem;padding:1.75rem 2rem 2rem;background:#fdf2ec;border-radius:0.75rem}
    .article-faq-title,.article-faq h2{font-family:'Public Sans',sans-serif;font-size:1.25rem;font-weight:700;margin:0 0 1.5rem !important;padding:0 0 0.5rem;letter-spacing:0;line-height:1.3;color:hsl(var(--foreground))}
    .article-faq details{padding:1.125rem 0;border-bottom:1px solid hsl(var(--border))}
    .article-faq details:first-of-type{padding-top:0}
    .article-faq details:last-child{border-bottom:none;padding-bottom:0}
    .article-faq summary{cursor:pointer;font-weight:600;font-size:1.0625rem;line-height:1.5;list-style:none;display:flex;align-items:baseline;gap:0.625rem}
    .article-faq summary::-webkit-details-marker{display:none}
    .article-faq summary::before{content:'';flex-shrink:0;width:0;height:0;border-top:0.3rem solid transparent;border-bottom:0.3rem solid transparent;border-left:0.4rem solid hsl(var(--dot-body));margin-top:0.15rem;transition:transform 0.2s}
    .article-faq details[open] summary::before{transform:rotate(90deg)}
    .article-faq p{margin-top:0.5rem;padding-left:1.025rem;color:hsl(var(--muted-fg));font-size:1.0625rem;line-height:1.75}

    /* Article inline newsletter CTA */
    .article-nl{margin:3rem 0;padding:3rem 2rem 1.25rem;background:hsl(var(--primary));border-radius:0;color:hsl(var(--primary-fg));text-align:center;position:relative;overflow:hidden}
    .article-nl-header{display:flex;align-items:center;justify-content:center;gap:0.75rem;margin-bottom:0.5rem}
    .article-nl-icon{display:flex;align-items:center}
    .article-nl-icon svg{width:2rem;height:2rem;opacity:0.85}
    .article-nl-title{font-family:'Public Sans',sans-serif;font-size:1.5rem;font-weight:700;line-height:1.3}
    .article-nl-desc{font-size:1.0625rem;line-height:1.6;opacity:0.85;margin:0 auto 1.5rem;max-width:30rem}
    .article-nl-form{display:flex;gap:0.5rem;max-width:28rem;margin:0 auto}
    .article-nl-form input[type="email"]{flex:1;padding:0.75rem 1.25rem;border:1.5px solid hsl(var(--primary-fg)/0.3);border-radius:0.25rem;font-size:1rem;font-family:'Public Sans',sans-serif;background:hsl(var(--primary-fg)/0.1);color:hsl(var(--primary-fg));outline:none;transition:border-color 0.15s;min-width:0}
    .article-nl-form input[type="email"]::placeholder{color:hsl(var(--primary-fg)/0.5)}
    .article-nl-form input[type="email"]:focus{border-color:hsl(var(--primary-fg)/0.6)}
    .article-nl-form button{padding:0.75rem 1.75rem;background:hsl(var(--accent));color:hsl(var(--accent-fg));border:none;border-radius:0.1875rem;font-size:0.75rem;font-weight:700;font-family:'Public Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:filter 0.15s,transform 0.15s;text-transform:uppercase;letter-spacing:0.01em}
    .article-nl-form button:hover{filter:brightness(1.08);transform:translateY(-1px)}
    .article-nl-form button:disabled{opacity:0.5;cursor:not-allowed}
    .article-nl-msg{font-size:0.875rem;margin-top:0.625rem;min-height:1rem}
    .article-nl-msg.success{color:hsl(var(--primary-fg))}
    .article-nl-msg.error{color:#fca5a5}
    @media(max-width:480px){.article-nl-form{flex-direction:column}.article-nl-form button{width:100%}}

    /* Mid-article newsletter CTA — matches end-of-article style */
    .mid-nl{margin:2.5rem 0;padding:3rem 2rem 1.25rem;background:hsl(var(--primary));border-radius:0;color:hsl(var(--primary-fg));text-align:center;position:relative;overflow:hidden}
    .mid-nl-header{display:flex;align-items:center;justify-content:center;gap:0.75rem;margin-bottom:0.5rem}
    .mid-nl-icon{display:flex;align-items:center}
    .mid-nl-icon svg{width:2rem;height:2rem;opacity:0.85}
    .mid-nl-title{font-family:'Public Sans',sans-serif;font-size:1.5rem;font-weight:700;line-height:1.3}
    .mid-nl-desc{font-size:1.0625rem;line-height:1.6;opacity:0.85;margin:0 auto 1.5rem;max-width:30rem}
    .mid-nl-form{display:flex;gap:0.5rem;max-width:28rem;margin:0 auto}
    .mid-nl-form input[type="email"]{flex:1;padding:0.75rem 1.25rem;border:1.5px solid hsl(var(--primary-fg)/0.3);border-radius:0.25rem;font-size:1rem;font-family:'Public Sans',sans-serif;background:hsl(var(--primary-fg)/0.1);color:hsl(var(--primary-fg));outline:none;transition:border-color 0.15s;min-width:0}
    .mid-nl-form input[type="email"]::placeholder{color:hsl(var(--primary-fg)/0.5)}
    .mid-nl-form input[type="email"]:focus{border-color:hsl(var(--primary-fg)/0.6)}
    .mid-nl-form button{padding:0.75rem 1.75rem;background:hsl(var(--accent));color:hsl(var(--accent-fg));border:none;border-radius:0.1875rem;font-size:0.75rem;font-weight:700;font-family:'Public Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:filter 0.15s,transform 0.15s;text-transform:uppercase;letter-spacing:0.01em}
    .mid-nl-form button:hover{filter:brightness(1.08);transform:translateY(-1px)}
    .mid-nl-form button:disabled{opacity:0.5;cursor:not-allowed}
    .mid-nl-msg{font-size:0.875rem;margin-top:0.625rem;min-height:1rem}
    .mid-nl-msg.success{color:hsl(var(--primary-fg))}
    .mid-nl-msg.error{color:#fca5a5}
    @media(max-width:480px){.mid-nl-form{flex-direction:column}.mid-nl-form button{width:100%}}

    /* Homepage inline newsletter CTA */
    /* Shared newsletter deco patterns */
    .nl-deco{position:absolute;color:hsl(var(--primary-fg)/0.2);pointer-events:none}
    .nl-deco-tl{top:0;left:0;width:200px;height:200px}
    .nl-deco-br{bottom:0;right:0;width:200px;height:200px}
    .nl-deco-content{position:relative;z-index:1}

    .hp-nl{margin:1rem 0 0;padding:3rem 2rem 1.75rem;background:hsl(var(--primary));border-radius:0 !important;color:hsl(var(--primary-fg));text-align:center;position:relative;overflow:hidden}
    .hp-nl-header{margin-bottom:0.5rem;text-align:center}
    .hp-nl-inline-icon{width:1.75rem;height:1.75rem;vertical-align:-0.3rem;margin-right:0.25rem;color:hsl(var(--smart-accent))}
    .hp-nl-title{font-family:'Public Sans',sans-serif;font-size:1.5rem;font-weight:700;line-height:1.3}
    .hp-nl-desc{font-size:1.0625rem;line-height:1.6;opacity:0.85;margin:0 auto 1.5rem;max-width:30rem}
    .hp-nl-form{display:flex;gap:0.5rem;max-width:28rem;margin:0 auto}
    .hp-nl-form input[type="email"]{flex:1;padding:0.75rem 1.25rem;border:1.5px solid hsl(var(--primary-fg)/0.3);border-radius:0.25rem;font-size:1rem;font-family:'Public Sans',sans-serif;background:hsl(var(--primary-fg)/0.1);color:hsl(var(--primary-fg));outline:none;transition:border-color 0.15s;min-width:0}
    .hp-nl-form input[type="email"]::placeholder{color:hsl(var(--primary-fg)/0.5)}
    .hp-nl-form input[type="email"]:focus{border-color:hsl(var(--primary-fg)/0.6)}
    .hp-nl-form button{padding:0.75rem 1.75rem;background:hsl(var(--accent));color:hsl(var(--accent-fg));border:none;border-radius:0.1875rem;font-size:0.75rem;font-weight:700;font-family:'Public Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:filter 0.15s,transform 0.15s;text-transform:uppercase;letter-spacing:0.01em}
    .hp-nl-form button:hover{filter:brightness(1.08);transform:translateY(-1px)}
    .hp-nl-form button:disabled{opacity:0.5;cursor:not-allowed}
    .hp-nl-msg{font-size:0.875rem;margin-top:0.625rem;min-height:1rem}
    .hp-nl-msg.success{color:hsl(var(--primary-fg))}
    .hp-nl-msg.error{color:#fca5a5}
    @media(max-width:480px){.hp-nl{margin-left:0;margin-right:0}.hp-nl-form{flex-direction:column}.hp-nl-form button{width:100%}}

    /* Embedded media (YouTube, Twitter, Instagram) */
    .article-embed{margin:2rem 0}
    .embed-responsive{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius)}
    .embed-responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
    .article-embed .twitter-tweet{margin:0 auto !important}
    .article-embed .instagram-media{margin:0 auto !important;max-width:540px !important}

    /* Article byline + share bar */
    .article-byline-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid hsl(var(--border))}
    .article-byline-left{display:flex;align-items:center;gap:0.75rem;min-width:0}
    .article-share-group{display:flex;align-items:center;gap:0.5rem}
    .share-this-label{display:flex;align-items:center;gap:0.25rem;font-size:0.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:hsl(var(--muted-fg));white-space:nowrap}
    .share-this-arrow{display:inline-flex;animation:share-nudge 2s ease-in-out infinite}
    @keyframes share-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
    .article-share-bar{display:flex;align-items:center;gap:0.25rem}
    .share-btn{display:inline-flex;align-items:center;justify-content:center;width:2.125rem;height:2.125rem;border-radius:50%;border:1px solid hsl(var(--border));background:transparent;color:hsl(var(--muted-fg));cursor:pointer;transition:all 0.2s;text-decoration:none;padding:0;font-size:0}
    .share-btn:hover{background:hsl(var(--primary));color:hsl(var(--primary-fg));border-color:hsl(var(--primary));transform:translateY(-1px)}
    .share-btn svg{flex-shrink:0}
    .article-bottom-share{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid hsl(var(--border))}
    .article-bottom-share-label{display:flex;align-items:center;gap:0.375rem;font-size:0.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:hsl(var(--muted-fg))}

    /* Footer — mirrors header design system */
    .footer{background:hsl(var(--nav-bg));margin-top:0.75rem;color:hsl(var(--nav-fg));position:relative}
    .footer-accent-stripe{height:4px;background:hsl(var(--accent))}
    .footer-inner{padding:0}

    /* Footer main layout: brand column left + nav columns right */
    .footer-main{display:flex;align-items:flex-start;gap:3rem;padding:3rem 0 2.5rem}
    .footer-brand{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:0;max-width:28rem;min-width:0;margin-right:2rem}
    .footer-masthead-block{display:flex;flex-direction:column;align-items:flex-start;gap:0;text-decoration:none;line-height:1}
    .footer-masthead-block.masthead-short{align-items:center}
    .footer-location{font-family:'DM Serif Text','Public Sans',serif;font-size:clamp(0.875rem,1.8vw,1.15rem);font-weight:400;color:hsl(var(--nav-fg));line-height:1;letter-spacing:0.08em;padding-left:0.75rem;text-transform:capitalize}
    .masthead-short .footer-location{padding-left:0;text-align:center;align-self:center}
    .footer-sitename{font-family:'DM Serif Text','Public Sans',serif;font-size:clamp(2.25rem,4.5vw,4rem);font-weight:400;color:hsl(var(--nav-fg));line-height:0.85;letter-spacing:-0.03em;text-transform:uppercase;-webkit-text-stroke:var(--masthead-stroke) hsl(var(--nav-fg));overflow-wrap:break-word;word-break:break-word}
    .footer-sitename.has-descender{padding-bottom:0.15em}
    .footer-tagline{color:hsl(var(--nav-fg)/0.89);font-size:0.6875rem;font-weight:var(--nav-fw);letter-spacing:0.18em;text-transform:uppercase;display:flex;align-items:center;gap:0.625rem;margin:1.25rem 0 0}
    .footer-tagline::before{content:'';display:inline-block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:hsl(var(--dot-chrome));flex-shrink:0}
    .footer-ctas{display:flex;flex-wrap:wrap;gap:0.375rem;margin-top:1.25rem}
    .footer-cta-break{width:100%;height:0}
    .footer-cta-break{width:100%;height:0}

    /* Footer social icons — matches article share buttons */
    .footer-socials-heading{font-size:0.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:hsl(var(--nav-fg));margin-top:1.25rem;margin-bottom:0.5rem}
    .footer-socials{display:flex;align-items:center;gap:0.5rem}
    .footer-social-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid hsl(var(--nav-fg)/0.3);background:transparent;color:hsl(var(--nav-fg)/0.75);cursor:pointer;transition:all 0.2s;text-decoration:none;padding:0}
    .footer-social-icon:hover{background:hsl(var(--nav-fg)/0.12);color:hsl(var(--nav-fg));border-color:hsl(var(--nav-fg)/0.5);transform:translateY(-1px)}
    .footer-social-icon svg{width:1rem;height:1rem;flex-shrink:0}

    /* Footer newsletter inline form */
    .footer-nl{margin-top:1.5rem;padding-top:1.5rem;border-top:var(--nav-bw-heavy) solid hsl(var(--nav-fg)/0.15)}
    .footer-nl-title{font-size:0.8125rem;font-weight:var(--nav-fw);text-transform:uppercase;letter-spacing:0.1em;color:hsl(var(--nav-fg));margin:0 0 0.25rem;line-height:1.2}
    .footer-nl-pitch{font-size:0.8125rem;line-height:1.5;color:hsl(var(--nav-fg)/0.75);margin:0 0 1rem}
    .footer-nl-form{display:flex;gap:0.375rem}
    .footer-nl-form input[type="email"]{flex:1;padding:0.5rem 0.75rem;border:1.5px solid hsl(var(--primary-fg)/0.3);border-radius:0.25rem;font-size:0.875rem;font-family:'Public Sans',sans-serif;background:hsl(var(--primary-fg)/0.1);color:hsl(var(--primary-fg));outline:none;transition:border-color 0.15s;min-width:0}
    .footer-nl-form input[type="email"]::placeholder{color:hsl(var(--primary-fg)/0.5)}
    .footer-nl-form input[type="email"]:focus{border-color:hsl(var(--primary-fg)/0.6)}
    .footer-nl-form button{padding:0.5rem 1rem;background:hsl(var(--accent));color:hsl(var(--accent-fg));border:none;border-radius:0.1875rem;font-size:0.75rem;font-weight:700;font-family:'Public Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:filter 0.15s,transform 0.15s;text-transform:uppercase;letter-spacing:0.01em}
    .footer-nl-form button:hover{filter:brightness(1.08);transform:translateY(-1px)}
    .footer-nl-form button:disabled{opacity:0.5;cursor:not-allowed;transform:none;filter:none}
    .footer-nl-msg{font-size:0.75rem;margin-top:0.375rem;min-height:1rem}
    .footer-nl-msg.success{color:#4ade80}
    .footer-nl-msg.error{color:#f87171}
    .footer-nl-follow{display:flex;align-items:center;gap:0.625rem;margin-top:1rem}
    .footer-nl-follow-label{font-size:0.8125rem;font-weight:var(--nav-fw);text-transform:uppercase;letter-spacing:0.1em;color:hsl(var(--nav-fg))}
    .footer-nl-follow .footer-social-icon{width:2.25rem;height:2.25rem;color:hsl(var(--nav-fg))}

    /* Footer nav columns — right side */
    .footer-nav-area{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:2.5rem;min-width:0}
    .footer-nav-col .nav-col-heading{display:block;font-size:0.8125rem;font-weight:var(--nav-fw);text-transform:uppercase;letter-spacing:0.1em;color:hsl(var(--nav-fg));margin-bottom:1rem;padding-bottom:0.625rem;border-bottom:var(--nav-bw-heavy) solid hsl(var(--nav-fg)/0.15)}
    .footer-nav-col a{display:flex;align-items:center;font-size:0.9375rem;font-weight:normal;color:hsl(var(--nav-fg)/0.89);padding:0.4rem 0;text-decoration:none;transition:opacity 0.15s,padding-left 0.2s,color 0.15s;line-height:1.3}
    .footer-nav-col a:hover{color:hsl(var(--nav-fg));padding-left:0.375rem}
    .footer-nav-col a svg{display:inline;width:0.875rem;height:0.875rem;margin-right:0.5rem;opacity:0.8;flex-shrink:0;stroke-width:var(--nav-icon-sw)}

    /* Footer bottom bar */
    .footer-bottom{border-top:1px solid hsl(var(--nav-fg)/0.15);padding:1.25rem 0}
    .footer-bottom-left{display:flex;flex-direction:column;gap:0.5rem}
    .footer-bottom p{font-size:0.75rem;color:hsl(var(--nav-fg));letter-spacing:0.02em;margin:0}
    .footer-bottom-links{display:flex;align-items:baseline;gap:1rem}
    .footer-bottom-label{font-size:0.8125rem;font-weight:var(--nav-fw);text-transform:uppercase;letter-spacing:0.1em;color:hsl(var(--nav-fg));line-height:1}
    .footer-bottom-links a{font-size:0.75rem;color:hsl(var(--nav-fg)/0.89);padding:0;display:inline-block;text-decoration:none;transition:color 0.15s,transform 0.15s;line-height:1}
    .footer-bottom-links a:hover{color:hsl(var(--nav-fg));transform:translateY(-1px)}
    .footer-powered{display:flex;align-items:center;gap:0.375rem;font-size:0.9375rem;color:hsl(var(--nav-fg)/0.89);letter-spacing:0.02em;text-decoration:none;transition:color 0.2s,transform 0.15s;white-space:nowrap}
    .footer-powered:hover{color:hsl(var(--nav-fg));transform:translateY(-1px)}
    .footer-powered svg{width:1rem;height:1rem;opacity:0.7;flex-shrink:0}
    .footer-powered strong{font-weight:700;color:hsl(var(--nav-fg))}

    /* Ad */
    .ad-slot{display:flex;flex-direction:column;align-items:center}
    .billboard-top{padding:0.75rem 0;background:#f3f4f7;border-bottom:1px solid hsl(var(--border));display:flex;flex-direction:row;align-items:center;justify-content:center;gap:0;min-height:305px;contain:layout style}
    .billboard-top .adsbygoogle{min-height:250px}
    .billboard-top .ad-label{writing-mode:vertical-rl;transform:rotate(180deg);margin-bottom:0;margin-right:0.5rem;white-space:nowrap}
    @media(max-width:767px){.billboard-top{display:none}}
    .mobile-sticky-ad{position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:0.5rem 0;background:hsl(var(--background)/0.96);border-top:1px solid hsl(var(--border));box-shadow:0 -2px 8px hsl(var(--foreground)/0.08)}
    @media(min-width:768px){.mobile-sticky-ad{display:none!important}}
    .mobile-grid-ad{display:none}
    @media(max-width:767px){.mobile-grid-ad{display:flex;grid-column:1/-1}}
    .ad-label{font-size:10px;color:hsl(var(--foreground)/0.45);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.25rem}

    /* Mobile menu */
    .mobile-menu{display:none;border-top:1px solid var(--nav-border);padding:0.75rem 1rem}
    .mobile-menu.open{display:block}
    .mobile-menu a{display:block;padding:0.5rem 0.75rem;border-radius:0.5rem;color:hsl(var(--nav-fg))}
    .mobile-menu a:hover{background:var(--nav-hover)}

    /* Hamburger — animated to X */
    .hamburger{display:none;padding:0.625rem;border-radius:0.75rem;background:transparent;border:none;cursor:pointer;color:hsl(var(--nav-fg));position:relative;width:2.5rem;height:2.5rem}
    .hamburger-desktop{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:0.5rem;padding:0.5rem}
    .hamburger-desktop:hover{background:var(--nav-hover)}
    .nav-mobile-burger,.nav-mobile-login{display:none}
    .hamburger span{display:block;width:1.125rem;height:2px;background:hsl(var(--nav-fg));border-radius:1px;position:absolute;left:50%;transform:translateX(-50%);transition:transform 0.3s,opacity 0.2s}
    .hamburger span:nth-child(1){top:0.75rem}
    .hamburger span:nth-child(2){top:1.125rem}
    .hamburger span:nth-child(3){top:1.5rem}
    .hamburger.active span:nth-child(1){top:1.125rem;transform:translateX(-50%) rotate(45deg)}
    .hamburger.active span:nth-child(2){opacity:0}
    .hamburger.active span:nth-child(3){top:1.125rem;transform:translateX(-50%) rotate(-45deg)}

    /* Nav bar row (row 2 of main header) */
    .nav-bar-row{display:flex;align-items:center;justify-content:space-between;height:3.25rem;gap:0.5rem}

    /* Mega menu search — mobile only */
    .mega-search{display:none;padding:0 0 0.75rem;margin-bottom:1rem}
    .mega-search form{display:flex;align-items:center;background:var(--nav-hover);border:1px solid hsl(var(--nav-fg)/0.15);border-radius:0.5rem;padding:0.625rem 0.75rem;gap:0.5rem;transition:background 0.2s,border-color 0.2s}
    .mega-search form:focus-within{background:hsl(var(--nav-fg)/0.15);border-color:hsl(var(--nav-fg)/0.3)}
    .mega-search input{flex:1;background:transparent;border:none;outline:none;color:hsl(var(--nav-fg));font-size:1rem;-webkit-appearance:none;appearance:none}
    .mega-search input::placeholder{color:hsl(var(--nav-fg)/0.45)}

    /* Overflow-hide nav links only when space is tight */
    @media(min-width:768px) and (max-width:1023px){
      .nav-link:nth-child(n+9){display:none}
    }
    @media(min-width:1024px) and (max-width:1279px){
      .nav-link:nth-child(n+11){display:none}
    }
    @media(min-width:768px){
      .hero-inner{flex-direction:row}
      .hero-img-wrap{width:50%;height:22rem}
      .hero img{width:100%;height:100%;object-fit:cover}
      .hero-body{width:50%;padding:2rem 2.5rem;display:flex;flex-direction:column;justify-content:center}
      .hero-title{font-size:1.75rem;letter-spacing:-0.015em}
      .hero-excerpt{font-size:1rem}
      .card img{height:13rem}
      .card-title{font-size:1.1875rem}
      .card-h img{width:10rem;height:6.5rem}
      .article-body p{font-size:1.125rem;line-height:1.9}
      .article-body ul,.article-body ol{font-size:1.125rem;line-height:1.9}
      .article-headline{font-size:clamp(3rem,7vw,3.75rem)}
      .footer-main{flex-direction:row}
      .grid-cols-4{grid-template-columns:repeat(4,1fr)}
      .nav-right-col{display:flex}
    }
    @media(max-width:767px){
      body{padding-top:3.5rem}
      #expanded-hdr{display:none!important}
      .sticky-header{position:fixed!important;top:0!important;left:0;right:0;z-index:80;transform:none!important;opacity:1!important;transition:none!important}
      .sticky-inner{position:relative;height:3.5rem;display:flex;align-items:center;justify-content:space-between;column-gap:0}
      .sticky-left{min-width:2.75rem;justify-content:flex-start;position:relative;z-index:2;gap:0}
      .sticky-right{min-width:2.75rem;justify-content:flex-end;position:relative;z-index:2;gap:0}
      .sticky-mobile-actions{display:flex;align-items:center}
      .sticky-logo-link{position:absolute;left:50%;transform:translateX(-50%);max-width:none!important;padding:0;overflow:visible;text-align:center;z-index:1}
      .sticky-header .site-title{font-size:clamp(1rem,4.4vw,1.2rem);line-height:1;white-space:nowrap!important;overflow:visible!important;text-overflow:unset!important}
      .mobile-only{display:flex!important}
      .hide-mobile{display:none!important}
      .hamburger{display:flex;align-items:center;justify-content:center}
      .grid-cols-4{grid-template-columns:repeat(2,1fr)}
      .grid-cols-3{grid-template-columns:repeat(2,1fr)}
      .grid-cols-2{grid-template-columns:1fr}
      .sidebar{width:100%}
      .card img{height:10rem}
      .card-h{flex-direction:row}
      .card-h img{width:7rem;height:5rem}
      /* Mega menu mobile: full-screen, 1 col, large tap targets */
      .sticky-mega-menu{bottom:0;z-index:90}
      .sticky-mega-inner{grid-template-columns:1fr;gap:0.75rem}
      .sticky-mega-col{border-bottom:1px solid var(--nav-border-subtle);padding-bottom:0.75rem}
      .sticky-mega-col:last-child{border-bottom:none}
      .sticky-mega-col .nav-col-heading{font-size:0.75rem;margin-bottom:0.5rem}
      .sticky-mega-col--sections{grid-template-columns:1fr}
      .sticky-mega-col a{padding:0.625rem 0;font-size:1rem;min-height:2.75rem;display:flex;align-items:center}
      .sticky-mega-ctas{flex-direction:column;gap:0.375rem}
      .mega-socials-group{margin-left:0;justify-content:center;width:100%;padding-top:0.5rem}
      .mega-socials-label{font-size:0.625rem}
      .sticky-mega-cta{justify-content:center;padding:0.75rem 1rem;font-size:0.875rem;min-height:2.75rem;width:100%}
      .mega-search{display:block}
      .mega-scroll-area{max-height:calc(100vh - 3.5rem - env(safe-area-inset-bottom,0px))!important;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 12rem)!important}
      /* Footer mobile */
      .footer-main{flex-direction:column;align-items:center;text-align:center;gap:2rem}
      .footer-brand{align-items:center;max-width:none}
      .footer-nl-follow{justify-content:center}
      .footer-masthead-block{align-items:center}
      .footer-sitename{font-size:clamp(3.25rem,10vw,4.5rem)}
      .footer-tagline{justify-content:center}
      .footer-ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:0.375rem}
      .footer-cta-break{display:none}
      .footer-nav-area{grid-template-columns:repeat(2,1fr);gap:1.5rem;text-align:center}
      .footer-nav-col .nav-col-heading{text-align:center}
      .footer-nav-col a{justify-content:center}
      .footer-nav-col[aria-label="Footer readers"]{order:1}
      .footer-nav-col[aria-label="Footer about"]{order:2}
      .footer-nav-col[aria-label="Footer news"]{order:3}
      .footer-nav-col[aria-label="Footer sections"]{order:4}
      .footer-section-news{display:none}
      .footer-bottom .footer-main{flex-direction:column!important;align-items:center!important;text-align:center;gap:1.25rem!important}
      .footer-bottom .footer-nav-area{display:block!important;grid-template-columns:none!important}
      .footer-bottom .footer-brand{align-items:center!important;text-align:center!important;max-width:none!important;width:auto!important}
      .footer-bottom-row{justify-content:center}
      .footer-bottom-links{justify-content:center;flex-wrap:wrap}
      /* Article on mobile */
      .article-byline-bar{flex-direction:column;align-items:flex-start;gap:0.875rem;padding-bottom:1.25rem}
      .article-share-bar{gap:0.25rem}
      .share-btn{width:2.5rem;height:2.5rem}
      .share-btn svg{width:16px;height:16px}
      .article-bottom-share{flex-direction:column;align-items:flex-start;gap:0.875rem}
      .article-headline{font-size:clamp(2.75rem,9vw,3.5rem)}
    }
    @media(min-width:768px) and (max-width:1023px){
      .nav-row1-inner{gap:1.25rem}
      .masthead-col{max-width:30%}
      .site-title{font-size:clamp(1.75rem,4.5vw,2.75rem)}
      .site-location{font-size:clamp(0.625rem,1.3vw,0.8125rem)}
      .nav-center-col{gap:0.375rem}
      .cta-row{flex-direction:column;gap:0.375rem;align-items:center;flex-wrap:nowrap}
      .cta-line{flex-wrap:wrap;justify-content:center;gap:0.25rem}
      .cta-sep{display:none}
      .cta-link{font-size:0.6875rem;padding:0.375rem 0.5rem;gap:0.25rem}
      .cta-link svg{width:0.625rem;height:0.625rem}
      .cta-link-primary{padding:0.375rem 0.625rem;margin-right:1px}
      .cta-group-label{font-size:0.5625rem;padding-right:0}
      .site-tagline{font-size:0.625rem;letter-spacing:0.12em}
      .nav-date{font-size:0.6875rem}
      .nav-weather{font-size:0.6875rem}
      .nav-weather-temp{font-size:0.75rem}
      .nav-right-col{min-width:0}
    }
    @media(min-width:1024px) and (max-width:1279px){
      .nav-row1-inner{gap:1.5rem}
      .site-title{font-size:clamp(2.25rem,4.5vw,3.25rem)}
      .cta-row{flex-direction:column;gap:0.375rem;align-items:center;flex-wrap:nowrap}
      .cta-line{flex-wrap:wrap;justify-content:center;gap:0.25rem}
      .cta-sep{display:none}
      .cta-link{font-size:0.6875rem;padding:0.375rem 0.5rem}
      .cta-link-primary{margin-right:1px}
      .cta-group-label{font-size:0.5625rem}
    }
    @media(min-width:768px) and (max-width:1439px){
      .sticky-logo-link{max-width:40vw}
    }
    @media(min-width:768px) and (max-width:1279px){
      .sticky-inner{column-gap:0.5rem}
    }
    @media(min-width:1024px){
      .main-grid{display:flex;gap:3.5rem}
      .main-grid main{flex:1;min-width:0;overflow:hidden}
      .sidebar{width:320px;display:flex;flex-direction:column;gap:1rem;align-self:stretch;position:relative;overflow:visible}
      .sidebar>*{margin-bottom:0}
      .hp-sidebar-sticky-rail{position:relative;flex:1 1 auto;min-height:1px}
      .hp-sidebar-sticky-inner{width:100%}
      .hp-sidebar-sticky-inner.is-fixed{position:fixed;left:var(--hp-sb-left,0px);top:var(--hp-sb-top,0px);width:var(--hp-sb-width,320px);max-height:var(--hp-sb-max-h,none);overflow-y:auto;overscroll-behavior:contain}
      .hp-sidebar-sticky-inner.is-bottom{position:absolute;left:0;bottom:0;width:100%}
      .footer-nav-area{gap:1.5rem}
      .footer-main{gap:1.5rem}
    }
  </style>
</head>
<body>
    <a href="#main-content" class="skip-link">Skip to content</a>

    <!-- Expanded masthead -->
    <header class="nav" id="expanded-hdr">
    
      <!-- Row 1: Masthead + Center CTAs + Date/Weather -->
      <div class="mw">
        <div class="nav-row1">
          <div class="nav-row1-inner">
            <!-- Mobile burger (left) -->
            <button class="hamburger nav-mobile-burger" id="menu-btn-mobile" aria-label="Open menu" aria-expanded="false" style="display:none">
              <span></span><span></span><span></span>
            </button>
            <div class="masthead-col hide-mobile">
              <a href="https://dvq.co.nz/" class="masthead-block" style="text-decoration:none">
                <span class="site-location">The Dunedin Voice &amp;</span>
                <span class="site-title has-descender">Quill</span>
              </a>
            </div>
            <!-- Mobile centered logo (single line, full name) -->
            <a href="https://dvq.co.nz/" class="mobile-masthead mobile-only" style="text-decoration:none;order:2;text-align:center;justify-self:center">
              <span class="site-title" style="font-size:1.25rem;letter-spacing:0.04em;white-space:nowrap;-webkit-text-stroke:0">The Dunedin Voice &amp; Quill</span>
            </a>
            <!-- Mobile CTAs (right side) -->
            <div class="nav-mobile-actions mobile-only" style="display:none;order:3;align-items:center;gap:0.25rem">
              <a href="https://dvq.co.nz/newsletter" class="mobile-hdr-cta" style="font-size:0.5625rem;font-weight:700;background:hsl(var(--accent));color:hsl(var(--accent-fg));padding:0.3125rem 0.5rem;border-radius:0.1875rem;text-transform:uppercase;letter-spacing:0.02em;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:0.1875rem;line-height:1"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.625rem;height:0.625rem"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>Subscribe</a>
              <a href="https://dashboard.scholastica.com" style="color:#fff;padding:0.375rem;border-radius:0.375rem" aria-label="Log in">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
              </a>
            </div>
            <div class="nav-center-col">
              <p class="site-tagline"><span>Ōtepoti&#39;s independent voice since the gold rush</span></p>
              <div class="cta-row">
                <div class="cta-line">
                  <span class="cta-group-label">Readers</span>
                  <a href="https://dvq.co.nz/newsletter" class="cta-link cta-link-primary"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>Subscribe — $2/wk</a>
                  <a href="https://dvq.co.nz/newsletter" class="cta-link cta-link-outline"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg>Newsletter</a>
                  <a href="https://dvq.co.nz/newsletter" class="cta-link cta-link-outline"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/></svg>Donate</a>
                </div>
                <span class="cta-sep"></span>
                <div class="cta-line">
                  <span class="cta-group-label">Advertisers</span>
                  <a href="https://dvq.co.nz/advertise" class="cta-link cta-link-outline"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="2" y="7" width="20" height="14" rx="2"/><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/></svg>Advertise</a>
                </div>
              </div>
            </div>
            <div class="nav-right-col">
              <div class="nav-date-weather">
                <span class="nav-date">Thursday, 30 April 2026</span>
                <a href="https://dvq.co.nz/weather" style="text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:flex-end;gap:0.25rem"><span class="nav-weather"><span class="nav-weather-icon"><svg width="20" height="20" viewBox="0 0 24 24"><path d="M7 20h11a4.5 4.5 0 000-9h-.4A5.5 5.5 0 007 15v5z" fill="#fff" opacity="0.85"/><path d="M4 20h8a3 3 0 000-6h-.3A4 4 0 004 17v3z" fill="#fff" opacity="0.6"/></svg></span><span class="nav-weather-temp">7°C</span><span class="nav-weather-cond">Overcast</span></span><span class="nav-weather-more" style="font-size:0.6875rem;color:hsl(var(--nav-fg));white-space:nowrap;opacity:0.85;text-decoration:none;border-bottom:1.5px solid transparent;padding-bottom:1px;transition:border-color 0.2s">More Dunedin weather →</span></a>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- Accent stripe -->
      <div class="nav-accent-stripe"></div>
      <!-- Row 2: Navigation bar -->
      <div style="border-top:1px solid rgba(255,255,255,0.1)">
        <div class="mw">
          <div class="nav-bar-row">
            <div style="display:flex;align-items:center;gap:0.5rem;min-width:0;flex:1">
              <button class="hamburger hamburger-desktop hide-mobile" id="menu-btn-desktop" aria-label="Open menu" aria-expanded="false">
                <span></span><span></span><span></span>
              </button>
              <nav class="nav-links" aria-label="Main navigation" style="flex:1;min-width:0"><a class="nav-link" href="https://dvq.co.nz/news">News</a><a class="nav-link" href="https://dvq.co.nz/news/sport">Sport</a><a class="nav-link" href="https://dvq.co.nz/news/community">Community</a><a class="nav-link" href="https://dvq.co.nz/news/business">Business</a><a class="nav-link" href="https://dvq.co.nz/news/property">Property</a><a class="nav-link" href="https://dvq.co.nz/news/lifestyle">Lifestyle</a><a class="nav-link" href="https://dvq.co.nz/news/politics">Politics</a><a class="nav-link" href="https://dvq.co.nz/news/crime">Crime</a>
    <div class="nav-more-wrap">
      <button class="nav-link nav-more-btn" aria-expanded="false" aria-haspopup="true">More <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.75rem;height:0.75rem;margin-left:0.125rem"><path d="m6 9 6 6 6-6"/></svg></button>
      <div class="nav-more-dropdown"><a class="nav-more-item" href="https://dvq.co.nz/guides"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.875rem;height:0.875rem"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>Guides</a><a class="nav-more-item" href="https://dvq.co.nz/weather"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.875rem;height:0.875rem"><circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/></svg>Weather</a><a class="nav-more-item" href="https://dvq.co.nz/accommodation"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.875rem;height:0.875rem"><path d="M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8"/><path d="M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4"/><path d="M12 4v6"/><path d="M2 18h20"/></svg>Accommodation</a><a class="nav-more-item" href="https://dvq.co.nz/places"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.875rem;height:0.875rem"><path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/></svg>Places</a><a class="nav-more-item" href="https://dvq.co.nz/businesses"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.875rem;height:0.875rem"><path d="m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7"/><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><path d="M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4"/><rect x="2" y="7" width="20" height="5"/></svg>Businesses</a></div>
    </div></nav>
            </div>
            <div style="display:flex;align-items:center;gap:0.375rem">
              <div class="search-inline hide-mobile" id="search-inline-desktop">
                <form action="https://dvq.co.nz/search" method="get" style="display:flex;align-items:center">
                  <input type="search" name="q" class="search-inline-input" placeholder="Search…" aria-label="Search">
                  <button type="button" class="search-inline-btn" aria-label="Search">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
                  </button>
                </form>
              </div>
              <a href="https://dashboard.scholastica.com" class="cta-link cta-link-outline hide-mobile" style="margin-left:0.25rem"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.875rem;height:0.875rem"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>Log in</a>
              <a href="https://dvq.co.nz/newsletter" class="mobile-subscribe-cta sticky-cta sticky-cta-primary" style="display:none;font-size:0.625rem;padding:0.25rem 0.5rem"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" style="width:0.625rem;height:0.625rem"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>Subscribe</a>
              <button class="search-btn-mobile" id="search-btn-mobile" aria-label="Search">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
              </button>
              <button class="hamburger" id="menu-btn" aria-label="Open menu" aria-expanded="false">
                <span></span><span></span><span></span>
              </button>
            </div>
          </div>
        </div>
      </div>
      <div class="search-dropdown" id="search-dropdown">
        <form action="https://dvq.co.nz/search" method="get" style="display:flex;align-items:center;background:var(--nav-hover);border:var(--nav-bw) solid hsl(var(--nav-fg)/0.15);border-radius:0.5rem;padding:0.5rem 0.75rem;gap:0.5rem">
          <svg style="width:1rem;height:1rem;color:hsl(var(--nav-fg)/0.5);flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
          <input type="search" name="q" placeholder="Search The Dunedin Voice &amp; Quill…" aria-label="Search" style="flex:1;background:transparent;border:none;outline:none;color:hsl(var(--nav-fg));font-size:1rem">
        </form>
      </div>
      
    </header>
    

    <!-- Sticky header -->
    <header class="sticky-header" id="sticky-hdr">
      <div class="mw">
        <div class="sticky-inner">
          <div class="sticky-left">
            <button class="hamburger hamburger-desktop hide-mobile" id="menu-btn-sticky-desktop" aria-label="Menu" aria-expanded="false">
              <span></span><span></span><span></span>
            </button>
            <button class="hamburger mobile-only" id="menu-btn-sticky" aria-label="Menu" aria-expanded="false">
              <span></span><span></span><span></span>
            </button>
            <button class="search-btn hide-mobile" id="search-btn-sticky-desktop" aria-label="Search">
              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
            </button>
          </div>
          <a href="https://dvq.co.nz/" class="sticky-logo-link"><span class="site-title">The Dunedin Voice &amp; Quill</span></a>
          <div class="sticky-right">
            <div class="sticky-ctas hide-mobile">
              <a href="https://dvq.co.nz/newsletter" class="sticky-cta sticky-cta-primary"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" style="width:0.6875rem;height:0.6875rem"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>Subscribe — $2/wk</a>
              <a href="https://dashboard.scholastica.com" class="sticky-cta sticky-cta-outline sticky-cta-login"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:0.875rem;height:0.875rem"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>Log in</a>
            </div>
            <div class="mobile-only sticky-mobile-actions">
              <button class="search-btn" id="search-btn-mobile-sticky" aria-label="Search" style="padding:0.375rem;color:hsl(var(--nav-fg));background:transparent;border:none;cursor:pointer;display:flex;align-items:center">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
              </button>
            </div>
          </div>
        </div>
      </div>
      <div class="search-dropdown" id="search-dropdown-sticky">
        <form action="https://dvq.co.nz/search" method="get" style="display:flex;align-items:center;background:var(--nav-hover);border:var(--nav-bw) solid hsl(var(--nav-fg)/0.15);border-radius:0.5rem;padding:0.5rem 0.75rem;gap:0.5rem">
          <svg style="width:1rem;height:1rem;color:hsl(var(--nav-fg)/0.5);flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
          <input type="search" name="q" placeholder="Search The Dunedin Voice &amp; Quill…" aria-label="Search" style="flex:1;background:transparent;border:none;outline:none;color:hsl(var(--nav-fg));font-size:1rem">
        </form>
      </div>
    </header>

    <!-- Shared dropdown menu (used by ALL burger buttons) -->
    <div class="sticky-mega-menu" id="shared-mega-menu">
      <div class="mw" style="display:flex;align-items:center;justify-content:space-between;padding-top:0.875rem;padding-bottom:0.875rem">
        <a href="https://dvq.co.nz/" style="font-family:'DM Serif Text',serif;font-size:1.25rem;font-weight:400;color:hsl(var(--nav-fg));text-decoration:none;text-transform:uppercase;letter-spacing:0.08em">The Dunedin Voice &amp; Quill</a>
        <button class="hamburger active" id="mega-menu-close" aria-label="Close menu" style="display:flex">
          <span></span><span></span><span></span>
        </button>
      </div>
      <div class="mega-scroll-area" style="max-height:calc(100vh - 3.5rem);overflow-y:auto;padding:0.75rem 0 1.5rem">
        <div class="mw">
          <!-- Mobile search (hidden on desktop via .mega-search) -->
          <div class="mega-search">
            <form action="https://dvq.co.nz/search" method="get">
              <svg style="width:1.125rem;height:1.125rem;color:rgba(255,255,255,0.5);flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
              <input type="search" name="q" placeholder="Search The Dunedin Voice &amp; Quill…" aria-label="Search">
            </form>
          </div>
          <div class="sticky-mega-inner">
            <nav class="sticky-mega-col">
              <span class="nav-col-heading">About</span>
              <a href="https://dvq.co.nz/about">About us</a>
              <a href="https://dvq.co.nz/authors">Our people</a>
              <a href="https://dvq.co.nz/editorial-standards-and-ethics">Editorial standards & ethics</a>
              <a href="https://dvq.co.nz/corrections">Corrections & clarifications</a>
              <a href="https://dvq.co.nz/letters">Letters to the editor</a>
              <a href="https://dvq.co.nz/contact">Contact us</a>
            </nav>
            <nav class="sticky-mega-col">
              <span class="nav-col-heading">For Readers</span>
              <a href="https://dvq.co.nz/newsletter">Subscribe — $2/wk</a>
              <a href="https://dvq.co.nz/newsletter">Email newsletter</a>
              <a href="https://dvq.co.nz/newsletter">Support us</a>
              <a href="https://dvq.co.nz/newsletter">Subscriber login</a>
              <span class="nav-col-heading" style="margin-top:1.5rem">For Advertisers</span>
              <a href="https://dvq.co.nz/advertise">Advertise with us</a>
              <a href="https://dvq.co.nz/advertise">Advertiser login</a>
            </nav>
            <nav class="sticky-mega-col">
              <span class="nav-col-heading"><a href="https://dvq.co.nz/news" style="color:inherit;text-decoration:none;font:inherit;letter-spacing:inherit;padding:0;display:inline;border:none">News</a></span>
              <a href="https://dvq.co.nz/news/sport">Sport</a>
              <a href="https://dvq.co.nz/news/community">Community</a>
              <a href="https://dvq.co.nz/news/business">Business</a>
              <a href="https://dvq.co.nz/news/property">Property</a>
              <a href="https://dvq.co.nz/news/lifestyle">Lifestyle</a>
              <a href="https://dvq.co.nz/news/education">Education</a>
              <a href="https://dvq.co.nz/news/environment">Environment</a>
              <a href="https://dvq.co.nz/news/health">Health</a>
              <a href="https://dvq.co.nz/news/politics">Politics</a>
              <a href="https://dvq.co.nz/news/crime">Crime</a>
            </nav>
            <nav class="sticky-mega-col sticky-mega-col--sections">
              <span class="nav-col-heading"><a href="https://dvq.co.nz/categories" style="color:inherit;text-decoration:none;font:inherit;letter-spacing:inherit;padding:0;display:inline;border:none">Sections</a></span>
              <a href="https://dvq.co.nz/news" style="display:flex;align-items:center;gap:0.25rem"><svg style="width:1rem;height:1rem;flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2"/><path d="M18 14h-8"/><path d="M15 18h-5"/><path d="M10 6h8v4h-8z"/></svg>News</a>
              <a href="https://dvq.co.nz/guides" style="display:flex;align-items:center;gap:0.25rem"><svg style="width:1rem;height:1rem;flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>Guides</a>
              <a href="https://dvq.co.nz/weather" style="display:flex;align-items:center;gap:0.25rem"><svg style="width:1rem;height:1rem;flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></svg>Weather</a>
              <a href="https://dvq.co.nz/accommodation" style="display:flex;align-items:center;gap:0.25rem"><svg style="width:1rem;height:1rem;flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8"/><path d="M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4"/><path d="M12 4v6"/><path d="M2 18h20"/></svg>Accommodation</a>
              <a href="https://dvq.co.nz/places" style="display:flex;align-items:center;gap:0.25rem"><svg style="width:1rem;height:1rem;flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/></svg>Places</a>
              <a href="https://dvq.co.nz/businesses" style="display:flex;align-items:center;gap:0.25rem"><svg style="width:1rem;height:1rem;flex-shrink:0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7"/><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><path d="M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4"/><rect x="2" y="7" width="20" height="5"/></svg>Businesses</a>
            </nav>
          </div>
          <div class="sticky-mega-ctas">
            <a href="https://dvq.co.nz/newsletter" class="sticky-mega-cta sticky-mega-cta-accent"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>Subscribe — $2/wk</a>
            <a href="https://dvq.co.nz/newsletter" class="sticky-mega-cta"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg>Newsletter</a>
            <a href="https://dvq.co.nz/newsletter" class="sticky-mega-cta"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/></svg>Donate</a>
            <a href="https://dvq.co.nz/advertise" class="sticky-mega-cta"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="2" y="7" width="20" height="14" rx="2"/><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/></svg>Advertise</a>
            <div class="mega-socials-group">
              <span class="mega-socials-label">Follow us</span>
              <a href="https://dvq.co.nz/newsletter" class="footer-social-icon" aria-label="Newsletter"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg></a>
              <a href="https://dvq.co.nz/feed" target="_blank" rel="noopener noreferrer" class="footer-social-icon" aria-label="RSS Feed"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 11a9 9 0 0 1 9 9"/><path d="M4 4a16 16 0 0 1 16 16"/><circle cx="5" cy="19" r="1"/></svg></a>
            </div>
          </div>
        </div>
      </div>
    </div>

    
    <div class="mw" style="padding:2rem 1rem 3rem">
      <div class="main-grid">
        <main id="main-content" class="flex-1 min-w-0">
          <h1 class="sr-only">Top Stories — The Dunedin Voice &amp; Quill</h1>
          <div class="hero">
    <div class="hero-inner">
      <a href="https://dvq.co.nz/article/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr" class="hero-img-wrap">
        <img src="https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 1200w" sizes="(max-width:768px) 100vw,50vw" alt="Dunedin Midwinter Carnival introduces timed sessions to ease crowds" width="800" height="541" fetchpriority="high">
      </a>
      <div class="hero-body">
        <a href="https://dvq.co.nz/news/community" class="hero-cat">Community</a>
        <a href="https://dvq.co.nz/article/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr" class="hero-title-link"><h2 class="hero-title">Dunedin Midwinter Carnival introduces timed sessions to ease crowds</h2></a>
        <p class="hero-excerpt">The Dunedin Midwinter Carnival returns on June 12 and 13 with a new &#39;A Rustle in the Night&#39; theme, timed entry sessions, and a low-sensory option to improve accessibility.</p>
        <div class="hero-meta">
          <span>By <a href="https://dvq.co.nz/author/mere-tuhoe" class="hero-author">Mere Tūhoe</a></span>
          <span>·</span>
          <time datetime="2026-04-30T12:41:49.605Z">30 Apr</time>
        </div>
      </div>
    </div>
  </div>
          <div class="grid grid-cols-2 gap-6" style="margin-top:2.5rem"><div class="card-h">
      <a href="https://dvq.co.nz/article/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 1200w" sizes="160px" alt="Dunedin student raises $10k after destroyed wheelchair leaves her stranded" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news">News</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves">Dunedin student raises $10k after destroyed wheelchair leaves her stranded</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/maia-tuhoe">Maia Tūhoe</a> · <time datetime="2026-04-29T12:41:09.098Z">29 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/ultimate-guide-20-things-do-kids-dunedin"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/ultimate-guide-20-things-do-kids-dunedin.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/ultimate-guide-20-things-do-kids-dunedin.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/ultimate-guide-20-things-do-kids-dunedin.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/ultimate-guide-20-things-do-kids-dunedin.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/ultimate-guide-20-things-do-kids-dunedin.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/ultimate-guide-20-things-do-kids-dunedin.webp 1200w" sizes="160px" alt="The ultimate guide: 20+ things to do with kids in Dunedin" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/guides">Guides</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/ultimate-guide-20-things-do-kids-dunedin">The ultimate guide: 20+ things to do with kids in Dunedin</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/mere-t-hoe">Mere Tūhoe</a> · <time datetime="2026-04-28T09:22:34.779Z">28 Apr 2026</time></div>
      </div>
    </div></div>
          
          <div class="grid grid-cols-4 gap-6" style="margin-top:2.5rem"><div class="card">
    <a href="https://dvq.co.nz/article/dunedin-remembers-sacrifices-city-hosts-major-protests"><img src="https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-remembers-sacrifices-city-hosts-major-protests.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-remembers-sacrifices-city-hosts-major-protests.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-remembers-sacrifices-city-hosts-major-protests.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-remembers-sacrifices-city-hosts-major-protests.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-remembers-sacrifices-city-hosts-major-protests.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-remembers-sacrifices-city-hosts-major-protests.webp 1200w" sizes="(max-width:640px) 50vw,25vw" alt="Dunedin remembers sacrifices as city hosts major protests" width="400" height="342" loading="lazy"></a>
    <div class="card-body">
      <span class="card-meta"><a href="https://dvq.co.nz/news/community">Community</a></span>
      <div class="card-title"><a href="https://dvq.co.nz/article/dunedin-remembers-sacrifices-city-hosts-major-protests">Dunedin remembers sacrifices as city hosts major protests</a></div>
      <div class="card-byline"><a href="https://dvq.co.nz/author/maia-t-hoe">Maia Tūhoe</a> · <time datetime="2026-04-27T19:21:48.092Z">27 Apr 2026</time></div>
    </div>
  </div><div class="card">
    <a href="https://dvq.co.nz/article/highlanders-make-pitch-host-super-round-dunedin"><img src="https://dvq.co.nz/cdn-image/w=400,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 1200w" sizes="(max-width:640px) 50vw,25vw" alt="Highlanders make pitch to host Super Round in Dunedin" width="400" height="342" loading="lazy"></a>
    <div class="card-body">
      <span class="card-meta"><a href="https://dvq.co.nz/news/sport">Sport</a></span>
      <div class="card-title"><a href="https://dvq.co.nz/article/highlanders-make-pitch-host-super-round-dunedin">Highlanders make pitch to host Super Round in Dunedin</a></div>
      <div class="card-byline"><a href="https://dvq.co.nz/author/liam-osullivan">Liam O&#39;Sullivan</a> · <time datetime="2026-04-26T19:22:11.988Z">26 Apr 2026</time></div>
    </div>
  </div><div class="card">
    <a href="https://dvq.co.nz/article/dunedin-city-council-awards-35m-annual-3-waters-contract-ful"><img src="https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 1200w" sizes="(max-width:640px) 50vw,25vw" alt="Dunedin City Council awards $35M annual 3 Waters contract to Fulton Hogan" width="400" height="342" loading="lazy"></a>
    <div class="card-body">
      <span class="card-meta"><a href="https://dvq.co.nz/news/business">Business</a></span>
      <div class="card-title"><a href="https://dvq.co.nz/article/dunedin-city-council-awards-35m-annual-3-waters-contract-ful">Dunedin City Council awards $35M annual 3 Waters contract to Fulton Hogan</a></div>
      <div class="card-byline"><a href="https://dvq.co.nz/author/maia-t-hoe">Maia Tūhoe</a> · <time datetime="2026-04-25T19:22:25.878Z">25 Apr 2026</time></div>
    </div>
  </div><div class="card">
    <a href="https://dvq.co.nz/article/otago-boys-high-school-students-honour-gallipolis-fallen"><img src="https://dvq.co.nz/cdn-image/w=400,q=80/article-images/otago-boys-high-school-students-honour-gallipolis-fallen.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/otago-boys-high-school-students-honour-gallipolis-fallen.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/otago-boys-high-school-students-honour-gallipolis-fallen.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/otago-boys-high-school-students-honour-gallipolis-fallen.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/otago-boys-high-school-students-honour-gallipolis-fallen.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/otago-boys-high-school-students-honour-gallipolis-fallen.webp 1200w" sizes="(max-width:640px) 50vw,25vw" alt="Otago Boys&#39; High School students honour Gallipoli&#39;s fallen" width="400" height="342" loading="lazy"></a>
    <div class="card-body">
      <span class="card-meta"><a href="https://dvq.co.nz/news/education">Education</a></span>
      <div class="card-title"><a href="https://dvq.co.nz/article/otago-boys-high-school-students-honour-gallipolis-fallen">Otago Boys&#39; High School students honour Gallipoli&#39;s fallen</a></div>
      <div class="card-byline"><a href="https://dvq.co.nz/author/callum-hendry">Callum Hendry</a> · <time datetime="2026-04-24T19:22:25.467Z">24 Apr 2026</time></div>
    </div>
  </div></div>
          <div class="cat-section"><div class="section-hdr"><h2>News</h2><a href="https://dvq.co.nz/news" class="section-hdr-link">More <span class="sr-only">News</span><span>→</span></a></div><div class="section-hero" style="background:#ecf2fb">
        <div class="section-hero-inner">
          <a href="https://dvq.co.nz/article/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves" class="section-hero-img">
            <img src="https://dvq.co.nz/cdn-image/w=600,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves.webp 1200w" sizes="(max-width:768px) 100vw,50vw" alt="Dunedin student raises $10k after destroyed wheelchair leaves her stranded" width="600" height="400" loading="lazy">
          </a>
          <div class="section-hero-body">
            <a href="https://dvq.co.nz/news" class="hero-cat">News</a>
            <a href="https://dvq.co.nz/article/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves" class="hero-title-link"><div class="hero-title">Dunedin student raises $10k after destroyed wheelchair leaves her stranded</div></a>
            <p class="hero-excerpt">A University of Otago student has raised more than $10,000 to replace her wheelchair, which was destroyed when she was hit by a car at a pedestrian crossing.</p>
            <div class="hero-meta">
              <span>By <a href="https://dvq.co.nz/author/maia-tuhoe" class="hero-author">Maia Tūhoe</a></span>
              <span>·</span>
              <span>29 Apr</span>
            </div>
          </div>
        </div>
      </div><div class="section-cards"><div class="card-h">
      <a href="https://dvq.co.nz/article/otago-regional-council-begins-move-new-central-city-headquar"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/otago-regional-council-begins-move-new-central-city-headquar.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/otago-regional-council-begins-move-new-central-city-headquar.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/otago-regional-council-begins-move-new-central-city-headquar.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/otago-regional-council-begins-move-new-central-city-headquar.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/otago-regional-council-begins-move-new-central-city-headquar.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/otago-regional-council-begins-move-new-central-city-headquar.webp 1200w" sizes="160px" alt="Otago Regional Council begins move to new central city headquarters" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news">News</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/otago-regional-council-begins-move-new-central-city-headquar">Otago Regional Council begins move to new central city headquarters</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/mere-t-hoe">Mere Tūhoe</a> · <time datetime="2026-04-22T19:22:22.641Z">22 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/council-surveys-residents-amaru-dunedin-bus-service"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/council-surveys-residents-amaru-dunedin-bus-service.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/council-surveys-residents-amaru-dunedin-bus-service.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/council-surveys-residents-amaru-dunedin-bus-service.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/council-surveys-residents-amaru-dunedin-bus-service.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/council-surveys-residents-amaru-dunedin-bus-service.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/council-surveys-residents-amaru-dunedin-bus-service.webp 1200w" sizes="160px" alt="Council surveys residents on Ōamaru-Dunedin bus service" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news">News</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/council-surveys-residents-amaru-dunedin-bus-service">Council surveys residents on Ōamaru-Dunedin bus service</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/maia-tuhoe">Maia Tūhoe</a> · <time datetime="2026-04-18T19:21:46.145Z">18 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/dunedin-suburbs-plunged-into-darkness-after-mass-streetlight"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/dunedin-suburbs-plunged-into-darkness-after-mass-streetlight.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-suburbs-plunged-into-darkness-after-mass-streetlight.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-suburbs-plunged-into-darkness-after-mass-streetlight.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-suburbs-plunged-into-darkness-after-mass-streetlight.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-suburbs-plunged-into-darkness-after-mass-streetlight.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-suburbs-plunged-into-darkness-after-mass-streetlight.webp 1200w" sizes="160px" alt="Dunedin suburbs plunged into darkness after mass streetlight failure" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news">News</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/dunedin-suburbs-plunged-into-darkness-after-mass-streetlight">Dunedin suburbs plunged into darkness after mass streetlight failure</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/mere-t-hoe">Mere Tūhoe</a> · <time datetime="2026-04-08T19:22:35.866Z">8 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/police-shoot-driver-during-dramatic-dunedin-manhunt"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/police-shoot-driver-during-dramatic-dunedin-manhunt.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/police-shoot-driver-during-dramatic-dunedin-manhunt.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/police-shoot-driver-during-dramatic-dunedin-manhunt.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/police-shoot-driver-during-dramatic-dunedin-manhunt.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/police-shoot-driver-during-dramatic-dunedin-manhunt.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/police-shoot-driver-during-dramatic-dunedin-manhunt.webp 1200w" sizes="160px" alt="Police shoot at driver during dramatic Dunedin manhunt" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news">News</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/police-shoot-driver-during-dramatic-dunedin-manhunt">Police shoot at driver during dramatic Dunedin manhunt</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/liam-osullivan">Liam O&#39;Sullivan</a> · <time datetime="2026-04-02T19:23:32.606Z">2 Apr 2026</time></div>
      </div>
    </div></div></div><aside class="hp-nl" id="hp-nl">
    <div class="nl-deco nl-deco-tl"><svg viewBox="0 0 200 200" fill="none"><circle cx="0" cy="0" r="100" stroke="currentColor" stroke-width="1.5"/><circle cx="0" cy="0" r="70" stroke="currentColor" stroke-width="1.5"/><circle cx="0" cy="0" r="40" stroke="currentColor" stroke-width="1.5"/><circle cx="50" cy="50" r="8" fill="currentColor" opacity="0.6"/><circle cx="80" cy="25" r="5" fill="currentColor" opacity="0.4"/><circle cx="25" cy="85" r="4" fill="currentColor" opacity="0.35"/></svg></div>
    <div class="nl-deco nl-deco-br"><svg viewBox="0 0 200 200" fill="none"><circle cx="200" cy="200" r="100" stroke="currentColor" stroke-width="1.5"/><circle cx="200" cy="200" r="70" stroke="currentColor" stroke-width="1.5"/><circle cx="200" cy="200" r="40" stroke="currentColor" stroke-width="1.5"/><circle cx="150" cy="150" r="8" fill="currentColor" opacity="0.6"/><circle cx="120" cy="175" r="5" fill="currentColor" opacity="0.4"/><circle cx="175" cy="115" r="4" fill="currentColor" opacity="0.35"/></svg></div>
    <div class="nl-deco-content">
      <div class="hp-nl-header">
        <div class="hp-nl-title"><svg class="hp-nl-inline-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m22 2-7 20-4-9-9-4Z"/><path d="M22 2 11 13"/></svg> Don't miss a Dunedin story.</div>
      </div>
      <div class="hp-nl-desc">Get the best of Dunedin delivered to your inbox.</div>
      <form class="hp-nl-form" id="hp-nl-form" onsubmit="return false">
        <input type="email" id="hp-nl-email" placeholder="Your email address" required autocomplete="email" aria-label="Email address">
        <button type="submit" id="hp-nl-btn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14" style="vertical-align:-2px;margin-right:0.375rem"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg>Subscribe</button>
      </form>
      <div class="hp-nl-msg" id="hp-nl-msg"></div>
    </div>
  </aside><div class="hide-mobile"></div><div class="cat-section"><div class="section-hdr"><h2>Sport</h2><a href="https://dvq.co.nz/news/sport" class="section-hdr-link">More <span class="sr-only">Sport</span><span>→</span></a></div><div class="section-hero" style="background:#f1effa">
        <div class="section-hero-inner">
          <a href="https://dvq.co.nz/article/highlanders-make-pitch-host-super-round-dunedin" class="section-hero-img">
            <img src="https://dvq.co.nz/cdn-image/w=600,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/highlanders-make-pitch-host-super-round-dunedin.webp 1200w" sizes="(max-width:768px) 100vw,50vw" alt="Highlanders make pitch to host Super Round in Dunedin" width="600" height="400" loading="lazy">
          </a>
          <div class="section-hero-body">
            <a href="https://dvq.co.nz/news/sport" class="hero-cat">Sport</a>
            <a href="https://dvq.co.nz/article/highlanders-make-pitch-host-super-round-dunedin" class="hero-title-link"><div class="hero-title">Highlanders make pitch to host Super Round in Dunedin</div></a>
            <p class="hero-excerpt">Following the successful Super Round in Christchurch, the Highlanders have put Dunedin and its Forsyth Barr Stadium forward as the ideal host for the next event.</p>
            <div class="hero-meta">
              <span>By <a href="https://dvq.co.nz/author/liam-osullivan" class="hero-author">Liam O&#39;Sullivan</a></span>
              <span>·</span>
              <span>26 Apr</span>
            </div>
          </div>
        </div>
      </div></div><div class="cat-section"><div class="section-hdr"><h2>Crime</h2><a href="https://dvq.co.nz/news/crime" class="section-hdr-link">More <span class="sr-only">Crime</span><span>→</span></a></div><div class="section-hero" style="background:#eef6f0">
        <div class="section-hero-inner">
          <a href="https://dvq.co.nz/article/nelson-man-jailed-750km-dunedin-drug-run" class="section-hero-img">
            <img src="https://dvq.co.nz/cdn-image/w=600,q=80/article-images/nelson-man-jailed-750km-dunedin-drug-run.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/nelson-man-jailed-750km-dunedin-drug-run.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/nelson-man-jailed-750km-dunedin-drug-run.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/nelson-man-jailed-750km-dunedin-drug-run.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/nelson-man-jailed-750km-dunedin-drug-run.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/nelson-man-jailed-750km-dunedin-drug-run.webp 1200w" sizes="(max-width:768px) 100vw,50vw" alt="Nelson man jailed for 750km Dunedin drug run" width="600" height="400" loading="lazy">
          </a>
          <div class="section-hero-body">
            <a href="https://dvq.co.nz/news/crime" class="hero-cat">Crime</a>
            <a href="https://dvq.co.nz/article/nelson-man-jailed-750km-dunedin-drug-run" class="hero-title-link"><div class="hero-title">Nelson man jailed for 750km Dunedin drug run</div></a>
            <p class="hero-excerpt">A Nelson man who travelled to Dunedin to sell drugs after identifying a &#39;need in the market&#39; has been sentenced to more than three years in prison.</p>
            <div class="hero-meta">
              <span>By <a href="https://dvq.co.nz/author/maia-tuhoe" class="hero-author">Maia Tūhoe</a></span>
              <span>·</span>
              <span>23 Apr</span>
            </div>
          </div>
        </div>
      </div><div class="section-cards"><div class="card-h">
      <a href="https://dvq.co.nz/article/dunedin-woman-sentenced-insidious-tiktok-attack-midwife"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/dunedin-woman-sentenced-insidious-tiktok-attack-midwife.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-woman-sentenced-insidious-tiktok-attack-midwife.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-woman-sentenced-insidious-tiktok-attack-midwife.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-woman-sentenced-insidious-tiktok-attack-midwife.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-woman-sentenced-insidious-tiktok-attack-midwife.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-woman-sentenced-insidious-tiktok-attack-midwife.webp 1200w" sizes="160px" alt="Dunedin woman sentenced for &#39;insidious&#39; TikTok attack on midwife" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/crime">Crime</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/dunedin-woman-sentenced-insidious-tiktok-attack-midwife">Dunedin woman sentenced for &#39;insidious&#39; TikTok attack on midwife</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/callum-hendry">Callum Hendry</a> · <time datetime="2026-03-31T19:22:05.566Z">31 Mar 2026</time></div>
      </div>
    </div></div></div><div class="hide-mobile"></div><div class="cat-section"><div class="section-hdr"><h2>Community</h2><a href="https://dvq.co.nz/news/community" class="section-hdr-link">More <span class="sr-only">Community</span><span>→</span></a></div><div class="section-hero" style="background:#fdf2ec">
        <div class="section-hero-inner">
          <a href="https://dvq.co.nz/article/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr" class="section-hero-img">
            <img src="https://dvq.co.nz/cdn-image/w=600,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr.webp 1200w" sizes="(max-width:768px) 100vw,50vw" alt="Dunedin Midwinter Carnival introduces timed sessions to ease crowds" width="600" height="400" loading="lazy">
          </a>
          <div class="section-hero-body">
            <a href="https://dvq.co.nz/news/community" class="hero-cat">Community</a>
            <a href="https://dvq.co.nz/article/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr" class="hero-title-link"><div class="hero-title">Dunedin Midwinter Carnival introduces timed sessions to ease crowds</div></a>
            <p class="hero-excerpt">The Dunedin Midwinter Carnival returns on June 12 and 13 with a new &#39;A Rustle in the Night&#39; theme, timed entry sessions, and a low-sensory option to improve accessibility.</p>
            <div class="hero-meta">
              <span>By <a href="https://dvq.co.nz/author/mere-tuhoe" class="hero-author">Mere Tūhoe</a></span>
              <span>·</span>
              <span>30 Apr</span>
            </div>
          </div>
        </div>
      </div><div class="section-cards"><div class="card-h">
      <a href="https://dvq.co.nz/article/t-hura-otago-museum-attracts-visitors-world-class-exhibits"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/t-hura-otago-museum-attracts-visitors-world-class-exhibits.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/t-hura-otago-museum-attracts-visitors-world-class-exhibits.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/t-hura-otago-museum-attracts-visitors-world-class-exhibits.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/t-hura-otago-museum-attracts-visitors-world-class-exhibits.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/t-hura-otago-museum-attracts-visitors-world-class-exhibits.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/t-hura-otago-museum-attracts-visitors-world-class-exhibits.webp 1200w" sizes="160px" alt="Tūhura Otago Museum attracts visitors with world-class exhibits" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/community">Community</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/t-hura-otago-museum-attracts-visitors-world-class-exhibits">Tūhura Otago Museum attracts visitors with world-class exhibits</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/mere-t-hoe">Mere Tūhoe</a> · <time datetime="2026-04-14T19:21:39.205Z">14 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/dunedin-folk-club-marks-50-years-anniversary-festival"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/dunedin-folk-club-marks-50-years-anniversary-festival.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-folk-club-marks-50-years-anniversary-festival.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-folk-club-marks-50-years-anniversary-festival.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-folk-club-marks-50-years-anniversary-festival.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-folk-club-marks-50-years-anniversary-festival.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-folk-club-marks-50-years-anniversary-festival.webp 1200w" sizes="160px" alt="Dunedin Folk Club marks 50 years with anniversary festival" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/community">Community</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/dunedin-folk-club-marks-50-years-anniversary-festival">Dunedin Folk Club marks 50 years with anniversary festival</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/liam-osullivan">Liam O&#39;Sullivan</a> · <time datetime="2026-04-12T19:22:22.089Z">12 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/dunedin-graduate-walk-1000km-premature-babies"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/dunedin-graduate-walk-1000km-premature-babies.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-graduate-walk-1000km-premature-babies.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-graduate-walk-1000km-premature-babies.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-graduate-walk-1000km-premature-babies.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-graduate-walk-1000km-premature-babies.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-graduate-walk-1000km-premature-babies.webp 1200w" sizes="160px" alt="Dunedin graduate to walk 1000km for premature babies" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/community">Community</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/dunedin-graduate-walk-1000km-premature-babies">Dunedin graduate to walk 1000km for premature babies</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/liam-osullivan">Liam O&#39;Sullivan</a> · <time datetime="2026-04-11T19:22:41.854Z">11 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/crowds-turn-out-strath-taieri-s-122nd-p-show"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/crowds-turn-out-strath-taieri-s-122nd-p-show.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/crowds-turn-out-strath-taieri-s-122nd-p-show.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/crowds-turn-out-strath-taieri-s-122nd-p-show.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/crowds-turn-out-strath-taieri-s-122nd-p-show.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/crowds-turn-out-strath-taieri-s-122nd-p-show.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/crowds-turn-out-strath-taieri-s-122nd-p-show.webp 1200w" sizes="160px" alt="Crowds turn out for Strath Taieri’s 122nd A&amp;P show" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/community">Community</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/crowds-turn-out-strath-taieri-s-122nd-p-show">Crowds turn out for Strath Taieri’s 122nd A&amp;P show</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/mere-t-hoe">Mere Tūhoe</a> · <time datetime="2026-03-22T19:21:44.389Z">22 Mar 2026</time></div>
      </div>
    </div></div></div><div class="cat-section"><div class="section-hdr"><h2>Business</h2><a href="https://dvq.co.nz/news/business" class="section-hdr-link">More <span class="sr-only">Business</span><span>→</span></a></div><div class="section-hero" style="background:#f0f4f8">
        <div class="section-hero-inner">
          <a href="https://dvq.co.nz/article/dunedin-city-council-awards-35m-annual-3-waters-contract-ful" class="section-hero-img">
            <img src="https://dvq.co.nz/cdn-image/w=600,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/dunedin-city-council-awards-35m-annual-3-waters-contract-ful.webp 1200w" sizes="(max-width:768px) 100vw,50vw" alt="Dunedin City Council awards $35M annual 3 Waters contract to Fulton Hogan" width="600" height="400" loading="lazy">
          </a>
          <div class="section-hero-body">
            <a href="https://dvq.co.nz/news/business" class="hero-cat">Business</a>
            <a href="https://dvq.co.nz/article/dunedin-city-council-awards-35m-annual-3-waters-contract-ful" class="hero-title-link"><div class="hero-title">Dunedin City Council awards $35M annual 3 Waters contract to Fulton Hogan</div></a>
            <p class="hero-excerpt">Dunedin&#39;s water infrastructure maintenance will be managed under a single new contract aimed at providing long-term certainty and improved services for residents.</p>
            <div class="hero-meta">
              <span>By <a href="https://dvq.co.nz/author/maia-t-hoe" class="hero-author">Maia Tūhoe</a></span>
              <span>·</span>
              <span>25 Apr</span>
            </div>
          </div>
        </div>
      </div><div class="section-cards"><div class="card-h">
      <a href="https://dvq.co.nz/article/speight-s-brewery-slashes-emissions-new-7-2m-electric-boiler"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/speight-s-brewery-slashes-emissions-new-7-2m-electric-boiler.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/speight-s-brewery-slashes-emissions-new-7-2m-electric-boiler.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/speight-s-brewery-slashes-emissions-new-7-2m-electric-boiler.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/speight-s-brewery-slashes-emissions-new-7-2m-electric-boiler.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/speight-s-brewery-slashes-emissions-new-7-2m-electric-boiler.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/speight-s-brewery-slashes-emissions-new-7-2m-electric-boiler.webp 1200w" sizes="160px" alt="Speight’s Brewery slashes emissions with new $7.2m electric boiler" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/business">Business</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/speight-s-brewery-slashes-emissions-new-7-2m-electric-boiler">Speight’s Brewery slashes emissions with new $7.2m electric boiler</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/maia-t-hoe">Maia Tūhoe</a> · <time datetime="2026-04-16T19:21:36.830Z">16 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/forsyth-barr-stadium-boss-paul-doorn-resigns"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/forsyth-barr-stadium-boss-paul-doorn-resigns.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/forsyth-barr-stadium-boss-paul-doorn-resigns.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/forsyth-barr-stadium-boss-paul-doorn-resigns.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/forsyth-barr-stadium-boss-paul-doorn-resigns.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/forsyth-barr-stadium-boss-paul-doorn-resigns.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/forsyth-barr-stadium-boss-paul-doorn-resigns.webp 1200w" sizes="160px" alt="Forsyth Barr Stadium boss Paul Doorn resigns" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/business">Business</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/forsyth-barr-stadium-boss-paul-doorn-resigns">Forsyth Barr Stadium boss Paul Doorn resigns</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/callum-hendry">Callum Hendry</a> · <time datetime="2026-04-13T19:25:01.473Z">13 Apr 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/stadium-unveils-flexible-curtain-system-attract-new-events"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/stadium-unveils-flexible-curtain-system-attract-new-events.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/stadium-unveils-flexible-curtain-system-attract-new-events.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/stadium-unveils-flexible-curtain-system-attract-new-events.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/stadium-unveils-flexible-curtain-system-attract-new-events.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/stadium-unveils-flexible-curtain-system-attract-new-events.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/stadium-unveils-flexible-curtain-system-attract-new-events.webp 1200w" sizes="160px" alt="Stadium unveils flexible curtain system to attract new events" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/business">Business</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/stadium-unveils-flexible-curtain-system-attract-new-events">Stadium unveils flexible curtain system to attract new events</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/maia-t-hoe">Maia Tūhoe</a> · <time datetime="2026-03-28T19:21:27.076Z">28 Mar 2026</time></div>
      </div>
    </div><div class="card-h">
      <a href="https://dvq.co.nz/article/greggs-factory-closure-cost-over-30-dunedin-jobs"><img src="https://dvq.co.nz/cdn-image/w=320,q=80/article-images/greggs-factory-closure-cost-over-30-dunedin-jobs.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/greggs-factory-closure-cost-over-30-dunedin-jobs.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/greggs-factory-closure-cost-over-30-dunedin-jobs.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/greggs-factory-closure-cost-over-30-dunedin-jobs.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/greggs-factory-closure-cost-over-30-dunedin-jobs.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/greggs-factory-closure-cost-over-30-dunedin-jobs.webp 1200w" sizes="160px" alt="Gregg&#39;s factory closure to cost over 30 Dunedin jobs" width="160" height="104" loading="lazy"></a>
      <div class="min-w-0">
        <span class="card-meta"><a href="https://dvq.co.nz/news/business">Business</a></span>
        <div class="card-title"><a href="https://dvq.co.nz/article/greggs-factory-closure-cost-over-30-dunedin-jobs">Gregg&#39;s factory closure to cost over 30 Dunedin jobs</a></div>
        <div class="card-byline"><a href="https://dvq.co.nz/author/callum-hendry">Callum Hendry</a> · <time datetime="2026-03-27T19:22:21.395Z">27 Mar 2026</time></div>
      </div>
    </div></div></div><div class="hide-mobile"></div><div class="cat-section"><div class="section-hdr"><h2>Property</h2><a href="https://dvq.co.nz/news/property" class="section-hdr-link">More <span class="sr-only">Property</span><span>→</span></a></div><div class="section-hero" style="background:#faf0f4">
        <div class="section-hero-inner">
          <a href="https://dvq.co.nz/article/national-rents-fall-but-otago-market-tells-different-story" class="section-hero-img">
            <img src="https://dvq.co.nz/cdn-image/w=600,q=80/article-images/national-rents-fall-but-otago-market-tells-different-story.webp" srcset="https://dvq.co.nz/cdn-image/w=128,q=80/article-images/national-rents-fall-but-otago-market-tells-different-story.webp 128w, https://dvq.co.nz/cdn-image/w=256,q=80/article-images/national-rents-fall-but-otago-market-tells-different-story.webp 256w, https://dvq.co.nz/cdn-image/w=400,q=80/article-images/national-rents-fall-but-otago-market-tells-different-story.webp 400w, https://dvq.co.nz/cdn-image/w=800,q=80/article-images/national-rents-fall-but-otago-market-tells-different-story.webp 800w, https://dvq.co.nz/cdn-image/w=1200,q=80/article-images/national-rents-fall-but-otago-market-tells-different-story.webp 1200w" sizes="(max-width:768px) 100vw,50vw" alt="National rents fall but Otago market tells a different story" width="600" height="400" loading="lazy">
          </a>
          <div class="section-hero-body">
            <a href="https://dvq.co.nz/news/property" class="hero-cat">Property</a>
            <a href="https://dvq.co.nz/article/national-rents-fall-but-otago-market-tells-different-story" class="hero-title-link"><div class="hero-title">National rents fall but Otago market tells a different story</div></a>
            <p class="hero-excerpt">The average asking price for rental properties across New Zealand has dropped, but the local market in Otago and Southland presents a more complex picture for tenants.</p>
            <div class="hero-meta">
              <span>By <a href="https://dvq.co.nz/author/maia-t-hoe" class="hero-author">Maia Tūhoe</a></span>
              <span>·</span>
              <span>7 Apr</span>
            </div>
          </div>
        </div>
      </div></div>
        </main>
        <aside class="sidebar hide-mobile">
    <div class="sidebar-nl" id="sidebar-nl">
    <div class="nl-deco nl-deco-tl"><svg viewBox="0 0 200 200" fill="none"><circle cx="0" cy="0" r="100" stroke="currentColor" stroke-width="1.5"/><circle cx="0" cy="0" r="70" stroke="currentColor" stroke-width="1.5"/><circle cx="0" cy="0" r="40" stroke="currentColor" stroke-width="1.5"/><circle cx="50" cy="50" r="8" fill="currentColor" opacity="0.6"/><circle cx="80" cy="25" r="5" fill="currentColor" opacity="0.4"/><circle cx="25" cy="85" r="4" fill="currentColor" opacity="0.35"/></svg></div><div class="nl-deco nl-deco-br"><svg viewBox="0 0 200 200" fill="none"><circle cx="200" cy="200" r="100" stroke="currentColor" stroke-width="1.5"/><circle cx="200" cy="200" r="70" stroke="currentColor" stroke-width="1.5"/><circle cx="200" cy="200" r="40" stroke="currentColor" stroke-width="1.5"/><circle cx="150" cy="150" r="8" fill="currentColor" opacity="0.6"/><circle cx="120" cy="175" r="5" fill="currentColor" opacity="0.4"/><circle cx="175" cy="115" r="4" fill="currentColor" opacity="0.35"/></svg></div>
    <div class="nl-deco-content">
      <div class="sidebar-nl-header"><div class="sidebar-nl-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m22 2-7 20-4-9-9-4Z"/><path d="M22 2 11 13"/></svg></div><div class="sidebar-nl-title">Newsletter</div></div>
      <div class="sidebar-nl-desc">Get the best of Dunedin delivered to your inbox.</div>
      <form class="sidebar-nl-form" id="sidebar-nl-form" onsubmit="return false">
        <input type="email" id="sidebar-nl-email" placeholder="Your email" required autocomplete="email" aria-label="Email address">
        <button type="submit" id="sidebar-nl-btn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="12" height="12" style="vertical-align:-1px;margin-right:0.25rem"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg>Subscribe</button>
      </form>
      <div class="sidebar-nl-msg" id="sidebar-nl-msg"></div>
    </div>
  </div>
    <div class="sidebar-box weather-card">
    <div class="weather-hdr"><h2>Weather</h2><span class="weather-location"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg> Dunedin</span></div>
    <div class="weather-current">
      <div class="weather-current-icon"><svg width="22" height="22" viewBox="0 0 24 24"><path d="M7 20h11a4.5 4.5 0 000-9h-.4A5.5 5.5 0 007 15v5z" fill="#94A3B8" opacity="0.7"/><path d="M4 20h8a3 3 0 000-6h-.3A4 4 0 004 17v3z" fill="#94A3B8" opacity="0.5"/></svg></div>
      <div class="weather-current-info">
        <span class="weather-current-temp">7°C</span>
        <span class="weather-current-cond">Overcast</span>
      </div>
      <div class="weather-current-detail"><span class="weather-detail-line">High 19°C / Low 7°C</span><span class="weather-detail-line">Humidity 98%</span><span class="weather-detail-line">Wind N 11 km/h</span></div>
    </div>
    <div class="weather-forecast"><div class="weather-day-col">
      <span class="weather-day-label">Thu</span>
      <span class="weather-day-icon"><svg width="22" height="22" viewBox="0 0 24 24"><circle cx="12" cy="12" r="5" fill="#F59E0B"/><g stroke="#F59E0B" stroke-width="2" stroke-linecap="round"><line x1="12" y1="2" x2="12" y2="4"/><line x1="12" y1="20" x2="12" y2="22"/><line x1="4.93" y1="4.93" x2="6.34" y2="6.34"/><line x1="17.66" y1="17.66" x2="19.07" y2="19.07"/><line x1="2" y1="12" x2="4" y2="12"/><line x1="20" y1="12" x2="22" y2="12"/><line x1="4.93" y1="19.07" x2="6.34" y2="17.66"/><line x1="17.66" y1="6.34" x2="19.07" y2="4.93"/></g></svg></span>
      <span class="weather-day-temps">13°C</span>
    </div><div class="weather-day-col">
      <span class="weather-day-label">Fri</span>
      <span class="weather-day-icon"><svg width="22" height="22" viewBox="0 0 24 24"><path d="M7 20h11a4.5 4.5 0 000-9h-.4A5.5 5.5 0 007 15v5z" fill="#94A3B8" opacity="0.7"/><path d="M4 20h8a3 3 0 000-6h-.3A4 4 0 004 17v3z" fill="#94A3B8" opacity="0.5"/></svg></span>
      <span class="weather-day-temps">14°C</span>
    </div><div class="weather-day-col">
      <span class="weather-day-label">Sat</span>
      <span class="weather-day-icon"><svg width="22" height="22" viewBox="0 0 24 24"><path d="M7 20h11a4.5 4.5 0 000-9h-.4A5.5 5.5 0 007 15v5z" fill="#94A3B8" opacity="0.7"/><path d="M4 20h8a3 3 0 000-6h-.3A4 4 0 004 17v3z" fill="#94A3B8" opacity="0.5"/></svg></span>
      <span class="weather-day-temps">17°C</span>
    </div><div class="weather-day-col">
      <span class="weather-day-label">Sun</span>
      <span class="weather-day-icon"><svg width="22" height="22" viewBox="0 0 24 24"><path d="M7 20h11a4.5 4.5 0 000-9h-.4A5.5 5.5 0 007 15v5z" fill="#94A3B8" opacity="0.7"/><path d="M4 20h8a3 3 0 000-6h-.3A4 4 0 004 17v3z" fill="#94A3B8" opacity="0.5"/></svg></span>
      <span class="weather-day-temps">14°C</span>
    </div></div>
    <a href="https://dvq.co.nz/weather" style="display:block;text-align:center;padding:1.125rem 0 0.25rem;font-size:0.8125rem;color:hsl(var(--accent-hsl,var(--primary-hsl)));text-decoration:none;border-bottom:1.5px solid transparent;transition:border-color 0.2s;font-weight:500" onmouseover="this.style.borderColor='hsl(var(--link-underline))'" onmouseout="this.style.borderColor='transparent'">Full Dunedin weather forecast →</a>
  </div>
    <div class="sidebar-box just-in-box"><h2>Just In</h2><div class="just-in-item"><span class="just-in-dot"></span><div class="just-in-content"><div style="display:flex;align-items:center;gap:0.5rem;margin-bottom:0.125rem"><a href="https://dvq.co.nz/news/community" class="just-in-meta">Community</a><time class="ts" datetime="2026-04-30T12:41:49.605Z">12:41 pm</time></div><a class="just-in-link" href="https://dvq.co.nz/article/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr">Dunedin Midwinter Carnival introduces timed sessions to ease crowds</a></div></div><div class="just-in-item"><span class="just-in-dot"></span><div class="just-in-content"><div style="display:flex;align-items:center;gap:0.5rem;margin-bottom:0.125rem"><a href="https://dvq.co.nz/news" class="just-in-meta">News</a><time class="ts" datetime="2026-04-29T12:41:09.098Z">12:41 pm</time></div><a class="just-in-link" href="https://dvq.co.nz/article/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves">Dunedin student raises $10k after destroyed wheelchair leaves her stranded</a></div></div><div class="just-in-item"><span class="just-in-dot"></span><div class="just-in-content"><div style="display:flex;align-items:center;gap:0.5rem;margin-bottom:0.125rem"><a href="https://dvq.co.nz/guides" class="just-in-meta">Guides</a><time class="ts" datetime="2026-04-28T09:22:34.779Z">09:22 am</time></div><a class="just-in-link" href="https://dvq.co.nz/article/ultimate-guide-20-things-do-kids-dunedin">The ultimate guide: 20+ things to do with kids in Dunedin</a></div></div><div class="just-in-item"><span class="just-in-dot"></span><div class="just-in-content"><div style="display:flex;align-items:center;gap:0.5rem;margin-bottom:0.125rem"><a href="https://dvq.co.nz/news/community" class="just-in-meta">Community</a><time class="ts" datetime="2026-04-27T19:21:48.092Z">07:21 pm</time></div><a class="just-in-link" href="https://dvq.co.nz/article/dunedin-remembers-sacrifices-city-hosts-major-protests">Dunedin remembers sacrifices as city hosts major protests</a></div></div><div class="just-in-item"><span class="just-in-dot"></span><div class="just-in-content"><div style="display:flex;align-items:center;gap:0.5rem;margin-bottom:0.125rem"><a href="https://dvq.co.nz/news/sport" class="just-in-meta">Sport</a><time class="ts" datetime="2026-04-26T19:22:11.988Z">07:22 pm</time></div><a class="just-in-link" href="https://dvq.co.nz/article/highlanders-make-pitch-host-super-round-dunedin">Highlanders make pitch to host Super Round in Dunedin</a></div></div></div>
    
    <div class="sidebar-box"><h2 style="display:flex;align-items:center;gap:0.5rem"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#e53e3e" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/></svg> Most Read</h2><ol class="most-read" style="list-style:none"><li><span class="most-read-num">1</span><a href="https://dvq.co.nz/article/dunedin-midwinter-carnival-introduces-timed-sessions-ease-cr">Dunedin Midwinter Carnival introduces timed sessions to ease crowds</a></li><li><span class="most-read-num">2</span><a href="https://dvq.co.nz/article/dunedin-student-raises-10k-after-destroyed-wheelchair-leaves">Dunedin student raises $10k after destroyed wheelchair leaves her stranded</a></li><li><span class="most-read-num">3</span><a href="https://dvq.co.nz/article/ultimate-guide-20-things-do-kids-dunedin">The ultimate guide: 20+ things to do with kids in Dunedin</a></li><li><span class="most-read-num">4</span><a href="https://dvq.co.nz/article/dunedin-remembers-sacrifices-city-hosts-major-protests">Dunedin remembers sacrifices as city hosts major protests</a></li><li><span class="most-read-num">5</span><a href="https://dvq.co.nz/article/highlanders-make-pitch-host-super-round-dunedin">Highlanders make pitch to host Super Round in Dunedin</a></li></ol></div>
    
    <div class="hp-sidebar-sticky-rail" id="hp-sidebar-sticky-rail"><div class="hp-sidebar-sticky-inner" id="hp-sidebar-sticky-inner"></div></div></aside>
      </div>
    </div>

    <!-- Footer -->
    <footer class="footer">
      <div class="footer-accent-stripe"></div>
      <div class="mw">
        <div class="footer-inner">
          <!-- Main: Brand left + Nav columns right -->
          <div class="footer-main">
            <div class="footer-brand">
              <a href="https://dvq.co.nz/" class="footer-masthead-block" style="text-decoration:none">
                <span class="footer-location">The Dunedin Voice &amp;</span>
                <span class="footer-sitename has-descender">Quill</span>
              </a>
              <p class="footer-tagline"><span>Ōtepoti&#39;s independent voice since the gold rush</span></p>
              <div class="footer-ctas">
                <a href="https://dvq.co.nz/newsletter" class="footer-cta footer-cta-primary"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>Subscribe — $2/wk</a>
                <div class="footer-cta-break"></div>
                <a href="https://dvq.co.nz/newsletter" class="footer-cta footer-cta-outline footer-cta-donate"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/></svg>Donate</a>
                <a href="https://dvq.co.nz/advertise" class="footer-cta footer-cta-outline"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="2" y="7" width="20" height="14" rx="2"/><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/></svg>Advertise</a>
              </div>
              <div class="footer-nl">
                <p class="footer-nl-title">Stay informed</p>
                <p class="footer-nl-pitch">The stories shaping Dunedin, delivered to you.</p>
                <form class="footer-nl-form" id="footer-nl-form" onsubmit="return false">
                  <input type="email" id="footer-nl-email" placeholder="Your email address" required autocomplete="email" aria-label="Email address">
                  <button type="submit" id="footer-nl-btn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="12" height="12" style="vertical-align:-1px;margin-right:0.25rem"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg>SIGN UP</button>
                </form>
                <div class="footer-nl-msg" id="footer-nl-msg"></div>
                <div class="footer-nl-follow">
                  <span class="footer-nl-follow-label">Follow</span>
                  <a href="https://dvq.co.nz/newsletter" class="footer-social-icon" aria-label="Newsletter"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg></a>
                  <a href="https://dvq.co.nz/feed" target="_blank" rel="noopener noreferrer" class="footer-social-icon" aria-label="RSS Feed"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 11a9 9 0 0 1 9 9"/><path d="M4 4a16 16 0 0 1 16 16"/><circle cx="5" cy="19" r="1"/></svg></a>
                </div>
              </div>
            </div>
            <div class="footer-nav-area">
              <nav class="footer-nav-col" aria-label="Footer about">
                <span class="nav-col-heading">About</span>
                <a href="https://dvq.co.nz/about">About us</a>
                <a href="https://dvq.co.nz/authors">Our people</a>
                <a href="https://dvq.co.nz/editorial-standards-and-ethics">Editorial standards & ethics</a>
                <a href="https://dvq.co.nz/corrections">Corrections & clarifications</a>
                <a href="https://dvq.co.nz/letters">Letters to the editor</a>
                <a href="https://dvq.co.nz/contact">Contact us</a>
              </nav>
              <nav class="footer-nav-col" aria-label="Footer readers">
                <span class="nav-col-heading">For Readers</span>
                <a href="https://dvq.co.nz/newsletter">Subscribe</a>
                <a href="https://dvq.co.nz/newsletter">Newsletter</a>
                <a href="https://dvq.co.nz/newsletter">Support us</a>
                <a href="https://dvq.co.nz/newsletter">Subscriber login</a>
                <span class="nav-col-heading" style="margin-top:1.5rem">For Advertisers</span>
                <a href="https://dvq.co.nz/advertise">Advertise with us</a>
                <a href="https://dvq.co.nz/advertise">Advertiser login</a>
              </nav>
              <nav class="footer-nav-col" aria-label="Footer news">
                <span class="nav-col-heading"><a href="https://dvq.co.nz/news" style="color:inherit;text-decoration:none;font:inherit;letter-spacing:inherit;padding:0;display:inline;border:none">News</a></span>
                <a href="https://dvq.co.nz/news/sport">Sport</a><a href="https://dvq.co.nz/news/community">Community</a><a href="https://dvq.co.nz/news/business">Business</a><a href="https://dvq.co.nz/news/property">Property</a><a href="https://dvq.co.nz/news/lifestyle">Lifestyle</a><a href="https://dvq.co.nz/news/education">Education</a><a href="https://dvq.co.nz/news/environment">Environment</a><a href="https://dvq.co.nz/news/health">Health</a><a href="https://dvq.co.nz/news/politics">Politics</a><a href="https://dvq.co.nz/news/crime">Crime</a>
              </nav>
              <nav class="footer-nav-col" aria-label="Footer sections">
                <span class="nav-col-heading"><a href="https://dvq.co.nz/categories" style="color:inherit;text-decoration:none;font:inherit;letter-spacing:inherit;padding:0;display:inline;border:none">Sections</a></span>
                <a class="footer-section-news" href="https://dvq.co.nz/news"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:1rem;height:1rem"><path d="M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2"/><path d="M18 14h-8"/><path d="M15 18h-5"/><path d="M10 6h8v4h-8V6Z"/></svg>News</a><a href="https://dvq.co.nz/guides"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:1rem;height:1rem"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>Guides</a><a href="https://dvq.co.nz/weather"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:1rem;height:1rem"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></svg>Weather</a><a href="https://dvq.co.nz/accommodation"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:1rem;height:1rem"><path d="M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8"/><path d="M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4"/><path d="M12 4v6"/><path d="M2 18h20"/></svg>Accommodation</a><a href="https://dvq.co.nz/places"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:1rem;height:1rem"><path d="M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"/><path d="M15 5.764v15"/><path d="M9 3.236v15"/></svg>Places</a><a href="https://dvq.co.nz/businesses"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="width:1rem;height:1rem"><path d="m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7"/><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><path d="M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4"/><rect x="2" y="7" width="20" height="5"/></svg>Businesses</a>
              </nav>
            </div>
          </div>

          <!-- Bottom bar -->
          <div class="footer-bottom">
            <div class="footer-main" style="padding:0;align-items:center;display:flex;justify-content:space-between;flex-wrap:wrap;gap:0.5rem">
              <p style="font-size:0.75rem;color:hsl(var(--nav-fg));letter-spacing:0.02em;margin:0">© 2026 The Dunedin Voice &amp; Quill. All rights reserved.</p>
              <div class="footer-bottom-links" style="margin-top:0">
                <span class="footer-bottom-label">LEGAL</span>
                <a href="https://dvq.co.nz/privacy">Privacy policy</a>
                <a href="https://dvq.co.nz/cookies">Cookie policy</a>
                <a href="https://dvq.co.nz/terms">Terms of use</a>
                <a href="https://dvq.co.nz/accessibility">Accessibility</a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </footer>

    <script>
(function(){
  // Sticky header — desktop only (scroll-based show/hide)
  // On mobile, the sticky header is always visible via pure CSS (position:fixed + no transform)
  var sh=document.getElementById('sticky-hdr');
  var articleTop=document.getElementById('article-top-markers');
  var scrolled=false;
  var ticking=false;
  function getStickyRevealY(){
    if(!sh||window.innerWidth<768)return 0;
    var baseRevealY=170;
    if(!articleTop)return baseRevealY;
    var rect=articleTop.getBoundingClientRect();
    var headerH=sh.offsetHeight||54;
    var topY=rect.top+window.scrollY;
    var markerBottomY=topY+Math.max(articleTop.offsetHeight,32);
    var safeBuffer=headerH+24;
    return Math.max(baseRevealY,Math.floor(markerBottomY+safeBuffer));
  }
  function setStickyHidden(instant){
    scrolled=false;
    if(instant)sh.classList.add('instant-hide');
    else sh.classList.remove('instant-hide');
    sh.classList.remove('show');
  }
  function setStickyVisible(){
    sh.classList.remove('instant-hide');
    scrolled=true;
    sh.classList.add('show');
  }
  function syncStickyState(){
    if(!sh||window.innerWidth<768)return;
    var y=window.scrollY;
    var revealY=getStickyRevealY();
    if(y<revealY){setStickyHidden(true);return}
    setStickyVisible();
  }
  function scrollToLocalHash(hash,updateHistory){
    if(!hash||hash.length<2)return false;
    var id=decodeURIComponent(hash.slice(1));
    var target=document.getElementById(id);
    if(!target)return false;
    var desktopOffset=(window.innerWidth>=768&&sh)?(sh.offsetHeight||54)+24:16;
    var targetY=target.getBoundingClientRect().top+window.scrollY-desktopOffset;
    window.scrollTo({top:Math.max(0,Math.floor(targetY)),left:0,behavior:'auto'});
    if(updateHistory){
      if(history.pushState)history.pushState(null,'','#'+id);
      else window.location.hash=id;
    }
    if(window.innerWidth>=768)syncStickyState();
    return true;
  }
  if(sh){
    // On mobile load, ensure .show is set so the header is visible
    if(window.innerWidth<768) sh.classList.add('show');
    else syncStickyState();
    window.addEventListener('scroll',function(){
      if(window.innerWidth<768)return;
      if(!ticking){ticking=true;requestAnimationFrame(function(){
        syncStickyState();
        ticking=false;
      })}
    },{passive:true});
    // On resize crossing the breakpoint, sync state
    window.addEventListener('resize',function(){
      if(window.innerWidth<768){sh.classList.remove('instant-hide');sh.classList.add('show')}
      else{syncStickyState()}
    },{passive:true});
  }
  document.querySelectorAll('a[href^="#"]').forEach(function(link){
    var href=link.getAttribute('href');
    if(!href||href.length<2)return;
    link.addEventListener('click',function(e){
      if(!document.getElementById(decodeURIComponent(href.slice(1))))return;
      e.preventDefault();
      scrollToLocalHash(href,true);
    });
  });
  window.addEventListener('hashchange',function(){scrollToLocalHash(window.location.hash,false)});
  if(window.location.hash){window.requestAnimationFrame(function(){scrollToLocalHash(window.location.hash,false)})}

  // Shared dropdown menu — ALL burger buttons toggle the same dropdown
  var megaMenu=document.getElementById('shared-mega-menu');
  var megaOpen=false;
  var megaOverlay=document.createElement('div');
  megaOverlay.className='mega-overlay';
  document.body.appendChild(megaOverlay);
  // ── Unified open-state manager ──
  // Only one panel (mega menu OR search dropdown) can be open at a time.
  // All focus calls use preventScroll to avoid jitter on mobile.
  function focusSafe(el){if(el)el.focus({preventScroll:true})}

  function closeAllSearchDropdowns(){
    document.querySelectorAll('.search-dropdown').forEach(function(d){d.classList.remove('open')});
    var inl=document.getElementById('search-inline-desktop');
    if(inl){inl.classList.remove('open');var inp=inl.querySelector('input');if(inp)inp.value=''}
  }

  function toggleMega(forceClose){
    if(!megaMenu)return;
    megaOpen=forceClose?false:!megaOpen;
    if(megaOpen)closeAllSearchDropdowns();
    megaMenu.classList.toggle('open',megaOpen);
    megaOverlay.classList.toggle('open',megaOpen);
    if(window.innerWidth<768){document.body.style.overflow=megaOpen?'hidden':''}else{document.body.style.overflow=''}
    document.querySelectorAll('.hamburger:not(#mega-menu-close)').forEach(function(b){b.classList.toggle('active',megaOpen);b.setAttribute('aria-expanded',megaOpen?'true':'false')});
  }
  megaOverlay.addEventListener('click',function(){toggleMega(true)});
  // Attach to all burger buttons
  ['menu-btn','menu-btn-desktop','menu-btn-sticky','menu-btn-sticky-desktop','menu-btn-mobile'].forEach(function(id){
    var btn=document.getElementById(id);
    if(btn)btn.addEventListener('click',function(e){e.stopPropagation();toggleMega()});
  });
  // Close button inside mega menu
  var closeBtn=document.getElementById('mega-menu-close');
  if(closeBtn)closeBtn.addEventListener('click',function(){toggleMega(true)});
  // Click outside closes
  document.addEventListener('click',function(e){if(megaOpen&&!megaMenu.contains(e.target)&&!e.target.closest('.hamburger')){toggleMega(true)}});

  // Search dropdown toggle — closes mega menu first, uses preventScroll focus
  function setupSearch(btnId,dropId){
    var searchBtn=document.getElementById(btnId);
    var searchDrop=document.getElementById(dropId);
    if(searchBtn&&searchDrop){
      searchBtn.addEventListener('click',function(e){
        e.preventDefault();
        e.stopPropagation();
        // Close mega menu if open
        if(megaOpen)toggleMega(true);
        // Close other search dropdowns first
        document.querySelectorAll('.search-dropdown').forEach(function(d){if(d!==searchDrop)d.classList.remove('open')});
        var open=searchDrop.classList.toggle('open');
        if(open){var inp=searchDrop.querySelector('input');focusSafe(inp)}
      });
    }
  }
  setupSearch('search-btn-mobile','search-dropdown');
  setupSearch('search-btn-sticky','search-dropdown-sticky');
  setupSearch('search-btn-sticky-desktop','search-dropdown-sticky');
  setupSearch('search-btn-mobile-sticky','search-dropdown-sticky');

  // Desktop inline search — toggle slide open
  (function(){
    var wrapper=document.getElementById('search-inline-desktop');
    if(!wrapper)return;
    var btn=wrapper.querySelector('.search-inline-btn');
    var inp=wrapper.querySelector('input');
    if(!btn||!inp)return;
    btn.addEventListener('click',function(e){
      e.preventDefault();
      if(megaOpen)toggleMega(true);
      var isOpen=wrapper.classList.toggle('open');
      if(isOpen){focusSafe(inp)}else{inp.value=''}
    });
    inp.addEventListener('keydown',function(e){
      if(e.key==='Escape'){wrapper.classList.remove('open');inp.value='';btn.focus()}
      if(e.key==='Enter'&&inp.value.trim()){e.preventDefault();window.location.href='/search?q='+encodeURIComponent(inp.value.trim())}
    });
    document.addEventListener('click',function(e){if(!wrapper.contains(e.target)){wrapper.classList.remove('open');inp.value=''}});
  })();

  // "More" dropdown toggle
  (function(){
    var wrap=document.querySelector('.nav-more-wrap');
    if(!wrap)return;
    var btn=wrap.querySelector('.nav-more-btn');
    btn.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();wrap.classList.toggle('open');btn.setAttribute('aria-expanded',wrap.classList.contains('open'))});
    document.addEventListener('click',function(e){if(!wrap.contains(e.target)){wrap.classList.remove('open');btn.setAttribute('aria-expanded','false')}});
    // Also handle sticky header more dropdown
    var wrap2=document.querySelector('.sticky-header .nav-more-wrap');
    if(wrap2&&wrap2!==wrap){
      var btn2=wrap2.querySelector('.nav-more-btn');
      btn2.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();wrap2.classList.toggle('open');btn2.setAttribute('aria-expanded',wrap2.classList.contains('open'))});
      document.addEventListener('click',function(e){if(!wrap2.contains(e.target)){wrap2.classList.remove('open');btn2.setAttribute('aria-expanded','false')}});
    }
  })();

  document.querySelectorAll('.search-dropdown form,.mega-search form').forEach(function(f){f.addEventListener('submit',function(e){
    e.preventDefault();
    var q=f.querySelector('input').value.trim();
    if(q)window.location.href='/search?q='+encodeURIComponent(q);
  })});

  // AdSense deferred
  // No ad client configured

  // Copy link share buttons
  document.querySelectorAll('.share-copy-btn').forEach(function(btn){
    btn.addEventListener('click',function(){
      var u=btn.getAttribute('data-url');
      if(u&&navigator.clipboard){navigator.clipboard.writeText(u).then(function(){
        var svg=btn.querySelector('svg');
        if(svg){var orig=svg.outerHTML;svg.outerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"/></svg>';setTimeout(function(){btn.querySelector('svg').outerHTML=orig},1500)}
      })}
    });
  });

  // CDN image fallback: if a CDN-transformed image fails (429/5xx), retry with direct Supabase storage URL
  document.addEventListener('error',function(e){
    var img=e.target;
    if(img.tagName!=='IMG'||img.dataset.cdnRetry)return;
    var s=img.src||'';
    if(s.indexOf('/cdn-image/')>-1){
      img.dataset.cdnRetry='1';
      img.srcset='';
      var m=s.match(/\/cdn-image\/[^/]+\/(.+)$/);
      if(m)img.src='https://ffqbmbvywrypmfjybtyu.supabase.co/storage/v1/object/public/'+m[1];
    }
  },true);

  // ── Article sidebar sticky controller (desktop only) ──
  (function(){
    var sidebar=document.getElementById('article-sidebar');
    if(!sidebar)return;
    var rail=sidebar.querySelector('.article-sidebar-rail');
    var panel=sidebar.querySelector('.article-sidebar-inner');
    var main=document.querySelector('.article-main');
    var hdr=document.getElementById('sticky-hdr');
    if(!rail||!panel||!main)return;
    var state='flow';
    var ticking=false;
    var ro=null;

    function getTopOffset(){
      var gap=16;
      if(!hdr||window.innerWidth<768||!hdr.classList.contains('show'))return gap;
      return (hdr.offsetHeight||54)+gap;
    }

    function clearPanelVars(){
      panel.style.removeProperty('--article-sidebar-left');
      panel.style.removeProperty('--article-sidebar-top');
      panel.style.removeProperty('--article-sidebar-max-height');
    }

    function setState(next,left,top,maxHeight){
      state=next;
      panel.classList.remove('is-fixed','is-bottom');
      clearPanelVars();
      if(next==='fixed'){
        panel.classList.add('is-fixed');
        panel.style.setProperty('--article-sidebar-left',left+'px');
        panel.style.setProperty('--article-sidebar-top',top+'px');
        panel.style.setProperty('--article-sidebar-max-height',maxHeight+'px');
      }else if(next==='bottom'){
        panel.classList.add('is-bottom');
      }
    }

    function update(){
      if(window.innerWidth<1024){
        rail.style.height='';
        setState('flow',0,0,0);
        return;
      }

      panel.classList.remove('is-fixed','is-bottom');
      clearPanelVars();
      var naturalPanelHeight=Math.ceil(panel.getBoundingClientRect().height);
      var mainHeight=Math.ceil(main.getBoundingClientRect().height);
      var railHeight=Math.max(mainHeight,naturalPanelHeight);
      rail.style.height=railHeight+'px';

      var railRect=rail.getBoundingClientRect();
      var railTop=railRect.top+window.scrollY;
      var railBottom=railTop+railHeight;
      var topOffset=getTopOffset();
      var maxPinnedHeight=Math.max(240,window.innerHeight-topOffset-16);
      var pinnedHeight=Math.min(naturalPanelHeight,maxPinnedHeight);
      var scrollY=window.scrollY;
      var pinStart=railTop-topOffset;
      var pinEnd=railBottom-topOffset-pinnedHeight;

      if(scrollY<=pinStart){
        setState('flow',0,0,0);
        return;
      }
      if(scrollY>=pinEnd){
        setState('bottom',0,0,0);
        return;
      }
      setState('fixed',Math.round(railRect.left),Math.round(topOffset),Math.round(maxPinnedHeight));
    }

    function schedule(){
      if(ticking)return;
      ticking=true;
      requestAnimationFrame(function(){
        update();
        ticking=false;
      });
    }

    update();
    window.addEventListener('scroll',schedule,{passive:true});
    window.addEventListener('resize',schedule,{passive:true});
    window.addEventListener('load',schedule);
    if('ResizeObserver' in window){
      ro=new ResizeObserver(schedule);
      ro.observe(main);
      ro.observe(panel);
    }
  })();

  // ── Homepage sidebar sticky controller (desktop only) ──
  (function(){
    var rail=document.getElementById('hp-sidebar-sticky-rail');
    var panel=document.getElementById('hp-sidebar-sticky-inner');
    var mainEl=document.querySelector('.main-grid main');
    var hdr=document.getElementById('sticky-hdr');
    if(!rail||!panel||!mainEl)return;
    var state='flow';
    var ticking=false;

    function getTopOffset(){
      var gap=16;
      if(!hdr||window.innerWidth<768||!hdr.classList.contains('show'))return gap;
      return (hdr.offsetHeight||54)+gap;
    }

    function clearVars(){
      panel.style.removeProperty('--hp-sb-left');
      panel.style.removeProperty('--hp-sb-top');
      panel.style.removeProperty('--hp-sb-max-h');
      panel.style.removeProperty('--hp-sb-width');
    }

    function setState(next,left,top,maxH,w){
      state=next;
      panel.classList.remove('is-fixed','is-bottom');
      clearVars();
      if(next==='fixed'){
        panel.classList.add('is-fixed');
        panel.style.setProperty('--hp-sb-left',left+'px');
        panel.style.setProperty('--hp-sb-top',top+'px');
        panel.style.setProperty('--hp-sb-max-h',maxH+'px');
        panel.style.setProperty('--hp-sb-width',w+'px');
      }else if(next==='bottom'){
        panel.classList.add('is-bottom');
      }
    }

    function update(){
      if(window.innerWidth<1024){
        rail.style.height='';
        setState('flow',0,0,0,0);
        return;
      }

      panel.classList.remove('is-fixed','is-bottom');
      clearVars();
      var panelH=Math.ceil(panel.getBoundingClientRect().height);
      var railRect=rail.getBoundingClientRect();
      var railW=Math.round(railRect.width);
      // Rail stretches to fill remaining sidebar height via flex:1
      var railH=Math.ceil(railRect.height);
      var railTop=railRect.top+window.scrollY;
      var railBottom=railTop+railH;
      var topOffset=getTopOffset();
      var maxPinH=Math.max(240,window.innerHeight-topOffset-16);
      var pinnedH=Math.min(panelH,maxPinH);
      var scrollY=window.scrollY;
      var pinStart=railTop-topOffset;
      var pinEnd=railBottom-topOffset-pinnedH;

      if(scrollY<=pinStart){
        setState('flow',0,0,0,0);
        return;
      }
      if(scrollY>=pinEnd){
        setState('bottom',0,0,0,0);
        return;
      }
      setState('fixed',Math.round(railRect.left),Math.round(topOffset),Math.round(maxPinH),railW);
    }

    function schedule(){
      if(ticking)return;
      ticking=true;
      requestAnimationFrame(function(){update();ticking=false;});
    }

    update();
    window.addEventListener('scroll',schedule,{passive:true});
    window.addEventListener('resize',schedule,{passive:true});
    window.addEventListener('load',schedule);
    if('ResizeObserver' in window){
      var ro=new ResizeObserver(schedule);
      ro.observe(mainEl);
      ro.observe(panel);
    }
  })();
})();</script>
    <script>
    (function(){
      var f=document.getElementById('footer-nl-form'),i=document.getElementById('footer-nl-email'),b=document.getElementById('footer-nl-btn'),m=document.getElementById('footer-nl-msg');
      if(!f)return;
      var u='https://ffqbmbvywrypmfjybtyu.supabase.co/functions/v1/newsletter-signup';
      f.onsubmit=function(e){
        e.preventDefault();var email=i.value.trim();if(!email)return;
        b.disabled=true;b.textContent='…';m.className='footer-nl-msg';m.textContent='';
        fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({email:email,location_id:'8635cbf1-a6f3-474e-a38a-bf67e353fd6f',source:'footer'})})
        .then(function(r){return r.json()})
        .then(function(d){
          if(d.success){m.className='footer-nl-msg success';m.textContent='Subscribed!';i.value='';b.textContent='Done ✓';}
          else{m.className='footer-nl-msg error';m.textContent=d.error||'Error';b.disabled=false;b.textContent='Sign up';}
        })
        .catch(function(){m.className='footer-nl-msg error';m.textContent='Error. Try again.';b.disabled=false;b.textContent='Sign up';});
      };
    })();
    (function(){
      var f=document.getElementById('article-nl-form'),i=document.getElementById('article-nl-email'),b=document.getElementById('article-nl-btn'),m=document.getElementById('article-nl-msg');
      if(!f)return;
      var u='https://ffqbmbvywrypmfjybtyu.supabase.co/functions/v1/newsletter-signup';
      f.onsubmit=function(e){
        e.preventDefault();var email=i.value.trim();if(!email)return;
        b.disabled=true;b.textContent='…';m.className='article-nl-msg';m.textContent='';
        fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({email:email,location_id:'8635cbf1-a6f3-474e-a38a-bf67e353fd6f',source:'article'})})
        .then(function(r){return r.json()})
        .then(function(d){
          if(d.success){m.className='article-nl-msg success';m.textContent='You\'re subscribed!';i.value='';b.textContent='Done ✓';}
          else{m.className='article-nl-msg error';m.textContent=d.error||'Error';b.disabled=false;b.textContent='Subscribe';}
        })
        .catch(function(){m.className='article-nl-msg error';m.textContent='Error. Try again.';b.disabled=false;b.textContent='Subscribe';});
      };
    })();
    (function(){
      var f=document.getElementById('mid-nl-form'),i=document.getElementById('mid-nl-email'),b=document.getElementById('mid-nl-btn'),m=document.getElementById('mid-nl-msg');
      if(!f)return;
      var u='https://ffqbmbvywrypmfjybtyu.supabase.co/functions/v1/newsletter-signup';
      f.onsubmit=function(e){
        e.preventDefault();var email=i.value.trim();if(!email)return;
        b.disabled=true;b.textContent='…';m.className='mid-nl-msg';m.textContent='';
        fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({email:email,location_id:'8635cbf1-a6f3-474e-a38a-bf67e353fd6f',source:'mid-article'})})
        .then(function(r){return r.json()})
        .then(function(d){
          if(d.success){m.className='mid-nl-msg success';m.textContent='You\'re subscribed!';i.value='';b.textContent='Done ✓';}
          else{m.className='mid-nl-msg error';m.textContent=d.error||'Error';b.disabled=false;b.textContent='Subscribe';}
        })
        .catch(function(){m.className='mid-nl-msg error';m.textContent='Error. Try again.';b.disabled=false;b.textContent='Subscribe';});
      };
    })();
    (function(){
      var f=document.getElementById('hp-nl-form'),i=document.getElementById('hp-nl-email'),b=document.getElementById('hp-nl-btn'),m=document.getElementById('hp-nl-msg');
      if(!f)return;
      var u='https://ffqbmbvywrypmfjybtyu.supabase.co/functions/v1/newsletter-signup';
      f.onsubmit=function(e){
        e.preventDefault();var email=i.value.trim();if(!email)return;
        b.disabled=true;b.textContent='…';m.className='hp-nl-msg';m.textContent='';
        fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({email:email,location_id:'8635cbf1-a6f3-474e-a38a-bf67e353fd6f',source:'homepage'})})
        .then(function(r){return r.json()})
        .then(function(d){
          if(d.success){m.className='hp-nl-msg success';m.textContent='You\'re subscribed!';i.value='';b.textContent='Done ✓';}
          else{m.className='hp-nl-msg error';m.textContent=d.error||'Error';b.disabled=false;b.textContent='Subscribe';}
        })
        .catch(function(){m.className='hp-nl-msg error';m.textContent='Error. Try again.';b.disabled=false;b.textContent='Subscribe';});
      };
    })();
    (function(){
      var f=document.getElementById('sidebar-nl-form'),i=document.getElementById('sidebar-nl-email'),b=document.getElementById('sidebar-nl-btn'),m=document.getElementById('sidebar-nl-msg');
      if(!f)return;
      var u='https://ffqbmbvywrypmfjybtyu.supabase.co/functions/v1/newsletter-signup';
      f.onsubmit=function(e){
        e.preventDefault();var email=i.value.trim();if(!email)return;
        b.disabled=true;b.textContent='…';m.className='sidebar-nl-msg';m.textContent='';
        fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({email:email,location_id:'8635cbf1-a6f3-474e-a38a-bf67e353fd6f',source:'sidebar'})})
        .then(function(r){return r.json()})
        .then(function(d){
          if(d.success){m.className='sidebar-nl-msg success';m.textContent='Subscribed!';i.value='';b.textContent='Done ✓';}
          else{m.className='sidebar-nl-msg error';m.textContent=d.error||'Error';b.disabled=false;b.textContent='Subscribe';}
        })
        .catch(function(){m.className='sidebar-nl-msg error';m.textContent='Error. Try again.';b.disabled=false;b.textContent='Subscribe';});
      };
    })();
    </script>

</body>
</html>