/* =====================================================
   AKEELA DENTAL CARE
   ENDODONTICS PAGE
===================================================== */

:root {

    --ed-teal: #009DA5;
    --ed-teal-dark: #007F86;
    --ed-orange: #F3754B;

    --ed-ink: #173B3D;
    --ed-text: #627778;
    --ed-muted: #7C9091;

    --ed-soft: #EAF8F8;
    --ed-offwhite: #F7FAFA;

    --ed-line: #DCEBEC;
    --ed-white: #FFFFFF;

    --ed-black: #102D2F;

    --ed-ease: cubic-bezier(.16,1,.3,1);
}


/* =====================================================
   RESET
===================================================== */

.ed-hero *,
.ed-intro *,
.ed-modern *,
.ed-needs *,
.ed-experience *,
.ed-contact *,
.ed-final * {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
}


/* =====================================================
   CONTAINER
===================================================== */

.ed-container {
    width: min(1180px, calc(100% - 80px));
    margin: 0 auto;
}


/* =====================================================
   HERO
===================================================== */

.ed-hero {

    position: relative;

    min-height: 690px;

    overflow: hidden;

    background: #10383A;

    color: #fff;
}


.ed-hero-image,
.ed-hero-overlay {
    position: absolute;
    inset: 0;
}


.ed-hero-image img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    transform: scale(1.03);

    transition:
        transform 1.4s var(--ed-ease);
}


.ed-hero:hover .ed-hero-image img {
    transform: scale(1.055);
}


.ed-hero-overlay {

    background:
        linear-gradient(
            90deg,
            rgba(6,39,41,.94) 0%,
            rgba(6,39,41,.78) 35%,
            rgba(6,39,41,.38) 70%,
            rgba(6,39,41,.12) 100%
        );
}


.ed-hero-inner {

    position: relative;
    z-index: 2;

    min-height: 690px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}


.ed-hero-kicker {

    display: flex;
    align-items: center;
    gap: 12px;

    margin-bottom: 26px;

    color: var(--ed-orange);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 3px;
}


.ed-hero-kicker span {

    width: 38px;
    height: 1px;

    background: var(--ed-orange);
}


.ed-hero h1 {

    max-width: 900px;

    margin: 0;

    font-family: Georgia, serif;

    font-size: clamp(58px, 7vw, 96px);

    font-weight: 400;

    line-height: .92;

    letter-spacing: -2.5px;
}


.ed-hero h1 em {

    display: block;

    color: var(--ed-orange);

    font-style: italic;
}


.ed-hero-inner > p {

    max-width: 575px;

    margin: 31px 0 0;

    color: rgba(255,255,255,.78);

    font-size: 15px;

    line-height: 1.85;
}


.ed-hero-actions {

    display: flex;

    gap: 11px;

    margin-top: 32px;
}


.ed-btn-primary,
.ed-btn-secondary {

    min-height: 49px;

    padding: 0 22px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 12px;

    font-size: 10px;
    font-weight: 800;

    transition:
        transform .3s ease,
        background-color .3s ease,
        border-color .3s ease;
}


.ed-btn-primary {

    background: var(--ed-orange);

    color: #fff;
}


.ed-btn-secondary {

    border: 1px solid rgba(255,255,255,.32);

    color: #fff;
}


.ed-btn-primary:hover,
.ed-btn-secondary:hover {

    transform: translateY(-3px);
}


.ed-btn-primary span,
.ed-btn-secondary span {

    font-size: 15px;

    color: #fff;
}


.ed-btn-secondary span {
    color: var(--ed-orange);
}


.ed-hero-meta {

    position: absolute;

    left: 0;
    right: 0;
    bottom: 28px;

    padding-top: 18px;

    border-top:
        1px solid
        rgba(255,255,255,.22);

    display: flex;
    align-items: center;

    gap: 15px;

    color: rgba(255,255,255,.52);

    font-size: 8px;
    font-weight: 800;

    letter-spacing: 2px;
}


.ed-hero-meta i {

    width: 4px;
    height: 4px;

    border-radius: 50%;

    background: var(--ed-orange);
}


/* =====================================================
   LABEL
===================================================== */

.ed-label {

    display: flex;
    align-items: center;

    gap: 12px;

    color: var(--ed-teal);

    font-size: 9px;

    font-weight: 800;

    letter-spacing: 2.4px;
}


.ed-label span {

    width: 34px;
    height: 1px;

    flex-shrink: 0;

    background: var(--ed-orange);
}


.ed-label-light {
    color: rgba(255,255,255,.72);
}


/* =====================================================
   INTRO
===================================================== */

