/* =====================================================================
 * site/css/wptream_dura_elementor.css
 *
 * Elementor bridge for the "la vita e dura" header (design Nav.jsx) and
 * footer (design Footer.jsx).
 *
 * Both are Theme Builder templates built from NATIVE Elementor Pro
 * widgets. The header is one container carrying the design class
 * `wptream_dura_nav`, holding Site Logo + Nav Menu + the WpStream Login
 * widget. The footer is a container tree carrying the design classes
 * `wptream_dura_footer / _top / _groups / _group / _legal`, holding Site
 * Logo, Heading, Icon List, Text Editor and Social Icons widgets. Those
 * widgets print Elementor's own markup (.elementor-nav-menu, .sub-menu,
 * .sub-arrow, .elementor-menu-toggle, .wpstream_start_login,
 * .elementor-heading-title, .elementor-icon-list-item,
 * .elementor-social-icon ...), so this file maps that markup onto the
 * design tokens. Every value is the one Nav.jsx / Footer.jsx uses; see
 * sections E1 and E3 of wptream_dura_components.css for the reference
 * rules. Sections 1-8 are the header, section 9 the footer.
 *
 * Elementor sets many of these properties itself at equal or higher
 * specificity, which is why several declarations carry !important.
 * Loaded after wptream_dura_components.css, front site only.
 * ===================================================================== */

/* ---------------------------------------------------------------------
 * 1. The bar. Layout (row, centred, gap, max-width, padding, min-height,
 *    sticky) is set natively on the container in Elementor; here only the
 *    surface, which Elementor does not touch.
 * ------------------------------------------------------------------- */
.e-con.wptream_dura_nav {
  z-index: 50;
  /* Honour the native container height instead of the generic nav token. */
  min-height: var(--min-height, var(--wptream_dura_nav_h));
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--wptream_dura_border);
  color: var(--wptream_dura_fg);
}
.e-con.wptream_dura_nav.wptream_dura_dark {
  background: rgba(10, 10, 11, 0.94);
  border-bottom-color: var(--wptream_dura_border_soft);
}
/* Elementor Pro sticky clones the bar as position:fixed; keep it above content. */
.e-con.wptream_dura_nav.elementor-sticky--active { z-index: 50; }

/* ---------------------------------------------------------------------
 * 2. Site Logo widget -> .wptream_dura_nav_logo (38px tall, auto width).
 * ------------------------------------------------------------------- */
.wptream_dura_nav .elementor-widget-theme-site-logo img {
  height: 38px !important;
  width: auto !important;
  max-width: none;
  display: block;
}
/* Block link so no baseline/line-height gap pushes the logo above center. */
.wptream_dura_nav .elementor-widget-theme-site-logo a { display: block; }
.wptream_dura_dark .elementor-widget-theme-site-logo img { filter: brightness(0) invert(1); }

/* ---------------------------------------------------------------------
 * 3. Nav Menu widget, desktop -> .wptream_dura_nav_items / _link / _chevron
 * ------------------------------------------------------------------- */
