/* Europe Brief News — one stylesheet, tokens first.

   Kyodo's system in the logo's colours: a serif display voice in letterspaced
   caps for section names, a warm paper ground, one dark accent card among the
   light ones, and pill links written in curly braces.

   Both `--blue` and `--gold` are measured from the coloured logo file, by a
   weighted average of its twenty commonest colours — not one sampled pixel,
   which lands on an anti-aliased edge rather than the body of the mark.

   Everything below uses logical properties, so an Arabic RTL twin mirrors
   without a second stylesheet. */

:root{
  --blue:#2d399f;
  --blue-deep:#202972;
  --gold:#fdcd0c;          /* measured from the logo file */
  --ink:#141618;
  --ink-2:#4a5056;
  --muted:#767d85;
  --line:#e3e1dc;
  --line-2:#cdcac3;
  --paper:#ffffff;
  --wash:#f4f2ee;           /* warm paper ground, not grey */
  --r:6px; --r-l:10px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--wash);color:var(--ink);
  font-family:Inter,"Segoe UI",system-ui,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}

/* The display voice: a serif in letterspaced caps. Tracking is positive here
   because this is Latin — on Arabic a positive value breaks joined letters. */
h1,h2,.disp{font-family:Fraunces,Georgia,serif;font-weight:600}
.num,time{font-variant-numeric:tabular-nums}
h1,h2,h3,h4{margin:0;line-height:1.25;font-weight:600}
p{margin:0 0 1em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit}