.ed-intro {

    padding: 140px 0;

    background: var(--ed-white);
}


.ed-intro-grid {

    display: grid;

    grid-template-columns: .88fr 1.12fr;

    gap: 95px;

    align-items: center;
}


.ed-intro-visual {

    position: relative;
}


.ed-intro-image {

    position: relative;

    width: 100%;

    aspect-ratio: 4 / 4.9;

    overflow: hidden;

    border-radius: 7px;

    background: var(--ed-soft);

    box-shadow:
        0 28px 75px
        rgba(16,45,47,.13);
}


.ed-intro-image img {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform .8s var(--ed-ease);
}


.ed-intro-image:hover img {
    transform: scale(1.045);
}


.ed-image-caption {

    position: absolute;

    left: 20px;
    right: 20px;
    bottom: 20px;

    padding-top: 17px;

    border-top:
        1px solid
        rgba(255,255,255,.4);

    display: flex;

    justify-content: space-between;

    gap: 15px;

    color: #fff;

    font-size: 8px;

    font-weight: 800;

    letter-spacing: 1.5px;
}


.ed-intro-content h2 {

    margin: 27px 0 24px;

    font-family: Georgia, serif;

    font-size: clamp(39px, 4.7vw, 58px);

    font-weight: 400;

    line-height: 1;

    letter-spacing: -1.5px;
}


.ed-intro-content h2 em {

    display: block;

    color: var(--ed-orange);

    font-style: italic;
}


.ed-intro-content p {

    max-width: 630px;

    margin: 0 0 18px;

    color: var(--ed-text);

    font-size: 14px;

    line-height: 1.9;
}


.ed-intro-content .ed-lead {

    color: #354D4E;

    font-size: 18px;

    line-height: 1.7;
}


.ed-divider {

    width: 100%;
    height: 1px;

    margin: 35px 0 22px;

    background: var(--ed-line);
}


.ed-info-list {

    display: flex;

    flex-direction: column;
}


.ed-info-item {

    display: grid;

    grid-template-columns: 42px 1fr;

    gap: 16px;

    padding: 17px 0;

    border-bottom:
        1px solid
        var(--ed-line);
}


.ed-number {

    color: var(--ed-orange);

    font-family: Georgia, serif;

    font-size: 19px;
}


.ed-info-item strong {

    display: block;

    margin-bottom: 5px;

    color: var(--ed-ink);

    font-size: 13px;
}


.ed-info-item p {

    margin: 0;

    font-size: 12px;

    line-height: 1.7;
}


/* =====================================================
   MODERN ENDODONTICS
===================================================== */

.ed-modern {

    padding: 125px 0;

    background: var(--ed-soft);
}


.ed-modern-grid {

    display: grid;

    grid-template-columns: .82fr 1.18fr;

    gap: 100px;

    align-items: start;
}


.ed-modern-heading h2 {

    margin: 27px 0 0;

    font-size: clamp(38px, 4.6vw, 56px);

    line-height: .98;

    font-weight: 500;

    letter-spacing: -1.5px;
}


.ed-modern-heading h2 em {

    display: block;

    color: var(--ed-orange);

    font-family: Georgia, serif;

    font-weight: 400;
}


.ed-modern-content > p {

    margin: 0 0 18px;

    color: var(--ed-text);

    font-size: 14px;

    line-height: 1.9;
}


.ed-modern-content .ed-large {

    color: #334B4C;

    font-size: 19px;

    line-height: 1.7;
}


.ed-process {

    margin-top: 38px;

    border-top:
        1px solid
        rgba(0,157,165,.2);
}


.ed-process-row {

    display: grid;

    grid-template-columns: 52px 1fr;

    gap: 20px;

    padding: 25px 0;

    border-bottom:
        1px solid
        rgba(0,157,165,.2);
}


.ed-process-row > span {

    color: var(--ed-orange);

    font-family: Georgia, serif;

    font-size: 23px;
}


.ed-process-row strong {

    display: block;

    color: var(--ed-ink);

    font-size: 14px;
}


.ed-process-row p {

    margin: 7px 0 0;

    color: var(--ed-text);

    font-size: 12px;

    line-height: 1.75;
}


/* =====================================================
   NEEDS
===================================================== */

.ed-needs {

    padding: 130px 0;

    background: #fff;
}


.ed-needs-header {

    display: grid;

    grid-template-columns: 1fr .75fr;

    gap: 100px;

    align-items: end;

    margin-bottom: 58px;
}


.ed-needs-header h2 {

    max-width: 680px;

    margin: 27px 0 0;

    font-size: clamp(40px, 4.8vw, 58px);

    font-weight: 500;

    line-height: .98;

    letter-spacing: -1.5px;
}


