/*
Theme Name: Phorm (Hello Elementor Child)
Theme URI: https://phorm.pt
Description: Phorm design system applied to Hello Elementor. Interdisciplinary design studio, Lisbon. Requires the Hello Elementor parent theme.
Author: Phorm
Author URI: https://phorm.pt
Template: hello-elementor
Version: 1.0.0
Text Domain: phorm
License: Proprietary
Tags: elementor
*/

/* ============================================================
   Everything below is the Phorm design system.
   Edit here — never in the parent theme.
   ============================================================ */

/* ============================================================
   PHORM — Elementor stylesheet
   Paste into: Elementor → Site Settings → Custom CSS
   (or better: wp-content/themes/hello-elementor-child/style.css)
   Version 1.0 — matches the Phorm design system tokens 1:1
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  /* Palette */
  --ph-jet-black:#1B2D2A; --ph-porcelain:#F7F9F7; --ph-onyx:#0F0F0F;
  --ph-rosy-copper:#DD614A; --ph-pumpkin:#FF8C42; --ph-lime-cream:#DEFF68;
  --ph-ash-grey:#C4DACF; --ph-grey-olive:#808782; --ph-globe-green:#459B6A;
  --ph-jet-black-tint:#25403C;

  /* Semantic */
  --ph-bg:var(--ph-porcelain); --ph-bg-inverse:var(--ph-jet-black);
  --ph-surface:#FFFFFF; --ph-surface-muted:#CFE0D7;
  --ph-text:var(--ph-onyx); --ph-heading:var(--ph-jet-black); --ph-muted:var(--ph-grey-olive);
  --ph-hairline:rgba(27,45,42,.12); --ph-subtle:rgba(27,45,42,.20);
  --ph-hairline-inverse:rgba(247,249,247,.24);

  /* Type */
  --ph-font:"Outfit",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --ph-track-display:-0.04em; --ph-track-heading:-0.02em; --ph-track-eyebrow:.14em;

  /* Space */
  --ph-page-pad:32px; --ph-section-y:80px; --ph-gutter:24px;
  --ph-radius:4px; --ph-radius-pill:999px;

  /* Motion */
  --ph-fast:140ms; --ph-base:220ms;
  --ph-ease:cubic-bezier(.2,0,.2,1); --ph-ease-editorial:cubic-bezier(.16,1,.3,1);
}
@media (min-width:1025px){:root{--ph-page-pad:64px;--ph-section-y:128px}}

/* ---------- 2. GLOBAL RESETS ---------- */
body{background:var(--ph-bg);color:var(--ph-text);font-family:var(--ph-font);font-weight:400;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--ph-font);font-weight:300;letter-spacing:var(--ph-track-heading);color:var(--ph-heading);text-wrap:balance}
p{text-wrap:pretty}
::selection{background:var(--ph-lime-cream);color:var(--ph-onyx)}
a{color:var(--ph-jet-black);text-decoration:none;border-bottom:1px solid var(--ph-subtle);transition:color var(--ph-fast) var(--ph-ease),border-color var(--ph-fast) var(--ph-ease)}
a:hover{color:var(--ph-rosy-copper);border-color:var(--ph-rosy-copper)}
/* Elementor wraps buttons/images in <a> — strip the rule underline there */
a.elementor-button,.elementor-widget-image a,.elementor-widget-nav-menu a,.elementor-widget-icon-list a,.elementor-icon-list-item a,.ph-plain a,a.ph-plain{border-bottom:0}
:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ph-bg),0 0 0 4px var(--ph-jet-black)}

/* ---------- 3. TYPE ROLES (add as a widget CSS class) ---------- */
.ph-display h1,.ph-display h2,.ph-display .elementor-heading-title{
  font-size:clamp(56px,9vw,140px);font-weight:300;line-height:1.02;letter-spacing:var(--ph-track-display)}
.ph-display-2 .elementor-heading-title{font-size:clamp(42px,6vw,104px);font-weight:300;line-height:1.02;letter-spacing:var(--ph-track-display)}
.ph-display-3 .elementor-heading-title{font-size:clamp(32px,4vw,76px);font-weight:300;line-height:1.02;letter-spacing:var(--ph-track-display)}
.ph-title .elementor-heading-title{font-size:56px;font-weight:300;line-height:1.16}
.ph-heading .elementor-heading-title{font-size:26px;font-weight:500;line-height:1.22}
.ph-eyebrow,.ph-eyebrow .elementor-heading-title{
  font-size:12px!important;font-weight:500;letter-spacing:var(--ph-track-eyebrow);text-transform:uppercase;color:var(--ph-muted)}