@media (min-width: 1025px) {
  /* Equal side columns keep the menu centered despite different logo/action widths. */
  .wptream_dura_nav > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
  }
  .wptream_dura_nav .elementor-widget-nav-menu {
    width: auto !important;
    justify-self: center;
  }
  .wptream_dura_nav .elementor-widget-WpStream_Login {
    width: auto !important;
    justify-self: end;
  }
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu {
  display: flex;
  align-items: center;
  gap: var(--wptream_dura_space_6);
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu > li { position: relative; }
.wptream_dura_nav .elementor-nav-menu--main .elementor-item {
  display: flex;
  align-items: center;
  padding: var(--wptream_dura_space_4) 0 !important;
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_body_sm) !important;
  font-weight: var(--wptream_dura_weight_medium) !important;
  line-height: var(--wptream_dura_lh_snug);
  color: var(--wptream_dura_fg_2) !important;
  text-decoration: none !important; /* the scoped base underlines links on hover */
  white-space: nowrap;
  transition: var(--wptream_dura_tx);
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-item:hover,
.wptream_dura_nav .elementor-nav-menu--main .elementor-item.highlighted {
  color: var(--wptream_dura_accent) !important;
  background: transparent !important;
}
/* current page / ancestor, and the trigger of an open panel: semibold + fg */
.wptream_dura_nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.wptream_dura_nav .elementor-nav-menu--main li:hover > .has-submenu {
  color: var(--wptream_dura_fg) !important;
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-item.elementor-item-active {
  font-weight: var(--wptream_dura_weight_semibold) !important;
}
.wptream_dura_nav .elementor-nav-menu--main li:hover > .has-submenu,
.wptream_dura_nav .elementor-nav-menu--main .has-submenu.highlighted {
  font-weight: var(--wptream_dura_weight_medium) !important;
}
/* Elementor's underline/pointer animations are off (pointer: none), but
   make sure no leftover pseudo element draws anything. */
.wptream_dura_nav .elementor-nav-menu--main .elementor-item::before,
.wptream_dura_nav .elementor-nav-menu--main .elementor-item::after { display: none !important; }

/* 9x6 chevron: hide Elementor's icon, draw the design mask on the wrapper. */
.wptream_dura_nav .elementor-nav-menu--main .sub-arrow {
  display: inline-block;
  width: 9px;
  height: 6px;
  margin-left: 5px;
  padding: 0 !important;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M1 1.25 4.5 4.75 8 1.25' stroke='%23000' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M1 1.25 4.5 4.75 8 1.25' stroke='%23000' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform var(--wptream_dura_dur_fast) var(--wptream_dura_ease);
}
.wptream_dura_nav .elementor-nav-menu--main .sub-arrow i,
.wptream_dura_nav .elementor-nav-menu--main .sub-arrow svg { display: none !important; }
.wptream_dura_nav .elementor-nav-menu--main li:hover > a .sub-arrow,
.wptream_dura_nav .elementor-nav-menu--main a.highlighted .sub-arrow { transform: rotate(180deg); }

/* ---------------------------------------------------------------------
 * 4. Nav Menu widget, dropdown -> .wptream_dura_nav_panel / _panel_link
 *    (raised surface, hairline, 12px radius, lg shadow, 12px padding,
 *    258px min column, rise animation)
 * ------------------------------------------------------------------- */
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown {
  margin-top: var(--wptream_dura_space_2) !important;
  min-width: calc(258px + 2 * var(--wptream_dura_space_3));
  background: var(--wptream_dura_bg_raised) !important;
  border: 1px solid var(--wptream_dura_border) !important;
  border-radius: var(--wptream_dura_radius_md) !important;
  box-shadow: var(--wptream_dura_shadow_lg) !important;
  padding: var(--wptream_dura_space_3) !important;
  animation: wptream_dura_rise var(--wptream_dura_dur_fast) var(--wptream_dura_ease_out);
}
/* Elementor's sticky header clone can have an uninitialized SmartMenus copy.
   Keep desktop submenus available on hover and keyboard focus in either copy. */
@media (hover: hover) and (pointer: fine) {
  .wptream_dura_nav .elementor-nav-menu--main li.menu-item-has-children:hover > ul.sub-menu {
    display: block !important;
  }
}
.wptream_dura_nav .elementor-nav-menu--main li.menu-item-has-children:focus-within > ul.sub-menu {
  display: block !important;
}
/* Design rule: a panel with more than 6 links uses two 236px columns.
   smartmenus toggles the panel with an inline display, so the columns are
   done with floats on the items instead of a grid on the list. */
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown:has(> li:nth-child(7)) {
  width: calc(2 * 236px + var(--wptream_dura_space_4) + 2 * var(--wptream_dura_space_3)) !important;
  max-width: none !important;
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown:has(> li:nth-child(7)) > li {
  float: left;
  width: calc(50% - var(--wptream_dura_space_4) / 2);
  margin-bottom: var(--wptream_dura_space_1);
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown:has(> li:nth-child(7)) > li:nth-child(odd) {
  clear: left;
  margin-right: var(--wptream_dura_space_4);
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown:has(> li:nth-child(7))::after {
  content: "";
  display: block;
  clear: both;
}
/* Invisible bridge over the 8px gap so the pointer can reach the panel. */
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(-1 * var(--wptream_dura_space_2) - 1px);
  height: calc(var(--wptream_dura_space_2) + 1px);
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a.elementor-sub-item {
  display: block;
  padding: var(--wptream_dura_space_2) var(--wptream_dura_space_3) !important;
  border-radius: var(--wptream_dura_radius_sm);
  border: 0 !important;
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_body_sm) !important;
  font-weight: var(--wptream_dura_weight_medium) !important;
  line-height: var(--wptream_dura_lh_snug);
  color: var(--wptream_dura_fg_2) !important;
  background: transparent !important;
  text-decoration: none !important;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: var(--wptream_dura_tx);
}
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a.elementor-sub-item:hover,
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a.elementor-sub-item.highlighted,
.wptream_dura_nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active {
  color: var(--wptream_dura_accent) !important;
  background: var(--wptream_dura_accent_tint) !important;
}
.wptream_dura_dark .elementor-nav-menu--main .elementor-nav-menu--dropdown a.elementor-sub-item:hover {
  background: rgba(255, 255, 255, 0.06) !important;
}

/* ---------------------------------------------------------------------
 * 5. Login widget -> Login = .wptream_dura_nav_secondary,
 *    Free Trial / My Account = .wptream_dura_btn.wptream_dura_btn_sm
 * ------------------------------------------------------------------- */
.wptream_dura_nav .elementor-widget-WpStream_Login .elementor-widget-container,
.wptream_dura_nav .elementor-widget-WpStream_Login {
  display: flex !important;
  align-items: center !important;
  gap: var(--wptream_dura_space_6);
}
.wptream_dura_nav .wpstream_start_login {
  font-size: var(--wptream_dura_size_body_sm);
  font-weight: var(--wptream_dura_weight_medium);
  color: var(--wptream_dura_fg_2) !important; /* also an <a> (login page link): the scoped base link colour would win */
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
  transition: var(--wptream_dura_tx);
}
.wptream_dura_nav .wpstream_start_login:hover { color: var(--wptream_dura_accent) !important; }
.wptream_dura_nav .wpstream_start_register {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--wptream_dura_space_2) var(--wptream_dura_space_4);
  min-height: 32px;
  border-radius: var(--wptream_dura_radius_pill);
  border: 1px solid transparent;
  background: var(--wptream_dura_accent);
  color: #fff !important; /* logged-in "My Account" is an <a>: the kit link colour would win */
  font-family: var(--wptream_dura_font_body);
  font-size: var(--wptream_dura_size_caption);
  font-weight: var(--wptream_dura_weight_semibold);
  letter-spacing: var(--wptream_dura_track_normal);
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transition: var(--wptream_dura_tx);
}
.wptream_dura_nav .wpstream_start_register:hover {
  background: var(--wptream_dura_accent_hover);
  color: #fff !important;
  transform: var(--wptream_dura_lift_sm);
  text-decoration: none;
}
.wptream_dura_nav .wpstream_start_register:active {
  background: var(--wptream_dura_accent_press);
  transform: var(--wptream_dura_press);
}

/* ---------------------------------------------------------------------
 * 6. Mobile (Nav Menu "dropdown" layout, burger toggle). Theme addition:
 *    the design kit is desktop only. Toggle = 40px round icon button,
 *    list = raised surface under the bar with the design link sizes.
 * ------------------------------------------------------------------- */
.wptream_dura_nav .elementor-menu-toggle {
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: var(--wptream_dura_radius_round);
  border: 1px solid transparent;
  background: transparent !important;
  color: var(--wptream_dura_fg) !important;
  transition: var(--wptream_dura_tx);
}
.wptream_dura_nav .elementor-menu-toggle:hover { background: var(--wptream_dura_fill_ghost_hover_strong) !important; }
.wptream_dura_nav .elementor-menu-toggle:focus-visible { box-shadow: var(--wptream_dura_focus_ring); }
.wptream_dura_nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
  background: var(--wptream_dura_bg_raised) !important;
  border-top: 1px solid var(--wptream_dura_border);
  box-shadow: var(--wptream_dura_shadow_md);
  padding: var(--wptream_dura_space_2) var(--wptream_dura_gutter) var(--wptream_dura_space_4);
}
.wptream_dura_nav .elementor-nav-menu--dropdown.elementor-nav-menu__container a {
  padding: var(--wptream_dura_space_3) 0 !important;
  border: 0 !important;
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_body_sm) !important;
  font-weight: var(--wptream_dura_weight_medium) !important;
  color: var(--wptream_dura_fg_2) !important;
  background: transparent !important;
}
.wptream_dura_nav .elementor-nav-menu--dropdown.elementor-nav-menu__container a:hover,
.wptream_dura_nav .elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item-active {
  color: var(--wptream_dura_fg) !important;
}
.wptream_dura_nav .elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu a {
  padding-left: var(--wptream_dura_space_3) !important;
}
.wptream_dura_nav .elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-arrow {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin-left: auto;
  padding: 0 !important;
}
.wptream_dura_nav .elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-arrow svg {
  width: 12px;
  height: 12px;
  fill: currentColor;
}

/* Bar layout under the Nav Menu "tablet" breakpoint (burger visible):
   one row, 16px gap, Login hidden (the design drops the secondary action
   on small screens), Free Trial + burger grouped on the right. The menu
   widget must stop growing or it pushes the actions onto a second row. */
@media (max-width: 1024px) {
  .wptream_dura_nav > .e-con-inner {
    gap: var(--wptream_dura_space_4) !important;
    flex-wrap: nowrap !important;
  }
  .wptream_dura_nav .wpstream_start_login { display: none; }
  .wptream_dura_nav .elementor-widget-WpStream_Login {
    order: 2;
    margin-left: auto;
  }
  .wptream_dura_nav .elementor-widget-nav-menu {
    order: 3;
    flex-grow: 0 !important;
    width: auto !important;
  }
}

/* =====================================================================
 * 9. FOOTER  (design Footer.jsx, template "Footer WpStream")
 *
 * Container tree, classes set natively on each container:
 *   .wptream_dura_footer            boxed 1180, column, pad 96 24 32
 *     .wptream_dura_footer_top      row, space-between, gap 96, wrap
 *       Site Logo widget            -> .wptream_dura_footer_brand/_logo
 *       .wptream_dura_footer_groups row, gap 96, wrap
 *         .wptream_dura_footer_group  column, gap 12  (x4)
 *           Heading (span)          -> .wptream_dura_footer_group_title
 *           Icon List (no icons)    -> .wptream_dura_footer_link per item
 *           Text Editor             -> .wptream_dura_footer_text lines
 *           Social Icons            (Contact group only)
 *     .wptream_dura_footer_legal    row, space-between, margin-top 64,
 *                                   pad-top 24, hairline top rule
 *       Text Editor (copyright) + inline Icon List (Terms / Privacy)
 *
 * The design classes already paint the surface, rule and typography of
 * the containers (components.css E3). The rules below only fix what
 * Elementor's own widget/container CSS would otherwise override.
 * ===================================================================== */

/* Vertical padding: Elementor applies a boxed container's padding to its
   .e-con-inner, and the design class applies the same 96/32 to the .e-con,
   which doubles it. Keep only the native (inner) one. */
.e-con.wptream_dura_footer {
  padding-top: 0;
  padding-bottom: 0;
}

/* Child containers size to their content (Elementor gives every .e-con
   --width:100%, which would stack the brand and the groups). */
.wptream_dura_footer_top > .e-con,
.wptream_dura_footer_groups > .e-con {
  --width: auto;
  width: auto;
}
.wptream_dura_footer_group.e-con { min-width: 130px; }

/* Brand: Site Logo widget, 38px tall (matches header logo). */
.wptream_dura_footer .elementor-widget-theme-site-logo img {
  height: 38px !important;
  width: auto !important;
  max-width: none;
  display: block;
}

/* Group title: Heading widget rendered as <span>. Same size as the links. */
.wptream_dura_footer_group .elementor-heading-title {
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_body_sm) !important;
  font-weight: var(--wptream_dura_weight_bold) !important;
  letter-spacing: var(--wptream_dura_track_eyebrow) !important;
  line-height: var(--wptream_dura_lh_snug) !important;
  text-transform: uppercase !important;
  color: var(--wptream_dura_fg_muted) !important;
}