.ed-needs-header h2 em {

    display: block;

    color: var(--ed-teal);

    font-family: Georgia, serif;

    font-weight: 400;
}


.ed-needs-header > p {

    margin: 0;

    color: var(--ed-text);

    font-size: 13px;

    line-height: 1.85;
}


.ed-needs-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);
}


.ed-needs-grid article {

    min-height: 280px;

    padding: 32px 27px;

    border-top:
        1px solid
        var(--ed-line);

    border-right:
        1px solid
        var(--ed-line);

    transition:
        transform .35s var(--ed-ease),
        background-color .3s ease;
}


.ed-needs-grid article:first-child {

    border-left:
        1px solid
        var(--ed-line);
}


.ed-needs-grid article:hover {

    transform: translateY(-6px);

    background: var(--ed-offwhite);
}


.ed-needs-grid article > span {

    color: var(--ed-orange);

    font-family: Georgia, serif;

    font-size: 22px;
}


.ed-needs-grid h3 {

    margin: 42px 0 12px;

    color: var(--ed-ink);

    font-size: 18px;
}


.ed-needs-grid p {

    margin: 0;

    color: var(--ed-text);

    font-size: 12px;

    line-height: 1.8;
}


/* =====================================================
   EXPERIENCE
===================================================== */

.ed-experience {

    position: relative;

    min-height: 570px;

    display: flex;

    align-items: center;

    overflow: hidden;

    background: #12383A;

    color: #fff;
}


.ed-experience-image,
.ed-experience-overlay {

    position: absolute;

    inset: 0;
}


.ed-experience-image img {

    width: 100%;
    height: 100%;

    object-fit: cover;
}


.ed-experience-overlay {

    background:
        linear-gradient(
            90deg,
            rgba(0,65,70,.96) 0%,
            rgba(0,65,70,.76) 45%,
            rgba(0,65,70,.38) 100%
        );
}


.ed-experience-inner {

    position: relative;

    z-index: 2;
}


.ed-experience-content {

    max-width: 650px;

    padding: 105px 0;
}


.ed-experience-content h2 {

    margin: 26px 0 22px;

    font-family: Georgia, serif;

    font-size: clamp(42px, 5vw, 60px);

    font-weight: 400;

    line-height: .97;

    letter-spacing: -1.5px;
}


.ed-experience-content h2 em {

    display: block;

    color: var(--ed-orange);

    font-style: italic;
}


.ed-experience-content > p {

    max-width: 585px;

    margin: 0;

    color: rgba(255,255,255,.72);

    font-size: 14px;

    line-height: 1.9;
}


.ed-experience-stat {

    display: flex;

    align-items: center;

    gap: 20px;

    margin-top: 46px;

    padding-top: 22px;

    border-top:
        1px solid
        rgba(255,255,255,.22);
}


.ed-experience-stat strong {

    color: var(--ed-orange);

    font-family: Georgia, serif;

    font-size: 40px;

    font-weight: 400;
}


.ed-experience-stat span {

    max-width: 250px;

    color: rgba(255,255,255,.62);

    font-size: 10px;

    line-height: 1.6;
}


/* =====================================================
   CONTACT
===================================================== */

.ed-contact {

    padding: 120px 0;

    background: var(--ed-offwhite);
}


.ed-contact-head h2 {

    margin: 26px 0 52px;

    font-size: clamp(40px, 4.7vw, 58px);

    line-height: .98;

    font-weight: 500;

    letter-spacing: -1.5px;
}


.ed-contact-head h2 em {

    color: var(--ed-orange);

    font-family: Georgia, serif;

    font-weight: 400;
}


.ed-contact-grid {

    display: grid;

    grid-template-columns:
        repeat(3,1fr);
}


.ed-contact-card {

    min-height: 245px;

    padding: 31px;

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    background: #fff;

    border:
        1px solid
        var(--ed-line);

    transition:
        transform .4s var(--ed-ease),
        box-shadow .4s ease;
}


.ed-contact-card:hover {

    transform: translateY(-7px);

    box-shadow:
        0 25px 55px
        rgba(18,56,56,.1);
}


.ed-contact-icon {

    width: 43px;
    height: 43px;

    display: grid;

    place-items: center;

    margin-bottom: 28px;

    border-radius: 50%;

    background: var(--ed-soft);

    color: var(--ed-orange);

    font-size: 15px;
}


.ed-contact-card small {

    color: var(--ed-orange);

    font-size: 8px;

    font-weight: 800;

    letter-spacing: 2px;
}


.ed-contact-card strong {

    margin-top: 11px;

    color: var(--ed-ink);

    font-size: 15px;

    line-height: 1.5;
}


