/* ==========================================================
   PROGETTO: TUO METABOLISMO
   File: style.css
========================================================== */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@100..1000&display=swap');
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@100..1000&family=Montserrat:wght@100..900&display=swap');

/* ==========================================================
   VARIABILI
========================================================== */

:root{

    /* ---------- Colori principali ---------- */

    --primary-color:#1E9E98;
	--primary-color-medium: #57B8B3;
    --primary-color-rgb:0,150,136;
	--primary-title:#076787; /* #007386; */

    --primary-color-light:#8FD2CD;
    --primary-color-light-rgb:95,180,175;
	--primary-color-extralight-rgb:125,205,200;
	--primary-color-extralight1-rgb:185,235,255;
	--primary-color-superlight-rgb:235,245,255;
	

    --primary-dark:#17857F;
	--primary-dark-saturated:#098882;
	--secondary-dark:#5C7A99;
    --primary-light:#E8F7F6;

    /* ---------- Colori secondari ---------- */

    --secondary-color:#2C3E50;
    --tertiary-color:#5C7A99;

    --heading-color:#486C92; /* #5C7A99; */

    --primary-text:#315D70;

    /* ---------- Sfondi ---------- */

    --background-color:#FFFFFF;
    --background-light:#F7F9FA;

    /* ---------- Bordi ---------- */

    --border-color:#DDE5E8;

    /* ---------- Stati ---------- */

    --success-color:#28A745;
    --warning-color:#F4A825;
    --danger-color:#D9534F;

    /* ---------- Ombre ---------- */

    --shadow-light:0 4px 12px rgba(0,0,0,.08);
    --shadow-medium:0 8px 24px rgba(0,0,0,.12);

    /* ---------- Raggi ---------- */

    --radius-small:8px;
    --radius-medium:12px;
    --radius-large:18px;
    --radius-verylarge:24px;

    /* ---------- Controlli ---------- */

    accent-color:var(--primary-color);

}


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

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Montserrat',sans-serif;
	font-weight:480;

    font-size:17px;
    line-height:1.7;

    color:var(--primary-text);
    background-color: white;

}

/* ==========================================================
   Tipografia
========================================================== */
h1{
	position:relative;
	font-size:38px;
    text-align:center;
	color: var(--primary-title);
}


h2,h3 {color: #315D70;}

a.link {
    color: #087f8c;
    text-decoration: underline;
    cursor: pointer;
}

a.link:hover {
    color: #075b68;
}

a.link:focus-visible {
    outline: 2px solid #087f8c;
    outline-offset: 2px;
}



/* ==========================================================
   ELEMENTI BASE
========================================================== */

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.btn{

    cursor:pointer;

}


input,
select {
    width: 100%;
    box-sizing: border-box;

    padding: 10px 12px;

    font-family: inherit;
    font-size: 1rem;
    line-height: 1.4;

    border: 1px solid #ccc;
    border-radius: 6px;

    background-color: #fff;
    color: #315D70;
}

input:focus,
select:focus {
    outline: none;
    border-color: #666;
}

input:disabled,
select:disabled {
    background-color: #f5f5f5;
    color: #777;
}

input:hover,
select:hover{

    border-color:var(--primary-color);

}

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

.container{

    width:min(1200px,88%);
    margin:0 auto;

}


/* ==========================================================
   HEADER
========================================================== */

.site-header{

    position:sticky;
    top:0;

    z-index:1000;

 /*   background:rgba(255,255,255,.96); */
	background: linear-gradient(
        to bottom,
        #FFFFFF 0%,
        #FFFFFF 48%,
		#E9EEF0  90%,
		transparent 98%,
		transparent 100%
/*
#E9EEF0


#E7ECED


#E4E9EA


#E2E7E8 */
    );

    backdrop-filter:blur(12px);

 /*   border-bottom:3px dashed #B8E3E0;  */
	
	

}

.site-header::after {
    content: "";
    position: absolute;
    left: 15%;
    bottom: 0;
    width: 70%;
    height: 2px;

    
	
/*	background: repeating-linear-gradient( to right, #87CF89 8px, #86BDB9 20px, #daebe9 46px, transparent 54px ); */
	
	
}

.navbar{

    display:flex;

    justify-content:space-between;
    align-items:center;

    height:80px;

}


/* ==========================================================
   LOGO
========================================================== */

.logo img{

    display:block;

    width:auto;
    max-height:64px;
    margin-right:6px;
}


/* ==========================================================
   NAVIGAZIONE
========================================================== */

nav ul{

    display:flex;

    align-items:center;
    gap:36px;

    list-style:none;

}

nav a{

    color:var(--heading-color);

    font-size:19px;
    font-weight:550;
	font-family: "DM Sans", sans-serif;

    text-decoration:none;

    transition:.25s;

}

nav a.active {
    position: relative;
	display: inline-block;
	color:var(--primary-color);
	font-weight:600;
}

nav a.active::before {
    content: "";

    position: absolute;
    left: -24px;
    top: 40%;

    transform: translateY(-50%);

    width: 22px;
    height: 22px;
	
	opacity:0.8;

   

   background-image: url("../assets/about-trail.png");
background-repeat: no-repeat;
background-position: center;
background-size: 100% 100%;
}



nav a:hover{

    color:var(--primary-color-light);

}

nav a.active:hover{

    transform:scale(1.02);

}
nav a.active:hover::before {
    border-left-color: var(--primary-color-light);
}

nav li{

    transition:
        transform .2s ease;

    transform-origin:center;

}

nav li:hover{

    transform:scale(1.05);

}


/* ==========================================================
   DROPDOWN MENU
   ========================================================== */

nav li.dropdown {
    position: relative;
    transform: none;
}

nav li.dropdown:hover {
    transform: none;
}

nav .dropdown-menu {
    display: none;

    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);

    min-width: 220px;
    padding: 8px 0;

    background: #fff;
    border: 1px solid #edf2f7;
    border-radius: 10px;

    box-shadow: 0 8px 20px rgba(0,0,0,.10);

    flex-direction: column;
    gap: 0;

    z-index: 1001;
}

