/* Compact global style for imPressive Ironing. */

:root {
    --blue: #008edb;
    --blue-dark: #08689e;
    --pink: #e6007e;
    --ink: #222b33;
    --muted: #586573;
    --line: #d8e0e6;
    --soft: #f6f8fa;
    --page-shell-width: 1160px;
    --page-shell-shadow: 0 0 28px rgba(15, 36, 54, 0.12);
}

body {
    color: var(--ink);
    font-size: 15px;
    line-height: 1.48;
}

@media (min-width: 769px) {
    body {
        background: #f3f6f8;
        isolation: isolate;
        position: relative;
    }

    body::before {
        background: #fff;
        box-shadow: var(--page-shell-shadow);
        content: "";
        inset: 0 auto;
        left: 50%;
        max-width: 100%;
        pointer-events: none;
        position: fixed;
        transform: translateX(-50%);
        width: var(--page-shell-width);
        z-index: 0;
    }

    body > header,
    body > main,
    body > section,
    body > footer {
        margin-left: auto;
        margin-right: auto;
        max-width: var(--page-shell-width);
        position: relative;
        z-index: 1;
    }
}

.container {
    max-width: 1060px;
    padding: 14px 18px;
}

.site-header {
    background: #fff;
    border-bottom: 1px solid #e6edf3;
    box-shadow: 0 1px 0 rgba(8, 76, 157, 0.03);
    height: auto;
    padding: 0 24px;
    position: sticky;
    top: 0;
    z-index: 50;
}

.header-flex {
    align-items: center;
    display: flex;
    gap: 28px;
    height: 96px;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 1120px;
    width: 100%;
}

.logo img {
    display: block;
    max-height: 58px;
    width: auto;
}

.main-nav ul {
    align-items: center;
    display: flex;
    gap: 18px;
    margin: 0;
    padding: 0;
}

.main-nav a {
    color: var(--ink);
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.2;
    min-height: 42px;
    padding: 8px 2px;
}

.main-nav a:hover {
    color: var(--blue);
}

.main-nav li:last-child a {
    background: var(--ink);
    border: 1px solid var(--ink);
    border-radius: 9px;
    color: #fff;
    padding: 12px 17px;
}

.main-nav li:last-child a:hover {
    background: var(--blue-dark);
    border-color: var(--blue-dark);
    color: #fff;
}

.hero {
    min-height: 390px;
    padding: 56px 18px;
}

.hero-personal {
    background-position: center center;
}

.hero .container {
    max-width: 760px;
    border: 1px solid rgba(216, 224, 230, 0.9);
    border-radius: 6px;
    padding: 24px 26px;
}

.hero .container img {
    height: 48px !important;
}

.hero h1 {
    color: var(--blue);
    font-size: 2.15rem;
    letter-spacing: 0;
    line-height: 1.08;
    margin-bottom: 6px;
}

::highlight(ii-heading-pink) {
    color: var(--pink);
}

.hero h3 {
    font-size: 1.05rem;
    line-height: 1.28;
    margin-bottom: 8px;
}

.hero p {
    color: var(--muted);
    margin-bottom: 14px;
}

.cta,
.btn-primary {
    background: var(--blue);
    border-radius: 5px;
    box-shadow: none;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 800;
    padding: 10px 18px;
}

.hero .cta,
.hero .btn-primary {
    color: #fff;
}

.cta:hover,
.btn-primary:hover {
    background: var(--blue-dark);
    color: #fff;
}

.hero .cta:hover,
.hero .btn-primary:hover {
    color: #fff;
}

.trust-strip {
    background: #fff;
    border-bottom: 1px solid var(--line);
}

.trust-strip .container {
    padding: 10px 18px;
}

.trust-strip img {
    display: block;
    height: 20px !important;
    margin: 0 auto 3px !important;
}

.trust-strip p {
    color: var(--muted);
    font-size: 0.9rem;
}

.enquiry-steps {
    background: var(--soft);
    border-bottom: 1px solid var(--line);
}

.enquiry-steps .container {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, 1fr);
    padding: 14px 18px;
}

.mini-step {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 10px 12px;
    text-align: left;
}

.mini-step strong {
    color: var(--blue-dark);
    display: block;
    font-size: 0.92rem;
    line-height: 1.2;
    margin-bottom: 3px;
}

.mini-step span {
    color: var(--muted);
    display: block;
    font-size: 0.88rem;
    line-height: 1.35;
}

.popular-enquiries {
    background: #fff;
    border-bottom: 1px solid var(--line);
}

.popular-enquiries .container {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    padding: 10px 18px;
}

.popular-enquiries span {
    color: var(--muted);
    font-weight: 800;
}

