/* RESET */

*{

margin:0;

padding:0;

box-sizing:border-box;

}

html{

scroll-behavior:smooth;

overflow-x:hidden;

}

body{

background:#F7F9FB;

font-family:"Inter",sans-serif;

color:#243342;

padding-top:90px;

overflow-x:hidden;

}

img{
    max-width:100%;
}


/* CONTAINER */

.container{

width:min(1200px,92%);

margin:auto;

}


/* HEADER */

header{

position:fixed;

top:0;

left:0;

width:100%;

height:90px;

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

backdrop-filter:blur(15px);

display:flex;

align-items:center;

z-index:999;

border-bottom:1px solid #ececec;

}

header .container{

display:flex;

justify-content:space-between;

align-items:center;

}


/* LOGO */

.logo{
    display:flex;
    align-items:center;
    gap:15px;
}

/* Nascondi toggle di default (solo visibile sotto il breakpoint) */
.nav-toggle{display:none}

.logo-circle{
    width:55px;
    height:55px;
    border-radius:50%;
    background:#173B63;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:24px;
    font-weight:bold;
    color:white;
}

.logo-circle img{
    /* Altezza fissa consigliata per coerenza */
    height:48px;
    width:auto;
    display:block;
    object-fit:contain;
    border-radius:50%;
}

/* Responsive: tablet */
@media (max-width: 768px){
    header{height:70px}
    .logo-circle{width:48px;height:48px}
    .logo-circle img{height:40px}
    .logo-text h2{font-size:24px}
    .logo-text span{font-size:12px}
    nav{gap:20px}
    nav a{font-size:14px}
}

/* Responsive: smartphone */
@media (max-width: 480px){
    header{height:64px}
    .logo-circle{width:42px;height:42px}
    .logo-circle img{height:36px}
    .logo-text h2{font-size:18px}
    .logo-text span{font-size:11px}
    nav{gap:12px;flex-wrap:wrap}
    nav a{font-size:13px}

    header.nav-open nav{
        top:64px;
    }
}

@media (max-width: 430px){
    header .container{
        grid-template-columns:minmax(0, 1fr) auto auto;
        gap:6px;
    }

    .logo-circle{
        width:38px;
        height:38px;
    }

    .logo-circle img{
        height:32px;
    }

    .logo-text span{
        display:none;
    }

    .logo-text h2{
        font-size:16px;
        max-width:118px;
    }

    .login{
        padding:8px 12px;
        font-size:13px;
    }

    .user-name{
        display:none;
    }

    .logout{
        padding:8px 11px;
        font-size:12px;
    }
}

.logo-text h2{

font-family:"Cormorant Garamond",serif;

font-size:32px;

color:#173B63;

}

.logo-text span{

font-size:13px;

color:#6b7280;

}


/* MENU */

nav{

display:flex;

gap:40px;
margin:0 auto; /* centra il menu tra logo e login */

}

nav a{

text-decoration:none;

color:#243342;

font-weight:500;

transition:.3s;

}

nav a:hover{

color:#2A9D8F;

}


/* LOGIN */

.login{

padding:12px 28px;

border-radius:50px;

background:#173B63;

color:white;

text-decoration:none;

transition:.3s;

}

.login:hover{

background:#2A9D8F;

}

.user-menu{
    display:flex;
    align-items:center;
    gap:14px;
}

.user-name{
    color:#173B63;
    font-weight:700;
    text-decoration:none;
}

.logout{
    padding:10px 20px;
    border-radius:50px;
    background:#173B63;
    color:white;
    text-decoration:none;
    font-weight:600;
    transition:.3s;
}

.logout:hover{
    background:#2A9D8F;
}


/* HERO */

.hero{

width:min(1200px,92%);

margin:auto;

padding-top:150px;

display:grid;

grid-template-columns:1fr 1fr;

gap:70px;

align-items:center;

min-height:100vh;

}


/* BADGE */

.badge{

display:inline-block;

background:#EAF7F5;

padding:10px 18px;

border-radius:50px;

color:#2A9D8F;

font-weight:600;

margin-bottom:25px;

}


/* TITOLO */

.hero h1{

font-family:"Cormorant Garamond",serif;

font-size:72px;

line-height:1;

color:#173B63;

margin-bottom:30px;

}


/* TESTO */

.hero p{

font-size:20px;

line-height:1.8;

color:#5b6772;

margin-bottom:40px;

}


/* BOTTONI */

.hero-buttons{

display:flex;

gap:20px;

}

.primary{

padding:18px 34px;

background:#2A9D8F;

border-radius:50px;

text-decoration:none;

color:white;

font-weight:600;

transition:.3s;

}

.primary:hover{

transform:translateY(-3px);

}

.secondary{

padding:18px 34px;

border:2px solid #173B63;

border-radius:50px;

text-decoration:none;

color:#173B63;

transition:.3s;

}

.secondary:hover{

background:#173B63;

color:white;

}


/* IMMAGINE */

.hero-image{

border-radius:25px;

overflow:hidden;

box-shadow:0 25px 60px rgba(0,0,0,.15);

}

.hero-image img{

width:100%;

display:block;

}


/* RESPONSIVE */