nav li.dropdown:hover > .dropdown-menu {
    display: flex;
}

nav .dropdown-menu li {
    width: 100%;
    transform: none;
}

nav .dropdown-menu li:hover {
    transform: none;
}

nav .dropdown-menu a {
    display: block;
    padding: 10px 18px;

    font-size: 16px;
    font-weight: 550;
    white-space: nowrap;
}

nav .dropdown-menu a:hover {
    background: var(--primary-light);
}


/* ==========================================================
   MENU HAMBURGER
========================================================== */

.menu-toggle{

    display:none;

    align-items:center;
    justify-content:center;

    width:48px;
    height:48px;

    background:none;
    border:none;

    font-size:2rem;
    color:var(--primary-color);

    cursor:pointer;

}

/* ==========================================================
   BOTTONI
========================================================== */

.btn{

    display:inline-flex;

    align-items:center;
    justify-content:center;

    padding:10px 28px;

    border-radius:var(--radius-large);

    text-decoration:none;
    font-weight:580;

    box-shadow:0 4px 14px rgba(0,0,0,.30);

    transition:.20s;

}

.btn-primary{

    background:var(--primary-color);
    color:#fff;

}

.btn-primary:hover{

    transform:translateY(-2px);

    box-shadow:0 10px 25px rgba(var(--primary-color-rgb),.20);

}

.btn-secondary{

    background:#fff;

    color:var(--primary-text);

    border:1px solid var(--primary-text);

}

.btn-secondary:hover{
	border:1px solid var(--primary-color);


}



/* ==========================================================
   HERO (COMUNE)
========================================================== */

.hero{

    position:relative;

    padding:60px 0;

}

.hero-content{

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:30px;

}

.hero-text{

    display:flex;

    flex-direction:column;

}

.hero h1{

    margin-bottom:22px;

    font-size:38px;
    line-height:1.2;
    font-weight:700;

}

.hero p{

    margin-bottom:35px;

    font-size:18px;

    color:#64748b;

}

.hero-buttons{

    margin-top:10px;
    margin-left:320px;

}


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

.hero-image{

    display:flex;

    justify-content:center;
    align-items:flex-start;

    padding-top:0;
    padding-right:20px;

    cursor:pointer;

    transition:transform .30s ease;

}

.hero-image-link{

    display:block;

}

.hero-image img{

    display:block;

    width:100%;
    height:auto;

}

.hero-image:hover{

    transform:scale(1.02);

}


/* ==========================================================
   SCROLL INDICATOR
========================================================== */

.hero-scroll{

    position:absolute;

    left:50%;
    bottom:-20px;

    transform:translateX(-50%);

    display:flex;

    flex-direction:column;

    align-items:center;
    justify-content:center;

    width:80px;
    height:80px;

    color:var(--primary-color);
	font-weight:450;

    text-decoration:none;

    opacity:.75;

    cursor:pointer;

    z-index:100;

    transition:.25s;

    animation:bounce 2s infinite;

}

.hero-scroll:hover{

    opacity:1;

    color:var(--primary-color-light);

}

