/* Keep icon libraries from overriding one another inside Elementor widgets. */
.elementor-widget .icon.fa-light::before,
.elementor-widget .icon.fal::before {
    font-family: "Font Awesome 6 Pro" !important;
    font-weight: 300 !important;
}

.elementor-widget .icon.fa-regular::before,
.elementor-widget .icon.far::before {
    font-family: "Font Awesome 6 Pro" !important;
    font-weight: 400 !important;
}

.elementor-widget .icon.fa-solid::before,
.elementor-widget .icon.fas::before,
.fa-sharp.fa-solid::before {
    font-family: "Font Awesome 6 Pro" !important;
    font-weight: 900 !important;
}

.elementor-widget .icon.fa-brands::before,
.elementor-widget .icon.fab::before {
    font-family: "Font Awesome 6 Brands" !important;
    font-weight: 400 !important;
}

/* Elementor renders many modern icons as inline SVG elements. */
.e-font-icon-svg {
    display: inline-block;
    width: 1em;
    height: 1em;
    fill: currentColor;
    vertical-align: -0.125em;
}

.e-font-icon-svg path {
    fill: currentColor;
}

.footer .top .footer-contact-fallback p {
    margin-bottom: 20px;
}

.footer .top .footer-contact-fallback p:last-child {
    margin-bottom: 0;
}

.footer .top .footer-contact-fallback strong,
.footer .top .footer-contact-fallback a {
    color: #ddd;
}

.footer .top .footer-contact-fallback a {
    text-decoration: none;
}

.footer .top .footer-contact-fallback a:hover {
    color: #fff;
}

/* Stable responsive media: content must never push beyond its container. */
html,
body {
    max-width: 100%;
    overflow-x: clip;
}

.elementor img,
.elementor video,
.blog img,
.blog video,
.blog iframe {
    max-width: 100%;
}

/* Contact information cards retain the square premium composition. */
.contact-box .item {
    aspect-ratio: 1 / 0.94;
    min-height: 280px;
}

/* Premium blog listing cards without changing post content or SEO markup. */
.blog:not(.post-page) .row[id^="post-"] .item {
    overflow: hidden;
    margin-bottom: 40px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 14px;
    box-shadow: 0 18px 55px rgba(0, 0, 0, 0.07);
}

.blog:not(.post-page) .row[id^="post-"] .item .img,
.blog:not(.post-page) .row[id^="post-"] .item .img img {
    width: 100%;
    border-radius: 0;
}

.blog:not(.post-page) .row[id^="post-"] .item .img img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.blog:not(.post-page) .row[id^="post-"] .item .wrap {
    padding: 30px 34px 34px;
}

.blog:not(.post-page) .row[id^="post-"] .item .wrap h4 {
    font-size: clamp(25px, 3vw, 36px);
    line-height: 1.18;
}

/* Readable editorial rhythm for articles; fixes imported oversized headings. */
.single-post .blog.post-page > .container {
    max-width: 980px;
}