/* Links: Icon List widget without icons; each item is a footer link
   (15px, fg_2, nudges 3px right and turns accent on hover). Item spacing
   is set natively (12px) so only the resets live here. */
.wptream_dura_footer .elementor-icon-list-items {
  margin: 0;
  padding: 0;
  list-style: none;
}
.wptream_dura_footer .elementor-icon-list-item { display: flex; }
.wptream_dura_footer .elementor-icon-list-item a {
  display: inline-flex;
  width: fit-content;
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_body_sm) !important;
  font-weight: var(--wptream_dura_weight_regular) !important;
  line-height: var(--wptream_dura_lh_snug);
  color: var(--wptream_dura_fg_2) !important;
  text-decoration: none !important;
  transform: none;
  transition: var(--wptream_dura_tx), transform var(--wptream_dura_dur_med) var(--wptream_dura_ease_out);
}
.wptream_dura_footer .elementor-icon-list-text { color: inherit !important; transition: none; }
.wptream_dura_footer .elementor-icon-list-item a:hover {
  color: var(--wptream_dura_accent) !important;
  transform: var(--wptream_dura_nudge);
  text-decoration: none !important;
}

/* Plain lines (address, phone, email): Text Editor widget. */
.wptream_dura_footer_group .elementor-widget-text-editor {
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_body_sm) !important;
  line-height: var(--wptream_dura_lh_snug);
  color: var(--wptream_dura_fg_2) !important;
}
.wptream_dura_footer_group .elementor-widget-text-editor p { margin: 0; }
.wptream_dura_footer_group .elementor-widget-text-editor p + p { margin-top: var(--wptream_dura_space_3); }
.wptream_dura_footer_group .elementor-widget-text-editor a {
  color: var(--wptream_dura_fg_2) !important;
  text-decoration: none !important;
  transition: var(--wptream_dura_tx);
}
.wptream_dura_footer_group .elementor-widget-text-editor a:hover { color: var(--wptream_dura_accent) !important; }

