/**
 * Structural bridge — NOT a copy of the design system.
 *
 * The theme stylesheet stays the single source of truth for how sections look.
 * This file carries only two bounded categories of rule:
 *
 *   1. Re-anchoring: theme rules tied to a specific HTML tag, where an Elementor
 *      control lets the client change that tag (e.g. H1 -> H2 for SEO).
 *   2. Un-resetting: theme rules that Elementor's own frontend.css reset wins
 *      against on a specificity tie. Elementor ships:
 *          .elementor img { border:none; border-radius:0; box-shadow:none;
 *                           height:auto; max-width:100% }
 *      which beats any single-class theme rule loaded before it.
 *
 * Rule of thumb: if a rule here is doing anything other than restoring an
 * existing theme rule, it belongs in the theme instead. Every block below
 * cites the theme-main.css declaration it is restoring.
 *
 * Loaded after `elementor-frontend` (see class-assets.php) so ordering is
 * deterministic rather than accidental.
 */

/* ------------------------------------------------------------------
 * 1. Full-bleed section hosting
 *
 * Every widget in this plugin renders a complete <section> that manages its
 * own inner `.container` width. The Elementor element wrapping it must
 * therefore contribute no padding and no width limit, otherwise the section
 * is inset from the viewport edges and stops being full-bleed.
 *
 * This is defensive: pages assembled by the plugin already set these on the
 * container, but a widget dropped onto a fresh container by hand inherits
 * Elementor's default padding (10px in v4 atomic containers).
 * ------------------------------------------------------------------ */

/*
 * The `.elementor` prefix is load-bearing, not decoration. Elementor's
 * generated base-desktop.css ships `.elementor .e-flexbox-base { padding:10px }`
 * at specificity (0,2,0) and is printed *after* plugin styles, so an
 * unprefixed `.e-con:has(...)` ties and loses. (0,3,0) wins on merit instead
 * of relying on source order.
 */
.elementor .e-con:has( > [class*="elementor-widget-mm-"] ),
.elementor .elementor-column:has( > .elementor-widget-wrap > [class*="elementor-widget-mm-"] ) {
	padding: 0;
	max-width: none;
}

.elementor .e-con > [class*="elementor-widget-mm-"],
.elementor .elementor-widget-wrap > [class*="elementor-widget-mm-"] {
	width: 100%;
	max-width: none;
}

/* ------------------------------------------------------------------
 * 2. Shared elements — buttons and links
 *
 * Elementor ships `.elementor a { box-shadow:none; text-decoration:none }`,
 * which outranks the theme's single-class `.btn` / `.call-now` rules. Every
 * button in this design is an <a>, so without this the entire design loses
 * its button depth and the call link loses its underline.
 *
 * Values are re-asserted through the theme's own custom properties wherever
 * it uses them, so this stays in sync with the theme rather than forking it.
 * ------------------------------------------------------------------ */

.elementor .btn {
	box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.08 );
}

.elementor .btn-gold {
	box-shadow: var( --btn-shadow-gold ), inset 0 1px 0 rgba( 255, 255, 255, 0.28 );
}

.elementor .btn-gold:hover {
	box-shadow: var( --btn-shadow-gold-hover ), inset 0 1px 0 rgba( 255, 255, 255, 0.4 );
}

.elementor .btn-outline {
	box-shadow: 0 4px 14px rgba( 0, 0, 0, 0.12 ), inset 0 1px 0 rgba( 255, 255, 255, 0.15 );
}

.elementor .btn-outline:hover {
	box-shadow: 0 6px 18px rgba( 0, 0, 0, 0.15 ), inset 0 1px 0 rgba( 255, 255, 255, 0.9 );
}

.elementor .btn-navy {
	box-shadow: var( --btn-shadow-navy ), inset 0 1px 0 rgba( 255, 255, 255, 0.15 );
}

.elementor .btn-navy:hover {
	box-shadow: var( --btn-shadow-navy-hover ), inset 0 1px 0 rgba( 255, 255, 255, 0.2 );
}

.elementor .btn-navy-outline {
	box-shadow: 0 2px 8px rgba( 31, 58, 95, 0.1 ), inset 0 1px 0 #fff;
}

.elementor .btn-navy-outline:hover {
	box-shadow: var( --btn-shadow-navy-hover );
}

/* theme-main.css: `.call-now { ... text-decoration: underline }` */
.elementor .call-now {
	text-decoration: underline;
}

/* ------------------------------------------------------------------
 * 3. Hero
 * ------------------------------------------------------------------ */

/* Re-anchor. theme-main.css: `.hero h1 { margin:16px 0 15px; max-width:660px;
   letter-spacing:-.01em }` — kept working when the client switches to H2/H3. */
.hero .mm-hero-title {
	margin: 16px 0 15px;
	max-width: 660px;
	letter-spacing: -0.01em;
}

/* Un-reset. theme-main.css: `.portrait-wrap img { ... height:455px;
   border-radius:52% 52% 12% 12% / 48% 48% 16% 16%;
   box-shadow:0 15px 50px rgba(0,0,0,.25) }`
   Loses to `.elementor img` on a specificity tie, so re-assert with the
   `.elementor` prefix. Heights repeat at the theme's own breakpoints. */
.elementor .portrait-wrap img {
	height: 455px;
	border-radius: 52% 52% 12% 12% / 48% 48% 16% 16%;
	box-shadow: 0 15px 50px rgba( 0, 0, 0, 0.25 );
}

@media ( max-width: 900px ) {
	.elementor .portrait-wrap img {
		height: 390px;
	}
}

@media ( max-width: 600px ) {
	.elementor .portrait-wrap img {
		height: 330px;
	}
}