.ph-lead,.ph-lead p{font-size:18px;font-weight:300;line-height:1.7;max-width:46ch}
.ph-body p{font-size:16px;line-height:1.55;max-width:64ch}
.ph-caption,.ph-caption p{font-size:13px;line-height:1.4;color:var(--ph-muted)}
.ph-measure-narrow p{max-width:38ch}

/* ---------- 4. BUTTONS ---------- */
.elementor-button{
  font-family:var(--ph-font);font-weight:500;letter-spacing:-0.01em;
  border-radius:var(--ph-radius);white-space:nowrap;flex-shrink:0;
  transition:background var(--ph-fast) var(--ph-ease),color var(--ph-fast) var(--ph-ease),border-color var(--ph-fast) var(--ph-ease),transform 80ms var(--ph-ease)}
.elementor-button:active{transform:translateY(1px)}
/* Primary (default) */
.ph-btn .elementor-button,.elementor-button{background:var(--ph-jet-black);color:var(--ph-porcelain);border:1px solid transparent}
.ph-btn .elementor-button:hover,.elementor-button:hover{background:var(--ph-jet-black-tint);color:var(--ph-porcelain)}
/* Sizes — Elementor's own size control fights this; use these classes instead */
.ph-btn-sm .elementor-button{height:34px;padding:0 16px;font-size:13px;display:inline-flex;align-items:center}
.ph-btn-md .elementor-button{height:44px;padding:0 24px;font-size:14px;display:inline-flex;align-items:center}
.ph-btn-lg .elementor-button{height:54px;padding:0 32px;font-size:18px;display:inline-flex;align-items:center}
/* Variants */
.ph-btn-accent .elementor-button{background:var(--ph-rosy-copper);color:var(--ph-porcelain)}
.ph-btn-accent .elementor-button:hover{background:#C9503A}
.ph-btn-highlight .elementor-button{background:var(--ph-lime-cream);color:var(--ph-jet-black)}
.ph-btn-highlight .elementor-button:hover{background:var(--ph-pumpkin)}
.ph-btn-outline .elementor-button{background:transparent;color:var(--ph-heading);border:1px solid var(--ph-subtle)}
.ph-btn-outline .elementor-button:hover{background:var(--ph-jet-black);color:var(--ph-porcelain);border-color:var(--ph-jet-black)}
.ph-btn-ghost .elementor-button{background:transparent;color:var(--ph-heading)}
.ph-btn-ghost .elementor-button:hover{background:var(--ph-surface-muted)}
.ph-btn-inverse .elementor-button{background:var(--ph-porcelain);color:var(--ph-jet-black)}
.ph-btn-inverse .elementor-button:hover{background:var(--ph-lime-cream)}

/* ---------- 5. SECTIONS ---------- */
.ph-section{padding:var(--ph-section-y) var(--ph-page-pad)}
.ph-section-tight{padding:80px var(--ph-page-pad)}
.ph-inverse{background:var(--ph-bg-inverse);color:var(--ph-porcelain)}
.ph-inverse h1,.ph-inverse h2,.ph-inverse h3,.ph-inverse .elementor-heading-title{color:var(--ph-porcelain)}
.ph-inverse p{color:var(--ph-ash-grey)}
.ph-inverse .ph-eyebrow,.ph-inverse .ph-eyebrow .elementor-heading-title{color:var(--ph-grey-olive)}
.ph-inverse a{color:var(--ph-porcelain);border-color:var(--ph-hairline-inverse)}
.ph-inverse a:hover{color:var(--ph-lime-cream);border-color:var(--ph-lime-cream)}
.ph-inverse .ph-accent{color:var(--ph-lime-cream)}
.ph-bleed{padding-left:var(--ph-page-pad);padding-right:var(--ph-page-pad)}
.ph-rule{border-top:1px solid var(--ph-hairline)}
.ph-inverse .ph-rule{border-top-color:var(--ph-hairline-inverse)}

/* ---------- 6. HEADER (Theme Builder) ---------- */
.ph-header{
  background:rgba(247,249,247,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--ph-hairline)}
.ph-header .elementor-sticky .elementor-widget-theme-site-logo img,.ph-header .elementor-sticky .elementor-widget-image img{height:26px;width:auto}
.ph-header .elementor-sticky p,.ph-header .elementor-sticky .elementor-widget-text-editor p{font-size:13px;line-height:1.4}
.ph-header .elementor-sticky .elementor-nav-menu a{
  font-size:13px;font-weight:400;letter-spacing:-0.01em;color:var(--ph-muted);border:0;
  transition:color var(--ph-fast) var(--ph-ease)}
.ph-header .elementor-sticky .elementor-nav-menu a:hover,.ph-header .elementor-sticky .elementor-nav-menu .current-menu-item a{color:var(--ph-jet-black);font-weight:500}
.ph-header .elementor-sticky .elementor-nav-menu--main .elementor-item:before,
.ph-header .elementor-sticky .elementor-nav-menu--main .elementor-item:after{display:none!important}

/* ---------- 7. CARDS & PROJECT TILES ---------- */
.ph-card{background:var(--ph-surface);border:1px solid var(--ph-hairline);border-radius:var(--ph-radius);box-shadow:none!important}
.ph-card-flat{background:transparent;border:0}
.ph-tile{transition:transform var(--ph-base) var(--ph-ease-editorial)}
.ph-tile:hover{transform:translateY(-2px)}
.ph-tile img{display:block;width:100%;height:auto;border-radius:0}
/* Kill Elementor's default image-box/card shadows — Phorm cards never carry shadow */
.ph-card .elementor-widget-container,.ph-tile .elementor-widget-container{box-shadow:none!important}

/* ---------- 8. BADGES & FILTER CHIPS ---------- */
.ph-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:2px;
  font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
  background:var(--ph-surface-muted);color:var(--ph-jet-black)}