/* Social Icons widget: bare 18px glyphs in fg_2, accent on hover, no
   brand-coloured discs. */
.wptream_dura_footer .elementor-widget-social-icons .elementor-social-icons-wrapper {
  display: flex !important;
  flex-wrap: wrap;
  gap: var(--wptream_dura_space_4) !important;
  justify-content: flex-start;
}
.wptream_dura_footer .elementor-grid-item { margin: 0 !important; }
.wptream_dura_footer .elementor-icon.elementor-social-icon {
  --icon-size: 18px;
  --icon-padding: 0px;
  width: 18px;
  height: 18px;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0;
  box-shadow: none;
  color: var(--wptream_dura_fg_2);
  transition: var(--wptream_dura_tx);
}
.wptream_dura_footer .elementor-social-icon i { color: var(--wptream_dura_fg_2) !important; font-size: 18px; }
.wptream_dura_footer .elementor-social-icon svg { fill: var(--wptream_dura_fg_2) !important; width: 18px; height: 18px; }
.wptream_dura_footer .elementor-social-icon:hover i { color: var(--wptream_dura_accent) !important; }
.wptream_dura_footer .elementor-social-icon:hover svg { fill: var(--wptream_dura_accent) !important; }

/* Legal row: 11px muted; Terms / Privacy are an inline Icon List. */
.wptream_dura_footer_legal .elementor-widget-text-editor,
.wptream_dura_footer_legal .elementor-widget-text-editor p,
.wptream_dura_footer_legal .elementor-icon-list-item a {
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_legal) !important;
  font-weight: var(--wptream_dura_weight_regular) !important;
  color: var(--wptream_dura_fg_muted) !important;
  margin: 0;
}
.wptream_dura_footer_legal .elementor-icon-list-item a:hover {
  color: var(--wptream_dura_accent) !important;
  transform: none;
}