@media(max-width:950px){

    .hero{
        grid-template-columns:1fr;
        text-align:center;
        gap:40px;
    }

    .hero-buttons{
        justify-content:center;
    }

    /* Mobile: hide nav by default and show hamburger */
    nav{
        display:none;
    }

    header .container{
        display:grid;
        grid-template-columns:minmax(0, 1fr) auto auto;
        gap:10px;
        align-items:center;
        position:relative;
    }

    .logo{
        min-width:0;
        gap:10px;
    }

    .logo-text{
        min-width:0;
    }

    .logo-text h2,
    .logo-text span{
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .nav-toggle{
        display:flex;
        position:static;
        transform:none;
        background:none;
        border:none;
        width:42px;
        height:42px;
        align-items:center;
        justify-content:center;
        cursor:pointer;
        z-index:1000;
        grid-column:2;
        grid-row:1;
    }
    .nav-toggle{padding:0;outline:none;border-radius:0}

    .nav-toggle span{
        display:block;
        width:24px;
        height:3px;
        background:#173B63;
        margin:4px 0;
        border-radius:2px;
        transition:transform .25s, opacity .25s;
    }

    /* SVG hamburger styles */
    .nav-toggle svg{
        width:28px;
        height:20px;
        display:block;
    }

    .nav-toggle .line{
        fill:#173B63;
        transition: transform .25s ease, opacity .25s ease;
        transform-origin: 12px 9px;
    }

    /* transform lines into an X when open */
    header.nav-open .nav-toggle .l1{
        transform: translateY(8px) rotate(45deg);
    }
    header.nav-open .nav-toggle .l2{
        opacity:0;
    }
    header.nav-open .nav-toggle .l3{
        transform: translateY(-8px) rotate(-45deg);
    }

    .login{
        grid-column:3;
        grid-row:1;
        padding:10px 16px;
        font-size:14px;
        white-space:nowrap;
    }

    .user-menu{
        grid-column:3;
        grid-row:1;
        gap:8px;
        min-width:0;
    }

    .user-name{
        max-width:86px;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        font-size:14px;
    }

    .logout{
        padding:9px 14px;
        font-size:13px;
        white-space:nowrap;
    }

    /* When header has .nav-open show nav as overlay */
    header.nav-open nav{
        display:flex;
        flex-direction:column;
        align-items:center;
        position:fixed;
        top:70px;
        left:0;
        width:100%;
        background:white;
        padding:18px 20px;
        box-shadow:0 12px 30px rgba(0,0,0,.12);
        z-index:998;
    }

    header.nav-open nav a{
        padding:12px 0;
        border-bottom:1px solid #f1f1f1;
        text-align:center;
        width:100%;
    }

    .hero h1{
        font-size:48px;
    }

    .why-grid{
        grid-template-columns:1fr;
        gap:40px;
        text-align:center;
    }

    .quote{
        padding:42px;
    }

}


/* ===================================== */
/* PENSIERI */
/* ===================================== */

.featured{

    padding:120px 0;

}

.section-title{

    text-align:center;

    margin-bottom:70px;

}

.section-title span{

    color:#2A9D8F;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:2px;

}

.section-title h2{

    font-family:"Cormorant Garamond",serif;

    font-size:58px;

    color:#173B63;

    margin:15px 0;

}

.section-title p{

    color:#6B7280;

    font-size:18px;

}

.cards{

    display:grid;

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

    gap:35px;

}

.card{

    background:white;

    padding:35px;

    border-radius:22px;

    transition:.35s;

    box-shadow:0 15px 45px rgba(0,0,0,.08);

    border:1px solid #ECECEC;

}

.card:hover{

    transform:translateY(-10px);

}

.category{

    display:inline-block;

    background:#EAF7F5;

    color:#2A9D8F;

    padding:8px 14px;

    border-radius:30px;

    margin-bottom:20px;

    font-size:13px;

    font-weight:600;

}

.card h3{

    color:#173B63;

    margin-bottom:18px;

    font-size:26px;

}

.card p{

    color:#6B7280;

    margin-bottom:25px;

}

.card a{

    color:#173B63;

    font-weight:600;

}

.card:hover a{

    color:#2A9D8F;

}
/* ============================= */

.why{

    padding:140px 0;

}

.why-grid{

    display:grid;

    grid-template-columns:1.4fr .9fr;

    gap:70px;

    align-items:center;

}

.small-title{

    color:#2A9D8F;

    text-transform:uppercase;

    font-weight:700;

    letter-spacing:2px;

}

.why h2{

    font-family:"Cormorant Garamond",serif;

    font-size:58px;

    color:#173B63;

    margin:20px 0 30px;

}

.why p{

    font-size:19px;

    color:#66727F;

    line-height:1.9;

    margin-bottom:25px;

}

.quote{

    background:white;

    border-radius:25px;

    padding:70px;

    box-shadow:0 20px 60px rgba(0,0,0,.08);

    position:relative;

}

.quote::before{

    content:"“";

    position:absolute;

    top:20px;

    left:30px;

    font-size:110px;

    color:#2A9D8F;

    opacity:.2;

    font-family:serif;

}

.quote span{

    font-family:"Cormorant Garamond",serif;

    font-size:38px;

    line-height:1.3;

    color:#173B63;

}
nav a.active{

    color:#2A9D8F;

    font-weight:700;

}

nav a.active::after{

    width:100%;

}

.site-footer{

    background:#173B63;

    color:white;

    padding:80px 0 30px;

    margin-top:120px;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr;

    gap:60px;

    align-items:start;

}

.footer-grid h3{

    font-size:32px;

    margin-bottom:20px;

    font-family:"Cormorant Garamond",serif;

}

.footer-grid h4{

    margin-bottom:20px;

}

.footer-grid a{

    display:block;

    margin-bottom:12px;

    color:#DCE6EF;

    text-decoration:none;

    transition:.3s;

}

.footer-grid a:hover{

    color:white;

}

.footer-grid p{

    color:#DCE6EF;

}

.social-links{
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:20px;
}

.social-links a{
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:0;
    border:1px solid rgba(255,255,255,.24);
    border-radius:50%;
    color:#DCE6EF;
}

.social-links a:hover{
    background:#2A9D8F;
    border-color:#2A9D8F;
    color:white;
}

.social-links svg{
    width:19px;
    height:19px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.social-links a:nth-child(2) svg,
.social-links a:nth-child(3) svg{
    fill:currentColor;
    stroke:none;
}

.footer-account-social{
    min-width:0;
}

.footer-account-social .social-links{
    flex-direction:row;
    gap:12px;
}

.footer-bottom{

    margin-top:60px;

    padding-top:28px;

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

    text-align:center;

}

.footer-bottom p{

    opacity:.7;

    font-size:14px;

}

.footer-bottom p a,
.footer-grid a,
.footer-grid a:hover {
    color: white !important;
}

.footer-bottom p a:hover {
    opacity: 0.85;
}

.cookie-preferences-overlay {
    position: fixed;
    inset: 0;
    display: none;
    justify-content: center;
    align-items: center;
    background: rgba(0, 0, 0, 0.65);
    z-index: 9999;
    padding: 18px;
}

.cookie-preferences-overlay.open {
    display: flex;
}

.cookie-preferences-modal {
    width: min(520px, calc(100% - 32px));
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    background: #ffffff;
    color: #243342;
    border-radius: 20px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
    padding: 28px;
    position: relative;
}

.cookie-preferences-modal h3 {
    margin-bottom: 12px;
    font-size: 24px;
}

.cookie-preferences-modal p {
    margin-bottom: 20px;
    color: #4b5563;
}

.cookie-preferences-modal .preference-group {
    margin-bottom: 20px;
    padding: 18px;
    border-radius: 16px;
    border: 1px solid #dfe3eb;
    background: #f9fbff;
}

.cookie-preferences-modal label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    font-size: 0.95rem;
    color: #334155;
}

.cookie-preferences-modal button {
    border: none;
    border-radius: 999px;
    padding: 12px 24px;
    background: #173b63;
    color: white;
    cursor: pointer;
    font-weight: 700;
    transition: background .2s ease;
}

.cookie-preferences-modal button:hover {
    background: #0f2f52;
}

.cookie-preferences-modal .close-cookie-preferences {
    position: absolute;
    top: 18px;
    right: 18px;
    background: transparent;
    color: #334155;
    font-size: 1.4rem;
    border: none;
    cursor: pointer;
}

@media(max-width:768px){

    body{
        padding-top:70px;
    }

    .hero{
        width:min(100% - 32px, 520px);
        min-height:auto;
        padding-top:86px;
        padding-bottom:70px;
        display:block;
    }

    .badge{
        margin-bottom:18px;
        font-size:13px;
    }

    .hero h1{
        font-size:44px;
        line-height:1.04;
        margin-bottom:22px;
    }

    .hero p{
        font-size:17px;
        line-height:1.7;
        margin-bottom:30px;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:stretch;
        gap:14px;
    }

    .hero-buttons .primary,
    .hero-buttons .secondary{
        width:100%;
        text-align:center;
        padding:16px 22px;
    }

    .why{
        padding:72px 0;
    }

    .why h2,
    .section-title h2{
        font-size:42px;
        line-height:1.08;
    }

    .why p{
        font-size:17px;
        line-height:1.75;
    }

    .quote{
        padding:34px 26px;
        border-radius:18px;
    }

    .quote span{
        font-size:28px;
        line-height:1.22;
    }

    .featured{
        padding:72px 0;
    }

    .section-title{
        margin-bottom:38px;
    }

    .section-title p{
        font-size:16px;
        line-height:1.7;
    }

    .post-card{
        padding:24px;
        border-radius:18px;
    }

    .post-card h3{
        font-size:28px;
    }

    .card-footer{
        flex-direction:column;
        gap:8px;
    }

    body.home::before{
        height:760px;
        background:
            linear-gradient(
                to bottom,
                rgba(247,249,251,.06) 0%,
                rgba(247,249,251,.22) 52%,
                rgba(247,249,251,.82) 86%,
                #F7F9FB 100%
            ),
            url("../img/hero.jpg") center top / cover no-repeat;
    }

}

@media(max-width:480px){

    body{
        padding-top:64px;
    }

    .hero{
        width:min(100% - 28px, 420px);
        padding-top:74px;
    }

    .hero h1{
        font-size:38px;
    }

    .hero p{
        font-size:16px;
    }

    .why h2,
    .section-title h2{
        font-size:36px;
    }

    .quote span{
        font-size:24px;
    }

}
/* PAGINA CHI SONO */

.page-hero{

padding:180px 0 100px;

text-align:center;

}

.page-badge{

display:inline-block;

padding:8px 18px;

background:#EAF7F5;

color:#2A9D8F;

border-radius:30px;

font-weight:600;

margin-bottom:20px;

}

.page-hero h1{

font-family:"Cormorant Garamond",serif;

font-size:70px;

color:#173B63;

margin-bottom:25px;

}

.page-hero p{

max-width:750px;

margin:auto;

font-size:22px;

color:#66727F;

line-height:1.8;

}

.about-story{

padding:120px 0;

}

.about-grid{

display:grid;

grid-template-columns:1fr 1fr;

gap:80px;

align-items:center;

}

.about-photo img{

width:100%;

border-radius:25px;

box-shadow:0 20px 60px rgba(0,0,0,.15);

}

.about-grid h2{

font-size:52px;

font-family:"Cormorant Garamond",serif;

color:#173B63;

margin-bottom:25px;

}

.about-grid p{

font-size:19px;

line-height:1.9;

margin-bottom:20px;

color:#66727F;

}

.values{

padding:120px 0;

background:white;

}

.values h2{

text-align:center;

font-size:52px;

margin-bottom:60px;

font-family:"Cormorant Garamond",serif;

}

.values-grid{

display:grid;

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

gap:30px;

}

.value{

padding:35px;

border-radius:20px;

box-shadow:0 10px 35px rgba(0,0,0,.08);

text-align:center;

}

.cta-about{

padding:140px 0;

text-align:center;

}

.cta-about h2{

font-size:58px;

font-family:"Cormorant Garamond",serif;

margin-bottom:20px;

}

.cta-about p{

font-size:20px;

margin-bottom:40px;

color:#66727F;

}

@media(max-width:768px){

    .page-hero{
        padding:110px 0 64px;
    }

    .page-hero h1{
        font-size:42px;
        line-height:1.08;
    }

    .page-hero p{
        font-size:17px;
        line-height:1.7;
    }

    .about-story{
        padding:70px 0;
    }

    .about-grid{
        grid-template-columns:1fr;
        gap:34px;
    }

    .about-photo{
        order:-1;
    }

    .about-photo img{
        border-radius:18px;
    }

    .about-grid h2{
        font-size:38px;
        line-height:1.1;
    }

    .about-grid p{
        font-size:17px;
        line-height:1.75;
    }

    .values{
        padding:70px 0;
    }

    .values h2{
        font-size:38px;
        margin-bottom:36px;
    }

    .values-grid{
        grid-template-columns:1fr;
        gap:20px;
    }

    .value{
        padding:26px;
    }

    .cta-about{
        padding:76px 0;
    }

    .cta-about h2{
        font-size:38px;
        line-height:1.1;
    }

    .cta-about p{
        font-size:17px;
        line-height:1.7;
    }

}

/* =========================
   PENSIERI PAGE
========================= */

.page-hero{
    padding:160px 0 90px;
    text-align:center;
    background:linear-gradient(180deg,#f7f9fb,#eef5f8);
}

.page-badge{
    display:inline-block;
    padding:10px 18px;
    background:#EAF7F5;
    color:#2A9D8F;
    border-radius:30px;
    font-weight:600;
    margin-bottom:20px;
}

.page-hero h1{
    font-size:64px;
    color:#173B63;
    margin:20px auto;
    max-width:850px;
    font-family:"Cormorant Garamond",serif;
}

.page-hero p{
    max-width:700px;
    margin:0 auto 40px;
    color:#66727F;
    font-size:20px;
    line-height:1.8;
}

.search-area{
    padding:50px 0;
}

.search-box{
    display:flex;
    max-width:900px;
    margin:auto;
    background:#fff;
    border-radius:60px;
    overflow:hidden;
    box-shadow:0 12px 35px rgba(0,0,0,.08);
}

.search-box input{
    flex:1;
    border:none;
    outline:none;
    padding:22px;
    font-size:18px;
}

.search-box button{
    width:90px;
    border:none;
    cursor:pointer;
    color:#fff;
    background:#2A9D8F;
}

.categories{
    padding-bottom:60px;
}

.categories .container{
    display:flex;
    gap:15px;
    flex-wrap:wrap;
    justify-content:center;
}

.cat{
    border:none;
    cursor:pointer;
    padding:14px 24px;
    border-radius:40px;
    background:#fff;
    box-shadow:0 8px 20px rgba(0,0,0,.06);
    transition:.3s;
}

.cat:hover,
.cat.active{
    background:#173B63;
    color:#fff;
}

.featured-story{
    padding:30px 0 90px;
}

.featured-card{
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#fff;
    border-radius:26px;
    overflow:hidden;
    box-shadow:0 18px 45px rgba(0,0,0,.08);
}

.featured-card.no-image{
    grid-template-columns:1fr;
}

.featured-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.featured-content{
    padding:55px;
}

.category{
    display:inline-block;
    padding:8px 16px;
    background:#EAF7F5;
    color:#2A9D8F;
    border-radius:25px;
    font-size:13px;
    font-weight:700;
    margin-bottom:20px;
}

.featured-content h2{
    font-family:"Cormorant Garamond",serif;
    color:#173B63;
    font-size:48px;
    margin-bottom:25px;
}

.featured-content p{
    color:#66727F;
    line-height:1.9;
    margin-bottom:30px;
}

.featured-content a{
    color:#173B63;
    font-weight:700;
    text-decoration:none;
}

.posts{
    padding:20px 0 100px;
}

.posts-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.post-card{
    background:#fff;
    padding:30px;
    border-radius:22px;
    box-shadow:0 12px 30px rgba(0,0,0,.07);
    transition:.3s;
}

.post-card:hover{
    transform:translateY(-8px);
}

.post-card h3{
    margin:18px 0;
    color:#173B63;
    font-size:30px;
    font-family:"Cormorant Garamond",serif;
}

.post-card p{
    color:#66727F;
    line-height:1.8;
}

.card-footer{
    display:flex;
    justify-content:space-between;
    margin:25px 0;
    color:#7d8790;
    font-size:14px;
}

.post-card a{
    color:#173B63;
    font-weight:700;
    text-decoration:none;
}

.pagination{
    display:flex;
    justify-content:center;
    gap:12px;
    margin-top:60px;
}

.pagination a{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#fff;
    text-decoration:none;
    color:#173B63;
    box-shadow:0 6px 18px rgba(0,0,0,.06);
}

.pagination .current{
    background:#173B63;
    color:#fff;
}

.single-thought{
    padding:120px 0;
}

.back-link{
    display:inline-block;
    margin-bottom:30px;
    color:#173B63;
    font-weight:700;
    text-decoration:none;
}

.single-thought-card{
    overflow:hidden;
    background:#fff;
    border-radius:26px;
    box-shadow:0 18px 45px rgba(0,0,0,.08);
}

.single-thought-image img{
    width:100%;
    max-height:480px;
    object-fit:cover;
    display:block;
}

.single-thought-content{
    padding:55px;
}

.single-thought-content h1{
    margin-bottom:25px;
    color:#173B63;
    font-size:58px;
    line-height:1;
    font-family:"Cormorant Garamond",serif;
}

.single-thought-text{
    margin-top:35px;
    color:#465563;
    font-size:19px;
    line-height:1.9;
}

.single-thought-text p{
    margin-bottom:24px;
}

.thought-replies{
    margin-top:50px;
    background:#fff;
    border-radius:26px;
    padding:45px;
    box-shadow:0 18px 45px rgba(0,0,0,.08);
}

.thought-replies h2{
    color:#173B63;
    font-family:"Cormorant Garamond",serif;
    font-size:42px;
    margin-bottom:25px;
}

.reply-notice{
    padding:16px 20px;
    margin-bottom:25px;
    border-radius:14px;
    background:#EAF7F5;
    color:#2A9D8F;
    font-weight:700;
}

.reply-list{
    display:flex;
    flex-direction:column;
    gap:20px;
}

.reply-card{
    padding:24px;
    border:1px solid #E5EAF0;
    border-radius:18px;
    background:#F7F9FB;
}

.reply-meta{
    display:flex;
    justify-content:space-between;
    gap:20px;
    margin-bottom:16px;
    color:#173B63;
}

.reply-meta span,
.reply-empty{
    color:#7d8790;
}

.reply-text{
    color:#465563;
    line-height:1.8;
}

.reply-text p:last-child{
    margin-bottom:0;
}

.reply-form{
    margin-top:35px;
    padding-top:35px;
    border-top:1px solid #E5EAF0;
}

.reply-form label{
    display:block;
    margin-bottom:12px;
    color:#173B63;
    font-weight:700;
}

.reply-form textarea{
    width:100%;
    resize:vertical;
    margin-bottom:20px;
    padding:20px;
    border:1px solid #D7DEE6;
    border-radius:14px;
    font-size:16px;
    line-height:1.7;
    outline:none;
}

.reply-form textarea:focus{
    border-color:#2A9D8F;
    box-shadow:0 0 0 4px rgba(42,157,143,.15);
}

.moderation-page{
    padding:120px 0;
}

.moderation-header{
    margin-bottom:45px;
}

.moderation-header h1{
    margin:18px 0;
    color:#173B63;
    font-size:58px;
    line-height:1;
    font-family:"Cormorant Garamond",serif;
}

.moderation-header p{
    max-width:760px;
    color:#66727F;
    font-size:18px;
    line-height:1.8;
}

.reply-error{
    padding:16px 20px;
    margin-bottom:25px;
    border-radius:14px;
    background:#FDECEC;
    color:#B42318;
    font-weight:700;
}

.moderation-list{
    display:flex;
    flex-direction:column;
    gap:30px;
}

.moderation-card{
    padding:32px;
    background:#fff;
    border-radius:24px;
    box-shadow:0 14px 38px rgba(0,0,0,.07);
}

.moderation-card-header{
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:flex-start;
}

.moderation-card h2{
    margin:12px 0 0;
    color:#173B63;
    font-size:34px;
    font-family:"Cormorant Garamond",serif;
}

.status-pill{
    white-space:nowrap;
    padding:8px 14px;
    border-radius:999px;
    background:#EEF2F6;
    color:#465563;
    font-weight:700;
    font-size:13px;
}

.status-publish{
    background:#EAF7F5;
    color:#2A9D8F;
}

.status-pending{
    background:#FFF7E6;
    color:#B54708;
}

.moderation-meta{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    margin:22px 0;
    color:#7d8790;
    font-size:14px;
}

.moderation-meta a{
    color:#173B63;
    font-weight:700;
    text-decoration:none;
}

.moderation-content{
    padding:24px;
    border-radius:18px;
    background:#F7F9FB;
    color:#465563;
    line-height:1.8;
}

.moderation-replies{
    margin-top:26px;
}

.moderation-replies h3,
.moderation-reply-form label{
    display:block;
    margin-bottom:14px;
    color:#173B63;
    font-weight:700;
}

.moderation-reply{
    padding:18px;
    margin-bottom:14px;
    border:1px solid #E5EAF0;
    border-radius:16px;
}

.moderation-reply span{
    margin-left:10px;
    color:#7d8790;
    font-size:14px;
}

.moderation-reply p{
    margin-top:10px;
    color:#465563;
    line-height:1.7;
}

.moderation-reply-form{
    margin-top:26px;
    padding-top:26px;
    border-top:1px solid #E5EAF0;
}

.moderation-reply-form textarea{
    width:100%;
    resize:vertical;
    margin-bottom:18px;
    padding:18px;
    border:1px solid #D7DEE6;
    border-radius:14px;
    font-size:16px;
    line-height:1.7;
    outline:none;
}

.moderation-reply-form textarea:focus{
    border-color:#2A9D8F;
    box-shadow:0 0 0 4px rgba(42,157,143,.15);
}

.published-label{
    display:inline-flex;
    align-items:center;
    min-height:52px;
    padding:0 18px;
    border-radius:50px;
    background:#EAF7F5;
    color:#2A9D8F;
    font-weight:700;
}

@media(max-width:900px){

.page-hero h1{
    font-size:44px;
}

.page-hero{
    padding:110px 0 64px;
}

.page-hero p{
    font-size:17px;
    line-height:1.7;
}

.footer-grid{
    grid-template-columns:1fr;
    gap:34px;
}

.site-footer{
    padding:60px 0 26px;
}

.featured-card{
    grid-template-columns:1fr;
}

.posts-grid{
    grid-template-columns:1fr;
}

.featured-content{
    padding:35px;
}

.search-box{
    border-radius:18px;
}

.single-thought-content{
    padding:35px;
}

.single-thought-content h1{
    font-size:42px;
}

.thought-replies{
    padding:30px;
}

.reply-meta{
    flex-direction:column;
    gap:6px;
}

.moderation-card-header{
    flex-direction:column;
}

.moderation-header h1{
    font-size:42px;
}
}
/* DISCLAIMER */

.disclaimer-content{

padding:120px 0;

}

.info-box{

background:white;

padding:40px;

margin-bottom:35px;

border-radius:22px;

box-shadow:0 12px 35px rgba(0,0,0,.06);

border-left:6px solid #2A9D8F;

}

.info-box h2{

color:#173B63;

margin-bottom:18px;

font-family:"Cormorant Garamond",serif;

font-size:38px;

}

.info-box p{

color:#66727F;

line-height:1.9;

font-size:18px;

}
/* LOGIN */

.login-page{

min-height:100vh;

display:flex;

justify-content:center;

align-items:center;

padding:150px 0;

}

.login-container{

width:min(1100px,90%);

display:grid;

grid-template-columns:1fr 500px;

gap:80px;

align-items:center;

}

.login-left h1{

font-family:"Cormorant Garamond",serif;

font-size:65px;

color:#173B63;

margin:20px 0;

line-height:1;

}

.login-left p{

font-size:20px;

line-height:1.8;

color:#66727F;

}

.login-card{

background:white;

padding:45px;

border-radius:25px;

box-shadow:0 20px 50px rgba(0,0,0,.08);

}

.login-card h2{

margin-bottom:30px;

color:#173B63;

}

.login-card label{

display:block;

margin-top:20px;

margin-bottom:8px;

font-weight:600;

}

.login-card input{

width:100%;

padding:18px;

border-radius:14px;

border:1px solid #D7DEE6;

font-size:16px;

outline:none;

}

.login-card input:focus{

border-color:#2A9D8F;

}

.remember{

display:flex;

justify-content:space-between;

align-items:center;

margin:20px 0 35px;

font-size:14px;

}

.remember label{

display:flex;

align-items:center;

gap:8px;

margin:0;

}

.remember input{

width:auto;

}

.remember a{

color:#2A9D8F;

text-decoration:none;

}

.register{

margin-top:30px;

text-align:center;

}

.register a{

color:#173B63;

font-weight:700;

text-decoration:none;

}

@media(max-width:900px){

.login-container{

grid-template-columns:1fr;

}

.login-left{

text-align:center;

}

.login-left h1{

font-size:45px;

}

}
.dashboard{

padding:170px 0;

}

.dashboard-header{

display:flex;

justify-content:space-between;

align-items:center;

margin-bottom:60px;

}

.stats{

display:grid;

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

gap:30px;

margin-bottom:70px;

}

.stat{

background:white;

padding:35px;

border-radius:20px;

text-align:center;

box-shadow:0 12px 35px rgba(0,0,0,.08);

}

.stat h2{

font-size:52px;

color:#173B63;

}

.my-posts h2{

margin-bottom:30px;

}

.dashboard-card{

background:white;

padding:30px;

margin-bottom:20px;

border-radius:18px;

display:flex;

justify-content:space-between;

align-items:center;

box-shadow:0 10px 25px rgba(0,0,0,.07);

}

.status{

padding:10px 18px;

border-radius:30px;

font-size:14px;

font-weight:600;

}

.review{

background:#FFF4D8;

color:#D08B00;

}

.published{

background:#EAF7F5;

color:#2A9D8F;

}
/* =====================================================
   SCRIVI UN PENSIERO
===================================================== */

.write-page{

    padding:170px 0 100px;

}

.write-header{

    text-align:center;

    max-width:900px;

    margin:0 auto 70px;

}

.write-header h1{

    font-family:"Cormorant Garamond",serif;

    font-size:64px;

    color:#173B63;

    margin:20px 0;

}

.write-header p{

    font-size:20px;

    color:#66727F;

    line-height:1.8;

}

.editor-layout{

    display:grid;

    grid-template-columns:2fr 380px;

    gap:40px;

    align-items:start;

}

/* =======================================
EDITOR
======================================= */

.editor{

    background:#ffffff;

    padding:45px;

    border-radius:25px;

    box-shadow:0 15px 45px rgba(0,0,0,.08);

}

.editor label{

    display:block;

    font-weight:600;

    color:#173B63;

    margin-top:30px;

    margin-bottom:10px;

}

.editor input[type=text],

.editor select,

.editor input[type=file]{

    width:100%;

    padding:18px;

    border:1px solid #D7DEE6;

    border-radius:14px;

    font-size:16px;

    transition:.3s;

    outline:none;

}

.editor input[type=text]:focus,

.editor select:focus,

.editor input[type=file]:focus,

.editor textarea:focus{

    border-color:#2A9D8F;

    box-shadow:0 0 0 4px rgba(42,157,143,.15);

}

.editor textarea{

    width:100%;

    min-height:420px;

    resize:vertical;

    padding:22px;

    border:1px solid #D7DEE6;

    border-radius:14px;

    font-size:17px;

    line-height:1.8;

    outline:none;

    transition:.3s;

}

.counter{

    text-align:right;

    color:#8A97A5;

    margin-top:10px;

    font-size:14px;

}

/* =======================================
VISIBILITÀ
======================================= */

.visibility{

    display:flex;

    flex-direction:column;

    gap:18px;

    margin-top:20px;

}

.visibility-card{

    display:flex;

    align-items:flex-start;

    gap:18px;

    padding:20px;

    border:2px solid #E5EAF0;

    border-radius:18px;

    cursor:pointer;

    transition:.3s;

    background:#fff;

}

.visibility-card:hover{

    border-color:#2A9D8F;

    transform:translateY(-2px);

}

.visibility-card input{

    margin-top:6px;

}

.visibility-card h3{

    color:#173B63;

    margin-bottom:8px;

    font-size:20px;

}

.visibility-card p{

    color:#66727F;

    line-height:1.6;

}

/* =======================================
CHECKBOX
======================================= */

.editor input[type=checkbox]{

    margin-right:10px;

}

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

.actions{

    display:flex;

    justify-content:flex-end;

    gap:18px;

    margin-top:45px;

    flex-wrap:wrap;

}

.primary{

    padding:16px 32px;

    border:none;

    border-radius:50px;

    background:#2A9D8F;

    color:white;

    cursor:pointer;

    font-size:16px;

    transition:.3s;

}

.primary:hover{

    background:#23867B;

    transform:translateY(-2px);

}

.secondary{

    padding:16px 30px;

    border-radius:50px;

    background:white;

    border:2px solid #173B63;

    color:#173B63;

    cursor:pointer;

    transition:.3s;

}

.secondary:hover{

    background:#173B63;

    color:white;

}

/* =======================================
SIDEBAR
======================================= */

.sidebar{

    display:flex;

    flex-direction:column;

    gap:25px;

}

.info-card{

    background:white;

    padding:30px;

    border-radius:22px;

    box-shadow:0 12px 35px rgba(0,0,0,.06);

}

.info-card h3{

    color:#173B63;

    margin-bottom:18px;

    font-size:24px;

}

.info-card p{

    color:#66727F;

    line-height:1.8;

}

.info-card ul{

    padding-left:20px;

}

.info-card li{

    margin-bottom:12px;

    color:#66727F;

    line-height:1.7;

}

.info-card small{

    color:#8A97A5;

}

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

@media(max-width:1100px){

.editor-layout{

grid-template-columns:1fr;

}

.sidebar{

order:-1;

}

}

@media(max-width:768px){

.write-header h1{

font-size:44px;

}

.write-header p{

font-size:18px;

}

.editor{

padding:25px;

}

.actions{

flex-direction:column;

}

.primary,

.secondary{

width:100%;

}

}
.error-message{

    background:#ffe7e7;

    color:#b00020;

    padding:15px;

    border-radius:12px;

    margin-bottom:20px;

}

.success-message{
    background:#EAF7F5;
    color:#2A9D8F;
    padding:16px 20px;
    border-radius:14px;
    margin-bottom:28px;
    font-weight:700;
}

.password-rules{
    display:block;
    margin-top:8px;
    color:#66727F;
    font-size:13px;
    line-height:1.5;
}

.dashboard{

padding:100px 0;

}

.dashboard-grid{

display:grid;

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

gap:20px;

margin:40px 0;

}

.card{

background:#fff;

padding:30px;

border-radius:20px;

box-shadow:0 10px 25px rgba(0,0,0,.08);

text-align:center;

}

.card h3{

margin-bottom:10px;

}

.card p{

font-size:32px;

font-weight:700;

}
.dashboard-table{

width:100%;

border-collapse:collapse;

margin-top:40px;

background:#fff;

border-radius:20px;

overflow:hidden;

}

.dashboard-table th{

background:#f5f5f5;

padding:18px;

text-align:left;

}

.dashboard-table td{

padding:18px;

border-top:1px solid #eee;

}
body.home::before {
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100vh;
    background:
        linear-gradient(
            to bottom,
            rgba(247,249,251,.10) 0%,
            rgba(247,249,251,.25) 45%,
            rgba(247,249,251,.75) 80%,
            #F7F9FB 100%
        ),
        url("../img/hero.jpg") center top / cover no-repeat;
    z-index:-1;
}

body.home {
    position:relative;
    background:#F7F9FB;
}

body.home header {
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:999;
    background:rgba(255,255,255,.18);
    border-bottom:none;
    backdrop-filter:blur(10px);
}
.hero {
    padding-top:40px;
    min-height:calc(100vh - 90px);
}

@media(max-width:768px){
    .hero{
        width:min(100% - 32px, 520px);
        min-height:auto;
        padding-top:98px;
        padding-bottom:70px;
        display:block;
    }

    body.home::before{
        height:760px;
        background:
            linear-gradient(
                to bottom,
                rgba(247,249,251,.06) 0%,
                rgba(247,249,251,.22) 52%,
                rgba(247,249,251,.82) 86%,
                #F7F9FB 100%
            ),
            url("../img/hero.jpg") center top / cover no-repeat;
    }
}

/* Dashboard */
.dashboard{
    padding:64px 0 100px;
    background:var(--ivory);
}

.dashboard-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:40px;
    margin-bottom:54px;
}

.dashboard-heading h1{
    max-width:760px;
    margin:14px 0 12px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(48px, 5.5vw, 68px);
    font-weight:500;
    line-height:1;
    letter-spacing:-.035em;
}

.dashboard-heading p{
    color:var(--muted);
    font-size:17px;
}

.dashboard-heading .primary{
    flex:0 0 auto;
}

.dashboard-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:18px;
    margin:0 0 76px;
}

