/*
Theme Name: Debasa Newsroom
Theme URI: https://debasa.lk/
Author: DEBASA.LK
Description: A responsive, classic digital newspaper theme for DEBASA.LK, with an editorial grid and orange brand accents.
Version: 1.0.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: debasa-newsroom
Tags: news, blog, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

:root {
  --debasa-orange: #f07824;
  --debasa-ink: #171717;
  --debasa-muted: #626262;
  --debasa-paper: #f7f7f5;
  --debasa-border: #e6e6e3;
  --debasa-white: #fff;
  --debasa-max: 1200px;
  --debasa-reading: 740px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--debasa-white); color: var(--debasa-ink);
  font-family: Inter, Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.65;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover, a:focus { color: var(--debasa-orange); }
button, input, select { font: inherit; }
button, .button, input[type="submit"] {
  cursor: pointer; border: 0; background: var(--debasa-orange); color: #fff;
  padding: .7rem 1rem; border-radius: 3px; font-weight: 700;
}
:focus-visible { outline: 3px solid var(--debasa-orange); outline-offset: 3px; }
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999; background: #fff;
  padding: .8rem 1rem; color: #111;
}
.skip-link:focus { left: 1rem; top: 1rem; }
.site-shell { max-width: var(--debasa-max); width: calc(100% - 40px); margin: 0 auto; }
.topbar { background: var(--debasa-ink); color: #fff; font-size: .78rem; }
.topbar-inner { display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:36px; }
.topbar a { color:#fff; }
.topbar a:hover { color:#ffbd8a; }
.topbar-links { display:flex; gap:1rem; flex-wrap:wrap; }
.masthead { padding: 24px 0 20px; }
.masthead-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand { display:flex; align-items:center; gap:14px; min-width:0; }
.custom-logo { max-height:72px; width:auto; }
.site-title { font-family: Georgia, "Times New Roman", serif; font-size:clamp(2rem, 4vw, 3.15rem); line-height:1; font-weight:800; letter-spacing:-.055em; margin:0; }
.site-title a { color:var(--debasa-ink); }
.site-tagline { color:var(--debasa-muted); margin:.45rem 0 0; font-size:.88rem; }
.masthead-tools { display:flex; align-items:center; gap:1rem; }
.search-form { display:flex; border:1px solid var(--debasa-border); border-radius:3px; overflow:hidden; }
.search-form label { display:block; }
.search-field { border:0; padding:.65rem .75rem; min-width:150px; max-width:210px; }
.search-submit { border-radius:0; padding:.55rem .8rem; }
.primary-nav { border-top:1px solid var(--debasa-border); border-bottom:3px solid var(--debasa-orange); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.primary-menu { display:flex; list-style:none; padding:0; margin:0; gap:0; flex-wrap:wrap; }
.primary-menu li { margin:0; }
.primary-menu a { display:block; padding:13px 12px; font-size:.82rem; font-weight:800; text-transform:uppercase; letter-spacing:.025em; }
.primary-menu .current-menu-item > a, .primary-menu a:hover { color:var(--debasa-orange); }
.menu-toggle { display:none; background:#fff; color:var(--debasa-ink); border:1px solid var(--debasa-border); }
.breaking-strip { background:var(--debasa-paper); border-bottom:1px solid var(--debasa-border); }
.breaking-inner { display:flex; align-items:center; gap:12px; padding:10px 0; font-size:.85rem; }
.breaking-label { background:var(--debasa-orange); color:#fff; font-weight:800; font-size:.72rem; text-transform:uppercase; padding:3px 8px; letter-spacing:.04em; }
.breaking-text { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
main { min-height:50vh; }
.section { padding:28px 0; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--debasa-border); margin:0 0 18px; padding:0 0 10px; }
.section-heading h2 { font-family:Georgia, "Times New Roman", serif; font-size:1.55rem; line-height:1.2; margin:0; }
.section-heading h2:before { content:""; display:inline-block; background:var(--debasa-orange); width:5px; height:1.2em; margin-right:10px; vertical-align:-.18em; }
.section-more { color:var(--debasa-orange); font-size:.78rem; font-weight:800; text-transform:uppercase; }
.eyebrow, .post-category { color:var(--debasa-orange); font-size:.72rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.lead-grid { display:grid; grid-template-columns:minmax(0, 1.65fr) minmax(260px, 1fr); gap:26px; }
.lead-main .post-title { font-family:Georgia, "Times New Roman", serif; font-size:clamp(1.8rem, 3.4vw, 2.8rem); line-height:1.1; letter-spacing:-.025em; margin:.35rem 0 .6rem; }
.lead-main .post-image img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.lead-side { display:grid; grid-template-columns:1fr; gap:18px; align-content:start; }
.story-card { min-width:0; }
.story-card .post-image img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.story-card .post-title { font-family:Georgia, "Times New Roman", serif; font-size:1.2rem; line-height:1.25; margin:.35rem 0; }
.post-meta { color:var(--debasa-muted); font-size:.77rem; }
.post-excerpt { color:#424242; font-size:.93rem; margin:.35rem 0 0; }
.story-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.story-row { display:grid; grid-template-columns:118px minmax(0,1fr); gap:15px; padding:16px 0; border-bottom:1px solid var(--debasa-border); }
.story-row:first-child { padding-top:0; }
.story-row .post-image img { width:118px; aspect-ratio:4/3; object-fit:cover; display:block; }
.story-row .post-title { font-family:Georgia, "Times New Roman", serif; font-size:1.15rem; line-height:1.25; margin:.25rem 0; }
.placeholder-image { aspect-ratio:16/9; background:var(--debasa-paper); border:1px solid var(--debasa-border); display:flex; align-items:center; justify-content:center; color:var(--debasa-muted); font-size:.8rem; }
.two-column { display:grid; grid-template-columns:minmax(0, 2fr) minmax(260px, .9fr); gap:40px; }
.page-heading { padding:28px 0 22px; border-bottom:1px solid var(--debasa-border); margin-bottom:24px; }
.page-heading h1 { font-family:Georgia, "Times New Roman", serif; font-size:clamp(2rem, 4vw, 3rem); line-height:1.1; letter-spacing:-.03em; margin:.25rem 0 .5rem; }
.page-description { max-width:760px; color:var(--debasa-muted); margin:0; }
.archive-feature { display:grid; grid-template-columns:1.25fr 1fr; gap:24px; margin-bottom:26px; }
.archive-feature img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.archive-feature h2 { font-family:Georgia, "Times New Roman", serif; font-size:2rem; line-height:1.15; margin:.4rem 0; }
.article-header { max-width:900px; margin:0 auto; padding:36px 0 22px; }
.breadcrumbs { color:var(--debasa-muted); font-size:.78rem; margin-bottom:14px; }
.article-title { font-family:Georgia, "Times New Roman", serif; font-size:clamp(2.1rem, 5vw, 3.8rem); letter-spacing:-.035em; line-height:1.05; margin:.4rem 0 1rem; }
.article-deck { font-size:1.16rem; color:#4d4d4d; max-width:820px; margin:0 0 1rem; }
.article-byline { display:flex; align-items:center; gap:10px; color:var(--debasa-muted); font-size:.82rem; padding:12px 0 18px; }
.article-hero { max-width:1100px; margin:0 auto 28px; }
.article-hero img { width:100%; max-height:620px; aspect-ratio:16/9; object-fit:cover; display:block; }
.wp-caption, figcaption { color:var(--debasa-muted); font-size:.78rem; margin-top:7px; }
.article-layout { display:grid; grid-template-columns:minmax(0, var(--debasa-reading)) minmax(180px, 1fr); gap:50px; max-width:1100px; margin:0 auto; }
.entry-content { font-family:Georgia, "Times New Roman", serif; font-size:1.18rem; line-height:1.85; overflow-wrap:anywhere; }
.entry-content > * { max-width:100%; }
.entry-content p { margin:0 0 1.35em; }
.entry-content h2, .entry-content h3 { font-family:Inter, Arial, sans-serif; line-height:1.25; margin:1.8em 0 .65em; }
.entry-content h2 { font-size:1.55rem; }
.entry-content h3 { font-size:1.25rem; }
.entry-content a { color:#a94a0a; text-decoration:underline; text-underline-offset:3px; }
.entry-content blockquote { border-left:4px solid var(--debasa-orange); margin:1.5rem 0; padding:.2rem 1.25rem; color:#444; }
.entry-content iframe { max-width:100%; }
.article-share { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:22px 0; }
.share-link { display:inline-block; border:1px solid var(--debasa-border); padding:7px 12px; font-size:.8rem; font-weight:700; border-radius:3px; }
.sidebar-box { border-top:3px solid var(--debasa-orange); background:var(--debasa-paper); padding:16px; margin-bottom:22px; }
.sidebar-box h2 { font-size:1rem; margin:0 0 12px; }
.related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.pagination, .nav-links { display:flex; gap:8px; flex-wrap:wrap; margin:28px 0; }
.page-numbers { padding:8px 12px; border:1px solid var(--debasa-border); }
.page-numbers.current { background:var(--debasa-orange); color:#fff; border-color:var(--debasa-orange); }
.site-footer { margin-top:36px; background:#171717; color:#eee; }
.footer-main { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:40px; padding:38px 0; }
.footer-title { font-family:Georgia, "Times New Roman", serif; font-size:1.7rem; margin:0 0 8px; color:#fff; }
.site-footer p, .site-footer li { color:#ccc; font-size:.88rem; }
.site-footer a { color:#fff; }
.site-footer a:hover { color:#ffbd8a; }
.footer-menu { list-style:none; padding:0; margin:0; }
.footer-menu li { margin:.35rem 0; }
.footer-bottom { border-top:1px solid #444; padding:14px 0; color:#bbb; font-size:.78rem; }
.no-results { background:var(--debasa-paper); padding:24px; }
.screen-reader-text { border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute !important; width:1px; white-space:nowrap; }
.alignleft { float:left; margin:0 1.2rem 1rem 0; }
.alignright { float:right; margin:0 0 1rem 1.2rem; }
.aligncenter { display:block; margin-left:auto; margin-right:auto; }
.wp-block-image img { height:auto; }
.wp-block-gallery { margin:1.5rem 0; }
@media (max-width: 900px) {
  .site-shell { width:calc(100% - 28px); }
  .masthead-inner { align-items:flex-start; }
  .masthead-tools .search-form { display:none; }
  .primary-menu a { padding:12px 8px; font-size:.74rem; }
  .lead-grid { grid-template-columns:1.4fr 1fr; gap:18px; }
  .two-column { grid-template-columns:minmax(0, 1fr) 250px; gap:24px; }
  .article-layout { grid-template-columns:minmax(0, 1fr); }
  .article-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
}
@media (max-width: 640px) {
  body { font-size:15px; }
  .site-shell { width:calc(100% - 24px); }
  .topbar-inner { min-height:32px; }
  .topbar-links { gap:.65rem; }
  .masthead { padding:16px 0; }
  .masthead-inner { gap:10px; align-items:center; }
  .custom-logo { max-height:48px; max-width:64px; }
  .site-title { font-size:2rem; }
  .site-tagline { font-size:.72rem; margin-top:.25rem; }
  .masthead-tools { display:none; }
  .nav-inner { display:block; }
  .menu-toggle { display:block; width:100%; text-align:left; margin:8px 0; }
  .primary-menu { display:none; flex-direction:column; padding:0 0 8px; }
  .primary-menu.is-open { display:flex; }
  .primary-menu a { padding:9px 4px; border-bottom:1px solid var(--debasa-border); font-size:.82rem; }
  .breaking-inner { gap:8px; font-size:.78rem; }
  .section { padding:22px 0; }
  .section-heading h2 { font-size:1.35rem; }
  .lead-grid { grid-template-columns:1fr; }
  .lead-main .post-title { font-size:2rem; }
  .lead-side { grid-template-columns:1fr 1fr; gap:12px; }
  .lead-side .post-title { font-size:1.02rem; }
  .story-list { grid-template-columns:1fr; gap:18px; }
  .story-row { grid-template-columns:104px minmax(0,1fr); gap:12px; }
  .story-row .post-image img { width:104px; }
  .story-row .post-title { font-size:1.05rem; }
  .two-column { grid-template-columns:1fr; }
  .sidebar-box { margin-top:8px; }
  .archive-feature { grid-template-columns:1fr; gap:12px; }
  .archive-feature h2 { font-size:1.65rem; }
  .article-header { padding:24px 0 14px; }
  .article-title { font-size:2.2rem; }
  .article-deck { font-size:1.03rem; }
  .article-hero { margin-bottom:18px; }
  .article-layout { gap:20px; }
  .entry-content { font-size:1.1rem; line-height:1.8; }
  .article-sidebar { grid-template-columns:1fr; }
  .related-grid { grid-template-columns:1fr 1fr; gap:14px; }
  .related-grid .post-title { font-size:1rem; }
  .footer-main { grid-template-columns:1fr; gap:22px; padding:28px 0; }
}


/* Top-bar app links: store destinations can be added after approval. */
.app-download-menu { position: relative; }
.app-download-menu summary { cursor: pointer; list-style: none; }
.app-download-menu summary::-webkit-details-marker { display: none; }
.app-download-menu summary::after { content: " \25BE"; color: var(--debasa-orange); }
.app-download-menu[open] summary { color: #ffbd8a; }
.app-download-options {
  position: absolute; top: calc(100% + .45rem); right: 0; z-index: 1000;
  min-width: 190px; padding: .65rem .85rem; display: grid; gap: .3rem;
  color: #fff; background: var(--debasa-ink); border: 1px solid rgba(255,255,255,.16);
  border-radius: 3px; box-shadow: 0 8px 20px rgba(0,0,0,.24);
}
.app-download-options span { white-space: nowrap; }