.ph-badge-outline{background:transparent;border:1px solid var(--ph-subtle);color:var(--ph-heading)}
.ph-badge-highlight{background:var(--ph-lime-cream);color:var(--ph-jet-black)}
.ph-chip{display:inline-flex;align-items:center;height:32px;padding:0 16px;border-radius:var(--ph-radius-pill);
  border:1px solid var(--ph-hairline);font-size:13px;color:var(--ph-heading);white-space:nowrap;
  background:transparent;transition:var(--ph-fast) var(--ph-ease)}
.ph-chip:hover{border-color:var(--ph-subtle)}
.ph-chip.is-active,.ph-chip[aria-pressed="true"]{background:var(--ph-jet-black);border-color:var(--ph-jet-black);color:var(--ph-porcelain)}

/* ---------- 9. FORMS (Elementor Pro Form widget) ---------- */
.elementor-field-group .elementor-field-label{font-size:14px;font-weight:500;letter-spacing:-0.01em;color:var(--ph-heading);margin-bottom:8px}
.elementor-field-group .elementor-field-textual{
  height:44px;padding:0 16px;font-family:var(--ph-font);font-size:14px;color:var(--ph-text);
  background:var(--ph-surface);border:1px solid var(--ph-subtle);border-radius:var(--ph-radius);
  box-shadow:none;transition:border-color var(--ph-fast) var(--ph-ease)}
.elementor-field-group textarea.elementor-field-textual{height:auto;min-height:120px;padding:12px 16px;line-height:1.55}
.elementor-field-group .elementor-field-textual:hover{border-color:var(--ph-jet-black)}
.elementor-field-group .elementor-field-textual:focus{border-color:var(--ph-jet-black);box-shadow:0 0 0 2px var(--ph-bg),0 0 0 4px var(--ph-jet-black)}
.elementor-field-group .elementor-field-textual::placeholder{color:var(--ph-muted)}
.elementor-field-subgroup label{font-size:14px}
.elementor-message.elementor-message-success{background:transparent;color:var(--ph-globe-green);font-size:14px}
.elementor-message.elementor-message-danger{color:var(--ph-rosy-copper)}

