:root {
  --mec-canvas: #f7f5f1;
  --mec-surface: #edeae4;
  --mec-ink: #0b0b0b;
  --mec-ink-2: #292927;
  --mec-text: #6e6c66;
  --mec-muted: #939089;
  --mec-border: #dedad2;
  --mec-brass: #a98a5f;
  --mec-brass-light: #e3d6c2;
  --mec-serif: "Cormorant Garamond", Georgia, serif;
  --mec-sans: "Inter", Arial, sans-serif;
  --mec-gutter: clamp(32px, 4vw, 72px);
  --mec-section: 140px;
}

html { scroll-behavior: smooth; }
body.mec-site { margin: 0; color: var(--mec-ink); background: var(--mec-canvas); }
body.mec-site.mec-menu-open { overflow: hidden; }
.mec-site *, .mec-site *::before, .mec-site *::after { box-sizing: border-box; }
.mec-site img { display: block; max-width: 100%; }
.mec-site a { color: inherit; text-decoration: none; }
.mec-site button, .mec-site input, .mec-site select, .mec-site textarea { font: inherit; }
.mec-site h1, .mec-site h2, .mec-site h3, .mec-site p { overflow-wrap: anywhere; }
.mec-page { overflow: clip; background: var(--mec-canvas); font-family: var(--mec-sans); }
.mec-shell { width: 100%; max-width: 1584px; margin-right: auto; margin-left: auto; padding-right: var(--mec-gutter); padding-left: var(--mec-gutter); }
.mec-skip-link { position: fixed; z-index: 10001; top: -100px; left: 12px; padding: 12px 18px; color: #000; background: #fff; }
.mec-skip-link:focus { top: 12px; }
.mec-site .elementor-location-header, .mec-site .elementor-location-footer { display: none !important; }
.mec-site .elementor-widget-mec_section, .mec-site .elementor-widget-mec_section > .elementor-widget-container { margin: 0 !important; padding: 0 !important; }
.mec-site .e-con.e-con-full, .mec-site .e-con > .e-con-inner { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; }

.mec-eyebrow { margin: 0; color: var(--mec-brass); font: 500 11px/1.4 var(--mec-sans); letter-spacing: 2px; text-transform: uppercase; }
.mec-actions { margin-top: 30px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.mec-btn { min-height: 52px; padding: 0 31px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 2px; font: 600 12px/1 var(--mec-sans); letter-spacing: 1.25px; text-transform: uppercase; transition: color .2s ease, background .2s ease, border-color .2s ease; }
.mec-btn--primary { color: #fff !important; background: var(--mec-ink); }
.mec-btn--primary:hover { background: var(--mec-brass); }
.mec-btn--light { color: var(--mec-ink) !important; background: #fff; }
.mec-btn--light:hover { background: var(--mec-brass-light); }
.mec-btn--outline-dark { color: var(--mec-ink) !important; border-color: var(--mec-ink); }
.mec-btn--outline-dark:hover { color: #fff !important; background: var(--mec-ink); }
.mec-btn--outline-light { color: #fff !important; border-color: rgba(255,255,255,.8); }
.mec-btn--outline-light:hover { color: var(--mec-ink) !important; background: #fff; }
.mec-site a:focus-visible, .mec-site button:focus-visible, .mec-site input:focus-visible, .mec-site textarea:focus-visible, .mec-site summary:focus-visible { outline: 2px solid var(--mec-brass-light); outline-offset: 4px; }

/* Header */
.mec-v2-topbar { position: relative; z-index: 120; height: 44px; padding: 0 24px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; color: #fff; background: var(--mec-ink); font: 400 12px/1 var(--mec-sans); }
.mec-v2-topbar__contact { display: flex; gap: 22px; align-items: center; }
.mec-v2-topbar > p { margin: 0; text-align: center; }
.mec-v2-topbar__social, .mec-v2-footer__social, .mec-v2-mobile-menu__bottom span { display: flex; gap: 14px; }
.mec-v2-topbar__social { justify-content: flex-end; }
.mec-v2-topbar__social a, .mec-v2-footer__social a, .mec-v2-mobile-menu__bottom span a { width: 17px; height: 17px; display: inline-flex; align-items: center; justify-content: center; }
.mec-v2-topbar__social img, .mec-v2-footer__social img, .mec-v2-mobile-menu__bottom span img { width: 15px; height: 15px; filter: invert(1); }
.mec-v2-header { position: absolute; z-index: 110; top: 0; right: 0; left: 0; height: 92px; padding: 0 var(--mec-gutter); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: #fff; border-bottom: 1px solid rgba(255,255,255,.14); font-family: var(--mec-sans); transition: height .25s ease, background .25s ease; }
.mec-v2-header.has-topbar { top: 44px; }
.mec-v2-header.is-fixed { position: fixed; top: 0; height: 78px; background: rgba(11,11,11,.97); border-bottom-color: #2f2f2d; backdrop-filter: blur(12px); }
.mec-v2-nav { display: flex; gap: 32px; align-items: center; }
.mec-v2-nav--right { justify-content: flex-end; }
.mec-v2-nav > a, .mec-v2-nav-item > button { position: relative; min-height: 44px; padding: 0; display: inline-flex; gap: 7px; align-items: center; color: inherit; background: transparent; border: 0; font: 500 13px/1 var(--mec-sans); letter-spacing: .75px; cursor: pointer; }
.mec-v2-nav > a:not(.mec-v2-header-cta)::after, .mec-v2-nav-item > button::after { content: ""; position: absolute; right: 100%; bottom: 4px; left: 0; height: 1px; background: var(--mec-brass-light); transition: right .2s ease; }
.mec-v2-nav > a:hover::after, .mec-v2-nav > a[aria-current="page"]::after, .mec-v2-nav-item:hover > button::after, .mec-v2-nav-item:focus-within > button::after { right: 0; }
.mec-v2-nav-item { position: relative; }
.mec-v2-nav-item > button span { color: var(--mec-brass-light); transition: transform .2s ease; }
.mec-v2-nav-item.is-open > button span, .mec-v2-nav-item:hover > button span { transform: rotate(180deg); }
.mec-v2-submenu { position: absolute; top: calc(100% - 2px); left: -22px; min-width: 230px; padding: 12px; display: grid; gap: 2px; color: #d4d0c9; background: rgba(11,11,11,.985); border: 1px solid #41413f; box-shadow: 0 18px 45px rgba(0,0,0,.32); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s ease, visibility .2s ease, transform .2s ease; }
.mec-v2-nav-item:hover .mec-v2-submenu, .mec-v2-nav-item:focus-within .mec-v2-submenu, .mec-v2-nav-item.is-open .mec-v2-submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.mec-v2-submenu a { padding: 13px 14px; font-size: 13px; white-space: nowrap; }
.mec-v2-submenu a:hover, .mec-v2-submenu a:focus, .mec-v2-submenu a[aria-current="page"] { color: #fff; background: #242422; }
.mec-v2-logo-link { display: inline-flex; align-items: center; justify-content: center; }
.mec-v2-logo { display: inline-flex; flex-direction: column; align-items: center; gap: 5px; color: #fff; white-space: nowrap; }
.mec-v2-logo__name { font: 600 25px/1 var(--mec-serif); letter-spacing: 3.5px; text-transform: uppercase; }
.mec-v2-logo__rule { width: 118px; height: 1px; background: var(--mec-brass-light); }
.mec-v2-logo__sub { color: #bfbbb2; font: 500 8px/1 var(--mec-sans); letter-spacing: 2.6px; text-transform: uppercase; }
.mec-v2-logo--image img { width: auto; max-width: 190px; height: 56px; object-fit: contain; }
.mec-v2-header-cta { min-height: 48px !important; padding: 0 28px !important; justify-content: center; border: 1px solid rgba(255,255,255,.82) !important; text-transform: uppercase; font-size: 11px !important; font-weight: 600 !important; letter-spacing: 1.25px !important; }
.mec-v2-header-cta:hover { color: var(--mec-ink); background: #fff; }
.mec-v2-menu-toggle, .mec-v2-mobile-call, .mec-v2-mobile-menu { display: none; }

/* Section foundation */
.mec-e-section { position: relative; color: var(--mec-ink); background-color: var(--mec-canvas); font-family: var(--mec-sans); }
.mec-e-section.mec-theme-muted { background-color: var(--mec-surface); }
.mec-e-section.mec-theme-dark { color: #fff; background-color: var(--mec-ink); }
.mec-e-inner { padding-top: var(--mec-section); padding-bottom: var(--mec-section); }
.mec-e-heading { max-width: 760px; }
.mec-e-heading h2 { margin: 17px 0 0; color: inherit; font: 600 48px/1.08 var(--mec-serif); letter-spacing: -.5px; }
.mec-e-body { margin-top: 18px; color: var(--mec-text); font: 400 16px/1.72 var(--mec-sans); }
.mec-theme-dark .mec-e-body { color: #bfbbb2; }
.mec-e-body p { margin: 0 0 1em; }
.mec-e-body p:last-child { margin-bottom: 0; }
.mec-visibility-mobile_only { display: none; }
.elementor-editor-active .mec-visibility-mobile_only { display: block; opacity: .55; }

/* Hero */
.mec-e-type-hero { min-height: 560px; display: flex; align-items: center; color: #fff; background-color: var(--mec-ink); background-image: linear-gradient(180deg,rgba(11,11,11,.34),rgba(11,11,11,.69)),var(--mec-section-image); background-position: center; background-size: cover; }
.mec-e-hero__inner { position: relative; z-index: 1; padding-top: 92px; }
.mec-e-type-hero .mec-eyebrow { color: var(--mec-brass-light); }
.mec-e-type-hero h1 { max-width: 850px; margin: 20px 0; color: #fff; font: 600 64px/.99 var(--mec-serif); letter-spacing: -1px; }
.mec-e-type-hero .mec-e-body { max-width: 630px; color: #d2cfc9; font-size: 17px; }
.mec-page-home .mec-e-type-hero:first-child { min-height: 880px; background-position: center; }
.mec-page-home .mec-e-type-hero:first-child h1 { max-width: 920px; font-size: 86px; line-height: .95; }
.mec-e-hero-services { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; min-height: 84px; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,.22); }
.mec-e-hero-services a { min-width: 0; padding: 21px 28px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; border-left: 1px solid rgba(255,255,255,.18); }
.mec-e-hero-services a:first-child { border-left: 0; }
.mec-e-hero-services span { color: var(--mec-brass-light); font-size: 9px; letter-spacing: 1.7px; }
.mec-e-hero-services strong { font: 500 18px/1.2 var(--mec-serif); }
.mec-e-hero-services i { color: var(--mec-brass-light); font-style: normal; }

/* Anchor and stats */
.mec-e-type-anchor_nav { position: sticky; z-index: 80; top: 0; background-color: var(--mec-canvas); border-bottom: 1px solid var(--mec-border); }
.mec-e-anchor-nav { min-height: 76px; display: flex; gap: 48px; align-items: center; overflow-x: auto; }
.mec-e-anchor-nav a { position: relative; flex: 0 0 auto; color: var(--mec-text); font-size: 13px; }
.mec-e-anchor-nav a::after { content: ""; position: absolute; right: 100%; bottom: -27px; left: 0; height: 2px; background: var(--mec-brass); transition: right .2s ease; }
.mec-e-anchor-nav a:hover, .mec-e-anchor-nav a.is-active { color: var(--mec-ink); }
.mec-e-anchor-nav a:hover::after, .mec-e-anchor-nav a.is-active::after { right: 0; }
.mec-e-type-stats { border-bottom: 1px solid var(--mec-border); }
.mec-e-stats { min-height: 208px; display: grid; grid-template-columns: repeat(4,1fr); align-items: center; }
.mec-e-stats > div { min-height: 82px; padding-left: 48px; display: flex; flex-direction: column; gap: 12px; border-left: 1px solid var(--mec-border); }
.mec-e-stats > div:first-child { padding-left: 0; border-left: 0; }
.mec-e-stats strong { font: 300 58px/1 var(--mec-serif); }
.mec-e-stats span { max-width: 170px; color: var(--mec-muted); font: 500 10px/1.45 var(--mec-sans); letter-spacing: 1.7px; text-transform: uppercase; }

/* Image + copy */
.mec-e-type-split .mec-e-inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(420px,.86fr); gap: 104px; align-items: center; }
.mec-e-type-split.is-reversed .mec-e-split__media { order: 2; }
.mec-e-split__media { position: relative; }
.mec-e-split__media > img { width: 100%; height: 620px; object-fit: cover; }
.mec-e-split__copy > ul, .mec-e-card__copy ul, .mec-e-alternating__copy ul, .mec-e-values ul, .mec-e-price-panel ul, .mec-e-pricing ul { margin: 28px 0 0; padding: 0; list-style: none; }
.mec-e-split__copy li, .mec-e-card__copy li, .mec-e-alternating__copy li, .mec-e-values li, .mec-e-price-panel li, .mec-e-pricing li { position: relative; padding: 10px 0 10px 18px; color: var(--mec-text); border-top: 1px solid var(--mec-border); font-size: 13px; line-height: 1.5; }
.mec-e-split__copy li::before, .mec-e-card__copy li::before, .mec-e-alternating__copy li::before, .mec-e-values li::before, .mec-e-price-panel li::before, .mec-e-pricing li::before { content: "—"; position: absolute; left: 0; color: var(--mec-brass); }
.mec-theme-dark li { color: #bfbbb2; border-color: #363634; }
.mec-layout-overlap .mec-e-inner { grid-template-columns: minmax(520px,620px) minmax(420px,1fr); gap: 118px; }
.mec-layout-overlap .mec-e-split__media { height: 740px; }
.mec-layout-overlap .mec-e-split__media > img { width: calc(100% - 100px); height: 660px; object-fit: cover; }
.mec-e-split__secondary { position: absolute; right: 0; bottom: 0; width: 260px; height: 320px; border: 8px solid var(--mec-canvas); }
.mec-e-split__secondary img { width: 100%; height: 100%; object-fit: cover; }
.mec-layout-edge .mec-e-inner { max-width: none; min-height: 620px; padding: 0; grid-template-columns: 1fr 1fr; gap: 0; }
.mec-layout-edge .mec-e-split__media > img { height: 620px; }
.mec-layout-edge .mec-e-split__copy { max-width: 720px; padding: 90px clamp(56px,7vw,118px); }
.mec-layout-edge.is-reversed .mec-e-split__copy { margin-left: auto; }

/* Cards */
.mec-e-type-cards .mec-e-inner, .mec-e-type-gallery .mec-e-inner { position: relative; }
.mec-e-cards { margin-top: 54px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.mec-layout-two .mec-e-cards { grid-template-columns: repeat(2,1fr); }
.mec-layout-four .mec-e-cards, .mec-layout-levels .mec-e-cards { grid-template-columns: repeat(4,1fr); gap: 18px; }
.mec-layout-five .mec-e-cards, .mec-layout-team .mec-e-cards, .mec-layout-team_detailed .mec-e-cards { grid-template-columns: repeat(5,1fr); gap: 16px; }
.mec-e-card { min-width: 0; display: flex; flex-direction: column; color: inherit; }
.mec-e-card__image { overflow: hidden; background: #dedad2; }
.mec-e-card__image img { width: 100%; height: 350px; object-fit: cover; transition: transform .4s ease; }
.mec-e-card:hover .mec-e-card__image img { transform: scale(1.025); }
.mec-e-card__copy { padding-top: 17px; }
.mec-e-card__copy .mec-eyebrow { margin-bottom: 7px; }
.mec-e-card__copy h3 { margin: 0 0 9px; color: inherit; font: 500 25px/1.15 var(--mec-serif); }
.mec-e-card__copy > p:not(.mec-eyebrow):not(.mec-e-meta) { margin: 0; color: var(--mec-text); font-size: 12px; line-height: 1.65; }
.mec-e-card__copy .mec-e-meta { margin: 0 0 6px; color: var(--mec-brass); font-size: 9px; line-height: 1.4; letter-spacing: 1.4px; text-transform: uppercase; }
.mec-e-type-cards .mec-e-inner > .mec-actions, .mec-e-gallery__action { position: absolute; top: var(--mec-section); right: var(--mec-gutter); margin: 0; }
.mec-layout-services .mec-e-cards { grid-template-columns: 1.12fr .88fr; grid-template-rows: repeat(2,342px); gap: 4px; }
.mec-layout-services .mec-e-card { position: relative; min-height: 342px; overflow: hidden; color: #fff; }
.mec-layout-services .mec-e-card:first-child { grid-row: 1/3; }
.mec-layout-services .mec-e-card__image { position: absolute; inset: 0; }
.mec-layout-services .mec-e-card__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 15%,rgba(11,11,11,.86)); }
.mec-layout-services .mec-e-card__image img { height: 100%; }
.mec-layout-services .mec-e-card__copy { position: relative; z-index: 1; margin-top: auto; padding: 34px; }
.mec-layout-services .mec-e-card__copy .mec-eyebrow { color: var(--mec-brass-light); }
.mec-layout-services .mec-e-card__copy h3 { font-size: 31px; }
.mec-layout-services .mec-e-card__copy > p:not(.mec-eyebrow):not(.mec-e-meta) { max-width: 470px; color: #d4d0c9; font-size: 13px; }
.mec-layout-team .mec-e-card__image img { height: 420px; }
.mec-layout-team .mec-e-card__copy h3 { font-size: 23px; }
.mec-layout-team_detailed .mec-e-inner { padding-top: 130px; padding-bottom: 150px; }
.mec-layout-team_detailed .mec-e-cards { margin-top: 64px; }
.mec-layout-team_detailed .mec-e-card__image img { height: 520px; }
.mec-layout-team_detailed .mec-e-card__copy .mec-eyebrow { margin: 14px 0 7px; color: var(--mec-brass); font-size: 9px; }
.mec-layout-team_detailed .mec-e-card__copy .mec-e-meta { display: inline-flex; margin: 0 0 9px; padding: 6px 9px; color: var(--mec-text); border: 1px solid var(--mec-border); border-radius: 999px; font-size: 8px; letter-spacing: .6px; }
.mec-layout-team_detailed .mec-e-card__copy h3 { font-size: 27px; }
.mec-layout-team_detailed .mec-e-card__copy > p:not(.mec-eyebrow):not(.mec-e-meta) { font-size: 13px; }
.mec-layout-strip .mec-e-cards { grid-template-columns: repeat(4,1fr); gap: 16px; }
.mec-page-riding-lessons .mec-layout-strip .mec-e-cards { grid-template-columns: repeat(3,1fr); }
.mec-layout-strip .mec-e-card__image img { height: 420px; }
.mec-layout-strip .mec-e-card__copy h3 { font-size: 20px; }

/* Alternating details */
.mec-e-type-alternating .mec-e-heading { margin-bottom: 64px; }
.mec-e-alternating > article { min-height: 500px; display: grid; grid-template-columns: minmax(0,680px) minmax(360px,1fr); gap: 88px; align-items: center; }
.mec-e-alternating > article + article { margin-top: 72px; }
.mec-e-alternating > article.is-reversed { grid-template-columns: minmax(360px,1fr) minmax(0,680px); }
.mec-e-alternating > article.is-reversed .mec-e-alternating__media { order: 2; }
.mec-e-alternating__media img { width: 100%; height: 490px; object-fit: cover; }
.mec-e-alternating__copy h3 { margin: 14px 0; font: 500 35px/1.08 var(--mec-serif); }
.mec-e-alternating__copy > p:not(.mec-eyebrow) { margin: 0; color: var(--mec-text); font-size: 14px; line-height: 1.7; }

/* Values, steps and amenities */
.mec-e-values { margin-top: 54px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; }
.mec-layout-two .mec-e-values { grid-template-columns: repeat(2,1fr); }
.mec-layout-three .mec-e-values { grid-template-columns: repeat(3,1fr); }
.mec-layout-five .mec-e-values { grid-template-columns: repeat(5,1fr); }
.mec-e-values article { position: relative; min-width: 0; padding-top: 19px; border-top: 1px solid #a5a29c; }
.mec-e-values article > span { color: var(--mec-brass); font-size: 9px; letter-spacing: 1.55px; text-transform: uppercase; }
.mec-e-values h3 { margin: 33px 0 10px; color: inherit; font: 500 23px/1.18 var(--mec-serif); }
.mec-e-values article > p { margin: 0; color: var(--mec-text); font-size: 12px; line-height: 1.65; }
.mec-theme-dark .mec-e-values article > p { color: #bfbbb2; }
.mec-e-value-meta { position: absolute; top: 19px; right: 0; color: var(--mec-muted); font: 500 10px/1.4 var(--mec-sans); letter-spacing: 1.7px; text-transform: uppercase; }
.mec-e-note { max-width: 980px; margin: 38px 0 0; color: var(--mec-muted); font-size: 10px; line-height: 1.6; }
.mec-layout-requirements .mec-e-inner { display: grid; grid-template-columns: .72fr 1.28fr; gap: 110px; align-items: start; }
.mec-layout-requirements .mec-e-values { margin: 0; display: block; }
.mec-layout-requirements .mec-e-values h3 { margin-top: 0; font-size: 28px; }
.mec-layout-requirements .mec-e-values ul { margin-top: 28px; }

/* Price bands and pricing */
.mec-e-type-price_band { color: #fff; background-color: var(--mec-ink); }
.mec-e-type-price_band .mec-e-inner { min-height: 152px; padding-top: 34px; padding-bottom: 34px; display: grid; grid-template-columns: 1fr 1fr auto; gap: 55px; align-items: center; }
.mec-e-price-band__price { display: flex; gap: 12px; align-items: baseline; }
.mec-e-price-band__price strong { font: 400 58px/1 var(--mec-serif); }
.mec-e-price-band__price span { color: var(--mec-brass-light); font-size: 10px; letter-spacing: 1.3px; text-transform: uppercase; }
.mec-e-price-band__copy p { margin: 0; color: #bfbbb2; font-size: 13px; line-height: 1.6; }
.mec-layout-feature .mec-e-inner { min-height: 650px; padding-top: 100px; padding-bottom: 100px; grid-template-columns: 1fr 560px; gap: 100px; }
.mec-e-price-feature__copy { max-width: 610px; }
.mec-e-price-feature__copy h2 { margin: 18px 0 0; color: #fff; font: 600 54px/1.04 var(--mec-serif); letter-spacing: -.5px; }
.mec-e-price-feature__copy .mec-e-body { max-width: 540px; }
.mec-e-price-panel { padding: 52px; border: 1px solid #464642; }
.mec-e-price-panel .mec-e-price-band__price strong { font-size: 72px; }
.mec-e-price-panel ul { margin-bottom: 34px; }
.mec-e-type-pricing .mec-e-inner { padding-top: 130px; padding-bottom: 150px; }
.mec-e-pricing { margin-top: 54px; display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.mec-e-pricing article { min-width: 0; padding: 42px; border: 1px solid var(--mec-border); }
.mec-e-pricing article.is-featured { color: #fff; background: var(--mec-ink); border-color: var(--mec-ink); }
.mec-e-pricing__price { min-height: 100px; margin: 24px 0; display: flex; gap: 10px; align-items: baseline; }
.mec-e-pricing__price strong { font: 500 52px/1 var(--mec-serif); }
.mec-e-pricing__price span { color: var(--mec-muted); font-size: 11px; }
.mec-e-pricing ul { min-height: 245px; }
.mec-e-pricing article.is-featured li { color: #bfbbb2; border-color: #333; }

/* Gallery */
.mec-e-gallery__filters { margin: 0 0 44px; display: flex; flex-wrap: wrap; gap: 12px; }
.mec-e-type-gallery .mec-e-heading + .mec-e-gallery__action + .mec-e-gallery__filters { margin-top: 0; }
.mec-e-gallery__filters button { min-height: 42px; padding: 0 22px; color: var(--mec-text); background: transparent; border: 1px solid var(--mec-border); border-radius: 999px; font-size: 12px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.mec-e-gallery__filters button:hover, .mec-e-gallery__filters button:focus, .mec-e-gallery__filters button.is-active { color: #fff; background: var(--mec-ink); border-color: var(--mec-ink); outline: none; }
.mec-e-gallery__grid { columns: 4 260px; column-gap: 16px; }
.mec-e-gallery__item { width: 100%; margin: 0 0 16px; padding: 0; display: block; break-inside: avoid; background: transparent; border: 0; cursor: zoom-in; }
.mec-e-gallery__item[hidden] { display: none !important; }
.mec-e-gallery__item img { width: 100%; height: auto; }
.mec-layout-teaser .mec-e-gallery__filters { display: none; }
.mec-layout-teaser .mec-e-gallery__grid { display: grid; grid-template-columns: repeat(4,1fr); grid-template-rows: 245px 245px; gap: 8px; columns: auto; }
.mec-layout-teaser .mec-e-gallery__item { height: auto; margin: 0; }
.mec-layout-teaser .mec-e-gallery__item:first-child { grid-row: 1/3; }
.mec-layout-teaser .mec-e-gallery__item:nth-child(4) { grid-row: 1/3; grid-column: 4; }
.mec-layout-teaser .mec-e-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.mec-e-lightbox { position: fixed; z-index: 10000; inset: 0; padding: 40px; display: grid; place-items: center; background: rgba(0,0,0,.92); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; }
.mec-e-lightbox.is-open { opacity: 1; visibility: visible; }
.mec-e-lightbox img { max-width: min(1200px,92vw); max-height: 88vh; object-fit: contain; }
.mec-e-lightbox button { position: absolute; top: 18px; right: 22px; width: 44px; height: 44px; color: #fff; background: transparent; border: 1px solid #777; font-size: 24px; cursor: pointer; }

/* FAQ, mission and CTA */
.mec-e-faq { margin-top: 47px; }
.mec-e-faq details { border-top: 1px solid var(--mec-border); }
.mec-e-faq details:last-child { border-bottom: 1px solid var(--mec-border); }
.mec-e-faq summary { position: relative; padding: 26px 56px 26px 0; list-style: none; cursor: pointer; font: 500 20px/1.35 var(--mec-serif); }
.mec-e-faq summary::-webkit-details-marker { display: none; }
.mec-e-faq summary::after { content: "+"; position: absolute; top: 24px; right: 4px; font: 400 21px/1 var(--mec-sans); }
.mec-e-faq details[open] summary::after { content: "−"; }
.mec-e-faq details > div { max-width: 780px; padding: 0 30px 25px 0; color: var(--mec-text); font-size: 14px; line-height: 1.7; }
.mec-e-type-testimonial { padding: 100px 0; color: #fff; text-align: center; background-color: var(--mec-ink); }
.mec-e-testimonial__inner { max-width: 970px; margin: 0 auto; }
.mec-e-type-testimonial .mec-eyebrow { color: var(--mec-brass-light); }
.mec-e-type-testimonial blockquote { margin: 27px 0 20px; font: 300 italic 33px/1.35 var(--mec-serif); }
.mec-e-testimonial__inner > p:last-child { margin: 0; color: #bfbbb2; font-size: 12px; }
.mec-e-type-cta { min-height: 480px; display: grid; place-items: center; color: #fff; text-align: center; background-color: var(--mec-ink); background-image: linear-gradient(rgba(11,11,11,.65),rgba(11,11,11,.74)),var(--mec-section-image); background-position: center; background-size: cover; }
.mec-page-home .mec-e-type-cta { min-height: 560px; }
.mec-e-cta__inner { max-width: 850px; padding-top: 76px; padding-bottom: 76px; }
.mec-e-type-cta .mec-e-heading { margin: 0 auto; }
.mec-e-type-cta .mec-eyebrow { color: var(--mec-brass-light); }
.mec-e-type-cta .mec-e-heading h2 { color: #fff; font-size: 56px; }
.mec-e-type-cta .mec-e-body { color: #d2cfc9; }
.mec-e-type-cta .mec-actions { justify-content: center; }

/* Contact and location */
.mec-e-type-contact .mec-e-inner { display: grid; grid-template-columns: 1.5fr .85fr; gap: 90px; }
.mec-e-contact__form form { margin-top: 44px; }
.mec-e-contact__form label, .mec-e-contact__form fieldset { margin: 0 0 28px; padding: 0; display: block; color: var(--mec-muted); border: 0; font-size: 10px; font-weight: 500; letter-spacing: 1.45px; text-transform: uppercase; }
.mec-e-contact__form input[type="text"], .mec-e-contact__form input[type="email"], .mec-e-contact__form input[type="tel"], .mec-e-contact__form textarea { width: 100%; min-height: 54px; padding: 13px 0; display: block; color: var(--mec-ink); background: transparent; border: 0; border-bottom: 1px solid var(--mec-border); border-radius: 0; outline: none; font-size: 14px; letter-spacing: 0; text-transform: none; }
.mec-e-contact__form textarea { resize: vertical; }
.mec-e-contact__form input:focus, .mec-e-contact__form textarea:focus { border-bottom-color: var(--mec-brass); box-shadow: 0 1px 0 var(--mec-brass); }
.mec-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.mec-interest-chips { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 10px; }
.mec-interest-chips label { margin: 0; }
.mec-interest-chips input { position: absolute; opacity: 0; pointer-events: none; }
.mec-interest-chips span { min-height: 42px; padding: 0 17px; display: inline-flex; align-items: center; color: var(--mec-text); border: 1px solid var(--mec-border); border-radius: 999px; font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; cursor: pointer; }
.mec-interest-chips input:checked + span, .mec-interest-chips input:focus-visible + span { color: #fff; background: var(--mec-ink); border-color: var(--mec-ink); }
.mec-e-contact__info { padding: 48px; background: var(--mec-surface); }
.mec-e-contact__info h3 { margin: 14px 0 26px; font: 500 32px/1.2 var(--mec-serif); }
.mec-e-contact__info hr { margin: 24px 0; border: 0; border-top: 1px solid var(--mec-border); }
.mec-e-contact__info p:not(.mec-eyebrow) { margin: 8px 0 0; color: var(--mec-text); font-size: 13px; line-height: 1.6; }
.mec-honeypot { position: absolute !important; left: -10000px !important; }
.mec-form-success, .mec-form-error { padding: 14px 16px; }
.mec-form-success { color: #14532d; background: #dcfce7; border: 1px solid #86efac; }
.mec-form-error { color: #7f1d1d; background: #fee2e2; border: 1px solid #fca5a5; }
.mec-e-map-placeholder { min-height: 440px; padding: 26px; display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; color: #888; background: var(--mec-ink-2); text-align: right; }
.mec-e-map-embed { height: 440px; overflow: hidden; background: var(--mec-ink-2); }
.mec-e-map-embed iframe { width: 100%; height: 100%; display: block; border: 0; filter: grayscale(1) contrast(.9); }
.mec-e-map-placeholder span { font-size: 10px; letter-spacing: 1.8px; text-transform: uppercase; }
.mec-e-map-placeholder p { margin: 4px 0 0; font-size: 11px; }
.mec-e-service-area { min-height: 130px; display: grid; grid-template-columns: 180px 1fr; gap: 30px; align-items: center; }
.mec-e-service-area strong { color: var(--mec-brass); font-size: 10px; letter-spacing: 1.8px; text-transform: uppercase; }
.mec-e-service-area p { margin: 0; color: var(--mec-text); font-size: 14px; line-height: 1.6; }

/* Mobile-only Instagram */
.mec-e-type-instagram_follow { color: #fff; background-color: var(--mec-ink); }
.mec-e-type-instagram_follow .mec-eyebrow { color: var(--mec-brass-light); }
.mec-e-type-instagram_follow .mec-e-body { color: #bfbbb2; }
.mec-e-instagram-grid { margin-top: 26px; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.mec-e-instagram-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; }

/* Footer */
.mec-v2-footer { color: #bfbbb2; background: var(--mec-ink); font-family: var(--mec-sans); }
.mec-v2-footer__columns { padding-top: 88px; padding-bottom: 64px; display: grid; grid-template-columns: 1.55fr .7fr .95fr 1.1fr; gap: 66px; }
.mec-v2-footer .mec-v2-logo { align-items: flex-start; }
.mec-v2-footer__brand > p { margin: 24px 0; font-size: 13px; line-height: 1.7; }
.mec-v2-footer__columns > div:not(.mec-v2-footer__brand) { display: flex; flex-direction: column; gap: 11px; align-items: flex-start; font-size: 13px; line-height: 1.6; }
.mec-v2-footer h3 { margin: 0 0 9px; color: var(--mec-brass-light); font: 500 10px/1.4 var(--mec-sans); letter-spacing: 1.9px; text-transform: uppercase; }
.mec-v2-footer a:hover { color: #fff; }
.mec-v2-footer__legal { min-height: 82px; display: flex; gap: 24px; align-items: center; justify-content: space-between; color: var(--mec-muted); border-top: 1px solid #343432; font-size: 11px; }
.mec-v2-footer__legal > span:last-child { display: flex; gap: 28px; }

@media (max-width: 1180px) {
  :root { --mec-gutter: 36px; --mec-section: 110px; }
  .mec-v2-nav { gap: 18px; }
  .mec-v2-nav > a, .mec-v2-nav-item > button { font-size: 12px; }
  .mec-v2-header-cta { padding: 0 18px !important; }
  .mec-e-type-split .mec-e-inner, .mec-layout-overlap .mec-e-inner { gap: 60px; }
  .mec-e-alternating > article { gap: 56px; }
  .mec-layout-team_detailed .mec-e-cards { grid-template-columns: repeat(3,1fr); }
  .mec-layout-feature .mec-e-inner { grid-template-columns: 1fr 470px; gap: 60px; }
}

@media (max-width: 767px) {
  :root { --mec-gutter: 24px; --mec-section: 56px; }
  .mec-v2-topbar { display: none; }
  .mec-v2-header, .mec-v2-header.has-topbar, .mec-v2-header.is-fixed { position: absolute; top: 0; height: 72px; padding: 0 20px; grid-template-columns: 1fr auto 1fr; background: transparent; border: 0; }
  .mec-v2-nav { display: none; }
  .mec-v2-menu-toggle { justify-self: start; width: 38px; height: 38px; padding: 0; display: flex; flex-direction: column; justify-content: center; gap: 6px; color: #fff; background: transparent !important; border: 0; box-shadow: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .mec-v2-menu-toggle span { width: 22px; height: 1px; background: currentColor; }
  .mec-v2-mobile-call { justify-self: end; display: inline-flex; color: #fff; font: 600 10px/1 var(--mec-sans); letter-spacing: 1.3px; text-transform: uppercase; }
  .mec-v2-logo__name { font-size: 19px; letter-spacing: 2.6px; }
  .mec-v2-logo__rule { width: 92px; }
  .mec-v2-logo__sub { font-size: 7px; letter-spacing: 1.85px; }
  .mec-v2-logo--image img { max-width: 130px; height: 44px; }
  .mec-v2-mobile-menu { position: fixed; z-index: 10000; inset: 0; padding: 20px 24px 26px; display: flex; flex-direction: column; color: #fff; background: var(--mec-ink) !important; opacity: 0; visibility: hidden; transform: translateY(-10px); transition: opacity .22s ease, visibility .22s ease, transform .22s ease; -webkit-tap-highlight-color: transparent; }
  .mec-v2-mobile-menu.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
  .mec-v2-mobile-menu__top { min-height: 56px; display: flex; align-items: flex-start; justify-content: space-between; }
  .mec-v2-mobile-menu__top .mec-v2-logo { align-items: flex-start; }
  .mec-v2-menu-close { position: relative; width: 38px; height: 38px; padding: 0; color: #fff; background: transparent !important; border: 0; box-shadow: none; }
  .mec-v2-menu-close span { position: absolute; top: 18px; left: 8px; width: 24px; height: 1px; background: currentColor; transform: rotate(45deg); }
  .mec-v2-menu-close span:last-child { transform: rotate(-45deg); }
  .mec-v2-mobile-menu nav { margin: 24px 0 auto; overflow-y: auto; border-top: 1px solid #30302e; }
  .mec-v2-mobile-menu nav > a, .mec-v2-mobile-group > button { width: 100%; min-height: 54px; padding: 8px 0; display: flex; align-items: center; justify-content: space-between; color: #fff; background: transparent !important; border: 0; border-bottom: 1px solid #30302e; box-shadow: none; text-align: left; font: 500 30px/1 var(--mec-serif); cursor: pointer; -webkit-tap-highlight-color: transparent; }
  .mec-v2-mobile-menu nav > a[aria-current="page"] { color: var(--mec-brass-light); }
  .mec-v2-mobile-group > button span { color: var(--mec-brass-light); font: 300 22px/1 var(--mec-sans); transition: transform .2s ease; }
  .mec-v2-mobile-group.is-open > button span { transform: rotate(45deg); }
  .mec-v2-mobile-submenu { max-height: 0; overflow: hidden; display: grid; background: #111; transition: max-height .26s ease; }
  .mec-v2-mobile-group.is-open .mec-v2-mobile-submenu { max-height: 180px; }
  .mec-v2-mobile-submenu a { padding: 9px 0 9px 18px; color: #bfbbb2; border-bottom: 1px solid #292927; font-size: 13px; line-height: 1.3; }
  .mec-v2-mobile-menu__bottom { padding-top: 22px; }
  .mec-v2-mobile-menu__bottom > .mec-btn { width: 100%; }
  .mec-v2-mobile-menu__bottom > div { margin-top: 17px; display: flex; justify-content: space-between; color: #bfbbb2; font-size: 12px; }

  .mec-visibility-desktop_only { display: none; }
  .mec-visibility-mobile_only { display: block; }
  .elementor-editor-active .mec-visibility-desktop_only { display: block; opacity: .55; }
  .mec-e-heading h2 { margin-top: 12px; font-size: 30px; line-height: 1.14; letter-spacing: -.15px; }
  .mec-e-body { margin-top: 14px; font-size: 15px; line-height: 1.65; }
  .mec-eyebrow { font-size: 10px; letter-spacing: 1.8px; }
  .mec-actions { margin-top: 24px; }
  .mec-btn { width: 100%; min-height: 50px; padding: 0 20px; font-size: 11px; }

  .mec-e-type-hero, .mec-page-home .mec-e-type-hero:first-child { min-height: 460px; align-items: flex-end; background-position: center; }
  .mec-page-home .mec-e-type-hero:first-child { min-height: 754px; background-position: 61% center; }
  .mec-e-hero__inner { padding-top: 100px; padding-bottom: 48px; }
  .mec-page-home .mec-e-hero__inner { padding-bottom: 62px; }
  .mec-e-type-hero h1, .mec-page-home .mec-e-type-hero:first-child h1 { margin: 14px 0 16px; font-size: 36px; line-height: 1; letter-spacing: -.3px; }
  .mec-page-home .mec-e-type-hero:first-child h1 { font-size: 46px; line-height: .98; }
  .mec-e-type-hero .mec-e-body { font-size: 14px; line-height: 1.6; }
  .mec-page-home .mec-e-type-hero .mec-e-body { font-size: 15px; }
  .mec-e-type-hero .mec-actions { display: grid; grid-template-columns: 1fr; gap: 9px; }
  .mec-e-hero-services { display: none; }

  .mec-e-stats { min-height: 0; padding-top: 40px; padding-bottom: 44px; grid-template-columns: 1fr 1fr; gap: 34px 20px; }
  .mec-e-stats > div { min-height: 0; padding-left: 0; border: 0; }
  .mec-e-stats strong { font-size: 44px; }
  .mec-e-stats span { font-size: 9px; }
  .mec-e-type-split .mec-e-inner, .mec-layout-overlap .mec-e-inner { grid-template-columns: 1fr; gap: 34px; }
  .mec-e-type-split.is-reversed .mec-e-split__media { order: 0; }
  .mec-e-split__media > img { height: 350px; }
  .mec-layout-overlap .mec-e-split__media { height: 475px; }
  .mec-layout-overlap .mec-e-split__media > img { width: calc(100% - 38px); height: 420px; }
  .mec-e-split__secondary { width: 145px; height: 190px; border-width: 7px; }
  .mec-layout-edge .mec-e-inner { min-height: 0; padding: 0; grid-template-columns: 1fr; }
  .mec-layout-edge .mec-e-split__media > img { height: 360px; }
  .mec-layout-edge .mec-e-split__copy { max-width: none; padding: 56px 24px 64px; }

  .mec-e-type-cards .mec-e-inner > .mec-actions, .mec-e-gallery__action { position: static; margin-top: 26px; }
  .mec-e-cards, .mec-layout-two .mec-e-cards, .mec-layout-three .mec-e-cards, .mec-layout-four .mec-e-cards, .mec-layout-five .mec-e-cards, .mec-layout-levels .mec-e-cards, .mec-layout-team .mec-e-cards, .mec-layout-team_detailed .mec-e-cards { margin-top: 32px; grid-template-columns: 1fr 1fr; gap: 32px 10px; }
  .mec-e-card__image img { height: 232px; }
  .mec-e-card__copy h3 { font-size: 20px; }
  .mec-e-card__copy > p:not(.mec-eyebrow):not(.mec-e-meta) { font-size: 11px; line-height: 1.58; }
  .mec-layout-services .mec-e-cards { display: flex; flex-direction: column; gap: 4px; }
  .mec-layout-services .mec-e-card, .mec-layout-services .mec-e-card:first-child { min-height: 370px; }
  .mec-layout-services .mec-e-card__image img { height: 100%; }
  .mec-layout-services .mec-e-card__copy { padding: 25px; }
  .mec-layout-services .mec-e-card__copy h3 { font-size: 28px; }
  .mec-layout-team .mec-e-card__image img { height: 260px; }
  .mec-layout-team_detailed .mec-e-inner { padding-top: 72px; padding-bottom: 80px; }
  .mec-layout-team_detailed .mec-e-card__image img { height: 290px; }
  .mec-layout-team_detailed .mec-e-card__copy h3 { font-size: 22px; }
  .mec-layout-strip .mec-e-cards, .mec-page-riding-lessons .mec-layout-strip .mec-e-cards { grid-template-columns: repeat(3,1fr); gap: 8px; }
  .mec-layout-strip .mec-e-card__image img { height: 190px; }
  .mec-layout-strip .mec-e-card__copy h3 { font-size: 15px; }

  .mec-e-type-alternating .mec-e-heading { margin-bottom: 38px; }
  .mec-e-alternating > article, .mec-e-alternating > article.is-reversed { min-height: 0; grid-template-columns: 1fr; gap: 24px; }
  .mec-e-alternating > article + article { margin-top: 54px; }
  .mec-e-alternating > article.is-reversed .mec-e-alternating__media { order: 0; }
  .mec-e-alternating__media img { height: 276px; }
  .mec-e-alternating__copy h3 { font-size: 27px; }
  .mec-e-alternating__copy > p:not(.mec-eyebrow) { font-size: 13px; }

  .mec-e-values, .mec-layout-two .mec-e-values, .mec-layout-three .mec-e-values, .mec-layout-four .mec-e-values, .mec-layout-five .mec-e-values { margin-top: 34px; grid-template-columns: 1fr 1fr; gap: 34px 16px; }
  .mec-e-values h3 { margin-top: 20px; font-size: 20px; }
  .mec-e-values article > p { font-size: 11px; }
  .mec-layout-requirements .mec-e-inner { display: block; }
  .mec-layout-requirements .mec-e-values { margin-top: 34px; display: block; }
  .mec-layout-requirements .mec-e-values h3 { font-size: 22px; }
  .mec-layout-additional_services .mec-e-inner { padding-top: 56px; padding-bottom: 56px; }
  .mec-layout-additional_services .mec-e-values { display: block; }
  .mec-layout-additional_services .mec-e-values article { padding: 16px 0; }
  .mec-layout-additional_services .mec-e-values h3 { margin: 0 100px 4px 0; font-size: 19px; }
  .mec-layout-additional_services .mec-e-values article > p { font-size: 14px; }
  .mec-layout-additional_services .mec-e-value-meta { top: 19px; font-size: 9px; }

  .mec-e-type-price_band .mec-e-inner { padding-top: 40px; padding-bottom: 40px; grid-template-columns: 1fr; gap: 20px; }
  .mec-e-price-band__price strong { font-size: 52px; }
  .mec-layout-feature .mec-e-inner { min-height: 0; padding-top: 64px; padding-bottom: 64px; grid-template-columns: 1fr; gap: 38px; }
  .mec-e-price-feature__copy h2 { font-size: 36px; }
  .mec-e-price-panel { padding: 28px 24px; }
  .mec-e-price-panel .mec-e-price-band__price strong { font-size: 58px; }
  .mec-e-type-pricing .mec-e-inner { padding-top: 64px; padding-bottom: 72px; }
  .mec-e-pricing { margin-top: 34px; grid-template-columns: 1fr; gap: 12px; }
  .mec-e-pricing article { padding: 30px 24px; }
  .mec-e-pricing ul { min-height: 0; }

  .mec-e-type-gallery .mec-e-inner { padding-top: 56px; padding-bottom: 64px; }
  .mec-e-gallery__filters { display: none; }
  .mec-e-gallery__grid { columns: 2 145px; column-gap: 10px; }
  .mec-e-gallery__item { margin-bottom: 10px; }
  .mec-layout-teaser .mec-e-gallery__grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3,180px); gap: 6px; }
  .mec-layout-teaser .mec-e-gallery__item:first-child, .mec-layout-teaser .mec-e-gallery__item:nth-child(4) { grid-row: auto; grid-column: auto; }

  .mec-e-type-testimonial { padding: 76px 0; }
  .mec-e-type-testimonial blockquote { font-size: 27px; }
  .mec-e-type-cta, .mec-page-home .mec-e-type-cta { min-height: 520px; }
  .mec-e-type-cta .mec-e-heading h2 { font-size: 38px; }
  .mec-e-type-contact .mec-e-inner { grid-template-columns: 1fr; gap: 44px; }
  .mec-form-row { grid-template-columns: 1fr; gap: 0; }
  .mec-e-contact__info { padding: 32px 24px; }
  .mec-e-map-placeholder, .mec-e-map-embed { min-height: 360px; height: 360px; }
  .mec-e-service-area { min-height: 150px; grid-template-columns: 1fr; align-content: center; gap: 10px; }
  .mec-e-type-instagram_follow .mec-e-inner { padding-top: 56px; padding-bottom: 56px; }

  .mec-v2-footer__columns { padding-top: 64px; padding-bottom: 50px; grid-template-columns: 1fr 1fr; gap: 44px 24px; }
  .mec-v2-footer__brand, .mec-v2-footer__columns > div:last-child { grid-column: 1/3; }
  .mec-v2-footer__legal { min-height: 0; padding-top: 24px; padding-bottom: 24px; flex-direction: column; align-items: flex-start; line-height: 1.5; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .mec-site *, .mec-site *::before, .mec-site *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