.popular-enquiries a {
    background: #eef7fc;
    border: 1px solid #d2e9f6;
    border-radius: 999px;
    color: var(--blue-dark);
    font-size: 0.9rem;
    font-weight: 700;
    padding: 5px 10px;
}

.service-area-strip {
    color: var(--muted);
    margin: 0 auto 16px;
    max-width: 760px;
}

.service-area-strip a {
    font-weight: 800;
}

.faq-list {
    text-align: left;
}

.faq-list h2 {
    text-align: left;
}

.faq-list details,
.faq-list summary,
.faq-list p {
    text-align: left;
}

.faq-list .inquiry-panel {
    text-align: left;
}

.services,
.testimonials,
.pickup {
    padding: 26px 18px;
}

.prices {
    padding: 30px 18px;
}

.prices,
.prices .container,
.services:nth-of-type(even) {
    background: var(--soft);
}

.services h2,
.prices h2,
.testimonials h2,
.testimonials-main h2,
.pickup h2 {
    font-size: 1.65rem;
    line-height: 1.14;
    margin-bottom: 6px;
}

.services h3,
.prices h3,
.testimonials h3 {
    color: var(--blue-dark);
    font-size: 0.98rem;
    line-height: 1.3;
    margin-bottom: 14px;
}

.service-grid,
.price-cards,
.testimonial-grid {
    gap: 12px;
    margin-top: 18px;
}

.service-item,
.price-block,
.card,
.testimonial-item {
    background: #f0f0f0;
    border: 1px solid var(--line);
    border-left: 2px solid var(--blue);
    border-radius: 5px;
    box-shadow: none;
    padding: 15px 16px;
}

.service-item {
    flex-basis: 230px;
}

.service-item img {
    display: block;
    margin: 0 auto 8px;
    max-height: 58px;
}

.service-item h4,
.service-item h3 {
    font-size: 1.02rem;
    line-height: 1.2;
    margin-bottom: 5px;
}

.service-item p,
.testimonial-item p,
.prices p {
    color: var(--muted);
    font-size: 0.94rem;
    line-height: 1.45;
}

#homepage-commercial {
    padding: 22px 18px !important;
}

#homepage-commercial .testimonial-item,
#commercial-services .container > div,
.inquiry-panel {
    border: 1px solid var(--line) !important;
    border-left: 3px solid var(--blue) !important;
    border-radius: 5px !important;
    box-shadow: none !important;
    padding: 18px !important;
}

.price-tables {
    gap: 14px;
}

.price-block h3 {
    font-size: 1.12rem;
    margin-bottom: 9px;
}

.price-block table {
    border-collapse: collapse;
    font-size: 0.92rem;
}

.price-block th,
.price-block td {
    border-color: var(--line);
    padding: 7px 9px;
}

.price-block th {
    background: #eef7fc;
}

.price-cards {
    margin-top: 18px;
}

.stars {
    color: var(--pink);
    letter-spacing: 0;
}

.testimonial-item {
    flex-basis: 280px;
}

.testimonial-item p {
    margin-bottom: 8px;
}

.site-footer {
    background: #1f2933;
    color: #eef3f7;
    padding: 20px 18px;
}

.site-footer .container {
    padding: 0 18px;
}

.site-footer p {
    font-size: 0.9rem;
    margin-bottom: 8px;
}

.site-footer a {
    color: #b9e6ff;
}

#back-to-top {
    border-radius: 5px;
    bottom: 18px;
    padding: 8px 12px;
    right: 18px;
}

@media (max-width: 900px) {
    .container {
        max-width: 100%;
        padding-left: 14px;
        padding-right: 14px;
    }

    .site-header {
        height: auto;
        min-height: 64px;
        padding: 0 14px;
    }

    .header-flex {
        align-items: center;
        flex-wrap: wrap;
        gap: 10px;
        height: auto;
        min-height: 64px;
        padding: 10px 0;
    }

    .logo img {
        max-height: 42px;
    }

    .menu-toggle {
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 5px;
        color: var(--ink);
        display: inline-flex;
        font-size: 1.15rem;
        line-height: 1;
        padding: 7px 10px;
    }

    .main-nav {
        display: none;
        flex-basis: 100%;
        width: 100%;
    }

    .main-nav.open {
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 8px;
        display: block;
        margin-top: 4px;
        padding: 8px;
    }

    .main-nav.open ul {
        display: grid;
        gap: 2px;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }

    .main-nav.open a {
        border-radius: 4px;
        display: block;
        font-size: 0.9rem;
        line-height: 1.2;
        padding: 9px 8px;
        text-align: center;
    }

    .main-nav.open li:last-child a {
        display: block;
        padding: 10px 8px;
    }
}