.dashboard-grid .dashboard-stat{
    position:relative;
    padding:26px 28px;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:none;
    text-align:left;
}

.dashboard-stat h3{
    margin:0;
    color:var(--muted);
    font-size:11px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.dashboard-stat p{
    margin-top:20px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:52px;
    font-weight:500;
    line-height:1;
}

.dashboard-section-heading{
    display:flex;
    align-items:baseline;
    gap:16px;
    margin-bottom:24px;
}

.dashboard-section-heading .section-number{
    margin:0;
}

.dashboard-section-heading h2{
    color:var(--ink);
    font-family:var(--serif);
    font-size:38px;
    font-weight:500;
}

.dashboard-table-wrap{
    overflow-x:auto;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
}

.dashboard-table{
    min-width:680px;
    margin:0;
    background:transparent;
    border-radius:0;
}

.dashboard-table th{
    padding:15px 22px;
    background:rgba(111,143,130,.08);
    color:var(--muted);
    font-size:10px;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.dashboard-table td{
    padding:19px 22px;
    border-top:1px solid var(--line);
    color:var(--text);
    font-size:14px;
}

.dashboard-table td:first-child{
    color:var(--ink);
    font-weight:600;
}

.dashboard-status{
    display:inline-flex;
    padding:5px 10px;
    border-radius:999px;
    background:#eef1f1;
    color:var(--muted);
    font-size:10px;
    font-weight:700;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.dashboard-status.status-publish{
    background:var(--sage-soft);
    color:#527467;
}

.dashboard-status.status-pending{
    background:#f7ebdf;
    color:#9a644c;
}

/* Moderazione */
.moderation-page{
    padding:64px 0 110px;
    background:var(--ivory);
}

.moderation-header{
    max-width:790px;
    margin-bottom:52px;
}

.moderation-header h1{
    margin:14px 0 20px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(48px, 5.5vw, 68px);
    font-weight:500;
    line-height:1;
    letter-spacing:-.035em;
}

.moderation-header p{
    color:var(--muted);
    font-size:17px;
    line-height:1.8;
}

.reply-notice,
.reply-error{
    padding:14px 18px;
    margin-bottom:24px;
    border:1px solid rgba(111,143,130,.25);
    border-radius:10px;
    background:var(--sage-soft);
    color:#527467;
    font-size:14px;
}

.reply-error{
    border-color:rgba(185,120,93,.24);
    background:#f7e9e3;
    color:#955f49;
}

.moderation-list{
    gap:24px;
}

.moderation-card{
    padding:34px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--paper);
    box-shadow:none;
}

.search-box button svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
}

.moderation-card-header{
    align-items:flex-start;
}

.moderation-card h2{
    margin-top:12px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:38px;
    font-weight:500;
    line-height:1.08;
}

.status-pill{
    padding:6px 11px;
    border-radius:999px;
    font-size:10px;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.status-pill.status-publish{
    background:var(--sage-soft);
    color:#527467;
}

.status-pill.status-pending{
    background:#f7ebdf;
    color:#9a644c;
}

.moderation-meta{
    gap:22px;
    margin:24px 0;
    padding-bottom:20px;
    border-bottom:1px solid var(--line);
    color:var(--muted);
    font-size:12px;
}

.moderation-meta a{
    color:var(--ink);
}

.moderation-content{
    padding:26px;
    border-radius:10px;
    background:rgba(111,143,130,.06);
    color:var(--text);
}

.moderation-replies{
    margin-top:30px;
}

.moderation-replies h3,
.moderation-reply-form label{
    color:var(--ink);
    font-size:12px;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.moderation-reply{
    padding:18px 20px;
    border-color:var(--line);
    border-radius:10px;
    background:#fff;
}

.moderation-reply-form{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-top:30px;
    padding-top:28px;
    border-top:1px solid var(--line);
}

.moderation-reply-form label,
.moderation-reply-form textarea{
    flex:0 0 100%;
}

.moderation-reply-form textarea{
    min-height:130px;
    margin:0 0 6px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
    color:var(--text);
    font-family:var(--sans);
}

.moderation-reply-form textarea:focus{
    border-color:var(--sage);
    box-shadow:0 0 0 3px rgba(111,143,130,.13);
}

.moderation-reply-form .primary,
.moderation-reply-form .publish-button{
    min-height:46px;
    padding:12px 20px;
    border-radius:999px;
    font-size:13px;
}

.moderation-reply-form .publish-button{
    border:1px solid var(--sage);
    background:transparent;
    color:#527467;
}

.moderation-reply-form .publish-button:hover{
    border-color:var(--sage);
    background:var(--sage-soft);
    color:#527467;
    transform:none;
}

.published-label{
    min-height:46px;
    padding:0 16px;
    background:var(--sage-soft);
    color:#527467;
    font-size:12px;
}

@media(max-width:768px){
    .dashboard,
    .moderation-page{
        padding-top:48px;
    }

    .dashboard-heading{
        align-items:flex-start;
        flex-direction:column;
        margin-bottom:40px;
    }

    .dashboard-grid{
        grid-template-columns:1fr;
        gap:12px;
        margin-bottom:56px;
    }

    .dashboard-grid .dashboard-stat{
        display:flex;
        justify-content:space-between;
        align-items:center;
    }

    .dashboard-stat p{
        margin:0;
        font-size:42px;
    }

    .moderation-card{
        padding:24px 20px;
    }

    .moderation-card-header{
        gap:16px;
    }

    .moderation-card h2{
        font-size:32px;
    }
}

@media(max-width:480px){
    .dashboard-heading .primary{
        width:auto;
    }

    .moderation-reply-form .primary,
    .moderation-reply-form .publish-button,
    .published-label{
        width:100%;
        justify-content:center;
        text-align:center;
    }
}

/* Privacy Policy */
.privacy-page{
    padding:62px 0 90px;
}

.privacy-heading{
    margin-bottom:38px;
    text-align:center;
}

.privacy-heading h1{
    margin:14px 0 12px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(48px, 6vw, 70px);
    font-weight:500;
    line-height:1;
}

.privacy-heading p{
    color:var(--muted);
}

.privacy-document{
    padding:16px;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
}

.privacy-document iframe{
    display:block;
    width:100%;
    min-height:900px;
    border:0;
    background:#fff;
}

.privacy-fallback{
    margin:14px 8px 2px;
    color:var(--muted);
    font-size:13px;
    text-align:center;
}

.privacy-fallback a{
    color:var(--ink);
}

/* Login e registrazione */
.login-page{
    min-height:calc(100vh - 86px);
    padding:62px 0 90px;
    background:
        radial-gradient(circle at 12% 18%, rgba(111,143,130,.12), transparent 34%),
        var(--ivory);
}

.login-container{
    width:min(1040px, calc(100% - 48px));
    grid-template-columns:minmax(0, 1fr) minmax(380px, 450px);
    gap:90px;
}

.login-left h1{
    max-width:560px;
    margin:18px 0 24px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(50px, 5.5vw, 68px);
    font-weight:500;
    line-height:.98;
    letter-spacing:-.035em;
}

.login-left p{
    max-width:500px;
    color:var(--muted);
    font-size:17px;
    line-height:1.8;
}

.login-card{
    padding:40px;
    border-color:rgba(24,50,71,.16);
    box-shadow:0 24px 70px rgba(16,40,56,.08);
}

.login-card h2{
    margin-bottom:28px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:38px;
    font-weight:500;
}

.login-card label{
    margin:18px 0 7px;
    color:var(--ink);
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.login-card input:not([type="checkbox"]){
    padding:14px 16px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font-family:var(--sans);
}

.login-card input:not([type="checkbox"]):focus{
    border-color:var(--sage);
    box-shadow:0 0 0 3px rgba(111,143,130,.13);
}

.login-card input[type="submit"],
.login-card button.primary{
    width:100%;
    margin-top:26px;
    border:1px solid var(--ink);
    background:var(--ink);
}

.login-card input[type="submit"]:hover,
.login-card button.primary:hover{
    background:var(--ink-deep);
}

.login-card .login-remember{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:16px;
}

.login-card .login-remember label{
    margin:0;
    font-size:11px;
}

.login-card .remember{
    justify-content:flex-end;
    margin:16px 0 24px;
}

.login-card .remember a,
.register a{
    color:var(--ink);
    font-size:13px;
}

.login-card .register{
    padding-top:22px;
    border-top:1px solid var(--line);
}

.login-card .register p{
    color:var(--muted);
    font-size:13px;
}

.password-rules{
    color:var(--muted);
}

@media(max-width:900px){
    .login-container{
        grid-template-columns:1fr;
        gap:44px;
    }

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

    .login-card{
        width:100%;
        max-width:560px;
    }
}

@media(max-width:480px){
    .privacy-page,
    .login-page{
        padding-top:42px;
    }

    .privacy-document{
        width:100%;
        padding:8px;
        border-right:0;
        border-left:0;
        border-radius:0;
    }

    .login-container{
        width:calc(100% - 32px);
    }

    .login-card{
        padding:28px 22px;
    }
}

@media(max-width:480px){
    .hero{
        width:min(100% - 28px, 420px);
        padding-top:92px;
    }
}

@media(max-width:768px){
    body{
        padding-top:78px;
    }

    header{
        height:78px;
        background:rgba(255,255,255,.94);
        border-bottom:1px solid rgba(23,59,99,.08);
    }

    .logo-circle{
        width:42px;
        height:42px;
    }

    .logo-circle img{
        height:36px;
    }

    .logo-text h2{
        font-size:18px;
        max-width:136px;
        line-height:1;
    }

    .logo-text span{
        font-size:10px;
    }

    body.home header{
        background:rgba(255,255,255,.92);
        backdrop-filter:blur(12px);
    }

    header.nav-open nav{
        top:78px;
    }
}

@media(max-width:480px){
    body{
        padding-top:72px;
    }

    header{
        height:72px;
    }

    header .container{
        gap:8px;
    }

    .logo{
        gap:8px;
    }

    .logo-circle{
        width:36px;
        height:36px;
    }

    .logo-circle img{
        height:30px;
    }

    .logo-text h2{
        font-size:15px;
        max-width:104px;
    }

    .logo-text span{
        display:none;
    }

    .nav-toggle{
        width:36px;
        height:36px;
    }

    .login{
        padding:8px 10px;
        font-size:12px;
    }

    .user-name{
        display:none;
    }

    .logout{
        padding:8px 9px;
        font-size:12px;
    }

    header.nav-open nav{
        top:72px;
    }
}
/* Pulsante pubblica pensiero - moderazione */
.moderation-reply-form .publish-button {
    padding: 16px 32px;
    border: none;
    border-radius: 50px;
    background: #ff6b6b;
    color: #ffffff;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    transition: .3s;
}

.moderation-reply-form .publish-button:hover {
    background: #e85a5a;
    transform: translateY(-2px);
}
.moderation-reply-form .publish-button:focus {
	outline: 3px solid rgba(255,76,76,0.2);
	outline-offset: 2px;
}

/* =====================================================
   PREMIUM EDITORIAL SYSTEM
===================================================== */

:root{
    --ink:#183247;
    --ink-deep:#102838;
    --text:#34444c;
    --muted:#718087;
    --ivory:#f7f4ed;
    --paper:#fffdf8;
    --sage:#6f8f82;
    --sage-soft:#e8efeb;
    --terracotta:#b9785d;
    --line:rgba(24,50,71,.13);
    --shadow-soft:0 18px 55px rgba(16,40,56,.07);
    --serif:"Cormorant Garamond",Georgia,serif;
    --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

html{
    background:var(--ivory);
}

body{
    background:var(--ivory);
    color:var(--text);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.7;
}

.container{
    width:min(1180px, calc(100% - 64px));
}

h1,h2,h3,h4{
    text-wrap:balance;
}

a,
button{
    -webkit-tap-highlight-color:transparent;
}

header{
    height:86px;
    background:rgba(247,244,237,.88);
    border-bottom:1px solid var(--line);
    backdrop-filter:blur(18px);
}

header .container{
    gap:34px;
}

.brand-link{
    flex:0 0 auto;
    color:inherit;
    text-decoration:none;
}

.logo{
    gap:12px;
}

.logo-circle{
    width:48px;
    height:48px;
    background:transparent;
    border:1px solid rgba(24,50,71,.16);
}

.logo-circle img{
    width:42px;
    height:42px;
}

.logo-text h2{
    color:var(--ink);
    font-family:var(--serif);
    font-size:27px;
    font-weight:600;
    line-height:.9;
    letter-spacing:-.02em;
}

.logo-text span{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:9px;
    font-weight:600;
    line-height:1;
    letter-spacing:.17em;
    text-transform:uppercase;
}

nav{
    gap:34px;
}

nav a{
    position:relative;
    color:var(--text);
    font-size:13px;
    font-weight:500;
    letter-spacing:.04em;
}

nav a::after{
    content:"";
    position:absolute;
    right:0;
    bottom:-9px;
    left:0;
    height:1px;
    background:var(--sage);
    transform:scaleX(0);
    transform-origin:right;
    transition:transform .25s ease;
}

nav a:hover,
nav a.active{
    color:var(--ink);
}

nav a:hover::after,
nav a.active::after{
    transform:scaleX(1);
    transform-origin:left;
}

.login,
.logout{
    padding:10px 20px;
    border:1px solid var(--ink);
    border-radius:999px;
    background:var(--ink);
    color:#fff;
    font-size:13px;
    font-weight:600;
}

.login:hover,
.logout:hover{
    background:transparent;
    color:var(--ink);
}

body.home{
    background:var(--ivory);
}

body.home header{
    background:rgba(247,244,237,.76);
    border-bottom:1px solid rgba(24,50,71,.08);
    backdrop-filter:blur(20px);
}

body.home::before{
    height:min(900px, 100vh);
    background:
        linear-gradient(90deg, rgba(247,244,237,.98) 0%, rgba(247,244,237,.92) 42%, rgba(247,244,237,.22) 76%),
        linear-gradient(0deg, var(--ivory) 0%, transparent 25%),
        url("../img/hero.jpg?ver=019c50c94eda116caca3f00637ae6562") 72% center / cover no-repeat;
}

.hero{
    width:min(1180px, calc(100% - 64px));
    min-height:calc(100vh - 20px);
    padding:148px 0 100px;
    grid-template-columns:minmax(0, 610px) 1fr;
    align-items:center;
}

.hero-left{
    position:relative;
    z-index:1;
}

.badge,
.page-badge,
.small-title,
.section-title > span{
    padding:0;
    background:transparent;
    color:var(--sage);
    border-radius:0;
    font-size:11px;
    font-weight:700;
    letter-spacing:.2em;
    text-transform:uppercase;
}

.hero .badge{
    margin-bottom:28px;
}

.hero .badge::before{
    content:"";
    display:inline-block;
    width:34px;
    height:1px;
    margin:0 12px 3px 0;
    background:var(--terracotta);
}

.hero h1{
    max-width:620px;
    margin:0 0 28px;
    color:var(--ink-deep);
    font-family:var(--serif);
    font-size:clamp(58px, 5.6vw, 82px);
    font-weight:500;
    line-height:.92;
    letter-spacing:-.045em;
}

.hero h1 em{
    color:var(--sage);
    font-weight:500;
}

.hero p{
    max-width:530px;
    margin-bottom:36px;
    color:var(--text);
    font-size:18px;
    line-height:1.75;
}

.hero-buttons{
    align-items:center;
    gap:28px;
}

.primary,
.secondary{
    min-height:52px;
    padding:14px 25px;
    border-radius:999px;
    font-size:14px;
    font-weight:600;
}

.primary{
    background:var(--ink);
    box-shadow:none;
}

.primary:hover{
    background:var(--ink-deep);
    transform:translateY(-2px);
}

.secondary{
    min-height:auto;
    padding:8px 0;
    border:0;
    border-bottom:1px solid var(--ink);
    border-radius:0;
    background:transparent;
}

.secondary:hover{
    background:transparent;
    color:var(--sage);
    border-color:var(--sage);
}

.why{
    padding:150px 0;
    background:linear-gradient(
        to bottom,
        var(--ivory) 0,
        var(--ivory) 24px,
        var(--paper) 180px
    );
}

.why-grid{
    grid-template-columns:minmax(0, 1.25fr) minmax(320px, .75fr);
    gap:110px;
}

.section-number{
    display:block;
    margin-bottom:24px;
    color:var(--terracotta);
    font-family:var(--serif);
    font-size:18px;
    font-style:italic;
}

.why h2,
.section-title h2{
    color:var(--ink);
    font-size:clamp(45px, 5vw, 64px);
    font-weight:500;
    line-height:1;
    letter-spacing:-.035em;
}

.why h2{
    max-width:650px;
    margin:20px 0 34px;
}

.why p{
    max-width:680px;
    color:var(--text);
    font-size:17px;
    line-height:1.9;
}

.quote{
    padding:30px 0 30px 36px;
    background:transparent;
    border-left:1px solid var(--terracotta);
    border-radius:0;
    box-shadow:none;
}

.quote::before{
    display:none;
}

.quote span{
    color:var(--ink);
    font-size:clamp(31px, 3vw, 43px);
    font-style:italic;
    font-weight:500;
    line-height:1.25;
}

.featured{
    padding:140px 0 160px;
}

.section-title{
    max-width:720px;
    margin:0 auto 72px;
}

.section-title h2{
    margin:18px 0;
}

.section-title p{
    color:var(--muted);
    font-size:16px;
}

.posts-grid{
    gap:22px;
}

.post-card,
.featured-card,
.value,
.info-card,
.login-card,
.moderation-card,
.single-thought-content,
.thought-replies,
.dashboard-card,
.stat{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:none;
}

.post-card{
    position:relative;
    min-height:380px;
    padding:34px;
    overflow:hidden;
}

.post-card::before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    left:0;
    height:2px;
    background:var(--sage);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .35s ease;
}

.post-card:hover{
    border-color:rgba(24,50,71,.24);
    box-shadow:var(--shadow-soft);
    transform:translateY(-5px);
}

.post-card:hover::before{
    transform:scaleX(1);
}

.category{
    padding:0;
    background:transparent;
    color:var(--sage);
    border-radius:0;
    font-size:10px;
    letter-spacing:.17em;
    text-transform:uppercase;
}

.post-card h3{
    color:var(--ink);
    font-size:31px;
    font-weight:500;
    line-height:1.08;
}

.post-card p{
    color:var(--text);
    font-size:15px;
    line-height:1.8;
}

.card-footer{
    align-items:center;
    color:var(--muted);
    font-size:12px;
}

.card-footer span{
    display:flex;
    align-items:center;
    gap:7px;
}

.meta-icon{
    width:15px;
    height:15px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.4;
}

.post-card > a,
.featured-content a{
    color:var(--ink);
    font-size:13px;
    letter-spacing:.04em;
}

.page-hero{
    padding:150px 0 92px;
    background:linear-gradient(180deg, var(--paper), var(--ivory));
}

.page-hero h1{
    color:var(--ink);
    font-size:clamp(48px, 5.5vw, 70px);
    font-weight:500;
    line-height:1;
}

.page-hero p{
    color:var(--muted);
    font-size:18px;
}

.search-box{
    border:1px solid var(--line);
    background:var(--paper);
    box-shadow:none;
}

.search-box button{
    background:var(--ink);
}

.cat{
    border:1px solid var(--line);
    background:transparent;
    box-shadow:none;
}

.cat:hover,
.cat.active{
    background:var(--ink);
}

.site-footer{
    margin-top:0;
    padding:90px 0 30px;
    background:var(--ink-deep);
}

.footer-grid{
    gap:90px;
}

.footer-grid h3{
    font-size:38px;
    font-weight:500;
}

.footer-grid h4{
    color:#fff;
    font-size:11px;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.footer-grid p,
.footer-grid a{
    color:rgba(255,255,255,.7);
    font-size:14px;
}

.social-links a{
    width:34px;
    height:34px;
    border-color:rgba(255,255,255,.16);
}

.footer-bottom{
    display:flex;
    justify-content:center;
    gap:24px;
    flex-wrap:wrap;
    color:rgba(255,255,255,.55);
}

@media(max-width:950px){
    .container,
    .hero{
        width:min(100% - 40px, 720px);
    }

    header .container{
        width:calc(100% - 40px);
    }

    .hero{
        display:block;
        min-height:760px;
        padding-top:150px;
        text-align:left;
    }

    .hero-buttons{
        justify-content:flex-start;
    }

    .why-grid{
        gap:60px;
    }

    header.nav-open nav{
        background:var(--paper);
        border-bottom:1px solid var(--line);
        box-shadow:var(--shadow-soft);
    }
}

@media(max-width:768px){
    body{
        padding-top:72px;
    }

    header{
        height:72px;
    }

    .logo-circle{
        width:38px;
        height:38px;
    }

    .logo-circle img{
        width:34px;
        height:34px;
    }

    .logo-text h2{
        max-width:none;
        font-size:21px;
    }

    .logo-text span{
        font-size:8px;
    }

    body.home::before{
        height:730px;
        background:
            linear-gradient(90deg, rgba(247,244,237,.97), rgba(247,244,237,.7)),
            linear-gradient(0deg, var(--ivory), transparent 35%),
            url("../img/hero.jpg") 66% center / cover no-repeat;
    }

    .hero{
        min-height:680px;
        padding:120px 0 70px;
    }

    .hero h1{
        max-width:560px;
        font-size:clamp(48px, 12vw, 66px);
    }

    .hero p{
        max-width:500px;
        font-size:16px;
    }

    .why,
    .featured{
        padding:96px 0;
    }

    .why-grid{
        grid-template-columns:1fr;
    }

    .quote{
        padding-left:26px;
    }

    .posts-grid{
        grid-template-columns:1fr;
    }

    .post-card{
        min-height:0;
    }
}

@media(max-width:480px){
    .container,
    .hero{
        width:calc(100% - 32px);
    }

    header .container{
        width:calc(100% - 24px);
    }

    .logo-text h2{
        font-size:18px;
    }

    .logo-text span{
        display:block;
        font-size:7px;
        letter-spacing:.12em;
    }

    .login{
        padding:8px 11px;
        font-size:11px;
    }

    .hero{
        min-height:640px;
        padding-top:108px;
    }

    .hero h1{
        font-size:clamp(43px, 13.5vw, 57px);
    }

    .hero-buttons{
        align-items:flex-start;
        flex-direction:column;
        gap:18px;
    }

    .primary{
        width:auto;
    }

    .why h2,
    .section-title h2{
        font-size:42px;
    }

    .footer-grid{
        gap:42px;
    }

    .footer-bottom{
        align-items:center;
        flex-direction:column;
        gap:8px;
    }
}

/* Spaziature verticali e hero fotografica */
body.home::before{
    height:760px;
    z-index:0;
    pointer-events:none;
    background:
        linear-gradient(to bottom, transparent 47%, rgba(247,244,237,.27) 64%, rgba(247,244,237,.78) 84%, var(--ivory) 100%),
        linear-gradient(90deg, rgba(247,244,237,.84) 0%, rgba(247,244,237,.68) 34%, rgba(247,244,237,.20) 61%, rgba(247,244,237,.02) 100%),
        url("../img/hero.jpg?ver=019c50c94eda116caca3f00637ae6562") 72% center / cover no-repeat;
}

.home .hero{
    position:relative;
    z-index:1;
}

.hero{
    min-height:740px;
    padding-top:108px;
    padding-bottom:72px;
}

.page-hero{
    padding-top:72px;
    padding-bottom:72px;
}

.dashboard,
.write-page,
.moderation-page,
.single-thought,
.login-page,
.disclaimer-content{
    padding-top:72px;
}

.about-story,
.values,
.featured,
.why{
    padding-top:100px;
    padding-bottom:100px;
}

@media(max-width:768px){
    body.home::before{
        height:680px;
        background:
            linear-gradient(to bottom, transparent 44%, rgba(247,244,237,.28) 62%, rgba(247,244,237,.80) 83%, var(--ivory) 100%),
            linear-gradient(90deg, rgba(247,244,237,.82) 0%, rgba(247,244,237,.54) 52%, rgba(247,244,237,.08) 100%),
            url("../img/hero.jpg?ver=019c50c94eda116caca3f00637ae6562") 67% center / cover no-repeat;
    }

    .hero{
        min-height:610px;
        padding-top:72px;
        padding-bottom:60px;
    }

    .page-hero,
    .dashboard,
    .write-page,
    .moderation-page,
    .single-thought,
    .login-page,
    .disclaimer-content{
        padding-top:52px;
    }

    .about-story,
    .values,
    .featured,
    .why{
        padding-top:76px;
        padding-bottom:76px;
    }
}

@media(max-width:480px){
    body.home::before{
        background:
            linear-gradient(to bottom, transparent 40%, rgba(247,244,237,.30) 59%, rgba(247,244,237,.82) 82%, var(--ivory) 100%),
            linear-gradient(90deg, rgba(247,244,237,.80), rgba(247,244,237,.24)),
            url("../img/hero.jpg?ver=019c50c94eda116caca3f00637ae6562") 64% center / cover no-repeat;
    }

    .hero{
        padding-top:62px;
    }
}

/* Raccordi più compatti tra hero e contenuti */
body.home::before{
    height:700px;
}

.home .hero{
    min-height:680px;
    padding-bottom:44px;
}

.home .why{
    padding-top:64px;
}

.page-hero:has(+ .disclaimer-content),
.page-hero:has(+ .about-story){
    padding-bottom:42px;
}

.page-hero + .disclaimer-content,
.page-hero + .about-story{
    padding-top:28px;
}

@media(max-width:768px){
    body.home::before{
        height:640px;
    }

    .home .hero{
        min-height:590px;
        padding-bottom:36px;
    }

    .home .why{
        padding-top:52px;
    }

    .page-hero:has(+ .disclaimer-content),
    .page-hero:has(+ .about-story){
        padding-bottom:32px;
    }

    .page-hero + .disclaimer-content,
    .page-hero + .about-story{
        padding-top:20px;
    }
}

/* Garanzie finali di cascata per le aree riservate */
.login-page .login-card{
    padding:40px;
    border:1px solid rgba(24,50,71,.16);
    border-radius:14px;
    box-shadow:0 24px 70px rgba(16,40,56,.08);
}

.dashboard{
    padding-top:64px;
    padding-bottom:100px;
}

.moderation-page{
    padding-top:64px;
    padding-bottom:110px;
}

.moderation-page .moderation-card{
    padding:34px;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:none;
}

.moderation-page .moderation-reply-form .publish-button{
    min-height:46px;
    padding:12px 20px;
    border:1px solid #b84545;
    border-radius:999px;
    background:#b84545;
    color:#fff;
    font-size:13px;
}

.moderation-page .moderation-reply-form .publish-button:hover{
    border-color:#963838;
    background:#963838;
    color:#fff;
    transform:translateY(-1px);
}

@media(max-width:768px){
    .dashboard,
    .moderation-page{
        padding-top:48px;
    }

    .moderation-page .moderation-card{
        padding:24px 20px;
    }
}

@media(max-width:480px){
    .login-page .login-card{
        padding:28px 22px;
    }

    .moderation-page .moderation-reply-form .publish-button{
        width:100%;
    }
}

/* Nuovo pensiero */
.write-page{
    padding:64px 0 110px;
    background:var(--ivory);
}

.write-header{
    max-width:780px;
    margin:0 auto 54px;
}

.write-header h1{
    margin:14px 0 20px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(48px, 5.5vw, 68px);
    font-weight:500;
    line-height:1;
    letter-spacing:-.035em;
}

.write-header p{
    color:var(--muted);
    font-size:17px;
    line-height:1.8;
}

.editor-layout{
    grid-template-columns:minmax(0, 1fr) 310px;
    gap:24px;
}

.editor{
    padding:38px;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:none;
}

.editor > label{
    margin:24px 0 8px;
    color:var(--ink);
    font-size:11px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.editor > label:first-of-type{
    margin-top:0;
}

.editor input[type="text"],
.editor select,
.editor input[type="file"],
.editor textarea{
    padding:15px 16px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fff;
    color:var(--text);
    font-family:var(--sans);
    font-size:15px;
}

.editor textarea{
    min-height:330px;
    line-height:1.75;
}

.editor input:focus,
.editor select:focus,
.editor textarea:focus{
    border-color:var(--sage);
    box-shadow:0 0 0 3px rgba(111,143,130,.13);
}

.counter{
    margin-top:7px;
    color:var(--muted);
    font-size:11px;
}

.visibility{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
}

.visibility-card{
    min-height:126px;
    padding:17px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
    gap:12px;
}

.visibility-card:hover,
.visibility-card:has(input:checked){
    border-color:var(--sage);
    background:var(--sage-soft);
    transform:none;
}

.visibility-card input{
    accent-color:var(--sage);
}

.visibility-card h3{
    margin-bottom:5px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:20px;
    font-weight:600;
}

.visibility-card p{
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
}

.editor > label:has(input[type="checkbox"]){
    display:flex;
    align-items:flex-start;
    gap:9px;
    margin-top:26px;
    color:var(--text);
    font-size:12px;
    font-weight:500;
    letter-spacing:0;
    line-height:1.6;
    text-transform:none;
}

.editor input[type="checkbox"]{
    margin-top:3px;
    accent-color:var(--sage);
}

.editor .actions{
    align-items:center;
    margin-top:34px;
    padding-top:26px;
    border-top:1px solid var(--line);
}

.editor .actions .primary,
.editor .actions .secondary{
    min-height:46px;
    padding:12px 20px;
    font-size:13px;
}

.sidebar{
    gap:14px;
}

.sidebar .info-card{
    padding:24px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--paper);
    box-shadow:none;
}

.sidebar .info-card h3{
    margin-bottom:14px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:24px;
    font-weight:600;
}

.sidebar .info-card p,
.sidebar .info-card li{
    color:var(--muted);
    font-size:13px;
    line-height:1.65;
}

.sidebar .info-card ul{
    padding:0;
    list-style:none;
}

.sidebar .info-card li{
    position:relative;
    padding-left:16px;
}

.sidebar .info-card li::before{
    content:"";
    position:absolute;
    top:.7em;
    left:0;
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--sage);
}

.status-dot{
    display:inline-block;
    width:7px;
    height:7px;
    margin-right:7px;
    border-radius:50%;
    background:var(--sage);
}

.success-message{
    max-width:820px;
    margin:0 auto 24px;
    border:1px solid rgba(111,143,130,.25);
    border-radius:10px;
    background:var(--sage-soft);
    color:#527467;
    font-size:14px;
}

/* Rifiniture coerenti delle pagine pubbliche */
.about-photo{
    overflow:hidden;
    border-radius:14px;
}

.about-photo img{
    display:block;
    width:100%;
}

.value{
    position:relative;
    padding:28px;
}

.value::before{
    display:none;
}

.value-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    margin-bottom:20px;
    border:1px solid rgba(185,120,93,.34);
    border-radius:50%;
    color:var(--terracotta);
}

.value-icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.5;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.value h3{
    color:var(--ink);
    font-family:var(--serif);
    font-size:27px;
    font-weight:600;
}

.info-box{
    border:1px solid var(--line);
    border-left:2px solid var(--sage);
    border-radius:12px;
    background:var(--paper);
    box-shadow:none;
}

.single-thought-card,
.thought-replies,
.reply-card{
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--paper);
    box-shadow:none;
}

.generic-page{
    min-height:60vh;
    padding:72px 0 100px;
}

.generic-content{
    max-width:820px;
    margin:auto;
}

.generic-content h1{
    margin:14px 0 30px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(48px, 5.5vw, 68px);
    font-weight:500;
    line-height:1;
}

.generic-content-body{
    color:var(--text);
    line-height:1.85;
}

@media(max-width:1100px){
    .editor-layout{
        grid-template-columns:1fr;
    }

    .editor-layout .sidebar{
        order:initial;
        display:grid;
        grid-template-columns:repeat(3, 1fr);
    }
}

@media(max-width:768px){
    .write-page{
        padding-top:48px;
    }

    .editor{
        padding:28px 22px;
    }

    .visibility{
        grid-template-columns:1fr;
    }

    .visibility-card{
        min-height:0;
    }

    .editor .actions{
        align-items:stretch;
    }

    .editor-layout .sidebar{
        grid-template-columns:1fr;
    }
}

@media(max-width:480px){
    .editor .actions .primary,
    .editor .actions .secondary{
        width:100%;
    }
}

/* Allineamento sicuro della Privacy sotto l'header fisso */
body.privacy-policy .privacy-page,
body.page-template-page-privacy-policy .privacy-page{
    position:relative;
    z-index:1;
    padding-top:80px;
}

body.privacy-policy .privacy-heading,
body.page-template-page-privacy-policy .privacy-heading{
    margin-top:0;
}

body.privacy-policy .privacy-heading h1,
body.page-template-page-privacy-policy .privacy-heading h1{
    margin-top:14px;
    line-height:1;
}

@media(max-width:768px){
    body.privacy-policy .privacy-page,
    body.page-template-page-privacy-policy .privacy-page{
        padding-top:56px;
    }
}

.values .values-grid .value::before{
    content:none !important;
    display:none !important;
}

/* Header più ampio sui monitor desktop grandi */
@media(min-width:1440px){
    header > .container{
        width:calc(100% - 80px);
        max-width:1680px;
    }

    body.home .hero,
    body.home .why > .container,
    body.home .featured > .container{
        width:calc(100% - 120px);
        max-width:1360px;
    }

    body.home .posts-grid{
        gap:28px;
    }

    body.home .post-card{
        padding:38px;
    }

    .featured-story > .container,
    .posts > .container,
    .articles-archive > .container,
    .values > .container,
    .dashboard > .container,
    .moderation-page > .container{
        width:calc(100% - 120px);
        max-width:1360px;
    }

    .articles-grid,
    .posts-grid{
        gap:28px;
    }

    .dashboard-grid{
        gap:22px;
    }
}

/* Articoli */
.articles-hero{
    padding:72px 0 76px;
    background:linear-gradient(180deg, var(--paper), var(--ivory));
    text-align:center;
}

.articles-hero h1{
    max-width:820px;
    margin:14px auto 20px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(52px, 6vw, 76px);
    font-weight:500;
    line-height:.98;
    letter-spacing:-.04em;
}

.articles-hero p{
    max-width:650px;
    margin:auto;
    color:var(--muted);
    font-size:17px;
}

.articles-write-button{
    display:inline-flex;
    margin-top:28px;
}

.articles-archive{
    padding:82px 0 110px;
}

.articles-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:22px;
}

.article-card{
    overflow:hidden;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    transition:transform .25s ease, box-shadow .25s ease;
}

.article-card:hover{
    box-shadow:var(--shadow-soft);
    transform:translateY(-5px);
}

.article-card-image{
    display:block;
    aspect-ratio:16 / 10;
    overflow:hidden;
    background:var(--sage-soft);
}

.article-card-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

.article-card:hover .article-card-image img{
    transform:scale(1.025);
}

.article-card-placeholder{
    display:block;
    width:100%;
    height:100%;
    background:
        linear-gradient(135deg, rgba(111,143,130,.2), rgba(185,120,93,.12)),
        var(--ivory);
}

.article-card-body{
    padding:26px;
}

.article-card-kicker,
.article-card-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
}