.single-post .blog.post-page h2 {
    font-size: clamp(32px, 5vw, 52px);
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.single-post .blog.post-page h3 {
    font-size: clamp(25px, 3.5vw, 36px);
    line-height: 1.22;
}

.single-post .blog.post-page p,
.single-post .blog.post-page li {
    font-size: 17px;
    line-height: 1.85;
}

.single-post .blog.post-page ul,
.single-post .blog.post-page ol {
    padding-left: 1.5rem;
    margin-bottom: 28px;
}

.single-post .blog.post-page hr {
    margin: 36px 0;
    border-color: rgba(0, 0, 0, 0.12);
}

@media (max-width: 767px) {
    .contact-box .item {
        aspect-ratio: auto;
        min-height: 250px;
    }

    .blog:not(.post-page) .row[id^="post-"] .item .wrap {
        padding: 24px 22px 28px;
    }

    .single-post .blog.post-page p,
    .single-post .blog.post-page li {
        font-size: 16px;
    }
}

/* Premium shared service presentation. Content and SEO markup stay editable. */
body:has(.airbrush-service-wrap) {
    background: #fff;
}

body .airbrush-service-wrap {
    --service-ink: #171512;
    --service-muted: #716b64;
    --service-accent: #b66772;
    --service-line: rgba(45, 38, 32, 0.12);
    max-width: 1280px;
    padding: 64px 32px 80px;
    color: var(--service-ink);
    font-family: inherit;
}

body .airbrush-hero {
    display: grid;
    grid-template-columns: minmax(360px, 0.92fr) minmax(420px, 1.08fr);
    grid-template-rows: auto auto auto auto;
    column-gap: clamp(54px, 7vw, 110px);
    align-items: center;
    min-height: 610px;
    margin: 0 0 74px;
    padding: 48px clamp(34px, 5vw, 76px);
    overflow: hidden;
    text-align: left;
    background: #fff;
    border: 1px solid var(--service-line);
    border-radius: 24px;
    box-shadow: 0 28px 80px rgba(39, 29, 22, 0.09);
}

body .airbrush-hero::before {
    content: "SIGNATURE SERVICE";
    grid-column: 2;
    align-self: end;
    margin-bottom: 18px;
    color: var(--service-accent);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.24em;
}

body .airbrush-hero img {
    grid-column: 1;
    grid-row: 1 / 5;
    width: 100%;
    max-width: none;
    height: 510px;
    margin: 0;
    object-fit: cover;
    object-position: center top;
    border-radius: 180px 180px 20px 20px;
    box-shadow: 0 24px 55px rgba(30, 23, 18, 0.16);
}

body .airbrush-hero h1 {
    grid-column: 2;
    align-self: center;
    margin: 0;
    color: var(--service-ink);
    font-size: clamp(46px, 5.5vw, 78px);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 0.98;
}

body .airbrush-hero .subtitle {
    grid-column: 2;
    align-self: start;
    max-width: 540px;
    margin-top: 22px;
    color: var(--service-muted);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.75;
}

body .service-hero-action {
    grid-column: 2;
    align-self: start;
    margin-top: 30px;
}

body .service-hero-action a {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 16px 25px;
    color: #fff;
    background: var(--service-ink);
    border: 1px solid var(--service-ink);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform 220ms ease, background 220ms ease, box-shadow 220ms ease;
}

body .service-hero-action a:hover {
    color: #fff;
    background: var(--service-accent);
    border-color: var(--service-accent);
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(182, 103, 114, 0.25);
}

body .airbrush-content {
    padding: clamp(48px, 6vw, 78px);
    margin-bottom: 58px;
    background: #fff;
    border: 1px solid var(--service-line);
    border-radius: 22px;
    box-shadow: 0 20px 60px rgba(39, 29, 22, 0.06);
}

body .airbrush-intro {
    max-width: 920px;
    margin: 0 auto 64px;
    color: #514b45;
    font-size: clamp(17px, 1.55vw, 20px);
    line-height: 1.9;
}

body .airbrush-section-title,
body .airbrush-cta-title {
    margin: 62px 0 38px;
    color: var(--service-ink);
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

body .airbrush-section-title::after,
body .airbrush-cta-title::after {
    width: 44px;
    height: 1px;
    margin-top: 20px;
    background: var(--service-accent);
}

body .airbrush-features {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    margin: 44px 0 74px;
}

body .airbrush-feature {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 220px;
    max-width: none;
    padding: 30px 18px;
    background: #fff;
    border: 1px solid var(--service-line);
    border-radius: 16px;
    box-shadow: none;
}

body .airbrush-feature:hover {
    background: #fff;
    border-color: rgba(182, 103, 114, 0.38);
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(39, 29, 22, 0.09);
}

body .airbrush-feature-icon {
    width: 58px;
    height: 58px;
    margin: 0 0 22px;
    color: transparent;
    font-size: 0;
    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 27px;
    border: 1px solid rgba(182, 103, 114, 0.24);
    border-radius: 50%;
    box-shadow: 0 9px 25px rgba(39, 29, 22, 0.07);
}

body .airbrush-feature:nth-child(1) .airbrush-feature-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b66772' stroke-width='1.6'%3E%3Cpath d='M12 2l1.7 6.3L20 10l-6.3 1.7L12 18l-1.7-6.3L4 10l6.3-1.7L12 2z'/%3E%3Cpath d='M19 16l.8 2.2L22 19l-2.2.8L19 22l-.8-2.2L16 19l2.2-.8L19 16z'/%3E%3C/svg%3E"); }
body .airbrush-feature:nth-child(2) .airbrush-feature-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b66772' stroke-width='1.6'%3E%3Cpath d='M12 3l7 3v5c0 4.6-2.8 8-7 10-4.2-2-7-5.4-7-10V6l7-3z'/%3E%3Cpath d='M8.5 12l2.2 2.2 4.8-5'/%3E%3C/svg%3E"); }
body .airbrush-feature:nth-child(3) .airbrush-feature-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b66772' stroke-width='1.6'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7v5l3.5 2M9 2h6'/%3E%3C/svg%3E"); }
body .airbrush-feature:nth-child(4) .airbrush-feature-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b66772' stroke-width='1.6'%3E%3Cpath d='M4 7h4l1.5-2h5L16 7h4v12H4V7z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E"); }
body .airbrush-feature:nth-child(5) .airbrush-feature-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b66772' stroke-width='1.6'%3E%3Cpath d='M20.8 8.7c0 5-8.8 10.1-8.8 10.1S3.2 13.7 3.2 8.7C3.2 5.6 7 3.8 9.3 6L12 8.5 14.7 6c2.3-2.2 6.1-.4 6.1 2.7z'/%3E%3C/svg%3E"); }

body .airbrush-feature-text {
    color: #4e4944;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.55;
}

body .airbrush-occasions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 42px auto 0;
    max-width: 960px;
}

body .airbrush-occasion {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 92px;
    max-width: none;
    padding: 22px 24px;
    background: #fff;
    border: 1px solid var(--service-line);
    border-left: 1px solid var(--service-line);
    border-radius: 14px;
}

body .airbrush-occasion:hover {
    background: #fff;
    border: 1px solid rgba(182, 103, 114, 0.4);
    box-shadow: 0 14px 32px rgba(39, 29, 22, 0.08);
}

body .airbrush-occasion-text {
    color: #47423d;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
}

body .airbrush-expertise {
    position: relative;
    padding: clamp(54px, 7vw, 88px);
    margin: 0 0 32px;
    overflow: hidden;
    background: linear-gradient(125deg, #171512, #302923);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 22px;
    box-shadow: 0 24px 65px rgba(20, 16, 13, 0.2);
}

body .airbrush-expertise::after {
    content: "17+";
    position: absolute;
    right: 5%;
    bottom: -28%;
    color: rgba(255,255,255,0.045);
    font-size: clamp(150px, 24vw, 300px);
    font-weight: 700;
    line-height: 1;
}

body .airbrush-expertise-text {
    position: relative;
    z-index: 1;
    max-width: 890px;
    margin: auto;
    font-size: clamp(21px, 2.4vw, 30px);
    line-height: 1.55;
}

body .airbrush-expertise strong {
    color: #fff;
    font-size: inherit;
    border-bottom-color: var(--service-accent);
}

body .airbrush-availability {
    padding: 28px 34px;
    margin: 0 0 34px;
    background: #fff;
    border: 0;
    border-radius: 16px;
    font-style: normal;
}

body .airbrush-availability-text {
    color: #4a4039;
    font-size: 16px;
}

body .airbrush-cta {
    margin: 0 0 60px;
    padding: clamp(54px, 7vw, 84px) 24px;
    background: #fff;
    border: 1px solid var(--service-line);
    border-radius: 22px;
}

body .airbrush-cta-title {
    margin-top: 0;
}

body .airbrush-cta-desc {
    color: var(--service-muted);
    font-size: 17px;
    line-height: 1.75;
}

body .airbrush-btn {
    padding: 17px 36px;
    background: var(--service-ink);
    border-radius: 999px;
    box-shadow: 0 12px 28px rgba(23, 21, 18, 0.16);
}

body .airbrush-btn:hover {
    background: var(--service-accent);
    box-shadow: 0 16px 34px rgba(182, 103, 114, 0.25);
}

body .airbrush-service-wrap > .airbrush-section-title + div {
    max-width: 940px !important;
    padding: 0 !important;
}

body .airbrush-service-wrap > .airbrush-section-title + div > ul {
    display: grid;
    gap: 14px;
    line-height: 1.75 !important;
}

body .airbrush-service-wrap > .airbrush-section-title + div > ul > li {
    margin: 0 !important;
    padding: 24px 28px;
    color: #57514b;
    background: #fff;
    border: 1px solid var(--service-line);
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(39, 29, 22, 0.04);
    font-size: 16px;
}

body .airbrush-service-wrap > .airbrush-section-title + div > ul > li > strong:first-of-type {
    color: var(--service-ink);
    font-size: 18px;
}

@media (max-width: 1024px) {
    body .airbrush-hero {
        grid-template-columns: 0.9fr 1.1fr;
        min-height: 520px;
        column-gap: 40px;
        padding: 36px;
    }

    body .airbrush-hero img { height: 430px; }
    body .airbrush-features { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    body .airbrush-service-wrap { padding: 28px 14px 56px; }

    body .airbrush-hero {
        display: flex;
        flex-direction: column;
        min-height: 0;
        margin-bottom: 28px;
        padding: 18px 18px 34px;
        text-align: center;
        border-radius: 18px;
    }

    body .airbrush-hero::before { order: 2; margin: 27px 0 13px; }
    body .airbrush-hero img { order: 1; height: 420px; border-radius: 150px 150px 16px 16px; }
    body .airbrush-hero h1 {
        order: 3;
        width: 100%;
        font-size: clamp(36px, 11vw, 46px);
        white-space: normal;
        overflow-wrap: break-word;
    }
    body .airbrush-hero .subtitle {
        order: 4;
        width: 100%;
        margin-top: 17px;
        font-size: 11px;
        letter-spacing: 0.1em;
        overflow-wrap: anywhere;
    }
    body .service-hero-action { order: 5; margin-top: 24px; }
    body .airbrush-content { padding: 36px 18px; border-radius: 18px; }
    body .airbrush-intro { margin-bottom: 46px; font-size: 17px; text-align: left; }
    body .airbrush-features { grid-template-columns: 1fr; gap: 12px; margin-bottom: 54px; }
    body .airbrush-feature { min-height: 180px; }
    body .airbrush-occasions { grid-template-columns: 1fr; gap: 12px; }
    body .airbrush-occasion { min-height: 78px; }
    body .airbrush-expertise { border-radius: 18px; }
    body .airbrush-expertise-text { font-size: 21px; }
    body .airbrush-service-wrap > .airbrush-section-title + div > ul > li { padding: 22px 20px; }
}