/* ---------- 10. FOOTER ---------- */
.ph-footer{background:var(--ph-bg-inverse);color:var(--ph-porcelain);padding:96px var(--ph-page-pad) 40px}
.ph-footer h2,.ph-footer h3,.ph-footer .elementor-heading-title{color:var(--ph-porcelain)}
.ph-footer p,.ph-footer li{color:var(--ph-ash-grey)}
.ph-footer a{color:var(--ph-porcelain);border-color:var(--ph-hairline-inverse)}
.ph-footer a:hover{color:var(--ph-lime-cream);border-color:var(--ph-lime-cream)}
.ph-footer .elementor-widget-theme-site-logo img,.ph-footer .elementor-widget-image img{height:30px;width:auto}
.ph-footer p,.ph-footer li,.ph-footer a,.ph-footer .elementor-widget-text-editor p{font-size:14px;line-height:1.5}
.ph-footer .elementor-nav-menu a{font-size:14px;font-weight:400;letter-spacing:-0.01em}
.ph-footer h2,.ph-footer h3,.ph-footer .elementor-heading-title{font-size:14px;font-weight:500;line-height:1.4}
.ph-footer .ph-eyebrow,.ph-footer .ph-eyebrow .elementor-heading-title{font-size:11px!important;line-height:1.3}
.ph-footer-legal,.ph-footer-legal p{font-size:12px}
.ph-footer-legal{font-size:13px;color:var(--ph-grey-olive);border-top:1px solid var(--ph-hairline-inverse);padding-top:20px;margin-top:80px}

/* ---------- 11. REVEALS ---------- */
/* Use Elementor's Motion Effects → Entrance Animation "Fade In Up",
   Duration Slow, and these override its easing to Phorm's curve. */
.animated{animation-timing-function:var(--ph-ease-editorial)!important}
@media (prefers-reduced-motion:reduce){
  .animated{animation:none!important;opacity:1!important;transform:none!important}
  *{transition-duration:0ms!important}
}

/* ---------- 12. POLYLANG LANGUAGE SWITCHER ---------- */
.ph-lang .lang-item{display:inline-block}
.ph-lang a{font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ph-muted);border:0}
.ph-lang .current-lang a{color:var(--ph-jet-black)}
.ph-inverse .ph-lang a,.ph-footer .ph-lang a{color:var(--ph-grey-olive)}
.ph-inverse .ph-lang .current-lang a,.ph-footer .ph-lang .current-lang a{color:var(--ph-porcelain)}

/* ---------- 13. THINGS TO SUPPRESS ---------- */
/* Phorm has no gradients, no glass cards, no drop shadows on content. */
.elementor-widget-container{text-shadow:none}
.ph-no-shadow,.ph-no-shadow *{box-shadow:none!important}

/* ---------- 14. THEME BUILDER LOCATION FALLBACKS ---------- */
/* Applies even if the ph-header / ph-footer classes are missing from the container. */
.elementor-location-header>.e-con.elementor-sticky{background:rgba(247,249,247,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--ph-hairline)}
.ph-header>.e-con.elementor-sticky{background:rgba(247,249,247,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--ph-hairline)}
.elementor-location-header .elementor-sticky .elementor-widget-theme-site-logo img,.elementor-location-header .elementor-sticky .elementor-widget-image img{height:26px;width:auto}
.ph-header .elementor-sticky .elementor-widget-theme-site-logo img,.ph-header .elementor-sticky .elementor-widget-image img{height:26px;width:auto}
.elementor-location-header .elementor-sticky .elementor-nav-menu a{font-size:13px;font-weight:400;letter-spacing:-0.01em;color:var(--ph-muted);border:0}
.ph-header .elementor-sticky .elementor-nav-menu a{font-size:13px;font-weight:400;letter-spacing:-0.01em;color:var(--ph-muted);border:0}
.elementor-location-header .elementor-sticky .elementor-nav-menu a:hover,.elementor-location-header .elementor-sticky .elementor-nav-menu .current-menu-item a{color:var(--ph-jet-black)}
.ph-header .elementor-sticky .elementor-nav-menu a:hover,.ph-header .elementor-sticky .elementor-nav-menu .current-menu-item a{color:var(--ph-jet-black)}
.elementor-location-header .elementor-sticky p{font-size:13px;line-height:1.4}
.ph-header .elementor-sticky p{font-size:13px;line-height:1.4}