.article-card-kicker{
    color:var(--muted);
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.article-card-kicker > span{
    color:var(--sage);
    font-weight:700;
}

.article-card h2{
    margin:18px 0 14px;
    font-family:var(--serif);
    font-size:31px;
    font-weight:500;
    line-height:1.05;
}

.article-card h2 a{
    color:var(--ink);
    text-decoration:none;
}

.article-card-body > p{
    color:var(--text);
    font-size:14px;
    line-height:1.75;
}

.article-card-footer{
    margin-top:24px;
    padding-top:18px;
    border-top:1px solid var(--line);
    font-size:11px;
}

.article-card-footer a{
    color:var(--ink);
    font-weight:700;
    text-decoration:none;
}

.article-card-footer span{
    color:var(--muted);
}

.articles-pagination{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:56px;
}

.articles-pagination .page-numbers{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:40px;
    height:40px;
    padding:0 12px;
    border:1px solid var(--line);
    border-radius:999px;
    color:var(--ink);
    text-decoration:none;
}

.articles-pagination .current{
    background:var(--ink);
    color:#fff;
}

.articles-empty{
    padding:70px 20px;
    text-align:center;
}

.articles-empty h2{
    color:var(--ink);
    font-family:var(--serif);
    font-size:42px;
    font-weight:500;
}

.articles-empty p{
    color:var(--muted);
}

.article-single{
    padding:0 0 110px;
}

.article-single-hero{
    padding-top:72px;
    padding-bottom:62px;
}

.article-single-header{
    width:min(1080px, calc(100% - 64px));
    max-width:1080px;
    text-align:left;
}

.article-back{
    display:block;
    color:var(--muted);
    font-size:12px;
    text-decoration:none;
}

.article-single-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:36px;
}