@media (max-width: 768px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    body {
        font-size: 14.5px;
        line-height: 1.48;
    }

    .hero {
        background-attachment: scroll !important;
        min-height: 330px;
        padding: 34px 10px;
    }

    .hero .container {
        border-radius: 5px;
        padding: 18px 14px;
    }

    .hero .container img {
        height: 42px !important;
        margin-bottom: 6px !important;
    }

    .hero h1 {
        font-size: 1.68rem;
        line-height: 1.08;
        margin-bottom: 6px;
    }

    .hero h3 {
        font-size: 0.96rem;
        line-height: 1.28;
        margin-bottom: 7px;
    }

    .hero p {
        font-size: 0.92rem;
        margin-bottom: 12px;
    }

    .cta,
    .btn-primary {
        max-width: 280px;
        padding: 10px 14px;
        width: 100%;
    }

    .trust-strip .container {
        padding: 9px 12px;
    }

    .trust-strip p {
        font-size: 0.88rem;
        line-height: 1.35;
    }

    .enquiry-steps .container {
        display: grid;
        gap: 8px;
        grid-template-columns: 1fr;
        padding: 10px;
    }

    .mini-step {
        padding: 9px 10px;
    }

    .popular-enquiries .container {
        align-items: flex-start;
        justify-content: flex-start;
        padding: 9px 10px;
    }

    .popular-enquiries span {
        flex-basis: 100%;
        font-size: 0.88rem;
    }

    .popular-enquiries a {
        font-size: 0.84rem;
        padding: 5px 8px;
    }

    .mobile-only-pricing {
        padding: 16px 0;
    }

    .mobile-only-pricing .container {
        padding: 0 10px;
    }

    .quick-pricing-card {
        border-radius: 5px;
        padding: 15px 12px;
    }

    .services,
    .testimonials,
    .pickup,
    .prices {
        padding: 22px 10px;
    }

    .services h2,
    .prices h2,
    .testimonials h2,
    .pickup h2,
    .section-title {
        font-size: 1.38rem;
        line-height: 1.15;
        margin-bottom: 6px;
    }

    .services h3,
    .prices h3,
    .testimonials h3 {
        font-size: 0.94rem;
        margin-bottom: 12px;
    }

    .service-grid,
    .price-cards,
    .testimonial-grid,
    .price-tables {
        display: flex;
        flex-direction: column;
        gap: 9px;
        margin-top: 12px;
        align-items: stretch;
    }

    .service-item,
    .price-block,
    .card,
    .testimonial-item,
    .inquiry-panel {
        border-radius: 5px;
        padding: 13px 12px;
        width: 100%;
    }

    .service-grid .service-item,
    .price-cards .service-item {
        padding: 10px 11px;
    }

    .testimonial-grid .testimonial-item {
        padding: 10px 11px;
    }

    .service-item img {
        max-height: 38px;
        margin-bottom: 4px;
    }

    .service-item h3,
    .service-item h4 {
        font-size: 1rem;
        margin-bottom: 3px;
    }

    .service-item p,
    .testimonial-item p,
    .prices p {
        font-size: 0.9rem;
        line-height: 1.35;
        margin-bottom: 6px;
    }

    .testimonial-item .stars {
        line-height: 1;
        margin-bottom: 4px;
    }

    .testimonial-item .author {
        display: block;
        font-size: 0.86rem;
        line-height: 1.2;
        margin-top: 2px;
    }

    .price-block {
        box-sizing: border-box;
        flex: none;
        max-width: 100%;
    }

    .price-block table {
        font-size: 0.86rem;
        overflow-x: auto;
        table-layout: fixed;
        width: 100%;
    }

    .price-block th,
    .price-block td {
        padding: 6px 7px;
        white-space: nowrap;
    }

    .service-area-strip {
        font-size: 0.9rem;
        line-height: 1.5;
        margin-bottom: 10px;
    }

    .faq-list details {
        padding: 13px 0;
    }

    #sticky-contact {
        left: 10px !important;
        max-height: calc(100vh - 24px);
        overflow-y: auto;
        right: 10px !important;
        top: 12px !important;
        width: auto !important;
    }

    #contact .container > div,
    section[id="contact"] .container > div {
        gap: 14px !important;
    }

    input,
    textarea,
    button {
        font-size: 16px;
    }

    .site-footer {
        padding: 18px 10px;
    }

    .site-footer .container {
        padding: 0 10px;
    }

    .site-footer p,
    .footer-links {
        font-size: 0.86rem;
        line-height: 1.55;
    }

    #back-to-top {
        bottom: 12px;
        padding: 7px 10px;
        right: 12px;
    }
}

@media (max-width: 420px) {
    .main-nav.open ul {
        grid-template-columns: 1fr;
    }

    .hero h1 {
        font-size: 1.52rem;
    }

    .hero h3 {
        font-size: 0.92rem;
    }

    .quick-price-list div,
    .quick-price-grid {
        font-size: 0.9rem;
    }
}