/* =====================================================================
 * 10. HERO  (design Hero.jsx, centered layout, tone LIGHT, home page)
 *
 * HomePage.jsx renders <Hero layout="centered" tone="light"> with no
 * eyebrow, so the section sits on the light surface with ink text.
 *
 * Container tree, classes set natively on each container / widget:
 *   .wptream_dura_hero                     boxed 1180, column, centred,
 *                                          gap 96, pad 192 24 128
 *     .wptream_dura_hero_copy              column, centred, gap 24, max 900
 *       Heading (h1)    .wptream_dura_hero_title      max 16ch
 *       Text Editor     .wptream_dura_hero_subtitle   max 48ch
 *       .wptream_dura_hero_actions         row, centred, gap 12, wrap
 *         Button .wptream_dura_hero_btn_primary   (opens the register modal)
 *         Button .wptream_dura_hero_btn_outline
 *     .wptream_dura_hero_media(_narrow,_unframed)   max 640, 16:9, image
 *
 * The design classes sit on the widget wrappers, so the rules below push
 * the same values onto the inner element Elementor's kit styles
 * (.elementor-heading-title, .elementor-button, text-editor p).
 * ===================================================================== */

/* Same boxed-container rule as the footer: vertical padding is native
   (on .e-con-inner), the design class must not add it to the .e-con. */
