* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

:root {
    --ff-poppins-base: 'Poppins', sans-serif;
    --fs-base: 1.3rem;
    --fs-primary: 3.2rem;
    --fs-secondary: 2.5rem;
    --fs-tertiary: 1.6rem;
    --margin-p-bottom: 5rem;
    --lh-p: 2.2rem;

    --clr-bg-main : #F6F8F8;
    --clr-bg-nav: rgba(255, 255, 255, 0.9);
    --clr-text-main : rgb(85, 90, 90);

    --clr-primary: #235C58;
    --clr-primary-dark: #163E3B;
    --clr-accent: #4FA79D;
    --clr-accent-dark: #38867D;
    --clr-accent-light: #E4F3F1;

    --clr-h1: var(--clr-primary);
    --clr-h2: var(--clr-primary);
    --clr-h3: var(--clr-primary-dark);
    --clr-nav-link: var(--clr-primary);
    --clr-nav-link-hover: var(--clr-accent-dark);

    --margin-h1-bottom: 1rem;
    --margin-h2-bottom: 5rem;
    --margin-h3-bottom: 1rem;
    
    --fw-p: 400;
    --fw-h1: 800;    
    --fw-h2: 500;    
    --fw-h3: 600;    
    
    --width-box-servizi: 20rem; 
    --clr-box-bg-servizi: white;
    --clr-box-bg-medici: white;
    --clr-shadow: 0 10px 30px rgba(22, 62, 59, 0.1);
    --clr-bg-footer: var(--clr-primary-dark);
}


body {
    background-color: var(--clr-bg-main);
    color: var(--clr-text-main);
    font-family: var(--ff-poppins-base) !important;
    font-weight: var(--fw-p);
    font-size: var(--fs-base) !important;
}

/* index.html */

.index-bg {
    /* background-color: white; */
    width: 100%;
    height: 100vh;
    background: 
    /* top, transparent red, faked with gradient */ 
    linear-gradient(
      rgba(255, 255, 255, 0.65), 
      rgba(255, 255, 255, 0.65)
    ),
    /* bottom, image */
    url(images/mare1.jpg);
    /* background: -webkit-linear-gradient(to right, #243B55, #141E30);  /* Chrome 10-25, Safari 5.1-6 */
    /* background: linear-gradient(to right, #243B55, #141E30); W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
    background-size:cover;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: -1000;
}

.btn-enter-site {
    max-width: 22rem;
    border: 0;
    outline: none;
    transition: all .5s ease-in-out;
}
.btn-enter-site:hover {
    transform: scale(1.1);
}


/* home.html */

h1 {
    color: var(--clr-h1);
    font-size: var(--fs-primary);
    font-weight: var(--fw-h1);
    margin-bottom: var(--margin-h1-bottom);
}

h2 {
    color: var(--clr-h2);
    font-size: var(--fs-secondary);
    font-weight: var(--fw-h2);
    margin-bottom: var(--margin-h2-bottom);
}

h3 {
    color: var(--clr-h3);
    font-size: var(--fs-tertiary);
    font-weight: var(--fw-h3);
    margin-bottom: var(--margin-h3-bottom);
}

p {
    font-weight: var(--fw-p);
    margin-bottom: var(--margin-p-bottom);
    line-height: var(--lh-p);
}


.navbar {
    background-color: var(--clr-bg-nav) !important;
    min-height: 6rem;
    box-shadow: 0 2px 12px rgba(22, 62, 59, 0.08);
}


#navbar-image {
    max-height: 5.0rem;
    margin-right: 1rem;
}

.nav-link {
    color: var(--clr-nav-link) !important;
    font-weight: 600;
    transition: color .2s ease-in-out;
}

.nav-link:hover,
.nav-item.active .nav-link {
    color: var(--clr-nav-link-hover) !important;
}



.banner {
    position: relative;
    width: 100%;
}

.header {
    margin-top: 7rem;
}
.header-image {
    width: 100%;
}

.hero {
    position: relative;
    margin-top: 6rem;
    height: 70vh;
    min-height: 28rem;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(22, 62, 59, 0.55), rgba(22, 62, 59, 0.8));
}

.hero-content {
    position: relative;
    z-index: 1;
    color: white;
    padding: 2rem;
    max-width: 50rem;
}

.hero-content h1 {
    color: white;
    margin-bottom: 1rem;
}

.hero-subtitle {
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 2rem;
    margin-bottom: 2.5rem;
}

.hero-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.btn-hero {
    display: inline-block;
    padding: .9rem 2.2rem;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 600;
    font-size: var(--fs-base);
    transition: all .3s ease-in-out;
}

.btn-hero-solid {
    background: var(--clr-accent);
    color: white;
}

.btn-hero-solid:hover {
    background: var(--clr-accent-dark);
    color: white;
    transform: translateY(-2px);
}

.btn-hero-outline {
    background: transparent;
    border: 2px solid white;
    color: white;
}

.btn-hero-outline:hover {
    background: white;
    color: var(--clr-primary);
    transform: translateY(-2px);
}

.presentazione {
    max-width: 70rem;
    margin: auto;
    background: white;
    padding: 5rem 2rem;
}

.banner.servizi {
    background:
    linear-gradient(
      rgba(22, 62, 59, 0.75),
      rgba(22, 62, 59, 0.75)
    ),
    url(images/pressumetro.jpg);
    background-size:  cover;
    height: 20rem;
    display: flex;
    align-items: center;
    text-align: left;    
    padding: 5rem;
}