.wrap{max-width:1200px;margin-inline:auto;padding-inline:28px}
.pad{padding-block:clamp(40px,4.6vw,70px)}
.wash{background:var(--wash)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  white-space:nowrap}
.skip{position:absolute;inset-inline-start:-9999px;top:0;z-index:200;
  background:var(--blue);color:#fff;padding:10px 16px}
.skip:focus{inset-inline-start:0}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ═══ header ═══════════════════════════════════════════════════════════ */
.top{background:var(--paper);border-block-end:1px solid var(--line);
  position:sticky;top:0;z-index:60}
.top-bar{max-width:1200px;margin-inline:auto;padding:0 28px;display:flex;
  align-items:center;gap:16px;min-height:72px}
.brand{margin-inline:auto}
.brand img{height:46px;width:auto}
.top-r{display:flex;gap:2px;align-items:center}
.ib{display:inline-flex;align-items:center;justify-content:center;width:40px;
  height:40px;border:0;background:none;color:var(--ink);cursor:pointer;
  border-radius:var(--r);transition:background .15s}
.ib:hover{background:var(--wash)}
.ib .ic{width:20px;height:20px}
.burger{display:inline-flex}

.nav{border-block-start:1px solid var(--line);background:var(--paper)}
.nav-in{max-width:1200px;margin-inline:auto;padding:0 28px;display:flex;
  gap:26px;justify-content:center;overflow-x:auto;
  scrollbar-width:none;-ms-overflow-style:none}
.nav-in::-webkit-scrollbar{display:none}
.nav-in a{padding:13px 0;font-size:13.5px;font-weight:500;color:var(--ink-2);
  white-space:nowrap;border-block-end:2px solid transparent;
  transition:color .15s,border-color .15s}
.nav-in a:hover{color:var(--ink)}
.nav-in a[aria-current]{color:var(--blue);border-block-end-color:var(--blue);
  font-weight:600}

/* ═══ drawer ═══════════════════════════════════════════════════════════ */
.drawer{position:fixed;inset:0;z-index:90;background:var(--paper);
  height:100dvh;display:flex;flex-direction:column;padding:0 26px 26px;
  opacity:0;transform:translateY(-8px);
  transition:opacity .22s var(--ease),transform .22s var(--ease)}
.drawer[hidden]{display:none}
.drawer.open{opacity:1;transform:none}
.drawer-top{display:flex;align-items:center;justify-content:space-between;
  min-height:72px;border-block-end:1px solid var(--line);flex:none}
.drawer-top img{height:30px;width:auto}
.drawer-nav{display:flex;flex-direction:column;padding-block:16px;
  overflow-y:auto}
.drawer-nav a{padding:13px 0;font-family:Fraunces,Georgia,serif;font-size:21px;
  font-weight:600;border-block-end:1px solid var(--line)}
.drawer-nav a[aria-current]{color:var(--blue)}
.drawer-pol{display:flex;flex-wrap:wrap;gap:8px 18px;padding-block-start:18px;
  border-block-start:1px solid var(--line);font-size:13.5px;color:var(--muted);
  flex:none}

/* ═══ shared pieces ════════════════════════════════════════════════════ */
/* The pill is written in curly braces — the reference's own device, and the
   one place a bracket earns its keep. */
.pill{display:inline-flex;align-items:center;padding:9px 18px;
  border:1px solid var(--line-2);border-radius:999px;font-size:11.5px;
  font-weight:600;letter-spacing:.1em;color:var(--ink);white-space:nowrap;
  transition:background .16s,border-color .16s,color .16s}
.pill:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.pill-solid{background:var(--blue);border-color:var(--blue);color:#fff}
.pill-solid:hover{background:var(--blue-deep);border-color:var(--blue-deep)}

.tag{display:inline-block;padding:3px 9px;margin-block-end:9px;
  border:1px solid var(--line-2);border-radius:3px;font-size:10.5px;
  font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  color:var(--muted)}
.meta{margin:8px 0 0;font-size:12px;color:var(--muted)}
.ph{width:100%;height:100%;background:
  repeating-linear-gradient(135deg,var(--wash) 0 10px,#eeece7 10px 20px)}

/* Section heading: serif caps, letterspaced, with a rule under it. */
.sh{display:flex;align-items:center;justify-content:space-between;gap:20px;
  margin-block-end:26px;padding-block-end:12px;
  border-block-end:2px solid var(--ink)}
.sh h2{font-size:clamp(1.35rem,2.3vw,1.9rem);letter-spacing:.05em;
  text-transform:uppercase}

/* ═══ hero mosaic ══════════════════════════════════════════════════════ */
/* الهامش العلويّ كان يأتي من عنوان «TOP NEWS» المحذوف — يُصرَّح به
   هنا بدل أن يعتمد على عنصرٍ لم يعد موجوداً. */
.hero{background:var(--paper);padding-block:clamp(30px,3.6vw,50px)
  clamp(34px,4vw,56px)}
.mosaic{display:grid;gap:14px;
  grid-template-columns:repeat(4,1fr);
  grid-template-areas:"a a b c" "a a d e";}
.mz-a{grid-area:a}.mz-b2{grid-area:b}.mz-c{grid-area:c}
.mz-d{grid-area:d}.mz-e{grid-area:e}
.mz{display:flex;flex-direction:column;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  transition:border-color .18s}
.mz:hover{border-color:var(--line-2)}
.mz-img{aspect-ratio:16/10;overflow:hidden;background:var(--wash);flex:none}
.mz-img img{width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease)}
.mz:hover .mz-img img{transform:scale(1.03)}
.mz-b{padding:14px 15px 16px}
.mz h3{font-size:14.5px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden}
/* الخانة الكبيرة تمتدّ صفّين، فارتفاعها يفرضه العمود المجاور لا محتواها.
   بنسبةٍ ثابتة تبقى 127px فارغة تحت النصّ تُقرأ عطلاً — فتتمدّد الصورة
   لتملأها بدل أن يتمدّد الفراغ. */
.mz-a .mz-img{aspect-ratio:auto;flex:1 1 auto;min-height:300px}
.mz-a h3{font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.2rem,2.2vw,1.75rem);-webkit-line-clamp:3}
.mz-a .mz-b{padding:20px 22px 24px}
/* One dark card among the light ones — the page's single accent. */
.dark{background:var(--blue);border-color:var(--blue);color:#fff}
.dark .tag{color:#c9d4ef;border-color:rgba(255,255,255,.35)}
.dark .meta{color:#b9c6e6}

/* ═══ stream — rows with a thumbnail ═══════════════════════════════════ */
.stream{display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:center;
  padding-block:18px;border-block-end:1px solid var(--line)}
.row-t{width:220px;aspect-ratio:3/2;border-radius:var(--r);overflow:hidden;
  background:var(--wash)}
.row-t img{width:100%;height:100%;object-fit:cover}
.row h3{font-size:17px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.row:hover h3{color:var(--blue)}
.row-1 h3{font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.1rem,1.9vw,1.4rem);-webkit-line-clamp:2}
.stream .row:last-child{border-block-end:0}

/* ═══ magazine ═════════════════════════════════════════════════════════ */
.mag{display:grid;grid-template-columns:1.5fr 1fr;gap:28px}
.mag-big{grid-row:span 2}
.mag-img{aspect-ratio:3/2;border-radius:var(--r);overflow:hidden;
  background:var(--wash);margin-block-end:15px}
.mag-img img{width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease)}
.mag-big:hover .mag-img img{transform:scale(1.03)}
.mag-big h3{font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.3}
.mag-side{display:flex;flex-direction:column;gap:4px}
.mini{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:center;
  padding-block:13px;border-block-end:1px solid var(--line)}
.mini-t{width:96px;aspect-ratio:1;border-radius:var(--r);overflow:hidden;
  background:var(--wash)}
.mini-t img{width:100%;height:100%;object-fit:cover}
.mini h3{font-size:14.5px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mini .tag{margin-block-end:6px}
.mini:hover h3,.tight:hover h3{color:var(--blue)}
.mag-rest{display:flex;flex-direction:column}
.tight{padding-block:12px;border-block-end:1px solid var(--line)}
.tight h3{font-size:14.5px;line-height:1.5}
.mag-rest .tight:last-child{border-block-end:0}

/* ═══ dossier — numbered file, no pictures ═════════════════════════════ */
.dossier{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.dos{display:grid;grid-template-columns:auto 1fr;gap:18px;padding-block:18px;
  border-block-end:1px solid var(--line);align-items:start}
.dos-n{font-family:Fraunces,Georgia,serif;font-size:17px;font-weight:700;
  color:var(--blue);padding-block-start:1px}
.dos h3{font-size:16.5px;line-height:1.45}
.dos:hover h3{color:var(--blue)}

/* ═══ ledger — dated list ══════════════════════════════════════════════ */
.ledger{border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;
  background:var(--paper)}
.led{display:grid;grid-template-columns:110px 1fr auto;gap:20px;
  align-items:center;padding:15px 20px;border-block-end:1px solid var(--line);
  transition:background .15s}
.led:last-child{border-block-end:0}
.led:hover{background:var(--wash)}
.led time{font-size:12px;color:var(--muted)}
.led h3{font-size:16px;font-weight:500;line-height:1.45}
.led-go{font-size:11.5px;font-weight:600;letter-spacing:.08em;
  color:var(--line-2);white-space:nowrap;transition:color .15s}
.led:hover .led-go{color:var(--blue)}

/* ═══ cards ════════════════════════════════════════════════════════════ */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;
  transition:border-color .18s,transform .18s var(--ease)}
.card:hover{border-color:var(--line-2);transform:translateY(-2px)}
.card-t{aspect-ratio:3/2;background:var(--wash);overflow:hidden}
.card-t img{width:100%;height:100%;object-fit:cover}
.card-b{padding:15px 17px 18px}
.card h3{font-size:16px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ═══ inner pages ══════════════════════════════════════════════════════ */
.ph-head{background:var(--paper);border-block-end:1px solid var(--line);
  padding-block:clamp(30px,3.4vw,44px) clamp(20px,2.4vw,28px)}
.ph-in{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.ph-head h1{font-size:clamp(1.9rem,3.8vw,3rem);letter-spacing:.04em;
  text-transform:uppercase;color:var(--blue)}
.ph-head p{margin:9px 0 0;color:var(--muted);font-size:16px;max-width:60ch}
.ph-n{margin:0;flex:none;font-size:12.5px;color:var(--muted)}
.ph-lede{font-family:Fraunces,Georgia,serif;font-size:20px;line-height:1.6;
  color:var(--ink);margin-block-end:22px}
.prose{max-width:68ch}
.prose p{font-size:17px;line-height:1.8;color:var(--ink-2)}
.prose strong{color:var(--ink);font-weight:600}
.prose p a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.rules div{padding-block:18px;border-block-end:1px solid var(--line)}
.rules dt{font-family:Fraunces,Georgia,serif;font-size:17px;font-weight:600;
  margin-block-end:6px}
.rules dd{margin:0;color:var(--ink-2);font-size:16px;line-height:1.75}
.empty{padding:22px;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r);color:var(--muted);font-size:15px;margin:0}

/* ═══ article ══════════════════════════════════════════════════════════ */
.art{background:var(--paper)}
.art-head{padding-block:26px 0}
.crumbs{display:flex;gap:9px;font-size:12.5px;color:var(--muted);
  margin-block-end:14px}
.crumbs a:hover{color:var(--blue)}
.art h1{font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.25;max-width:20ch}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px;
  margin-block-start:16px;font-size:13px;color:var(--muted)}
.rt{display:inline-flex;align-items:center;gap:9px}
.rt::before{content:"";width:3px;height:3px;border-radius:50%;
  background:var(--line-2)}
.art-fig{margin:24px 0 0}
.art-fig img,.art-fig .ph{width:100%;aspect-ratio:16/9;object-fit:cover;
  border-radius:var(--r-l);background:var(--wash)}
.art-fig figcaption{margin-block-start:10px;font-size:12.5px;color:var(--muted)}
.art-body{max-width:68ch;padding-block:26px 44px}
.art-lede{font-family:Fraunces,Georgia,serif;font-size:20px;line-height:1.65;
  color:var(--ink)}
.art-body p{font-size:17px;line-height:1.85;color:var(--ink-2)}
.art-body p a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.art-src{margin-block:30px 0;padding:22px 24px;background:var(--wash);
  border-radius:var(--r-l);display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap}
.art-src p{margin:0;font-size:15px;color:var(--ink-2)}

/* ═══ search · 404 ═════════════════════════════════════════════════════ */
.sform{display:flex;gap:10px;margin-block-end:14px}
.sform input{flex:1;min-width:0;padding:13px 18px;font:inherit;font-size:16px;
  border:1px solid var(--line-2);border-radius:999px;background:var(--paper)}
.sform input:focus{outline:2px solid var(--blue);outline-offset:1px}
.note{color:var(--muted);font-size:14px;margin-block-end:26px}
.e404{text-align:center;padding-block:clamp(54px,8vw,110px);border:0}
.e404 p{margin-inline:auto;max-width:44ch}
.e-n{font-family:Fraunces,Georgia,serif;font-size:clamp(3rem,9vw,6rem);
  font-weight:700;color:var(--blue);line-height:1;margin:0 0 10px}
.e-btns{display:flex;gap:11px;justify-content:center;margin-block-start:26px;
  flex-wrap:wrap}

/* ═══ footer ═══════════════════════════════════════════════════════════ */
.foot{background:var(--ink);color:#9ba2aa;padding-block:52px 22px}
.foot-in{max-width:1200px;margin-inline:auto;padding-inline:28px;
  display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:36px}
.f-brand img{height:32px;width:auto;margin-block-end:15px}
.f-brand p{font-size:14px;max-width:44ch;line-height:1.75}
.f-soc{display:flex;gap:8px;margin-block-start:18px}
.f-soc a{display:inline-flex;width:38px;height:38px;align-items:center;
  justify-content:center;border-radius:50%;background:rgba(255,255,255,.07);
  color:#c3cad2;transition:background .15s,color .15s}
.f-soc a:hover{background:var(--blue);color:#fff}
.f-soc .ic{width:17px;height:17px}
.foot h4{color:#fff;font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  margin-block-end:13px}
/* Column links only — a blanket `.foot-in a` would also hit the social discs
   and knock out their centring, which is exactly what happened once. */
.foot-in > div > a{display:block;font-size:14px;padding-block:5px;color:#9ba2aa;
  transition:color .15s}
.foot-in > div > a:hover{color:#fff}
.f-bar{max-width:1200px;margin-inline:auto;padding-inline:28px;
  margin-block-start:36px;padding-block-start:20px;
  border-block-start:1px solid rgba(255,255,255,.12);
  display:flex;justify-content:space-between;gap:14px;flex-wrap:nowrap;
  font-size:12.5px}

/* ═══ browser surfaces ═════════════════════════════════════════════════ */
/* What we did not draw still carries the design. Leaving these at their
   defaults is what makes a page look assembled rather than built. */
html{scrollbar-color:var(--line-2) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px;
  border:3px solid var(--wash)}
::-webkit-scrollbar-thumb:hover{background:var(--muted)}

/* ═══ tablet ═══════════════════════════════════════════════════════════ */
@media(max-width:1000px){
  .mosaic{grid-template-columns:repeat(2,1fr);
    grid-template-areas:"a a" "b c" "d e"}
  .cards{grid-template-columns:repeat(2,1fr)}
  .nav-in{justify-content:flex-start}
}
@media(max-width:860px){
  .mag{grid-template-columns:1fr;gap:22px}
  .mag-big{grid-row:auto}
  .dossier{grid-template-columns:1fr;gap:0}
  .led{grid-template-columns:1fr auto;gap:6px 16px}
  .led time{grid-column:1}
  .led h3{grid-column:1/-1;grid-row:2}
}

/* ═══ mobile ═══════════════════════════════════════════════════════════ */
@media(max-width:760px){
  .wrap,.top-bar,.nav-in,.foot-in,.f-bar{padding-inline:18px}
  .top-bar{min-height:60px;gap:10px}
  .brand img{height:34px}
  .mosaic{grid-template-columns:1fr;grid-template-areas:"a" "b" "c" "d" "e"}
  /* عمود واحد: لا صفّ مجاور يفرض ارتفاعاً، فتعود النسبة الثابتة */
  .mz-a .mz-img{aspect-ratio:16/10;flex:none;min-height:0}
  .mz h3{font-size:15.5px}
  .cards{grid-template-columns:1fr}
  .row{grid-template-columns:110px 1fr;gap:14px}
  .row-t{width:110px}
  .row h3{font-size:15px}
  .mini{grid-template-columns:84px 1fr}
  .mini-t{width:84px}
  .sh{flex-direction:column;align-items:flex-start;gap:12px}
  .ph-in{flex-direction:column;align-items:flex-start;gap:8px}
  .art h1{max-width:none}
  .art-src{flex-direction:column;align-items:flex-start}
  .sform{flex-direction:column}
  .sform .pill{justify-content:center}
  /* Footer stays three columns side by side: one column pushes it into the
     far distance, two drop the third onto a second row and look lopsided. */
  .foot-in{grid-template-columns:repeat(3,1fr);gap:24px 14px}
  .f-brand{grid-column:1/-1}
  .foot-in > div > a{font-size:13px}
  .foot h4{font-size:12px}
  .f-bar{flex-direction:column;gap:6px;font-size:11.5px}
}

/* وسوم المقال — من وسوم الموقع القديم نفسها */
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;
  margin:30px 0 0}
.tags li{padding:5px 12px;border:1px solid var(--line-2);border-radius:999px;
  font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted)}

/* بقيّة قسم البطاقات: الشبكة تنتهي حيث تنتهي الصور، والباقي قائمة. */
.cards-more{margin-block-start:34px;padding-block-start:26px;
  border-block-start:1px solid var(--line)}

/* الرابط المزار: المتصفّح يلوّنه بنّيّاً داكناً افتراضياً، فظهرت عناوين
   بلونٍ غريبٍ عن الهوية بعد أوّل زيارة. اللون يرثه العنوان لا المتصفّح. */
a:visited{color:inherit}
.row:visited h3,.card:visited h3,.mag:visited h3,.led:visited h3,
.dos:visited h3,.mz:visited h3{color:inherit}

/* الصفّ بلا صورة يمتدّ على العرض. `.row.row-x` بأسبقيةٍ أعلى من `.row`
   عمداً — لا بترتيبٍ لاحق: القاعدة العامّة المعرَّفة بعدها بنفس الأولوية
   تغلبها، وهذا الفخّ تكرّر معنا مرّاتٍ عدّة. */
.row.row-x{grid-template-columns:1fr}