.article-edit-button{
    flex:0 0 auto;
    padding:10px 16px;
    font-size:12px;
    text-decoration:none;
}

.article-single-header h1{
    max-width:900px;
    margin:16px 0 24px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(52px, 6.5vw, 82px);
    font-weight:500;
    line-height:.96;
    letter-spacing:-.045em;
}

.article-byline{
    display:flex;
    justify-content:flex-start;
    gap:22px;
    color:var(--muted);
    font-size:12px;
}

.article-featured-image{
    margin-top:52px;
}

.article-featured-image img{
    display:block;
    width:100%;
    max-height:680px;
    object-fit:cover;
    border-radius:14px;
}

.article-single-layout{
    display:grid;
    grid-template-columns:minmax(0, 740px) 260px;
    justify-content:center;
    gap:80px;
    margin-top:64px;
}

.article-content{
    color:var(--text);
    font-family:Georgia,serif;
    font-size:18px;
    line-height:1.9;
}

.article-content > p:first-child::first-letter{
    float:left;
    margin:9px 9px 0 0;
    color:var(--terracotta);
    font-family:var(--serif);
    font-size:64px;
    line-height:.65;
}

.article-content h2,
.article-content h3{
    margin:48px 0 18px;
    color:var(--ink);
    font-family:var(--serif);
    font-weight:500;
}

