/* V03-K3 core pages (owner visual review R1, 10 Nov 2026). Source: tools/publishing/visual/r049/core.css, served as /r049/core.css,
   linked on every page by tools/publishing/visibility/core_v03.mjs (applyCore). CSS only; the HTML changes are in that module.
   Every rule names the review finding it answers (missions/PSG_V03_HOME_FIX/R_review/R1_core.md). */

/* ---- 1. Desktop header over pale photographs (F-05) ------------------------------------------------------------------------------
   The frosted pill was a white 4-6 % tint with saturate(1.45): over a white limestone photo it turned milky and the white nav labels
   vanished. Same glass, same border and sheen, but a dark smoked tint under the blur (and no extra saturation once scrolled), so the
   labels keep their contrast over any photograph. At the top of the page (over the dark hero) it looks as before. */
@media (min-width: 1025px) {
  #masthead .psg-fp-pill { background-color: rgba(12, 9, 6, .3); }
  #masthead.psg-fp[data-scrolled] .psg-fp-pill {
    background-color: rgba(12, 9, 6, .64);
    -webkit-backdrop-filter: blur(18px) saturate(1.1) brightness(.78); backdrop-filter: blur(18px) saturate(1.1) brightness(.78);
  }
}

/* ---- 2. Stones catalogue card titles (F-02) -----------------------------------------------------------------------------------------
   The title link took the site-wide link style (Inter, title case) while its <span> stayed Syne, so one name mixed two typefaces.
   The whole name is now the heading's own Syne 500 in white, like the stone pages' titles. The accent word sits at a different place in
   each card's markup (first word on some, last on others), so it is not coloured separately: one consistent style per card. */
[data-r28-stone] .elementskit-section-title a.psg-card-link,
[data-r28-stone] .elementskit-section-title a.psg-card-link span {
  font: inherit !important; letter-spacing: inherit; text-transform: none !important; color: inherit !important;
}

/* ---- 3. In-text links take the case of their sentence (F-13) -------------------------------------------------------------------------
   The theme capitalises every link (".elementor-kit-97 a { text-transform: capitalize }"), so links inside running text read
   "Natural Stone And Marble From Syria". Inside paragraphs, table cells and captions a link now follows its sentence. Buttons and
   navigation are untouched. */
html body :is(p, td, figcaption, blockquote) a:not(.elementor-button) { text-transform: inherit; }

/* ---- 4. Home: "Trusted by distributors and manufacturers across MENA & Europe" (F-13) -------------------------------------------------
   The fixed-width widget broke it into three short lines on desktop with "Europe" alone; it now takes the room beside the avatars and
   balances its lines. */
@media (min-width: 768px) {
  .elementor-124 .elementor-element.elementor-element-24d88886 { width: auto !important; max-width: 420px !important; flex: 1 1 auto; }
}
.elementor-124 .elementor-element.elementor-element-24d88886 p { text-wrap: balance; }

/* ---- 5. Stone pages: one lead under the title (F-12) ----------------------------------------------------------------------------------
   core_v03.mjs merged the definition and the lead into one paragraph (the repeated sentences are gone from the page). It is the
   page's lead: a readable size, regular weight, warm white, with room under the title and its "Fossil limestone" line. */