.elementor-location-footer>.e-con{background:var(--ph-bg-inverse);color:var(--ph-porcelain)}
.ph-footer>.e-con{background:var(--ph-bg-inverse);color:var(--ph-porcelain)}
.elementor-location-footer .elementor-widget-theme-site-logo img,.elementor-location-footer .elementor-widget-image img{height:30px;width:auto;filter:brightness(0) invert(1)}
.ph-footer .elementor-widget-theme-site-logo img,.ph-footer .elementor-widget-image img{height:30px;width:auto;filter:brightness(0) invert(1)}
.elementor-location-footer h1,.elementor-location-footer h2,.elementor-location-footer h3,.elementor-location-footer .elementor-heading-title{font-size:14px;font-weight:500;line-height:1.4;color:var(--ph-porcelain)}
.ph-footer h1,.ph-footer h2,.ph-footer h3,.ph-footer .elementor-heading-title{font-size:14px;font-weight:500;line-height:1.4;color:var(--ph-porcelain)}
.elementor-location-footer p,.elementor-location-footer li{font-size:14px;line-height:1.5;color:var(--ph-ash-grey)}
.ph-footer p,.ph-footer li{font-size:14px;line-height:1.5;color:var(--ph-ash-grey)}
.elementor-location-footer a{font-size:14px;color:var(--ph-porcelain);border-color:var(--ph-hairline-inverse)}
.ph-footer a{font-size:14px;color:var(--ph-porcelain);border-color:var(--ph-hairline-inverse)}
.elementor-location-footer a:hover{color:var(--ph-lime-cream);border-color:var(--ph-lime-cream)}
.ph-footer a:hover{color:var(--ph-lime-cream);border-color:var(--ph-lime-cream)}
.elementor-location-footer .elementor-nav-menu a{font-size:14px;font-weight:400;letter-spacing:-0.01em}
.ph-footer .elementor-nav-menu a{font-size:14px;font-weight:400;letter-spacing:-0.01em}
.elementor-location-footer .ph-eyebrow,.elementor-location-footer .ph-eyebrow .elementor-heading-title{font-size:11px;font-weight:500;letter-spacing:var(--ph-track-eyebrow);text-transform:uppercase;color:var(--ph-grey-olive)}
.ph-footer .ph-eyebrow,.ph-footer .ph-eyebrow .elementor-heading-title{font-size:11px;font-weight:500;letter-spacing:var(--ph-track-eyebrow);text-transform:uppercase;color:var(--ph-grey-olive)}
.elementor-location-footer .ph-footer-legal,.elementor-location-footer .ph-footer-legal p{font-size:12px;color:var(--ph-grey-olive)}
.ph-footer .ph-footer-legal,.ph-footer .ph-footer-legal p{font-size:12px;color:var(--ph-grey-olive)}

/* Hairline dividers between stacked footer menu items */
.elementor-location-footer .elementor-nav-menu>li+li{border-top:1px solid var(--ph-hairline-inverse)}
.ph-footer .elementor-nav-menu>li+li{border-top:1px solid var(--ph-hairline-inverse)}
.elementor-location-footer .elementor-nav-menu>li>.elementor-item{padding-top:10px;padding-bottom:10px}
.ph-footer .elementor-nav-menu>li>.elementor-item{padding-top:10px;padding-bottom:10px}
.elementor-location-footer .elementor-nav-menu{width:100%}
.ph-footer .elementor-nav-menu{width:100%}

/* Stacked link list in the footer (Text Editor with class ph-linklist) */
.ph-linklist ul{list-style:none;margin:0;padding:0}
.ph-linklist li+li,.ph-linklist p+p{border-top:1px solid var(--ph-hairline-inverse)}
.ph-linklist li,.ph-linklist p{margin:0;padding-top:10px;padding-bottom:10px}
.ph-linklist a{text-decoration:none;border-bottom:0}
.ph-linklist a:hover{color:var(--ph-lime-cream)}