.article-content h2{
    font-size:40px;
}

.article-content h3{
    font-size:30px;
}

.article-content img{
    max-width:100%;
    height:auto;
    border-radius:10px;
}

.article-actions{
    position:sticky;
    top:118px;
    align-self:start;
    padding:22px;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:12px;
}

.article-actions > p,
.article-share > p{
    margin-bottom:12px;
    color:var(--ink);
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.article-votes{
    display:grid;
    gap:8px;
}

.article-votes button{
    display:grid;
    grid-template-columns:20px 1fr auto;
    align-items:center;
    gap:9px;
    width:100%;
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    cursor:pointer;
    font-family:var(--sans);
    font-size:12px;
    text-align:left;
}

.article-votes button:hover,
.article-votes button[aria-pressed="true"]{
    border-color:var(--sage);
    background:var(--sage-soft);
    color:var(--ink);
}

.article-votes svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.5;
    stroke-linejoin:round;
}

.article-votes strong{
    color:var(--ink);
    font-size:12px;
}

.article-votes.is-loading{
    opacity:.55;
    pointer-events:none;
}

.article-vote-login{
    padding:14px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
}

.article-vote-login p{
    margin-bottom:10px;
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
}

.article-vote-login a{
    color:var(--ink);
    font-size:12px;
    font-weight:700;
}