.psg-def[data-psg-v03-lead] { margin: 20px 0 0 !important; max-width: 62ch; font-size: 18px !important; line-height: 29px !important; font-weight: 400 !important; color: #e9e2d6 !important; }
.psg-def[data-psg-v03-lead] .psg-aka { color: inherit; }
@media (max-width: 767px) {
  .psg-def[data-psg-v03-lead] { margin-top: 16px !important; font-size: 16px !important; line-height: 26px !important; }
}

/* ---- 6. Inner pages: the empty band under the title (F-15) ---------------------------------------------------------------------------
   The title band was a 500 px box (350 px on phones) with the title and breadcrumb centred in it, so about 120 px stood empty under
   the breadcrumb before the next section's own top padding (about 230-270 px of black in all on desktop; Sustainability looked worst
   because its first heading also fades in). The band (outer padding 96/96 px, 48/48 px on phones, around a title block that keeps
   its own 140/24 px padding) now hugs its content: it ends 40 px under the breadcrumb (24 px on phones), and the title sits
   204 px from the top on desktop (was 236 px) and where it was on phones. Stones builds its band differently (4bfa516); same result. Tablets are unchanged. */
@media (min-width: 1025px) {
  [data-psg-k3-hero] { --min-height: 0px !important; min-height: 0 !important; }
  [data-psg-k3-hero] > .e-con-inner { --min-height: 0px !important; min-height: 0 !important; justify-content: flex-start !important; padding-top: 64px !important; padding-bottom: 16px !important; }
  .elementor-614 .elementor-element.elementor-element-4bfa516 { --min-height: 0px !important; min-height: 0 !important; padding-top: 64px !important; padding-bottom: 16px !important; }
}
@media (max-width: 767px) {
  [data-psg-k3-hero] { --min-height: 0px !important; min-height: 0 !important; }
  [data-psg-k3-hero] > .e-con-inner { --min-height: 0px !important; min-height: 0 !important; justify-content: flex-start !important; padding-top: 48px !important; padding-bottom: 0 !important; }
  .elementor-614 .elementor-element.elementor-element-4bfa516 { --min-height: 0px !important; min-height: 0 !important; padding-top: 52px !important; padding-bottom: 0 !important; }
}

/* ---- 7. Before the footer (F-15) -----------------------------------------------------------------------------------------------------
   The last block's bottom padding (enquiry form 96 px, Materials closing note 72 px) plus the footer's own 96 px left 210-270 px of
   black above the footer logo. The footer starts 64 px under its top edge on desktop and those two blocks end with 48 px. */
@media (min-width: 1025px) {
  #colophon .psg-ff-inner { padding-top: 64px !important; }
  .psg-enq-sec { padding-bottom: 48px !important; }
}
/* the empty wrapper left where the removed "Further reading" line used to be still added 56 px of black above the footer */
.psg-ctx-wrap:empty { display: none; }

/* ---- 8. Contact and Materials: one container edge (F-24) -----------------------------------------------------------------------------
   The enquiry block and the Materials closing note were the same 1280 px box as the cards above, but with 24 px of extra side padding,
   so their text and the form card sat 24 px inside the cards' edges. On desktop they now share the cards' edges. */
@media (min-width: 1025px) {
  .psg-enq-sec { padding-inline: 0 !important; }
}
/* The Materials closing note ("Specifying minerals and masterbatch", every edition) read as orphaned text, indented and half-width
   (R5 #10). It becomes a quiet card whose edges are the cards' edges above, in the Guides cards' style. */
.psg-guidance { box-sizing: border-box; margin-block: 8px 48px !important; border: 1px solid rgba(255, 255, 255, .09); border-radius: 18px;
  background: linear-gradient(160deg, rgba(10, 28, 46, .55), rgba(8, 3, 0, .2)); }
.psg-guidance > p { max-width: 72ch; }
@media (min-width: 1025px) {
  .psg-guidance { width: auto !important; max-width: 1280px !important; margin-inline: max(80px, calc((100% - 1280px) / 2)) !important; padding: 28px 32px !important; }
}
@media (max-width: 1024px) {
  .psg-guidance { margin-inline: 24px !important; padding: 22px 22px 24px !important; }
}

/* ---- 9. Typed bullets as a real list (F-26, Masterbatch "Why choose") ------------------------------------------------------------------
   core_v03.mjs turned "• item<br>• item" into <ul class="psg-k3-list">: same items, now with a hanging indent so wrapped lines align
   with the text, not under the bullet. */
.psg-k3-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.psg-k3-list > li { position: relative; margin: 0; padding-inline-start: 22px; }
.psg-k3-list > li::before { content: ""; position: absolute; inset-inline-start: 4px; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: #c4a57a; }

/* ---- 10. Stone pages: five finishes without an orphan card (F-30) -------------------------------------------------------------------------
   The auto-fit grid set five finish cards as 4 + 1 on desktop. Exactly five now fill two full rows, 3 + 2. */
@media (min-width: 1025px) {
  .psg-finishes dl:has(> div:nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
  .psg-finishes dl:has(> div:nth-child(5):last-child) > div { grid-column: span 2; }
  .psg-finishes dl:has(> div:nth-child(5):last-child) > div:nth-child(n + 4) { grid-column: span 3; }
}

/* ---- 11. Unbroken names (R4 #9, AR) and the long contact e-mail (R4 #12) -----------------------------------------------------------------
   core_v03.mjs isolates the brand, the polymer codes and Latin stone names in parentheses in Arabic text (<bdi class="psg-k3-nowrap">).
   In large headings on phones the brand may still wrap rather than overflow. */
.psg-k3-nowrap { white-space: nowrap; unicode-bidi: isolate; }
@media (max-width: 767px) { :is(h1, h2) .psg-k3-nowrap:not(.psg-k3-subline) { white-space: normal; } }
/* Arabic Sustainability heading: "رؤيتنا 2030", with the brand as a smaller grey line under it (R4 #5) */
.psg-k3-subline { display: block; margin-top: .25em; font-size: .6em; line-height: 1.2; color: #a7a7a7; }
/* the procurement address broke as "procurement@ / phoenicianstone.net" in the four-up contact cards */
@media (min-width: 1025px) {
  .elementor-154 a.psg-mailto { font-size: 14px !important; white-space: nowrap; }
}

/* ---- 12. Greek and French Home ticker (R5 #1) ------------------------------------------------------------------------------------------
   The image labels ("Limestone", "Calcium Carbonate"...) became text boxes in the edition's language (core_v03.mjs + rtl_v03.mjs
   tickerLocalised), drawn exactly like the images: the same 1133:267 box, 1 px border and 8 px radius. Arabic uses rtl.css. */
.elementor-widget-image-carousel .swiper-slide-inner:has(> .psg-ticker-chip) { container-type: inline-size; }
html body .elementor-widget-image-carousel .swiper-slide-image.psg-ticker-chip {
  display: flex !important; align-items: center; justify-content: center; box-sizing: border-box; inline-size: 100%; aspect-ratio: 1133 / 267;
  padding: 0 6%; color: #cbcbcb; font-family: Inter, sans-serif; font-weight: 500; line-height: 1;
  font-size: clamp(12px, 9.5cqi, 17px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; user-select: none;
}

/* ---- 13. Greek text in the same weight and face as the Latin words around it (R5 #2, #4, #5) -----------------------------------------
   /psg/fonts/greek.css declares the Greek subsets as ONE face with a weight range (100-900, 400-800), while the Latin faces are one
   face per weight. The browser does not merge the two for a given weight, so Greek letters fell back to a system font (a different,
   heavier-looking face at 500-700). The same Greek files are declared here once per weight, next to each Latin face, so every weight
   of Inter and Syne has its Greek letters. (The variable files take the requested weight.) */
@font-face { font-family: Inter; font-style: normal; font-weight: 100; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 200; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 300; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 400; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 500; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 600; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 700; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 800; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 900; font-display: swap; src: url("/psg/fonts/inter-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Syne; font-style: normal; font-weight: 400; font-display: swap; src: url("/psg/fonts/syne-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Syne; font-style: normal; font-weight: 500; font-display: swap; src: url("/psg/fonts/syne-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Syne; font-style: normal; font-weight: 600; font-display: swap; src: url("/psg/fonts/syne-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Syne; font-style: normal; font-weight: 700; font-display: swap; src: url("/psg/fonts/syne-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }
@font-face { font-family: Syne; font-style: normal; font-weight: 800; font-display: swap; src: url("/psg/fonts/syne-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF, U+1F00-1FFF; }

/* ---- 14. Long French and Greek words in headings (R5 #3; V03-K4 final review) -----------------------------------------------------------
   "approvisionnement" broke as "approvisionnemen / t" on phones (the theme lets headings break anywhere). K3 made phone headings
   hyphenate; the final review found that unwanted ("Ασβεστό- / λιθος", "περιβαλλο- / ντική"): headings now wrap at spaces only.
   A word is broken only if it cannot fit a line on its own (overflow protection: overflow-wrap: anywhere). core_v03.mjs marks
   headings whose longest word is 12+ characters (data-psg-k4-lw = its length, text runs in .psg-k4-fit): on phones that heading's
   text is capped just enough for the word to fit the content width (100vw minus the 24 px gutters; about 0.6 em per character in
   Syne, 0.64 em for Greek), never enlarged. */
@media (max-width: 767px) {
  html:is([lang="fr"], [lang="el"]) :is(h1, h2) { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: anywhere; word-break: normal; }
  /* each text run of a marked heading is wrapped in a plain .psg-k4-fit span: it is reset (the ElementsKit title rules style a title's
     last <span> as an inline-block at the theme size and colour) and inherits everything from its own parent except a size cap
     (specific enough to beat the K3 card-link rule "a.psg-card-link span { font-size: inherit !important }") */
  html:is([lang="fr"], [lang="el"]) [data-psg-k4-lw] .psg-k4-fit.psg-k4-fit { all: unset !important; font-size: min(1em, calc((100vw - 48px) / (var(--psg-k4-lw, 12) * .6))) !important; }
  html[lang="el"] [data-psg-k4-lw] .psg-k4-fit.psg-k4-fit { font-size: min(1em, calc((100vw - 48px) / (var(--psg-k4-lw, 12) * .64))) !important; } /* Greek letters run wider */
  [data-psg-k4-lw="12"] { --psg-k4-lw: 12; } [data-psg-k4-lw="13"] { --psg-k4-lw: 13; } [data-psg-k4-lw="14"] { --psg-k4-lw: 14; }
  [data-psg-k4-lw="15"] { --psg-k4-lw: 15; } [data-psg-k4-lw="16"] { --psg-k4-lw: 16; } [data-psg-k4-lw="17"] { --psg-k4-lw: 17; }
  [data-psg-k4-lw="18"] { --psg-k4-lw: 18; } [data-psg-k4-lw="19"] { --psg-k4-lw: 19; } [data-psg-k4-lw="20"] { --psg-k4-lw: 20; }
  [data-psg-k4-lw="21"] { --psg-k4-lw: 21; } [data-psg-k4-lw="22"] { --psg-k4-lw: 22; } [data-psg-k4-lw="23"] { --psg-k4-lw: 23; }
  [data-psg-k4-lw="24"] { --psg-k4-lw: 24; }
}

/* ---- 15. Home "Our history" cards in French and Greek (R5 #8) -------------------------------------------------------------------------
   The photo labels are longer in French ("Développement durable", "Nouveaux matériaux") and ran to the photo's edge in the narrower
   pinned cards: a slightly smaller label in those editions. */
@media (min-width: 1025px) {
  html:is([lang="fr"], [lang="el"]) .psg-hx [data-psg-hx-photo] .elementor-icon-list-text { font-size: 14px !important; }
  /* each label is as wide as its text (they were squeezed to a fixed width, so the text ran past the pill); if two long labels
     cannot share the photo's width, the second moves to its own line instead of leaving the photo */
  .psg-hx [data-psg-hx-photo] .elementor-widget-icon-list { flex: 0 0 auto !important; width: max-content !important; max-width: 100% !important; }
  .psg-hx :is([data-psg-hx-photo], [data-psg-hx-photo] .e-con):has(> .elementor-widget-icon-list) { flex-wrap: wrap !important; row-gap: 8px !important; }
}

/* ---- 16. Arabic type (R4 #1, #4) --------------------------------------------------------------------------------------------------------
   Stone pages: the Arabic H1's descenders ("ي" in "جيري", "ميلكي") ran into the lead under it: a taller line for Arabic titles.
   Body text, list items and eyebrow pills: the Arabic letters (a system Arabic face beside Inter) read noticeably smaller than the same
   text in French; a 6 % step (16 -> 17 px, 18 -> 19 px, 14 -> 15 px pills), same line breaks rhythm, no layout change. */
html[lang="ar"] .psg-h1 { line-height: 1.4 !important; }
html[lang="ar"] :is(.elementor-widget-text-editor p, .elementor-icon-list-text, .elementor-image-box-description, .psg-def, .psg-facts li,
  .psg-k3-list li, .ekit-heading--title.text_fill, .psg-pill, .psg-enq-guide) { zoom: 1.06; }

/* ---- 17. V03-K4 final screenshot review (10 Nov 2026) ---------------------------------------------------------------------------------
   a. Phone numbers never break inside the number ("+46 72 933 / 4021" on the Greek Contact page; every edition): core_v03.mjs wraps
      each number in .psg-k4-tel; the sales tel: links are kept whole as well. */
.psg-k4-tel, a.psg-tel { white-space: nowrap; }
/* b. Stone pages "Related stones" / "Δείτε επίσης": the cards sat 8 px apart, so long titles (Greek "Damascus Shell Stone
      (απολιθωματοφόρος ασβεστόλιθος)") nearly touched the next column. The list's own 32 px (desktop) / 16 px (tablet) column gap
      was overridden by the older ".psg-related ul { gap: 8px }" rule meant for the removed Related-reading list (core_v03 step 5);
      the column gap is restored for the three-column layout. Phones (one column) are unchanged. */
@media (min-width: 641px) { .psg-related .psg-rel-list { column-gap: 16px; } }
@media (min-width: 1025px) { .psg-related .psg-rel-list { column-gap: 32px; } }