.hero-scroll-text{

    display:flex;

    align-items:center;
    justify-content:center;

    width:100%;
    min-height:2.5rem;

    text-align:center;

    line-height:1.2;

    font-size:15px;
    font-weight:600;

}

.hero-scroll svg{

    display:block;

    width:26px;
    height:26px;

}

/* ==========================================================
   CARD
========================================================== */

.card-grid{

    display:grid;

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

    gap:30px;

}

.card{

    padding:36px;

    background:#fff;

    border:1px solid #edf2f7;
    border-radius:20px;

    box-shadow:0 8px 25px rgba(0,0,0,.04);

    transition:.30s;

}

.card:hover{

    transform:translateY(-6px);

    box-shadow:0 18px 40px rgba(0,0,0,.08);

}

.card img{

    width:60px;

    margin-bottom:22px;

}

.card h3{

    margin-bottom:15px;

    font-size:23px;

}




/* ==========================================================
   SECTIONS
========================================================== */

section{

    padding:64px 0;

    scroll-margin-top:25px;

}

.section-main{

  padding: 40px 0px 24px 0px;

}

.section-outlined{

  border-bottom:2px solid #1E9E98;

}

.section-title{

    margin-bottom:55px;

    text-align:center;

    font-size:32px;

}

.section-title-outlined{

	border-bottom:2px solid var(--primary-color);
}


/* ==========================================================
   FOOTER
========================================================== */

footer{

    padding:70px 0 40px;

    text-align:center;

    background:#fff;

    border-top:1px solid #edf2f7;

}

.footer-content{

    display:flex;

    flex-direction:column;

    align-items:center;

}

.footer-logo{

    width:auto;
    height:90px;

    margin-bottom:22px;

}

.footer-description{

    max-width:650px;

    margin-bottom:35px;

    

}

.footer-nav{

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:28px;

    margin-bottom:35px;

}

.footer-nav a{

    color:var(--heading-color);

    font-weight:600;

    text-decoration:none;

    transition:.25s;

}

.footer-nav a:hover{

    color:var(--primary-color-light);

}

.copyright{

    color:#64748b;

    font-size:15px;

    line-height:1.8;

}

.copyright a{

    color:var(--primary-color);

    text-decoration:none;

}

/* ==========================================================
   AUTENTICAZIONE
========================================================== */

#auth-login-layer {
    position: fixed;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

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

    background: rgba(0, 0, 0, 0.35);

    z-index: 2000;
}

#auth-login-box {
    width: 360px;
    max-width: calc(100% - 40px);

    padding: 30px;

    background: #fff;

    border-radius: 10px;

    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.18);

    text-align: center;
}

#auth-login-title {
    font-size: 22px;
    font-weight: 600;

    color: var(--heading-color);

    margin-bottom: 10px;
}

#auth-login-message {
    font-size: 14px;

    color: #666;

    margin-bottom: 25px;
}

#auth-google-button {
    display: flex;
    justify-content: center;
}

/* ==========================================================
   RICORDAMI
========================================================== */

#auth-remember-label{

    display:flex;

    align-items:center;
    justify-content:center;

    gap:8px;

    margin:16px 0;

    font-size:14px;
    color:var(--text-color);

    cursor:pointer;
}

#auth-remember{

    width:16px;
    height:16px;

    margin:0;

    cursor:pointer;

}

.auth-user {
    position: relative;
    width: 130px;
    flex-shrink: 0;

    margin-left: 8px;
    padding-left: 10px;

    border-left: 1px solid rgba(0, 0, 0, 0.10);
	
	font-family: "DM Sans", sans-serif;
}

.auth-user button {
    display: flex;
    align-items: center;

    width: 100%;

    padding: 4px 0;

    border: none;
    background: transparent;

    font-family: inherit;
    color: var(--heading-color);

    cursor: pointer;
}

.auth-user-info {
    display: flex;
    align-items: center;
    gap: 6px;

    min-width: 0;
    flex: 1;
}

.auth-user-icon {
    width: 20px;
    height: 20px;

    flex-shrink: 0;
}

.auth-user-icon svg {
    width: 20px;
    height: 20px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;

    stroke-linecap: round;
    stroke-linejoin: round;
}

.auth-user-name {
    min-width: 0;

    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;

    font-size: 13px;
    font-weight: 500;
}

.auth-user-arrow {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 20px;
    height: 20px;

    margin-left: 6px;

    flex-shrink: 0;
}

.auth-user-arrow svg {
    width: 10px;
    height: 6px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;

    stroke-linecap: round;
    stroke-linejoin: round;
}