.article-share{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--line);
}

.article-share > div{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}

.article-share a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border:1px solid var(--line);
    border-radius:50%;
    color:var(--ink);
    font-size:11px;
    font-weight:700;
    text-decoration:none;
}

.article-share button{
    padding:0 11px;
    border:1px solid var(--line);
    border-radius:999px;
    background:transparent;
    color:var(--ink);
    cursor:pointer;
    font-family:var(--sans);
    font-size:10px;
}

.article-share .instagram-share{
    display:none;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    padding:0;
    border-radius:50%;
}

.instagram-share svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.6;
}

@media(max-width:650px){
    .article-share .instagram-share{
        display:flex;
    }
}

/* Hero home: ritaglio e punto focale responsive dell'immagine principale */
body.home::before{
    background-position:center, center, 72% center;
    background-size:100% 100%, 100% 100%, cover;
}

@media(max-width:768px){
    body.home::before{
        height:max(640px, calc(100svh - 24px));
        background:
            linear-gradient(to bottom, transparent 38%, rgba(247,244,237,.28) 58%, rgba(247,244,237,.84) 83%, var(--ivory) 100%),
            linear-gradient(90deg, rgba(247,244,237,.88) 0%, rgba(247,244,237,.63) 48%, rgba(247,244,237,.12) 100%),
            url("../img/hero.jpg?ver=019c50c94eda116caca3f00637ae6562");
        background-position:center, center, 69% center;
        background-size:100% 100%, 100% 100%, cover;
        background-repeat:no-repeat;
    }

    .home .hero{
        min-height:max(590px, calc(100svh - 96px));
    }
}