.e-con.wptream_dura_hero {
  padding-top: 0;
  padding-bottom: 0;
}

/* Copy column: design caps it at 900px (Hero.jsx maxWidth: 900). */
.e-con.wptream_dura_hero_copy {
  max-width: 900px;
}

/* Title: Heading widget rendered as <h1>, display-2 black, 16ch measure. */
.wptream_dura_hero .elementor-widget-heading.wptream_dura_hero_title .elementor-heading-title {
  font-family: var(--wptream_dura_font_display) !important;
  font-size: var(--wptream_dura_size_display_2) !important;
  font-weight: var(--wptream_dura_weight_black) !important;
  letter-spacing: var(--wptream_dura_track_display) !important;
  line-height: var(--wptream_dura_lh_display) !important;
  color: var(--wptream_dura_fg) !important;
  margin: 0 auto !important;
  max-width: var(--wptream_dura_measure_display);
}

/* Subtitle: Text Editor widget, body-lg on fg_2, 48ch measure. */
.wptream_dura_hero .elementor-widget-text-editor.wptream_dura_hero_subtitle,
.wptream_dura_hero .elementor-widget-text-editor.wptream_dura_hero_subtitle p {
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_body_lg) !important;
  font-weight: var(--wptream_dura_weight_regular) !important;
  line-height: var(--wptream_dura_lh_body) !important;
  color: var(--wptream_dura_fg_2) !important;
  margin: 0;
}
.wptream_dura_hero .elementor-widget-text-editor.wptream_dura_hero_subtitle p {
  max-width: 48ch;
  margin-left: auto;
  margin-right: auto;
}

/* Buttons: Button widgets. The anchor gets the design .wptream_dura_btn
   + _btn_lg rules; the wrapper class picks the variant. */
.wptream_dura_hero_actions .elementor-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: var(--wptream_dura_space_2);
  font-family: var(--wptream_dura_font_body) !important;
  font-size: var(--wptream_dura_size_body) !important;
  font-weight: var(--wptream_dura_weight_semibold) !important;
  letter-spacing: var(--wptream_dura_track_normal) !important;
  line-height: 1 !important;
  text-decoration: none !important;
  padding: var(--wptream_dura_space_4) var(--wptream_dura_space_6) !important;
  min-height: 48px;
  border-radius: var(--wptream_dura_radius_pill) !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
  white-space: nowrap;
  transition: var(--wptream_dura_tx);
  transform: none;
}
.wptream_dura_hero_actions .elementor-button:hover { transform: var(--wptream_dura_lift_sm); }
.wptream_dura_hero_actions .elementor-button:active { transform: var(--wptream_dura_press); }
.wptream_dura_hero_actions .elementor-button:focus-visible { box-shadow: var(--wptream_dura_focus_ring) !important; }
/* primary */
.wptream_dura_hero_btn_primary .elementor-button {
  background: var(--wptream_dura_accent) !important;
  color: #fff !important;
}
.wptream_dura_hero_btn_primary .elementor-button:hover { background: var(--wptream_dura_accent_hover) !important; }
.wptream_dura_hero_btn_primary .elementor-button:active { background: var(--wptream_dura_accent_press) !important; }
/* outline */
.wptream_dura_hero_btn_outline .elementor-button {
  background: transparent !important;
  color: var(--wptream_dura_fg) !important;
  border-color: var(--wptream_dura_border) !important;
}
.wptream_dura_hero_btn_outline .elementor-button:hover { background: var(--wptream_dura_fill_ghost_hover) !important; }

/* Media: MediaPanel frame=false, ratio 16/9. The unframed laptop render is
   letter-boxed into a 16:9 box with object-fit contain, exactly as the
   design's <img width:100% height:100% objectFit:contain> inside the
   aspect-ratio div. */
.wptream_dura_hero_media .elementor-widget-image .elementor-widget-container,
.wptream_dura_hero_media .elementor-widget-image {
  width: 100%;
}
.wptream_dura_hero_media .elementor-widget-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  display: block;
  object-fit: contain;
}

/* Design rule at 600px: hero buttons go full width. */
@media (max-width: 600px) {
  .wptream_dura_hero_actions .elementor-widget-button,
  .wptream_dura_hero_actions .elementor-button-wrapper,
  .wptream_dura_hero_actions .elementor-button {
    width: 100% !important;
  }
}