/* ---------- 15. FOOTER LINK LISTS — deterministic dividers ---------- */
/* Turn Elementor's own Icon List "Divider" OFF; these rules own the lines. */
.elementor-location-footer .elementor-icon-list-items{list-style:none;margin:0;padding:0}
.ph-footer .elementor-icon-list-items{list-style:none;margin:0;padding:0}
.elementor-location-footer .elementor-icon-list-item a,
.ph-footer .elementor-icon-list-item a,
.elementor-location-footer .elementor-icon-list-item{border:0!important}
.ph-footer .elementor-icon-list-item{border:0!important}
.elementor-location-footer .elementor-icon-list-item:after{display:none!important}
.ph-footer .elementor-icon-list-item:after{display:none!important}
.elementor-location-footer .elementor-icon-list-item+.elementor-icon-list-item{border-top:1px solid var(--ph-hairline-inverse)!important}
.ph-footer .elementor-icon-list-item+.elementor-icon-list-item{border-top:1px solid var(--ph-hairline-inverse)!important}
.elementor-location-footer .elementor-icon-list-item>a,
.ph-footer .elementor-icon-list-item>a,
.elementor-location-footer .elementor-icon-list-item>span{padding-top:12px;padding-bottom:12px;display:block}
.ph-footer .elementor-icon-list-item>span{padding-top:12px;padding-bottom:12px;display:block}

/* ---------- 16. FOOTER COLUMN ALIGNMENT ---------- */
/* Columns start at the same top edge, with one shared label-to-list rhythm. */
.elementor-location-footer .e-con-full,.elementor-location-footer .e-con{align-items:flex-start}
.ph-footer .e-con-full,.ph-footer .e-con{align-items:flex-start}
.elementor-location-footer .ph-eyebrow{margin:0 0 20px 0}
.ph-footer .ph-eyebrow{margin:0 0 20px 0}
.elementor-location-footer .ph-eyebrow .elementor-heading-title{margin:0;line-height:1.2}
.ph-footer .ph-eyebrow .elementor-heading-title{margin:0;line-height:1.2}
.elementor-location-footer .elementor-widget-icon-list,
.ph-footer .elementor-widget-icon-list,
.elementor-location-footer .elementor-widget-nav-menu{margin:0;width:100%}
.ph-footer .elementor-widget-nav-menu{margin:0;width:100%}
.elementor-location-footer .elementor-widget-icon-list .elementor-icon-list-item:first-child>a,
.ph-footer .elementor-widget-icon-list .elementor-icon-list-item:first-child>a,
.elementor-location-footer .elementor-widget-icon-list .elementor-icon-list-item:first-child>span{padding-top:0}
.ph-footer .elementor-widget-icon-list .elementor-icon-list-item:first-child>span{padding-top:0}
.elementor-location-footer .elementor-nav-menu>li:first-child>.elementor-item{padding-top:0}
.ph-footer .elementor-nav-menu>li:first-child>.elementor-item{padding-top:0}

/* ---------- 17. FOOTER COLUMNS — hard normalise ---------- */
/* Column boxes: same top edge, no stray padding/margin. */
.elementor-location-footer .e-con.e-child{margin-top:0!important;padding-top:0!important;align-self:flex-start!important}
.ph-footer .e-con.e-child{margin-top:0!important;padding-top:0!important;align-self:flex-start!important}
.elementor-location-footer .e-con-inner,.elementor-location-footer .e-con{align-items:flex-start}
.ph-footer .e-con-inner,.ph-footer .e-con{align-items:flex-start}
.elementor-location-footer .e-con.e-child>.elementor-widget:first-child{margin-top:0!important}
.ph-footer .e-con.e-child>.elementor-widget:first-child{margin-top:0!important}
/* Both list types share one rhythm: 14px above/below each row, none on the first. */
.elementor-location-footer .elementor-icon-list-item>a,
.ph-footer .elementor-icon-list-item>a,
.elementor-location-footer .elementor-icon-list-item>span,
.ph-footer .elementor-icon-list-item>span,
.elementor-location-footer .elementor-nav-menu>li>.elementor-item{padding-top:14px!important;padding-bottom:14px!important;display:block}
.ph-footer .elementor-nav-menu>li>.elementor-item{padding-top:14px!important;padding-bottom:14px!important;display:block}
.elementor-location-footer .elementor-icon-list-item:first-child>a,
.ph-footer .elementor-icon-list-item:first-child>a,
.elementor-location-footer .elementor-icon-list-item:first-child>span,
.ph-footer .elementor-icon-list-item:first-child>span,
.elementor-location-footer .elementor-nav-menu>li:first-child>.elementor-item{padding-top:0!important}
.ph-footer .elementor-nav-menu>li:first-child>.elementor-item{padding-top:0!important}
/* Eyebrow labels: identical size and identical gap to the list below. */
.elementor-location-footer .ph-eyebrow,
.ph-footer .ph-eyebrow,
.elementor-location-footer .ph-eyebrow .elementor-heading-title{font-size:11px!important;line-height:1.2!important;letter-spacing:var(--ph-track-eyebrow);text-transform:uppercase}
.ph-footer .ph-eyebrow .elementor-heading-title{font-size:11px!important;line-height:1.2!important;letter-spacing:var(--ph-track-eyebrow);text-transform:uppercase}
.elementor-location-footer .ph-eyebrow{margin:0 0 20px 0!important;padding:0!important}
.ph-footer .ph-eyebrow{margin:0 0 20px 0!important;padding:0!important}