.banner.medici {
    background:
    linear-gradient(
      rgba(22, 62, 59, 0.75),
      rgba(22, 62, 59, 0.75)
    ),
    url(images/bgplants01.jpg);
    background-size:  cover;
    height: 20rem;
    display: flex;
    align-items: center;
    text-align: left;
    padding: 5rem;
}

.banner.servizi > h2,
.banner.medici > h2 {
    color: white;
    margin-bottom: 0;
}

.banner.cartina {
    height: 20rem;
}

.mapouter {
    position: relative;
    height: 100%;
    width: 100%;
}

.gmap_canvas {
    overflow: hidden;
    background: none !important;
    height: 100%;
    width: 100%;
}

.gmap_canvas iframe {
    width: 100%;
    height: 100%;
}

.text-columns {
    columns: 15rem 2;
    column-rule-style: dotted;
    column-rule-color: lightgrey;
    column-gap: 3rem;
}

.btn-prescription {
    display: inline-block;
    padding: 10px 16px;
    background: #f3f4f6;
    color: #1f2937;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    text-decoration: none;
    font-family: var(--ff-poppins-base);
    font-size: 14px;
    font-weight: 600;
}

.navbar-text .btn-prescription {
    margin-left: 12px;
}

.tel-link {
    color: inherit;
    text-decoration: none;
}

.tel-link:hover {
    color: var(--clr-nav-link-hover);
}


/* Servizi section */

.servizi-wrapper {
    max-width: 100%;
    margin: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.servizi-box {
    width: 15rem;
    background-color: var(--clr-box-bg-servizi);
    border-radius: 12px;
    box-shadow: var(--clr-shadow);
    margin: 2rem 1rem;
    padding: 2.5rem 2rem;
    text-align: center;
    cursor: pointer;
    border: 0;
    font-family: inherit;
    color: inherit;
    transition: all .3s ease-in-out !important;
}

.servizi-box i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
    background: var(--clr-accent-light);
    color: var(--clr-accent-dark);
    font-size: 1.6rem !important;
}

.servizi-box:focus-visible {
    outline: 3px solid var(--clr-nav-link-hover);
    outline-offset: 2px;
}

.servizi-box:hover {
    transform: translateY(-.5rem) !important;
    box-shadow: 0 16px 34px rgba(22, 62, 59, 0.18);
}

.servizi-box > h3 {
    font-size: 1.8rem;
    margin: 2rem 0 0;
}

.servizi-wrapper {
    padding-bottom: 3rem;
}


/* Medici section */


.medici-wrapper {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.doctor {
    max-width: 70rem;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    background: var(--clr-box-bg-medici);
    border: none;
    border-radius: 12px;
    box-shadow: var(--clr-shadow);
    margin: 2rem auto;
    overflow: hidden;
    padding: 2rem;
}

.doctor-img {
    width: 12rem;
    padding: 2rem 0;
}

.doc-image {
    width: 100%;
}

.doctor-img.left {
    text-align: left;
    margin-right: 2rem;
}

.doctor-img.right {
    text-align: right;
    margin-left: 2rem;
}

.doctor-text {
    width: 25rem;
    padding: 2rem 0;
}

.doctor-text.left {
    text-align: left;
}

.doctor-text.right {
    text-align: right;
}

.doctor-text > ul > li {
    list-style-type: none;
    font-size: var(--fs-base);
    font-weight: var(--fw-p);
    line-height: 2rem;
}

.doctor-text > h3 {
    font-size: var(--fs-tertiary);
    margin-bottom: 2rem;
}

.btn-more {
    font-size: smaller;
    margin: 2rem 0;
    padding: .6rem 1.4rem;
    border-radius: 50px;
    background-color: var(--clr-primary);
    color: white;
    border: 0;
    transition: all 0.3s ease-in-out;
}

.btn-more:hover, .btn-more:focus {
    color: white;
    background-color: var(--clr-accent-dark);
    outline: none;
}



footer {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    padding: 40px 20px;
    background-color: var(--clr-bg-footer);
    color: rgba(255, 255, 255, 0.85);
}

.footer-box {
    width: 350px;
    margin-top: 20px;
}


footer h3 {
    margin: 10px 0px;
    color: white;
}

footer div > ul > li {
    list-style: none;
    line-height: 1.8rem;
    font-weight: var(--fw-p);
}

footer .tel-link:hover {
    color: var(--clr-accent);
}

footer a {
    color: rgba(255, 255, 255, 0.85);
}

footer a:hover {
    color: var(--clr-accent);
}

.footer-box table {
    width: 320px;
    list-style: none;
    line-height: 1.8rem;
    font-weight: var(--fw-p);
}

@media only screen and (max-width: 450px) {
    .navbar-brand {
        font-size: 75%;
    }
    .navbar-collapse {
        background: var(--clr-bg-nav) !important;
        margin: -.5rem -1rem;
        padding: .5rem 1rem;
    }
    
    h1,h2,h3, p, li, td {
        font-size: smaller;
    } 

    .banner > h2 {
        font-size: 2.5rem;
    }

    .doctor-img.left {
        text-align: center;
        margin-right: 0rem;
    }
    
    .doctor-img.right {
        text-align: center;
        margin-left: 0rem;
    }
    
 
    .doctor-text.left {
        width: 20rem;
        text-align: center;
    }
    
    .doctor-text.right {
        width: 20rem;
        text-align: center;
    }
    
}