/* ---------------------------------------------------------------------
 * 11. THEME SPOTLIGHT  (design HomePage.jsx "Hello WpStream / Your
 *     One-Stop Theme" split; custom widget "WpStream Theme Spotlight" in
 *     plugins/wpstream-elementor/widgets/theme_spotlight_widget.php)
 *
 *   .wptream_dura_spotlight              grid 1fr 1fr, gap 96, centred
 *     ._img_left / ._img_right           which side the image sits on
 *     .wptream_dura_dark                 tone dark (flips fg tokens)
 *     ._framed                           MediaPanel frame=true (rounded, cover)
 *     ._has_img                          an image is set (frame bg ink-200)
 *     .wptream_dura_spotlight_copy       column, gap 24, max 480
 *       ._title                          display-4 / bold / track display
 *       ._body p                         body 17 / lh 1.55 / fg-2; strong = fg 600
 *       ._action                         margin-top 8, holds .wptream_dura_btn
 *     .wptream_dura_spotlight_media      figure, 100% wide
 *       ._frame                          aspect-ratio (inline), flex centre
 *         ._img                          cover (framed) / contain (bare)
 *         ._placeholder                  caption, semibold, uppercase, muted
 * Section padding / background stay on the parent Elementor container.
 * ------------------------------------------------------------------- */
.wptream_dura_spotlight {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--wptream_dura_space_9);
  align-items: center;
  color: var(--wptream_dura_fg);
}
.wptream_dura_spotlight_img_left .wptream_dura_spotlight_copy  { order: 2; }
.wptream_dura_spotlight_img_left .wptream_dura_spotlight_media { order: 1; }

.wptream_dura_spotlight_copy {
  display: flex;
  flex-direction: column;
  gap: var(--wptream_dura_space_5);
  max-width: 480px;
}
.wptream_dura_spotlight_title {
  margin: 0;
  font-family: var(--wptream_dura_font_display);
  font-size: var(--wptream_dura_size_display_4);
  font-weight: var(--wptream_dura_weight_bold);
  letter-spacing: var(--wptream_dura_track_display);
  line-height: var(--wptream_dura_lh_tight);
  color: var(--wptream_dura_fg);
}
.wptream_dura_spotlight_body {
  display: flex;
  flex-direction: column;
  gap: var(--wptream_dura_space_5);
}
.wptream_dura_spotlight_body p {
  margin: 0;
  font-size: var(--wptream_dura_size_body);
  line-height: var(--wptream_dura_lh_body);
  color: var(--wptream_dura_fg_2);
}
.wptream_dura_spotlight_body strong {
  font-weight: var(--wptream_dura_weight_semibold);
  color: var(--wptream_dura_fg);
}
.wptream_dura_spotlight_action { margin-top: var(--wptream_dura_space_2); }

.wptream_dura_spotlight_media { margin: 0; width: 100%; }
.wptream_dura_spotlight_frame {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  overflow: visible;
}
.wptream_dura_spotlight_framed .wptream_dura_spotlight_frame {
  border-radius: var(--wptream_dura_radius_lg);
  overflow: hidden;
  background: var(--wptream_dura_ink_800);
}
.wptream_dura_spotlight_framed.wptream_dura_spotlight_has_img .wptream_dura_spotlight_frame {
  background: var(--wptream_dura_ink_200);
}
.wptream_dura_spotlight_img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}
.wptream_dura_spotlight_framed .wptream_dura_spotlight_img { object-fit: cover; }
.wptream_dura_spotlight_placeholder {
  font-size: var(--wptream_dura_size_caption);
  font-weight: var(--wptream_dura_weight_semibold);
  letter-spacing: var(--wptream_dura_track_eyebrow);
  text-transform: uppercase;
  color: var(--wptream_dura_fg_muted);
}

/* Theme addition (kit is desktop only): stack on small screens, text first. */
@media (max-width: 900px) {
  .wptream_dura_spotlight { grid-template-columns: 1fr; gap: var(--wptream_dura_space_7); }
  .wptream_dura_spotlight_copy { max-width: none; }
  .wptream_dura_spotlight_img_left .wptream_dura_spotlight_copy,
  .wptream_dura_spotlight_img_left .wptream_dura_spotlight_media { order: 0; }
}