/* ---------- 18. LEGAL RULE MATCHES COLUMN DIVIDERS ---------- */
.ph-footer .ph-footer-legal,.elementor-location-footer .ph-footer-legal{border-top:1px solid var(--ph-hairline-inverse)!important;border-bottom:0!important;border-left:0!important;border-right:0!important}

/* ---------- 19. HEADER REFINEMENTS ---------- */
/* Larger wordmark. */
.ph-header .elementor-sticky .elementor-widget-theme-site-logo img,.ph-header .elementor-sticky .elementor-widget-image img,
.elementor-location-header .elementor-sticky .elementor-widget-theme-site-logo img,.elementor-location-header .elementor-sticky .elementor-widget-image img{height:40px;width:auto}

/* Everything on the header row sits on one optical centre line. */
.ph-header>.e-con.elementor-sticky,.ph-header .elementor-sticky .elementor-sticky .e-con-inner,.elementor-location-header>.e-con.elementor-sticky,.elementor-location-header .elementor-sticky .elementor-sticky .e-con-inner{align-items:center}
.ph-header .elementor-sticky .elementor-nav-menu,.elementor-location-header .elementor-sticky .elementor-nav-menu{align-items:center}
.ph-header .elementor-sticky .elementor-widget-button,.elementor-location-header .elementor-sticky .elementor-widget-button{display:flex;align-items:center}
/* "Login" becomes a glyph. The menu item already carries .ph-login-icon. */
.elementor-location-header .elementor-sticky .ph-login-icon>a{position:relative;font-size:0!important;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-bottom:0!important}
.elementor-location-header .elementor-sticky .ph-login-icon>a:before{content:"";width:20px;height:20px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.75'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'8'%20r%3D'4'%2F%3E%3Cpath%20d%3D'M4%2021v-1a7%207%200%200%201%207-7h2a7%207%200%200%201%207%207v1'%2F%3E%3C%2Fsvg%3E") center/20px 20px no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.75'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'12'%20cy%3D'8'%20r%3D'4'%2F%3E%3Cpath%20d%3D'M4%2021v-1a7%207%200%200%201%207-7h2a7%207%200%200%201%207%207v1'%2F%3E%3C%2Fsvg%3E") center/20px 20px no-repeat}
/* Same colour in every state — the glyph does not react to hover. */
.ph-header .ph-login-icon>a,.ph-header .ph-login-icon>a:hover,.ph-header .ph-login-icon>a:focus,
.elementor-location-header .ph-login-icon>a,.elementor-location-header .ph-login-icon>a:hover,.elementor-location-header .ph-login-icon>a:focus,
.elementor-location-header .elementor-sticky .ph-login-icon.current-menu-item>a{color:var(--ph-jet-black)!important}
/* Explicit fill — do not inherit colour, which was resolving to transparent. */
.elementor-location-header .elementor-sticky .ph-login-icon>a:before{background-color:#1B2D2A!important}
.ph-inverse .ph-login-icon>a:before,.ph-footer .ph-login-icon>a:before{background-color:#F7F9F7!important}
/* Placeholder language switcher — hidden until the real Polylang widget replaces it. */
.ph-lang:empty,.ph-header .ph-lang,.elementor-location-header .ph-lang{display:none}

/* ---------- 20. LOGIN GLYPH (background-image build) ---------- */
.elementor-location-header .elementor-sticky li.ph-login-icon>a,.elementor-location-header .elementor-sticky li.ph-login-icon>a.elementor-item{
  display:block!important;width:22px!important;height:22px!important;
  padding:0!important;margin:0!important;border:0!important;overflow:hidden!important;
  text-indent:-999px!important;white-space:nowrap!important;
  background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B2D2A' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21v-1a7 7 0 0 1 7-7h2a7 7 0 0 1 7 7v1'/></svg>")!important;background-repeat:no-repeat!important;
  background-position:center center!important;background-size:22px 22px!important;
  opacity:1!important;visibility:visible!important}
.elementor-location-header .elementor-sticky li.ph-login-icon>a:hover,.elementor-location-header .elementor-sticky li.ph-login-icon>a.elementor-item:hover{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B2D2A' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21v-1a7 7 0 0 1 7-7h2a7 7 0 0 1 7 7v1'/></svg>")!important;opacity:.6!important}
.elementor-location-header .elementor-sticky li.ph-login-icon>a *{display:none!important}

/* No pointer effects or overlays on the glyph. */
.elementor-location-header .elementor-sticky li.ph-login-icon>a:before,
.elementor-location-header .elementor-sticky li.ph-login-icon>a:after,
.elementor-location-header .elementor-sticky li.ph-login-icon>a.elementor-item:before,.elementor-location-header .elementor-sticky li.ph-login-icon>a.elementor-item:after{display:none!important;content:none!important;background:none!important;border:0!important;transform:none!important;opacity:0!important}
.elementor-location-header .elementor-sticky li.ph-login-icon>a:hover *{display:none!important}

/* ---------- 21. LOGIN GLYPH COLOURS + ADMIN BAR OFFSET ---------- */
.elementor-location-header .elementor-sticky li.ph-login-icon>a,.elementor-location-header .elementor-sticky li.ph-login-icon>a.elementor-item{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23808782' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21v-1a7 7 0 0 1 7-7h2a7 7 0 0 1 7 7v1'/></svg>")!important;opacity:1!important}
.elementor-location-header .elementor-sticky li.ph-login-icon>a:hover,
.elementor-location-header .elementor-sticky li.ph-login-icon>a.elementor-item:hover,
.elementor-location-header .elementor-sticky li.ph-login-icon.current-menu-item>a{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B2D2A' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 21v-1a7 7 0 0 1 7-7h2a7 7 0 0 1 7 7v1'/></svg>")!important;opacity:1!important}

/* Logged-in users: drop the header clear of the WordPress admin bar. */
/* When the user bar is present in the header, the fixed bar starts below it. */
.elementor-location-header:has(.stax-condition-yes) .elementor-sticky--active,
.elementor-location-header:has(.stax-user_role_enabled-yes) .elementor-sticky--active,
body.logged-in .elementor-location-header .elementor-sticky--active,
body.logged-in .ph-header.elementor-sticky--active{top:40px!important;margin-top:0!important}

/* Elementor's sticky spacer is a hidden clone — keep it hidden, whatever else we force. */
.elementor-sticky__spacer,.elementor-sticky__spacer *{visibility:hidden!important;opacity:0!important;pointer-events:none!important}

/* Sticky spacer clone — beat the forced rules above on specificity. */
.elementor-sticky__spacer li.ph-login-icon>a,
.elementor-sticky__spacer li.ph-login-icon>a.elementor-item,
.elementor-sticky__spacer .elementor-widget-button,
.elementor-sticky__spacer .elementor-widget,
.elementor-sticky__spacer .e-con{opacity:0!important;visibility:hidden!important;background-image:none!important;pointer-events:none!important}

/* User bar always sits above the fixed header, whatever the sticky script does. */
.elementor-location-header>.e-con.stax-condition-yes,
.elementor-location-header>.e-con.stax-user_role_enabled-yes{position:relative!important;z-index:1000!important}
.elementor-location-header>.e-con.elementor-sticky{z-index:999!important}

/* Something writes an inline negative margin on <body>, which hides the top bar. */
body{margin-top:0!important}

/* Buttons keep sentence case — uppercase is reserved for eyebrows, badges and the language switcher. */
.elementor-button,.elementor-button-text,.ph-btn,.ph-btn .elementor-button-text,
button.elementor-button,a.elementor-button{text-transform:none!important}
