diff --git a/css/pages/_press.css b/css/pages/_press.css index dbbc97a3..41c94b96 100644 --- a/css/pages/_press.css +++ b/css/pages/_press.css @@ -136,8 +136,164 @@ line-height: 26px; } +/* ========================================================================== + Event press kit (link-only page): /mk/press/meet-student-slovenia-2026/ + Builds on the shared press styles above; same tokens. + ========================================================================== */ + +/* Keep the hero title on a single line; scale the font so it never overflows. + Title is ~19.8x its font-size wide; dividing the available width by 20 keeps + it on one line with a little slack, capped at the 40px base size. */ +.press-kit-page .faq-hero h1 { max-width: none; } +@media (min-width: 700px) { + .press-kit-page .faq-hero h1 { + white-space: nowrap; + font-size: min(40px, calc((100vw - 48px) / 20)); + } +} + +/* Hero action buttons + usage line (centered under the centered hero) */ +.press-kit-actions { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 12px; + margin: 24px 0 14px; +} +.press-kit-embargo { + max-width: 680px; + margin: 0 auto; + text-align: center; + color: #475467; + font-size: 14px; + line-height: 22px; +} +.press-kit-embargo i { color: #2D738C; margin-right: 6px; } + +/* Small fact sheet reused inside the contact card */ +.press-kit-page .press-logos .press-facts { margin-top: 4px; } + +/* Tighter key/value columns in the press-kit fact sheets */ +.press-kit-page .press-facts .k { flex: 0 0 32%; } + +/* Ready-to-quote boilerplate block */ +.press-story { + background: #F5FAFB; + border: 1px solid #EAECF0; + border-radius: 16px; + padding: 8px 28px 24px; + margin: 0 0 40px; +} +.press-story p { + color: #344054; + font-size: 15px; + line-height: 27px; + margin: 0 0 16px; +} +.press-story p:last-child { margin-bottom: 0; } + +/* Key messages list */ +.press-messages { + list-style: none; + margin: 0 0 40px; + padding: 0; + display: grid; + gap: 12px; +} +.press-messages li { + position: relative; + padding: 2px 0 0 32px; + color: #344054; + font-size: 15px; + line-height: 26px; +} +.press-messages li::before { + content: "\f00c"; /* fa-check */ + font-family: "Font Awesome 6 Free"; + font-weight: 900; + position: absolute; + left: 0; + top: 2px; + color: #2D738C; + font-size: 14px; +} + +/* Pull-quote for the ready-made statement */ +.press-quote { + margin: 0 0 16px; + padding: 20px 26px; + border-left: 4px solid #FA7850; + background: #FFF5F0; + border-radius: 0 12px 12px 0; +} +.press-quote p { + margin: 0 0 10px; + color: #101828; + font-size: 18px; + line-height: 30px; + font-style: italic; +} +.press-quote cite { + color: #667085; + font-size: 14px; + font-style: normal; + font-weight: 600; +} + +/* Downloadable photo grid */ +.press-photos { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 14px; + margin: 0 0 20px; +} +.photo-dl { + display: flex; + flex-direction: column; + text-decoration: none; + border: 1px solid #EAECF0; + border-radius: 12px; + overflow: hidden; + background: #FFFFFF; + transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease; +} +.photo-dl:hover { + border-color: #D0DEE3; + box-shadow: 0 6px 16px rgba(16, 24, 40, 0.06); + transform: translateY(-1px); +} +.photo-shot { + display: block; + aspect-ratio: 3 / 2; + background: #F5FAFB; + overflow: hidden; +} +.photo-shot img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} +.photo-cap { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + padding: 12px 14px; +} +.photo-name { color: #101828; font-size: 14px; font-weight: 600; } +.photo-cap i { color: #2D738C; font-size: 14px; } + @media (max-width: 768px) { .press-grid { grid-template-columns: 1fr; gap: 16px; } .press-card { padding: 22px; } .press-facts .k { flex-basis: 48%; } + .press-photos { grid-template-columns: repeat(2, 1fr); } + .press-story { padding: 8px 20px 20px; } + .press-quote p { font-size: 16px; line-height: 27px; } +} + +@media (max-width: 460px) { + .press-photos { grid-template-columns: 1fr; } + .press-kit-actions .btn { width: 100%; text-align: center; } } diff --git a/mk/press/meet-student-slovenia-2026/index.html b/mk/press/meet-student-slovenia-2026/index.html new file mode 100644 index 00000000..ed0c982c --- /dev/null +++ b/mk/press/meet-student-slovenia-2026/index.html @@ -0,0 +1,400 @@ + + + + + + Медиумски пакет: Запознај ја студентска Словенија 2026 | МСОС + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+
+

Избери јазик

+ +
+ +
+
+ + +
+
+ Медиумски пакет +

Запознај ја студентска Словенија 2026

+

Сè што ѝ треба на редакцијата за да известува за настанот, на едно место: факти, готов текст за цитирање, фотографии, логоа и директен контакт. Материјалите се слободни за медиумска употреба.

+ +

Слободно за објавување веднаш. За интервјуа, изјави и оригинални фотографии во висока резолуција, контактирајте нè.

+
+ +
+ + +
+
+

Контакт за медиуми

+

За изјави, интервјуа, најава на присуство на новинарска екипа или дополнителни материјали, стапете во контакт на info@msosorg.com. Одговараме на македонски, словенечки и англиски.

+
+

Организатор

+
    +
  • МСОС, Македонска студентска организација во Словенија
  • +
  • Веб-страницаmsosorg.com
  • +
  • Е-поштаinfo@msosorg.com
  • +
+
+
+
+

Настанот накратко

+
    +
  • Настан„Запознај ја студентска Словенија 2026“, 4. издание
  • +
  • Когапеток, 4 септември 2026, во 18:00
  • +
  • КадеНЛБ експозитура, East Gate Mall, Скопје
  • +
  • Форматво живо на локацијата + пренос во живо (онлајн)
  • +
  • За когоидни студенти и нивните родители
  • +
  • Влезслободен; за присуство на локацијата потребна претходна пријава
  • +
  • Јазикмакедонски
  • +
  • Пријава / инфостраница на настанот
  • +
+
+
+ + +

Готов текст за објава

+

Слободно копирајте ги следниве пасуси во целост или делумно.

+
+

За настанот

+

Четврта година по ред, Македонската студентска организација во Словенија (МСОС) го организира „Запознај ја студентска Словенија“, настан на кој идните студенти и нивните родители директно разговараат со македонски студенти кои веќе студираат и живеат во Словенија. Наместо информации само од интернет или брошури, посетителите добиваат вистински искуства, совети и одговори од прва рака за изборот на факултет, аплицирањето, студентските домови и сместувањето, трошоците и секојдневниот студентски живот.

+

Изданието за 2026 година се одржува во петок, 4 септември 2026, со почеток во 18:00 часот, во НЛБ експозитурата во East Gate Mall во Скопје, со пренос во живо за оние што не можат да присуствуваат лично. Настанот е бесплатен, а за присуство на локацијата е потребна претходна пријава.

+

За МСОС (кратка биографија)

+

МСОС (Македонска студентска организација во Словенија) е заедница на студенти од Македонија што студираат и живеат во Словенија. Организацијата нуди поддршка, настани, заедница и застапување за македонските студенти, од првата пријава до дипломирањето. МСОС е основана како студентска иницијатива на 5 март 2023 година и е официјално регистрирана на 9 септември 2024 година, со седиште во Љубљана, Словенија. Работи на македонски, словенечки и англиски јазик.

+
+ + +

Клучни пораки

+ + + +

Изјава за медиумите

+
+

„Не се работи само за информации од интернет или брошури, туку за вистински искуства, совети и одговори од прва рака. Сакаме идните студенти и нивните родители да знаат дека не се сами на овој пат.“

+ Тимот на МСОС +
+

Достапни сме и за именувана изјава од претставник на МСОС, контактирајте нè.

+ + +

Фотографии за преземање

+

Официјална графика и фотографии од претходни изданија на настанот. Слободни за медиумска употреба со наведување „Фото: МСОС“. Кликнете за преземање.

+ +

За оригинали во висока резолуција или дополнителни фотографии, пишете ни.

+ + +

Логоа

+ + +

Услови за користење: материјалите на оваа страница се слободни за новинарска и уредничка употреба во контекст на известување за МСОС и настанот. Ве молиме наведувајте „Фото: МСОС“ кај фотографиите и не менувајте ги логоата (боја, пропорции, елементи). За секаква друга употреба или прашања, пишете ни.

+
+
+ + + + + + + + + diff --git a/tools/seo_inject.py b/tools/seo_inject.py index 7116fef7..f4ab1af8 100644 --- a/tools/seo_inject.py +++ b/tools/seo_inject.py @@ -29,6 +29,15 @@ LANGS = ["en", "mk", "si"] HREF = {"en": "en", "mk": "mk", "si": "sl"} OG_LOCALE = {"en": "en_GB", "mk": "mk_MK", "si": "sl_SI"} +# Unlisted / link-only pages, keyed by (lang, path). These get a +# `robots: noindex, nofollow` meta on every run and are kept OUT of sitemap.xml, +# so they are reachable only by someone who has the direct URL (e.g. a press kit +# shared privately with journalists). They are deliberately NOT added to +# robots.txt — a Disallow line there would publicly advertise the secret path. +UNLISTED = { + ("mk", "press/meet-student-slovenia-2026"), +} + # Section (first path segment) display names, for Article breadcrumbs. # Any 2-segment path "section/slug" whose section is here is treated as an article. SECTION_NAMES = { @@ -458,6 +467,8 @@ def build_block(lang, path, content): ogimg = extract_og_image(content) lines = [START] + if (lang, path) in UNLISTED: + lines.append(' ') lines.extend(GA_LINES) if desc: lines.append(f' ') @@ -555,6 +566,8 @@ def write_sitemap(): urls = [] for L, fp in all_pages(): path = page_path_of(fp, L) + if (L, path) in UNLISTED: + continue # link-only page: keep it out of the public sitemap urls.append((L, path)) # group by path so we can emit xhtml:link alternates from collections import defaultdict