@media(max-width:480px){
    body.home::before{
        height:max(620px, calc(100svh - 16px));
        background-position:center, center, 72% center;
    }

    .home .hero{
        min-height:max(570px, calc(100svh - 88px));
    }
}

@media(max-width:380px){
    body.home::before{
        background-position:center, center, 74% center;
    }
}

@media(max-width:768px){
    body.home::before{
        height:640px;
        background:
            linear-gradient(to bottom, rgba(247,244,237,.10) 0%, rgba(247,244,237,.38) 58%, var(--ivory) 100%),
            linear-gradient(90deg, rgba(247,244,237,.92) 0%, rgba(247,244,237,.72) 46%, rgba(247,244,237,.08) 100%),
            url("../img/hero.jpg?ver=019c50c94eda116caca3f00637ae6562");
        background-position:center, center, center bottom;
        background-size:100% 100%, 100% 100%, 100% auto;
        background-repeat:no-repeat;
    }

    .home .hero{
        min-height:590px;
        padding-bottom:36px;
    }
}

@media(max-width:480px){
    body.home::before{
        height:620px;
        background:
            linear-gradient(to bottom, rgba(247,244,237,.16) 0%, rgba(247,244,237,.34) 55%, var(--ivory) 100%),
            linear-gradient(90deg, rgba(247,244,237,.94) 0%, rgba(247,244,237,.76) 48%, rgba(247,244,237,.12) 100%),
            url("../img/hero.jpg?ver=019c50c94eda116caca3f00637ae6562");
        background-position:center, center, center 42%;
        background-size:100% 100%, 100% 100%, 100% auto;
        background-repeat:no-repeat;
    }

    .home .hero{
        min-height:570px;
    }
}

.article-share a:hover,
.article-share button:hover{
    border-color:var(--terracotta);
    color:var(--terracotta);
}

.copy-feedback{
    display:block;
    min-height:18px;
    margin-top:8px;
    color:var(--sage);
    font-size:10px;
}

@media(max-width:1000px){
    .articles-grid{
        grid-template-columns:repeat(2, 1fr);
    }

    .article-single-layout{
        grid-template-columns:minmax(0, 720px);
        gap:40px;
    }

    .article-actions{
        position:static;
        max-width:520px;
    }
}

@media(max-width:650px){
    .articles-hero,
    .article-single-hero{
        padding-top:48px;
    }

    .articles-archive{
        padding-top:56px;
    }

    .articles-grid{
        grid-template-columns:1fr;
    }

    .article-card-body{
        padding:22px;
    }

    .article-card-footer{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }

    .article-byline{
        align-items:flex-start;
        flex-direction:column;
        gap:5px;
    }

    .article-single-header{
        width:calc(100% - 32px);
    }

    .article-single-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }

    .article-featured-image{
        width:100%;
        margin-top:40px;
    }

    .article-featured-image img{
        border-radius:0;
    }

    .article-single-layout{
        margin-top:42px;
    }

    .article-content{
        font-size:17px;
    }
}

/* Editor frontend degli articoli */
.article-editor-link{
    color:var(--terracotta);
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    white-space:nowrap;
}

.moderation-article-link{
    display:inline-flex;
    margin-top:26px;
}

.article-editor-page{
    padding:48px 0 110px;
    background:var(--ivory);
}

body.page-template-page-nuovo-articolo{
    padding-top:86px !important;
}

.article-editor-hero{
    padding-top:72px;
    padding-bottom:56px;
}

.article-editor-header{
    max-width:760px;
    margin:0 auto 52px;
    text-align:center;
}

.article-editor-header h1{
    margin:14px 0 18px;
    color:var(--ink);
    font-family:var(--serif);
    font-size:clamp(50px, 5.8vw, 72px);
    font-weight:500;
    line-height:.98;
    letter-spacing:-.04em;
}

.article-editor-header p{
    color:var(--muted);
    font-size:17px;
}

.article-editor-notice{
    max-width:900px;
    margin:0 auto 24px;
    padding:15px 18px;
    border:1px solid rgba(111,143,130,.25);
    border-radius:10px;
    background:var(--sage-soft);
    color:#527467;
    font-size:14px;
}

.article-editor-notice a{
    margin-left:8px;
    color:var(--ink);
    font-weight:700;
}

.article-editor-form{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 300px;
    gap:24px;
    align-items:start;
}

.article-editor-main,
.article-editor-panel{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
}

.article-editor-main{
    padding:38px;
}

.article-editor-main label,
.article-editor-panel label{
    display:block;
    margin:24px 0 8px;
    color:var(--ink);
    font-size:11px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.article-editor-main label:first-child,
.article-editor-panel label:first-child{
    margin-top:0;
}

.article-editor-main input,
.article-editor-main textarea,
.article-editor-panel select,
.article-editor-panel input[type="file"]{
    width:100%;
    padding:15px 16px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#fff;
    color:var(--text);
    font-family:var(--sans);
    font-size:15px;
    outline:none;
}

.article-editor-main textarea{
    resize:vertical;
    line-height:1.75;
}

.article-editor-main input:focus,
.article-editor-main textarea:focus,
.article-editor-panel select:focus{
    border-color:var(--sage);
    box-shadow:0 0 0 3px rgba(111,143,130,.13);
}

.article-editor-sidebar{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.article-editor-panel{
    padding:22px;
}

.article-editor-panel small{
    display:block;
    margin-top:10px;
    color:var(--muted);
    font-size:11px;
    line-height:1.5;
}

.article-editor-current-image{
    margin-bottom:14px;
}

.article-editor-current-image img{
    display:block;
    width:100%;
    height:auto;
    border-radius:9px;
}

.article-publish-panel p{
    margin-bottom:18px;
    color:var(--muted);
    font-size:12px;
    line-height:1.6;
}

.article-publish-panel .primary{
    width:100%;
    border:0;
}

@media(max-width:1000px){
    .article-editor-link{
        display:none;
    }

    .article-editor-form{
        grid-template-columns:1fr;
    }

    .article-editor-sidebar{
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .article-publish-panel{
        grid-column:1 / -1;
    }
}

@media(max-width:650px){
    body.page-template-page-nuovo-articolo{
        padding-top:72px !important;
    }

    .article-editor-page{
        padding-top:36px;
    }

    .article-editor-main{
        padding:26px 20px;
    }

    .article-editor-sidebar{
        grid-template-columns:1fr;
    }

    .article-publish-panel{
        grid-column:auto;
    }
}
