/* Crotty Services site styles for Elementor (generated by wordpress/build/build_css.js; edit the static site and rebuild). */
/* 1. Make Elementor containers behave like the plain elements they replace. Equal specificity to the site rules below, which come later and win. */
.e-con.cx { display: block; flex-direction: row; flex-wrap: nowrap; justify-content: normal; align-items: normal; align-content: normal; align-self: auto; padding: 0; margin: 0; gap: normal; width: auto; height: auto; min-height: 0; min-width: 0; max-width: none; position: static; overflow: visible; z-index: auto; flex: 0 1 auto; border-radius: 0; transition: none; text-align: inherit; }
.e-con.cx::before { content: none; display: inline; position: static; width: auto; height: auto; top: auto; left: auto; border: 0; border-radius: 0; opacity: 1; mix-blend-mode: normal; transition: none; }
.cx > .elementor-widget { position: static; }
/* Widget wrappers inside flex/grid parents: on the live site they don't take part in layout, so the real element
   is the flex/grid item exactly as in the static site. In the Elementor editor they keep a box so they can be selected. */
body:not(.elementor-editor-active) .cx > .elementor-widget.fill { display: contents; }
.elementor-editor-active .cx > .elementor-widget.fill { display: flex; flex-direction: column; }
.elementor-editor-active .cx > .elementor-widget.fill > * { flex-grow: 1; }
.cx > .elementor-widget.fill-h, .cx > .elementor-widget.fill-h img { height: 100%; }
.elementor .elementor-widget-text-editor { color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; }
.elementor .elementor-widget-image { text-align: inherit; }
.elementor .elementor-heading-title { line-height: inherit; margin: revert; }
.elementor .btn-w .elementor-button, .elementor .btn-w .elementor-button:is(:hover, :focus, :visited) { background: none; border: 0; border-radius: 0; padding: 0; font: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; color: var(--ocean); fill: currentColor; box-shadow: none; }
.elementor .btn-w .elementor-button-content-wrapper { gap: 0; }
/* Header template: the topbar scrolls away, the main header sticks. --topbar-h is set by site.js. */
.elementor-location-header { position: sticky; top: calc(-1 * var(--topbar-h, 42px)); z-index: 50; }
.elementor-location-header header.site { position: relative; top: 0; }
/* 2. Site styles (from the static site). */
:root { --navy: #0B3D5C;
    --ocean: #0E7C9B;
    --teal: #19B3A6;
    --sun: #FFB42E;
    --sunset: #F2682E;
    --mahi: #5BB23A;
    --sand: #FFF7EA;
    --foam: #EAF8F7;
    --ink: #1B2A36;
    --muted: #55667a;
    --white: #ffffff;
    --radius: 18px;
    --shadow: 0 14px 36px rgba(11, 61, 92, .14); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.crotty-site { margin: 0;
    background: var(--white);
    color: var(--ink);
    font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 17px;
    line-height: 1.6; }
.elementor.elementor img { display: block; max-width: 100%; height: auto; }
.elementor.elementor a { color: var(--ocean); }
.elementor.elementor h1,
.elementor.elementor h1.elementor-heading-title,
.elementor.elementor h2,
.elementor.elementor h2.elementor-heading-title,
.elementor.elementor h3,
.elementor.elementor h3.elementor-heading-title,
.elementor.elementor .display { font-family: Fraunces, Georgia, serif; line-height: 1.15; margin: 0 0 .5em; color: var(--navy); }
.elementor.elementor h1,
.elementor.elementor h1.elementor-heading-title { font-size: clamp(2.1rem, 5vw, 3.5rem); font-weight: 800; }
.elementor.elementor h2,
.elementor.elementor h2.elementor-heading-title { font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 800; }
.elementor.elementor h3,
.elementor.elementor h3.elementor-heading-title { font-size: 1.2rem; font-weight: 700; }
.elementor.elementor p { margin: 0 0 1em; }
.elementor.elementor .wrap { width: min(1160px, 100% - 32px); margin: 0 auto; }
.elementor.elementor section { padding: 84px 0; }
.elementor.elementor .eyebrow { display: inline-block; font-weight: 600; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
    color: var(--ocean); margin-bottom: 14px; }
.elementor.elementor .lede { font-size: 1.12rem; color: var(--muted); max-width: 640px; }
.elementor.elementor .center { text-align: center; }
.elementor.elementor .center .lede { margin: 0 auto; }
.elementor.elementor .btn,
.elementor.elementor .bw-btn .elementor-button { display: inline-flex; align-items: center; gap: 8px; border: 0; cursor: pointer; text-decoration: none;
    font-family: Inter, system-ui, sans-serif; font-weight: 700; font-size: 1rem;
    padding: 15px 26px; border-radius: 999px; transition: transform .15s ease, box-shadow .15s ease; }
.elementor.elementor .btn:hover,
.elementor.elementor .bw-btn .elementor-button:hover { transform: translateY(-2px); }
.elementor.elementor .btn-sun,
.elementor.elementor .bw-btn-sun .elementor-button { background: var(--sun); color: var(--navy); box-shadow: 0 10px 22px rgba(255, 180, 46, .45); }
.elementor.elementor .btn-navy,
.elementor.elementor .bw-btn-navy .elementor-button { background: var(--navy); color: #fff; }
.elementor.elementor .btn-ghost,
.elementor.elementor .bw-btn-ghost .elementor-button { background: rgba(255, 255, 255, .14); color: #fff; border: 2px solid rgba(255, 255, 255, .6); }
.elementor.elementor .topbar { background: var(--navy); color: #fff; font-size: .92rem; }
.elementor.elementor .topbar .wrap { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 9px 0; flex-wrap: wrap; }
.elementor.elementor .topbar a { color: #fff; text-decoration: none; font-weight: 600; }
.elementor.elementor .topbar .pill { background: var(--sun); color: var(--navy); padding: 3px 12px; border-radius: 999px; font-weight: 700; font-size: .82rem; }
.elementor.elementor header.site { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); box-shadow: 0 2px 14px rgba(11, 61, 92, .08); }
.elementor.elementor header.site .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 0; }
.elementor.elementor .brand img { height: 62px; width: auto; }
.elementor.elementor nav.main { display: flex; gap: 22px; align-items: center; }
.elementor.elementor nav.main a { color: var(--navy); text-decoration: none; font-weight: 600; font-size: .96rem; }
.elementor.elementor nav.main a:hover { color: var(--sunset); }
.elementor.elementor header .btn,
.elementor.elementor header .bw-btn .elementor-button { padding: 11px 20px; font-size: .95rem; }
.elementor.elementor .menu-toggle { display: none; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; border: 2px solid var(--navy); background: #fff; color: var(--navy); font-size: 1.3rem; cursor: pointer; }
.elementor.elementor .has-mega { position: static; }
.elementor.elementor .mega-btn { background: none; border: 0; padding: 6px 0; cursor: pointer; font: inherit;
    font-weight: 600; font-size: .96rem; color: var(--navy); }
.elementor.elementor .mega-btn::after { content: " \25BE"; color: var(--sunset); }
.elementor.elementor .mega-btn:hover { color: var(--sunset); }
.elementor.elementor .mega { position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%);
    width: min(1160px, 96vw); background: #fff; border-radius: 22px;
    box-shadow: 0 26px 60px rgba(11, 61, 92, .24); padding: 30px;
    display: none; grid-template-columns: repeat(4, 1fr); gap: 28px; z-index: 60;
    border-top: 6px solid var(--teal); }
.elementor.elementor .has-mega:hover .mega,
.elementor.elementor .has-mega.hover .mega,
.elementor.elementor .has-mega.open .mega { display: grid; }
.elementor.elementor .mega h4,
.elementor.elementor .mega h4.elementor-heading-title { font-family: Fraunces, Georgia, serif; font-size: .78rem; text-transform: uppercase; letter-spacing: .12em;
    color: var(--sunset); margin: 0 0 10px; }
.elementor.elementor .mega a.item { display: block; color: var(--navy); text-decoration: none; padding: 6px 0; font-weight: 500; font-size: .95rem; }
.elementor.elementor .mega a.item:hover { color: var(--ocean); }
.elementor.elementor .mega a.item small { display: block; color: var(--muted); font-size: .8rem; font-weight: 400; }
.elementor.elementor .mega .feature { border-radius: 16px; overflow: hidden; background: var(--sand); text-decoration: none; display: flex; flex-direction: column; }
.elementor.elementor .mega .feature img { width: 100%; height: 150px; object-fit: cover; }
.elementor.elementor .mega .feature div { padding: 16px 18px 18px; }
.elementor.elementor .mega .feature b { display: block; font-family: Fraunces, Georgia, serif; color: var(--navy); font-size: 1.05rem; }
.elementor.elementor .mega .feature span { color: var(--muted); font-size: .9rem; }
.elementor.elementor .mega.areas-mega { width: min(900px, 96vw); grid-template-columns: repeat(3, 1fr); }
.elementor.elementor .mega .all-areas { background: var(--navy); color: #fff; border-radius: 16px; padding: 22px; display: flex; flex-direction: column; justify-content: center; text-decoration: none; }
.elementor.elementor .mega .all-areas b { font-family: Fraunces, Georgia, serif; font-size: 1.1rem; }
.elementor.elementor .mega .all-areas span { color: #cfe8ee; font-size: .92rem; }
.elementor.elementor .area-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 22px; }
.elementor.elementor .area-grid a { background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .3); color: #fff;
    text-decoration: none; padding: 14px 18px; border-radius: 14px; font-weight: 600;
    display: flex; justify-content: space-between; align-items: center; }
.elementor.elementor .area-grid a::after { content: "\2192"; color: var(--sun); font-weight: 700; }
.elementor.elementor .area-grid a:hover { background: rgba(255, 255, 255, .24); }
.elementor.elementor .area-grid a.hl { background: var(--sun); color: var(--navy); border-color: var(--sun); }
.elementor.elementor .area-grid a.hl::after { color: var(--navy); }
.elementor.elementor .area-grid a.all { grid-column: 1 / -1; background: transparent; border-style: dashed; }
.elementor.elementor .hero { position: relative; color: #fff; overflow: hidden;
    background: linear-gradient(120deg, var(--navy) 0%, var(--ocean) 55%, var(--teal) 100%);
    padding: 72px 0 120px; }
.elementor.elementor .hero::before { content: ""; position: absolute; width: 520px; height: 520px; border-radius: 50%;
    right: -160px; top: -180px; background: radial-gradient(circle, var(--sun) 0%, var(--sunset) 55%, transparent 70%);
    opacity: .3; }
.elementor.elementor .hero .wrap { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: 44px; align-items: center; }
.elementor.elementor .hero h1,
.elementor.elementor .hero h1.elementor-heading-title { color: #fff; }
.elementor.elementor .hero .eyebrow { color: var(--sun); }
.elementor.elementor .hero p.lede { color: #e8f7f7; font-size: 1.15rem; }
.elementor.elementor .hero .ctas { display: flex; gap: 12px; flex-wrap: wrap; margin: 26px 0 30px; }
.elementor.elementor .chips { display: flex; flex-wrap: wrap; gap: 10px; }
.elementor.elementor .chip { background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .3); padding: 8px 14px; border-radius: 999px; font-size: .9rem; font-weight: 600; }
.elementor.elementor .hero-photo { position: relative; }
.elementor.elementor .hero-photo img { border-radius: 26px; box-shadow: 0 24px 60px rgba(0, 0, 0, .3); aspect-ratio: 4 / 4.2; object-fit: cover; width: 100%; }
.elementor.elementor .badge { position: absolute; left: -18px; bottom: 26px; background: #fff; color: var(--navy);
    padding: 14px 18px; border-radius: 16px; box-shadow: var(--shadow); display: flex; gap: 12px; align-items: center; }
.elementor.elementor .badge .num { font-family: Fraunces, Georgia, serif; font-weight: 800; font-size: 1.7rem; color: var(--sunset); line-height: 1; }
.elementor.elementor .badge small { display: block; font-weight: 600; font-size: .85rem; color: var(--muted); line-height: 1.3; }
.elementor.elementor .wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 70px; display: block; }
.elementor.elementor .stats { background: var(--sand); padding: 0; }
.elementor.elementor .stats .wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: -56px; position: relative; }
.elementor.elementor .stat { background: #fff; padding: 26px 22px; text-align: center; box-shadow: var(--shadow); border-top: 6px solid var(--teal); }
.elementor.elementor .stat:nth-child(2),
.elementor.elementor .elementor-widget:nth-child(2) > .stat { border-top-color: var(--teal); }
.elementor.elementor .stat:nth-child(3),
.elementor.elementor .elementor-widget:nth-child(3) > .stat { border-top-color: var(--teal); }
.elementor.elementor .stat:nth-child(4),
.elementor.elementor .elementor-widget:nth-child(4) > .stat { border-top-color: var(--teal); }
.elementor.elementor .stat b { display: block; font-family: Fraunces, Georgia, serif; font-size: 2rem; color: var(--navy); line-height: 1.1; }
.elementor.elementor .stat span { color: var(--muted); font-weight: 500; font-size: .95rem; }
.elementor.elementor .stats-spacer { height: 0; }
.elementor.elementor .services { background: var(--white); }
.elementor.elementor .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin-top: 44px; }
.elementor.elementor .card { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: 0 6px 24px rgba(11, 61, 92, .09);
    display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.elementor.elementor .card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.elementor.elementor .card img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; }
.elementor.elementor .card .body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.elementor.elementor .card .body p { color: var(--muted); font-size: .98rem; flex: 1; }
.elementor.elementor .card .tag { display: inline-block; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; padding: 4px 10px; border-radius: 999px; margin-bottom: 12px; align-self: flex-start; }
.elementor.elementor .t-teal { background: #d7f4f1; color: #0b766d; }
.elementor.elementor .t-sun { background: #ffefc7; color: #8a5a00; }
.elementor.elementor .t-mahi { background: #e2f5d6; color: #2f6d17; }
.elementor.elementor .t-sunset { background: #ffe2d4; color: #a5401a; }
.elementor.elementor .t-ocean { background: #d9eef6; color: #0a5b74; }
.elementor.elementor .t-navy { background: #dde7f0; color: var(--navy); }
.elementor.elementor .card .more { font-weight: 700; color: var(--ocean); text-decoration: none; margin-top: 4px; }
.elementor.elementor .split { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 40px; }
.elementor.elementor .split .panel { border-radius: 24px; padding: 42px 36px; color: #fff; position: relative; overflow: hidden; }
.elementor.elementor .split .panel h3,
.elementor.elementor .split .panel h3.elementor-heading-title { color: #fff; font-size: 1.55rem; }
.elementor.elementor .split .panel p { color: #eef9fb; }
.elementor.elementor .split .panel ul { padding-left: 20px; margin: 0 0 24px; }
.elementor.elementor .split .panel li { margin: 6px 0; }
.elementor.elementor .panel.res { background: linear-gradient(135deg, var(--ocean), var(--teal)); }
.elementor.elementor .panel.com { background: linear-gradient(135deg, var(--navy), #1d5f86); }
.elementor.elementor .panel::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 200px; height: 200px; border-radius: 50%; background: rgba(255, 180, 46, .25); }
.elementor.elementor .why { background: linear-gradient(180deg, var(--foam), #fff); }
.elementor.elementor .features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 44px; }
.elementor.elementor .feature { background: #fff; border-radius: var(--radius); padding: 30px 28px; box-shadow: 0 6px 22px rgba(11, 61, 92, .08); }
.elementor.elementor .feature .ico { width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center; margin-bottom: 18px; }
.elementor.elementor .feature .ico svg { width: 30px; height: 30px; }
.elementor.elementor .feature p { color: var(--muted); margin: 0; }
.elementor.elementor .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 44px; counter-reset: step; }
.elementor.elementor .step { position: relative; border-radius: var(--radius); padding: 34px 28px 28px; color: #fff; }
.elementor.elementor .step:nth-child(1),
.elementor.elementor .elementor-widget:nth-child(1) > .step { background: var(--navy); }
.elementor.elementor .step:nth-child(2),
.elementor.elementor .elementor-widget:nth-child(2) > .step { background: var(--navy); }
.elementor.elementor .step:nth-child(3),
.elementor.elementor .elementor-widget:nth-child(3) > .step { background: var(--navy); }
.elementor.elementor .step .n { font-family: Fraunces, Georgia, serif; font-size: 3.4rem; font-weight: 800; line-height: 1; opacity: .35; position: absolute; right: 22px; top: 10px; }
.elementor.elementor .step h3,
.elementor.elementor .step h3.elementor-heading-title { color: #fff; }
.elementor.elementor .step p { color: #fff; opacity: .95; margin: 0; }
.elementor.elementor .gallery { background: var(--white); }
.elementor.elementor .masonry { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 210px; gap: 14px; margin-top: 40px; }
.elementor.elementor .masonry img { width: 100%; height: 100%; object-fit: cover; border-radius: 16px; }
.elementor.elementor .masonry .w2 { grid-column: span 2; }
.elementor.elementor .masonry .h2 { grid-row: span 2; }
.elementor.elementor .masonry :is(figure,.as-figure) { margin: 0; position: relative; overflow: hidden; border-radius: 16px; }
.elementor.elementor .masonry figcaption { position: absolute; left: 12px; bottom: 12px; background: rgba(11, 61, 92, .86); color: #fff;
    font-size: .85rem; font-weight: 600; padding: 6px 12px; border-radius: 999px; }
.elementor.elementor .areas { background: linear-gradient(120deg, var(--navy), var(--ocean)); color: #fff; }
.elementor.elementor .areas h2,
.elementor.elementor .areas h2.elementor-heading-title,
.elementor.elementor .areas h3,
.elementor.elementor .areas h3.elementor-heading-title { color: #fff; }
.elementor.elementor .areas .lede { color: #e6f6f7; }
.elementor.elementor .areas-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.elementor.elementor .areas-wrap img { border-radius: 24px; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 20px 50px rgba(0, 0, 0, .25); }
.elementor.elementor .town-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.elementor.elementor .town-list span { background: rgba(255, 255, 255, .15); border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px; padding: 8px 16px; font-weight: 600; font-size: .95rem; }
.elementor.elementor .town-list span.hl { background: var(--sun); color: var(--navy); border-color: var(--sun); }
.elementor.elementor .reviews { background: var(--sand); }
.elementor.elementor .rating { display: inline-flex; align-items: center; gap: 10px; background: #fff; padding: 10px 18px; border-radius: 999px; box-shadow: var(--shadow); font-weight: 700; color: var(--navy); margin-top: 16px; }
.elementor.elementor .stars { color: var(--sun); letter-spacing: 2px; font-size: 1.1rem; }
.elementor.elementor .quotes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 40px; }
.elementor.elementor .quote { background: #fff; border-radius: var(--radius); padding: 28px 28px 24px; box-shadow: 0 6px 22px rgba(11, 61, 92, .08); position: relative; }
.elementor.elementor .quote::before { content: "\201C"; position: absolute; right: 22px; top: 2px; font-family: Fraunces, Georgia, serif; font-size: 5rem; color: var(--teal); opacity: .25; line-height: 1; }
.elementor.elementor .quote p { color: var(--ink); margin-bottom: 14px; }
.elementor.elementor .quote .who { font-weight: 700; color: var(--navy); }
.elementor.elementor .quote .who small { font-weight: 500; color: var(--muted); }
.elementor.elementor .team { background: #fff; }
.elementor.elementor .team-row { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: 24px; margin-top: 40px; align-items: stretch; }
.elementor.elementor .person { border-radius: var(--radius); overflow: hidden; position: relative; background: var(--foam); }
.elementor.elementor .person img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; }
.elementor.elementor .person .name { position: absolute; left: 14px; bottom: 14px; background: #fff; color: var(--navy); font-weight: 700; padding: 6px 14px; border-radius: 999px; box-shadow: var(--shadow); }
.elementor.elementor .crew-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); aspect-ratio: 4 / 5; }
.elementor.elementor .faq { background: var(--foam); }
.elementor.elementor .faq-wrap { display: grid; grid-template-columns: .9fr 1.1fr; gap: 50px; align-items: start; }
.elementor.elementor details { background: #fff; border-radius: 14px; padding: 18px 22px; margin-bottom: 14px; box-shadow: 0 4px 14px rgba(11, 61, 92, .07); }
.elementor.elementor details summary { cursor: pointer; font-family: Fraunces, Georgia, serif; font-weight: 700; color: var(--navy); list-style: none; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.elementor.elementor details summary::-webkit-details-marker { display: none; }
.elementor.elementor details summary::after { content: "+"; font-size: 1.5rem; color: var(--sunset); line-height: 1; }
.elementor.elementor details[open] summary::after { content: "\2013"; }
.elementor.elementor details p { color: var(--muted); margin: 12px 0 0; }
.elementor.elementor .contact { background: var(--navy); color: #fff; position: relative; overflow: hidden; }
.elementor.elementor .contact h2,
.elementor.elementor .contact h2.elementor-heading-title { color: #fff; }
.elementor.elementor .contact-wrap { display: grid; grid-template-columns: 1fr 1.1fr; gap: 50px; align-items: start; }
.elementor.elementor .big-phone { font-family: Fraunces, Georgia, serif; font-weight: 800; font-size: clamp(2rem, 5vw, 3rem); color: var(--sun); text-decoration: none; display: inline-block; margin: 6px 0 14px; }
.elementor.elementor .contact ul.perks { list-style: none; padding: 0; margin: 20px 0 0; }
.elementor.elementor .contact ul.perks li { margin: 10px 0; font-weight: 600; }
.elementor.elementor .contact ul.perks li::before { content: "\2713"; display: inline-block; width: 26px; height: 26px; line-height: 26px; text-align: center; border-radius: 50%; background: var(--navy); color: var(--sun); margin-right: 10px; font-weight: 800; }
.elementor.elementor form.lead { background: #fff; border-radius: 22px; padding: 30px; box-shadow: 0 24px 60px rgba(0, 0, 0, .25); color: var(--ink); }
.elementor.elementor form.lead h3,
.elementor.elementor form.lead h3.elementor-heading-title { color: var(--navy); margin-bottom: 18px; }
.elementor.elementor .fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.elementor.elementor .fields .full { grid-column: 1 / -1; }
.elementor.elementor form.lead label { display: block; font-size: .88rem; font-weight: 600; color: var(--navy); margin-bottom: 6px; }
.elementor.elementor form.lead input,
.elementor.elementor form.lead select,
.elementor.elementor form.lead textarea { width: 100%; font: inherit; font-size: 1rem; padding: 12px 14px; border-radius: 12px; border: 2px solid #d6e4ec; background: #fbfdfe; color: var(--ink); }
.elementor.elementor form.lead input:focus,
.elementor.elementor form.lead select:focus,
.elementor.elementor form.lead textarea:focus { outline: none; border-color: var(--teal); }
.elementor.elementor form.lead textarea { min-height: 96px; resize: vertical; }
.elementor.elementor form.lead .btn,
.elementor.elementor form.lead .bw-btn .elementor-button { width: 100%; justify-content: center; margin-top: 16px; background: var(--sun); color: var(--navy); box-shadow: 0 10px 22px rgba(255, 180, 46, .35); }
.elementor.elementor .form-note { font-size: .85rem; color: var(--muted); margin: 12px 0 0; text-align: center; }
.elementor.elementor .form-msg { display: none; margin-top: 12px; padding: 12px 14px; border-radius: 12px; background: var(--foam); color: var(--navy); font-weight: 600; }
.elementor.elementor footer.site-foot { background: var(--navy); color: #cfe3ec; padding: 56px 0 26px; font-size: .95rem; }
.elementor.elementor .foot-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 36px; }
.elementor.elementor .foot-grid img { height: 70px; width: auto; background: #fff; border-radius: 14px; padding: 6px 10px; }
.elementor.elementor footer h4,
.elementor.elementor footer h4.elementor-heading-title { color: #fff; font-family: Fraunces, Georgia, serif; margin: 0 0 12px; font-size: 1rem; }
.elementor.elementor footer a { color: #fff; text-decoration: none; }
.elementor.elementor footer ul { list-style: none; padding: 0; margin: 0; }
.elementor.elementor footer li { margin: 6px 0; }
.elementor.elementor .copy { border-top: 1px solid rgba(255, 255, 255, .15); margin-top: 36px; padding-top: 20px; font-size: .85rem; color: #9fc2d1; }
@media (max-width: 960px) {
  .elementor.elementor .menu-toggle { display: inline-flex; }
  .elementor.elementor nav.main { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff;
      flex-direction: column; align-items: stretch; gap: 2px; padding: 10px 16px 20px;
      box-shadow: 0 16px 30px rgba(11, 61, 92, .16); max-height: 78vh; overflow-y: auto; }
  .elementor.elementor nav.main.open { display: flex; }
  .elementor.elementor nav.main > a,
  .elementor.elementor nav.main > .elementor-widget > a,
  .elementor.elementor nav.main .mega-btn { padding: 12px 4px; border-bottom: 1px solid #eef3f6; text-align: left; font-size: 1.02rem; }
  .elementor.elementor .has-mega:hover .mega,
  .elementor.elementor .has-mega.hover .mega { display: none; }
  .elementor.elementor .mega::before { display: none; }
  .elementor.elementor .has-mega.open .mega { display: grid; position: static; transform: none; width: auto; box-shadow: none; border-top: 0;
      grid-template-columns: 1fr; gap: 6px; padding: 8px 0 14px 12px; border-radius: 0; }
  .elementor.elementor .mega .feature { display: none; }
  .elementor.elementor .mega.areas-mega { grid-template-columns: 1fr; }
  .elementor.elementor .hero .wrap,
  .elementor.elementor .areas-wrap,
  .elementor.elementor .faq-wrap,
  .elementor.elementor .contact-wrap,
  .elementor.elementor .split { grid-template-columns: 1fr; }
  .elementor.elementor .hero { padding: 48px 0 110px; }
  .elementor.elementor .hero-photo { order: -1; }
  .elementor.elementor .badge { left: 12px; }
  .elementor.elementor .stats .wrap { grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: -40px; }
  .elementor.elementor .grid-3,
  .elementor.elementor .features,
  .elementor.elementor .steps { grid-template-columns: 1fr; }
  .elementor.elementor .masonry { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; }
  .elementor.elementor .masonry .w2 { grid-column: span 2; }
  .elementor.elementor .team-row { grid-template-columns: 1fr 1fr; }
  .elementor.elementor .team-row .crew-photo { grid-column: 1 / -1; }
  .elementor.elementor .quotes { grid-template-columns: 1fr; }
  .elementor.elementor .foot-grid { grid-template-columns: 1fr; }
  .elementor.elementor section { padding: 62px 0; }
}
@media (max-width: 560px) {
  body.crotty-site { font-size: 16px; }
  .elementor.elementor header.site .btn,
  .elementor.elementor header.site .bw-btn .elementor-button { padding: 10px 14px; font-size: .85rem; }
  .elementor.elementor .brand img { height: 52px; }
  .elementor.elementor .topbar .wrap { justify-content: center; text-align: center; }
  .elementor.elementor .fields { grid-template-columns: 1fr; }
  .elementor.elementor .masonry { grid-auto-rows: 150px; }
  .elementor.elementor .team-row { grid-template-columns: 1fr; }
  .elementor.elementor .stats .wrap { grid-template-columns: 1fr 1fr; }
  .elementor.elementor .stat b { font-size: 1.6rem; }
}
.elementor.elementor .crumbs { font-size: .9rem; color: #cfe8ee; margin-bottom: 18px; }
.elementor.elementor .crumbs a { color: #fff; text-decoration: none; font-weight: 600; }
.elementor.elementor .crumbs span { opacity: .7; margin: 0 6px; }
.elementor.elementor .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: start; }
.elementor.elementor .check-list { list-style: none; padding: 0; margin: 22px 0 0; }
.elementor.elementor .check-list li { position: relative; padding: 12px 0 12px 40px; border-bottom: 1px solid #e3edf2; color: var(--ink); }
.elementor.elementor .check-list li::before { content: "\2713"; position: absolute; left: 0; top: 11px; width: 26px; height: 26px; line-height: 26px; text-align: center;
    border-radius: 50%; background: var(--teal); color: #fff; font-weight: 800; }
.elementor.elementor .pill-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; justify-content: center; }
.elementor.elementor .pill-links a { background: #fff; color: var(--navy); text-decoration: none; font-weight: 600; padding: 10px 16px;
    border-radius: 999px; box-shadow: 0 4px 14px rgba(11, 61, 92, .08); border: 1px solid #e3edf2; }
.elementor.elementor .pill-links a:hover { color: var(--sunset); }
.elementor.elementor .callout { background: var(--sand); border-left: 6px solid var(--sun); border-radius: 14px; padding: 22px 26px; margin-top: 26px; }
.elementor.elementor .callout b { color: var(--navy); }
.elementor.elementor .callout p { margin: 6px 0 0; color: var(--ink); }
.elementor.elementor .urgent { background: var(--navy); color: #fff; border-radius: 18px; padding: 24px 26px; margin-top: 28px; }
.elementor.elementor .urgent b { color: var(--sun); font-family: Fraunces, Georgia, serif; }
.elementor.elementor .urgent ul { margin: 10px 0 0; padding-left: 20px; }
.elementor.elementor .urgent li { margin: 4px 0; }
.elementor.elementor .band-contact { background: linear-gradient(120deg, var(--navy), var(--ocean)); color: #fff; text-align: center; }
.elementor.elementor .band-contact h2,
.elementor.elementor .band-contact h2.elementor-heading-title { color: #fff; }
.elementor.elementor .band-contact p { color: #e6f6f7; }
.elementor.elementor .info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
.elementor.elementor .info-grid.two { grid-template-columns: repeat(2, 1fr); max-width: 820px; margin-left: auto; margin-right: auto; }
.elementor.elementor .info-box { background: #fff; border-radius: var(--radius); padding: 26px; box-shadow: 0 6px 22px rgba(11, 61, 92, .08); border-top: 6px solid var(--teal); }
.elementor.elementor .info-box:nth-child(2),
.elementor.elementor .elementor-widget:nth-child(2) > .info-box { border-top-color: var(--teal); }
.elementor.elementor .info-box:nth-child(3),
.elementor.elementor .elementor-widget:nth-child(3) > .info-box { border-top-color: var(--teal); }
.elementor.elementor .info-box h3,
.elementor.elementor .info-box h3.elementor-heading-title { margin-bottom: 8px; }
.elementor.elementor .info-box p { color: var(--muted); margin: 0; }
.elementor.elementor .info-box a { color: var(--ocean); font-weight: 700; text-decoration: none; }
.elementor.elementor .gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 40px; }
.elementor.elementor .gallery-grid img { width: 100%; height: 220px; object-fit: cover; border-radius: 16px; }
.elementor.elementor .simple-form { background: #fff; border-radius: 22px; padding: 30px; box-shadow: var(--shadow); }
.elementor.elementor .simple-form label { display: block; font-size: .88rem; font-weight: 600; color: var(--navy); margin: 14px 0 6px; }
.elementor.elementor .simple-form input,
.elementor.elementor .simple-form select,
.elementor.elementor .simple-form textarea { width: 100%; font: inherit; font-size: 1rem; padding: 12px 14px; border-radius: 12px; border: 2px solid #d6e4ec; background: #fbfdfe; }
.elementor.elementor .simple-form textarea { min-height: 110px; }
.elementor.elementor .simple-form .btn,
.elementor.elementor .simple-form .bw-btn .elementor-button { width: 100%; justify-content: center; margin-top: 18px; background: var(--navy); color: #fff; }
.elementor.elementor .staging-note { font-size: .85rem; color: var(--muted); margin-top: 12px; }
@media (max-width: 960px) {
  .elementor.elementor .two-col,
  .elementor.elementor .info-grid,
  .elementor.elementor .info-grid.two { grid-template-columns: 1fr; }
  .elementor.elementor .gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
.elementor.elementor .pill-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.elementor.elementor .gallery-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 40px; }
.elementor.elementor .gallery-strip img { width: 100%; height: 240px; object-fit: cover; border-radius: 16px; }
.elementor.elementor .band-contact .big-phone { color: var(--sun); text-shadow: none; }
@media (max-width: 960px) {
  .elementor.elementor .two-col { grid-template-columns: 1fr; }
  .elementor.elementor .gallery-strip { grid-template-columns: 1fr; }
  .elementor.elementor .gallery-strip img { height: 200px; }
}
/* Palm Bay and pumping pages keep their link pills left-aligned. */
.elementor.elementor :is(.pg-palm-bay, .pg-septic-tank-pumping) .pill-links { justify-content: normal; }
/* Spam trap field on the lead forms. */
.elementor.elementor .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* 3. Former inline styles. */
.elementor.elementor .cx.u-ncelps, .elementor.elementor .elementor-widget.u-ncelps { align-self:flex-start !important }
.elementor.elementor .cx.u-1n9rl6c, .elementor.elementor .elementor-widget.u-1n9rl6c { flex-grow:1 !important; flex-basis:0% !important }
.elementor.elementor .cx.u-4zwf7q, .elementor.elementor .elementor-widget.u-4zwf7q { padding-top:0 !important }
.elementor.elementor .cx.u-45sqh0, .elementor.elementor .elementor-widget.u-45sqh0 { background:#d7f4f1 !important; color:#0b766d !important }
.elementor.elementor .cx.u-fkp2kp, .elementor.elementor .elementor-widget.u-fkp2kp { background:#ffefc7 !important; color:#8a5a00 !important }
.elementor.elementor .cx.u-c1rulh, .elementor.elementor .elementor-widget.u-c1rulh { background:#e2f5d6 !important; color:#2f6d17 !important }
.elementor.elementor .cx.u-jwbfwb, .elementor.elementor .elementor-widget.u-jwbfwb { margin-top:28px !important }
.elementor.elementor .cx.u-id1w33, .elementor.elementor .elementor-widget.u-id1w33 { margin:0 !important }
.elementor.elementor .cx.u-uetfah, .elementor.elementor .elementor-widget.u-uetfah { margin-top:0 !important }
.elementor.elementor .u-na2mkp img { width:100% !important; border-radius:14px !important; aspect-ratio:4/5 !important; object-fit:cover !important; margin-bottom:16px !important }
.elementor.elementor .cx.u-1sa9wcr, .elementor.elementor .elementor-widget.u-1sa9wcr { display:flex !important; gap:12px !important; justify-content:center !important; flex-wrap:wrap !important }
.elementor.elementor .cx.u-1srajnp, .elementor.elementor .elementor-widget.u-1srajnp { max-width:860px !important; margin:36px auto 0 !important }
.elementor.elementor .cx.u-jwd2sx, .elementor.elementor .elementor-widget.u-jwd2sx { margin-top:44px !important }
.elementor.elementor .cx.u-jo4rek, .elementor.elementor .elementor-widget.u-jo4rek { padding-top:20px !important }
.elementor.elementor .cx.u-1epswsd, .elementor.elementor .elementor-widget.u-1epswsd { box-shadow:var(--shadow) !important }
.elementor.elementor .u-15ycqqd img { aspect-ratio:16/10 !important }
.elementor.elementor .cx.u-jwbpyv, .elementor.elementor .elementor-widget.u-jwbpyv { margin-top:24px !important }
.elementor.elementor .cx.u-jw9bkk, .elementor.elementor .elementor-widget.u-jw9bkk { margin-top:36px !important }
.elementor.elementor .cx.u-nflk0, .elementor.elementor .elementor-widget.u-nflk0 { grid-template-columns:1fr !important; margin-top:0 !important }
.elementor.elementor .cx.u-jw7mvs, .elementor.elementor .elementor-widget.u-jw7mvs { margin-top:18px !important }
