/* Impact Daily 1.3 — responsive editorial polish. */
:root{--page:1240px;--radius:14px;--shadow:0 16px 45px rgba(8,32,25,.09)}

html{max-width:100%;overflow-x:hidden;scroll-behavior:smooth}
body{max-width:100%;overflow-x:hidden;background:var(--bg);font-size:16px}
body,button,input{font-family:var(--sans)}
.wrap{width:calc(100% - 40px);max-width:var(--page);padding:0;margin-left:auto;margin-right:auto}
.content,.side,.main>*{min-width:0;max-width:100%}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--lime);outline-offset:3px}

/* Compact masthead */
.topbar .wrap{min-height:34px;height:auto;gap:18px}
.topbar .social{gap:15px;min-width:0}
.topbar .social a,.theme-toggle{margin-left:0;white-space:nowrap}
.masthead{padding:13px 0;border-bottom:0}
.masthead .wrap{min-height:72px;gap:30px}
.logo,.logo-image{flex:0 1 235px;min-width:0}
.logo img,.logo-image img{width:auto;max-width:235px;height:auto;max-height:58px;object-fit:contain;object-position:left center}
.masthead .lead-ad{flex:1 1 728px;width:auto;max-width:760px;min-width:0;padding:4px;border-radius:8px}
.masthead .lead-ad img{max-height:78px;object-fit:contain}

/* Navigation contained within the viewport */
.nav{box-shadow:0 5px 18px rgba(8,32,25,.12)}
.admin-bar .nav{top:32px}
.nav .wrap{min-height:50px;gap:8px}
.nav ul{min-width:0;flex-wrap:nowrap}
.nav ul li a,.submenu-toggle{padding:16px 12px;font-size:12px;line-height:18px}
.nav #menu .sub-menu{right:0;max-width:calc(100vw - 40px);max-height:min(70vh,620px);overflow-y:auto}
.nav-search{min-width:0;flex:0 1 190px;padding-left:8px}
.nav-search .search-form,.nav-search label{width:100%}
.search-field{width:100%;min-width:0}
.ticker{width:100%;min-width:0;contain:layout paint}
.ticker .track{min-width:0;flex:1 1 auto;overflow:hidden}
.ticker .track span{max-width:none;will-change:transform}

/* Zero-minimum grid columns prevent slider and sidebar overflow. */
.main{width:100%;grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:clamp(24px,3vw,38px);padding:clamp(24px,3vw,38px) 0 44px}