.auth-user-dropdown {
    display: none;

    position: absolute;

    top: 100%;
    right: 0;

    min-width: 120px;

    padding: 8px 0;

    background: #fff;

    border: 1px solid #edf2f7;

    border-radius: 10px;

    box-shadow: 0 8px 20px rgba(0, 0, 0, .10);

    z-index: 1001;
}

.auth-user-dropdown.active {
    display: block;
}

.auth-user .auth-logout {
    width: 100%;
	box-sizing:border-box;

    padding: 10px 18px;

    border: none;
    background: transparent;

    text-align: left;

    font-family: inherit;
    font-size: 16px;
    font-weight: 550;

    color: var(--heading-color);

    cursor: pointer;
}

.auth-logout:hover {
    background: var(--primary-light);
    border-radius: 0;
}



/* Icona piano */
.service-plan {
    display: none;

    width: 32px;
    height: 32px;

    margin-left: 10px;

    vertical-align: middle;
}



.service-plan::before {
    content: "";

    display: block;

    width: 100%;
    height: 100%;

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

/* FREE */
.service-plan-FREE {
    display: inline-flex;
}
.service-plan-FREE::before {
    background-image: url("../assets/plan-free.svg");
}

/* PLUS */
.service-plan-PLUS {
    display: inline-flex;
}
.service-plan-PLUS::before {
    background-image: url("../assets/plan-plus.svg");
}

/* PRO */
.service-plan-PRO {
    display: inline-flex;
}
.service-plan-PRO::before {
    background-image: url("../assets/plan-pro.svg");
}
/* ==========================================================
   POPUP
========================================================== */

.popup-message{

    position:fixed;

    min-width:320px;
    max-width:600px;

    padding:14px 22px;

    background:var(--primary-title);
    color:#fff;

    border-radius:10px;

    text-align:center;

    font-size:.95rem;
    line-height:1.5;

    box-shadow:0 8px 20px rgba(0,0,0,.25);

    opacity:0;
    visibility:hidden;

    transition:opacity .25s ease;

    z-index:9999;

}

.popup-message-show{

    opacity:0.8;
    visibility:visible;

}


/* ==========================================================
   SHARE
========================================================== */

.share-floating{

    position:fixed;

    right:20px;
    bottom:20px;

    display:flex;

    align-items:center;
    gap:8px;

    padding:6px 8px;

    background:rgba(255,255,255,.22);

    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);

    border:1.5px solid var(--primary-color);

    border-radius:28px;

    box-shadow:0 0 18px rgba(30,158,152,.10);

    opacity:.9;

    transition:.25s;

    z-index:9999;

}

.share-floating:hover{

    background:rgba(255,255,255,.35);

    box-shadow:0 0 24px rgba(30,158,152,.16);

}

.share-btn{

    display:flex;

    align-items:center;
    justify-content:center;

    color:var(--primary-color);

    opacity:.95;

    transition:.20s;

}

.share-btn img{

    width:40px;
    height:40px;

    display:block;

}

.share-btn:hover{

    opacity:1;

    transform:scale(1.12);

}


/* ==========================================================
   ANIMAZIONI
========================================================== */

@keyframes bounce{

    0%,20%,50%,80%,100%{

        transform:translateX(-50%) translateY(0);

    }

    40%{

        transform:translateX(-50%) translateY(6px);

    }

    60%{

        transform:translateX(-50%) translateY(3px);

    }

}

@keyframes floating{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-6px);

    }

    100%{

        transform:translateY(0);

    }

}

/* ==========================================================
   VARIANTE TEST — TuoMetabolismo più deciso
   Mantiene invariata l'identità cromatica.
   ========================================================== */

/* Tipografia: più presenza e gerarchia */
body {
    font-weight: 500;
}

h1 {
    font-weight: 750;
    letter-spacing: -0.4px;
}

h2,
h3 {
    font-weight: 700;
}

/* Header e navigazione */
nav a {
    font-weight: 600;
}

nav a.active {
    font-weight: 700;
}

/* Campi: maggiore definizione, senza cambiare il linguaggio cromatico */
input,
select {
    border: 1px solid #BFCFD4;
    border-radius: 8px;
}

input:focus,
select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(30, 158, 152, .10);
}

/* Bottoni: più solidi e meno "morbidi" */
.btn {
    font-weight: 700;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .18);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(30, 158, 152, .22);
}

/* Card: struttura più netta, mantenendo leggerezza */
.card {
    border: 1px solid #D7E2E5;
    border-radius: 16px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .055);
}

.card h3 {
    font-weight: 700;
}

/* Titoli di sezione */
.section-title {
    font-weight: 700;
}

/* Footer e piccoli elementi: più leggibilità */
.footer-nav a {
    font-weight: 650;
}