.ed-contact-card > span:last-child {

    margin-top: 7px;

    color: var(--ed-text);

    font-size: 11px;

    line-height: 1.65;
}


/* =====================================================
   FINAL CTA
===================================================== */

.ed-final {

    position: relative;

    min-height: 500px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    color: #fff;
}


.ed-final-bg,
.ed-final-overlay {

    position: absolute;

    inset: 0;
}


.ed-final-bg img {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}


.ed-final-overlay {

    background:
        linear-gradient(
            90deg,
            rgba(4,44,47,.96),
            rgba(4,44,47,.77)
        );
}


.ed-final-content {

    position: relative;

    z-index: 2;

    width: min(820px, calc(100% - 40px));

    text-align: center;
}


.ed-final-content > span {

    color: var(--ed-orange);

    font-size: 9px;

    font-weight: 800;

    letter-spacing: 3px;
}


.ed-final-content h2 {

    margin: 23px 0 20px;

    font-family: Georgia, serif;

    font-size: clamp(42px, 6vw, 63px);

    font-weight: 400;

    line-height: .95;

    letter-spacing: -2px;
}


.ed-final-content h2 em {

    display: block;

    color: var(--ed-orange);

    font-style: italic;
}


.ed-final-content p {

    max-width: 570px;

    margin: 0 auto;

    color: rgba(255,255,255,.7);

    font-size: 13px;

    line-height: 1.8;
}


.ed-final-actions {

    display: flex;

    justify-content: center;

    gap: 11px;

    margin-top: 31px;
}


.ed-final-primary,
.ed-final-secondary {

    min-height: 49px;

    padding: 0 24px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 11px;

    font-size: 10px;

    font-weight: 800;
}


.ed-final-primary {

    background: var(--ed-orange);

    color: #fff;
}


.ed-final-secondary {

    border:
        1px solid
        rgba(255,255,255,.35);

    color: #fff;
}


.ed-final-primary span {

    font-size: 15px;
}


/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width: 1000px) {

    .ed-container {
        width: calc(100% - 50px);
    }

    .ed-intro-grid,
    .ed-modern-grid {
        gap: 60px;
    }

    .ed-needs-header {
        gap: 55px;
    }

    .ed-needs-grid {
        grid-template-columns: 1fr 1fr;
    }

    .ed-needs-grid article:nth-child(2) {
        border-right: 0;
    }

    .ed-needs-grid article:nth-child(3),
    .ed-needs-grid article:nth-child(4) {
        border-top: 0;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 700px) {

    .ed-container {
        width: calc(100% - 36px);
    }


    .ed-hero,
    .ed-hero-inner {
        min-height: 600px;
    }


    .ed-hero h1 {
        font-size: 49px;
    }


    .ed-hero-inner > p {
        font-size: 13px;
    }


    .ed-hero-actions {
        flex-direction: column;

        align-items: flex-start;
    }


    .ed-hero-meta {
        flex-wrap: wrap;
    }


    .ed-intro,
    .ed-modern,
    .ed-needs,
    .ed-contact {
        padding: 85px 0;
    }


    .ed-intro-grid,
    .ed-modern-grid,
    .ed-needs-header {
        display: block;
    }


    .ed-intro-visual {
        margin-bottom: 60px;
    }


    .ed-intro-content h2,
    .ed-modern-heading h2,
    .ed-needs-header h2,
    .ed-contact-head h2 {
        font-size: 40px;
    }


    .ed-needs-header > p {
        margin-top: 28px;
    }


    .ed-needs-grid {
        grid-template-columns: 1fr;
    }


    .ed-needs-grid article,
    .ed-needs-grid article:nth-child(2),
    .ed-needs-grid article:nth-child(3),
    .ed-needs-grid article:nth-child(4) {

        border-left: 1px solid var(--ed-line);

        border-right: 1px solid var(--ed-line);

        border-top: 1px solid var(--ed-line);

    }


    .ed-needs-grid article:last-child {
        border-bottom: 1px solid var(--ed-line);
    }


    .ed-experience {
        min-height: 520px;
    }


    .ed-experience-content {
        padding: 80px 0;
    }


    .ed-experience-stat {
        flex-direction: column;

        align-items: flex-start;

        gap: 8px;
    }


    .ed-contact-grid {
        grid-template-columns: 1fr;
    }


    .ed-contact-card {
        min-height: 205px;
    }


    .ed-final {
        min-height: 470px;
    }


    .ed-final-content h2 {
        font-size: 42px;
    }


    .ed-final-actions {
        flex-direction: column;

        align-items: center;
    }

}