/* Split hero: the image stays contained instead of being stretched. */
.slider{width:100%;max-width:100%;margin-bottom:38px;border-radius:var(--radius);background:var(--green);box-shadow:var(--shadow);isolation:isolate}
.slides{width:100%;max-width:100%}
.slide{min-width:100%;width:100%;max-width:100%;overflow:hidden}
.slide .frame{height:clamp(430px,40vw,520px);display:grid;grid-template-columns:minmax(0,45%) minmax(0,55%);align-items:stretch;background:var(--green);overflow:hidden}
.slide .hero-copy{grid-column:1;grid-row:1;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;padding:38px 42px 66px;color:#fff;background:linear-gradient(145deg,var(--green),var(--green-dark))}
.slide .hero-media{grid-column:2;grid-row:1;position:relative;min-width:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#dfe7e2}
.slide .hero-backdrop{position:absolute;inset:-35px;background-position:center;background-size:cover;filter:blur(26px);transform:scale(1.12);opacity:.4}
.slide .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,32,25,.23),transparent 35%,rgba(8,32,25,.05));pointer-events:none}
.slide .hero-media img{position:relative;inset:auto;z-index:1;width:auto;height:auto;max-width:92%;max-height:90%;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.2))}
.slide .hero-media .ph{position:relative;inset:auto;color:var(--muted)}
.slide .cat{margin-bottom:18px}
.slide h2.title{max-width:100%;font-size:clamp(28px,2.5vw,36px);line-height:1.07;letter-spacing:-.025em;overflow-wrap:anywhere}
.slide .hero-excerpt{margin-top:15px;color:#d6e3dc;font-size:14px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.slide .meta{margin-top:17px;color:#bcd0c5;line-height:1.5}
.slide .hero-link{display:inline-flex;align-items:center;gap:8px;margin-top:22px;color:#fff;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;border-bottom:2px solid var(--lime);padding-bottom:4px}
.slide .hero-link:hover{color:var(--lime)}
.slider .arrow{width:42px;height:42px;border-radius:50%;top:auto;bottom:18px;transform:none;background:rgba(255,255,255,.14);backdrop-filter:blur(6px)}
.slider .arrow:hover{background:var(--lime);color:var(--green)}
.slider .prev{left:auto;right:68px}
.slider .next{right:18px}
.slider .dots{left:clamp(34px,5vw,62px);bottom:28px}

/* Editorial cards and lists */
.section-head{margin-top:6px;margin-bottom:20px;padding-bottom:9px;border-bottom-width:1px}
.section-head h2{font-size:23px;letter-spacing:-.015em}
.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:40px}
.card{min-width:0}
.card .thumb{height:auto;aspect-ratio:16/10;border-radius:10px;margin-bottom:13px;background:var(--soft)}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card h3{font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.card p{font-size:13px;line-height:1.55;color:var(--muted)}
.hlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
.hlist .item{min-width:0;gap:15px;padding:17px 0}
.hlist .item .thumb{width:128px;height:88px;flex-basis:128px;border-radius:8px}
.hlist .item>div{min-width:0}
.hlist .item h3{font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.seemore{border-radius:999px;padding:12px 24px}

/* Sidebar */
.side .box,.side .widget{min-width:0;overflow:hidden;border-radius:12px;background:var(--bg);box-shadow:0 8px 28px rgba(8,32,25,.06);margin-bottom:22px}
.side .box .bhead,.side .widget .widget-title{padding:12px 15px}
.side .trend .t{min-width:0}
.side .trend .t>div:last-child{min-width:0}
.side .trend h4,.events .ev h4,.side .widget li{overflow-wrap:anywhere;word-break:normal}
.side .adbox{border:0;padding:12px}
.side .adbox img{border-radius:7px}

.ribbon{padding:38px 0}
.ribbon .grid4{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}

/* Articles */
.single-post{padding-top:8px}
.single-post h1{font-size:clamp(32px,4vw,52px);letter-spacing:-.025em;overflow-wrap:anywhere}
.single-post .post-thumb{overflow:hidden;border-radius:var(--radius);background:var(--soft)}
.single-post .post-thumb img{width:100%;height:auto;max-height:720px;object-fit:contain;margin:auto}
.single-post .entry-content{max-width:780px;font-size:18px}
.single-post .entry-content img,.page-content img{height:auto;max-width:100%}
.single-post .entry-content iframe,.page-content iframe{max-width:100%}
.footer .cols{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr))}

/* Tablet / iPad */
@media(max-width:1024px){
  .admin-bar .nav{top:32px}
  .hamburger{display:block;flex:0 0 auto}
  .nav .wrap{flex-wrap:wrap}
  .nav ul{display:none;order:3;flex-direction:column;width:100%;max-height:70vh;overflow-y:auto;background:var(--green-dark)}
  .nav ul.open{display:flex}
  .nav ul li a{border-top:1px solid rgba(255,255,255,.1)}
  .submenu-toggle{width:100%;justify-content:space-between;border-top:1px solid rgba(255,255,255,.1)}
  .nav #menu .sub-menu{position:static;width:100%;max-width:100%;max-height:none;padding:4px 4px 8px 16px;border-top:0;box-shadow:none;grid-template-columns:repeat(2,minmax(0,1fr));background:#061c15}
  .nav #menu .category-dropdown.open>.sub-menu{display:grid}
  .nav-search{margin-left:auto;flex:0 1 230px;padding:8px 0 8px 8px}
  .main{grid-template-columns:minmax(0,1fr);gap:36px}
  .side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
  .side .box,.side .widget{margin-bottom:0}
  .slide .frame{height:480px;grid-template-columns:minmax(0,44%) minmax(0,56%)}
  .slide .hero-copy{padding:34px 36px 64px}
  .slider .dots{left:38px}
  .grid3{gap:18px}
}

@media(max-width:782px){.admin-bar .nav{top:46px}}

/* Phones */
@media(max-width:760px){
  .wrap{width:calc(100% - 28px)}
  .topbar .wrap{justify-content:flex-end}
  .topbar .date{display:none}
  .topbar .social{gap:11px}
  .topbar .social>a{display:none}
  .topbar .social>a[href*="/newsletter/"]{display:block}
  .masthead{padding:10px 0}
  .masthead .wrap{min-height:64px}
  .logo,.logo-image{flex-basis:210px}
  .logo img,.logo-image img{max-width:210px;max-height:52px}
  .masthead .lead-ad{display:none}
  .nav #menu .sub-menu{grid-template-columns:minmax(0,1fr)}
  .ticker .label{padding:8px 10px;font-size:10px}
  .main{padding-top:18px;gap:26px}
  .slide .frame{height:auto;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:260px auto}
  .slide .hero-media{grid-column:1;grid-row:1}
  .slide .hero-copy{grid-column:1;grid-row:2;min-height:330px;justify-content:flex-start;padding:26px 24px 70px}
  .slide h2.title{font-size:clamp(26px,8vw,34px)}
  .slide .hero-excerpt{-webkit-line-clamp:2}
  .slider .dots{left:24px;bottom:28px}
  .slider .arrow{bottom:18px}
  .grid3{grid-template-columns:minmax(0,1fr);gap:24px}
  .card .thumb{aspect-ratio:16/9}
  .hlist{grid-template-columns:minmax(0,1fr)}
  .hlist .item .thumb{width:112px;height:78px;flex-basis:112px}
  .side{grid-template-columns:minmax(0,1fr)}
  .ribbon .grid4{grid-template-columns:minmax(0,1fr)}
  .footer .cols{grid-template-columns:minmax(0,1fr)}
  .single-post .entry-content{font-size:17px}
}

@media(max-width:420px){
  .wrap{width:calc(100% - 22px)}
  .nav-search{flex-basis:190px}
  .search-field{width:145px}
  .slide .frame{grid-template-rows:225px auto}
  .slide .hero-copy{min-height:345px;padding:23px 20px 68px}
  .slide .hero-excerpt{display:none}
  .slider .dots{left:20px}
  .hlist .item{align-items:flex-start}
  .hlist .item .thumb{width:96px;height:72px;flex-basis:96px}
  .author-box{flex-direction:column}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .slides,.ticker .track span{transition:none;animation:none}
}
