@import url('https\://fonts.googleapis.com/css2?family=Lora:ital,wght\@0,400;0,600;1,400&family=Poppins:wght\@400;500;600;700&display=swap');



:root {

    --red: #FC3E1F;

    --ink: #111111;

    --warm: #F7F4EF;

    --paper: #FFFFFF;

    --line: #DDD5CB;

    --soft: #EEE8E0;

}



* {

    box-sizing: border-box;

}



html {

    scroll-behavior: smooth;

}



body {

    margin: 0;

    color: var(--ink);

    background: var(--paper);

    font-family: Poppins, Arial, sans-serif;

}



/* Stato e operativo voli nella scheda viaggio */

.flight-status-line {

    display: flex;

    align-items: center;

    gap: 9px;

    margin-bottom: 8px;

    font-weight: 600;

}



.flight-status {

    position: relative;

    display: inline-grid;

    place-items: center;

    width: 32px;

    height: 32px;

    flex: 0 0 32px;

    font-size: 25px;

    line-height: 1;

    color: var(--ink);

}



.flight-status.is-included {

    color: #111111;

}



.flight-status.is-excluded {

    color: #a3a3a3;

}



.flight-status.is-excluded::before {

    content: "";

    position: absolute;

    inset: 2px;

    border: 2px solid #8d8d8d;

    border-radius: 50%;

}



.flight-status.is-excluded::after {

    content: "";

    position: absolute;

    width: 34px;

    height: 2px;

    border-radius: 2px;

    background: #8d8d8d;

    transform: rotate(-45deg);

}



.supplementary-section {

    background: var(--warm);

}



.supplementary-box {

    max-width: 920px;

    border-left: 4px solid var(--red);

    padding: 30px 34px;

    background: var(--paper);

}



.supplementary-box h2 {

    margin: 5px 0 18px;

    font-family: Lora, Georgia, serif;

    font-size: clamp(28px, 4vw, 44px);

    line-height: 1.08;

}



.supplementary-copy {

    font-family: Lora, Georgia, serif;

    font-size: 17px;

    line-height: 1.75;

}



/* =========================================================

   CATALOGHI NOSTOS

   ========================================================= */

.catalog-admin { padding-top: 42px; padding-bottom: 70px; }

.catalog-admin-head { display:flex; justify-content:space-between; align-items:end; gap:20px; flex-wrap:wrap; }

.catalog-editor { margin:30px 0 55px; padding:28px; border:1px solid var(--line); background:var(--warm); }

.catalog-editor h2, .catalog-list-admin h2 { margin-top:0; }

.catalog-checks { display:flex; flex-wrap:wrap; gap:12px 28px; margin:22px 0; }

.catalog-save { cursor:pointer; border:0; background:var(--red); color:#fff; padding:13px 21px; font-weight:700; }

.catalog-alert { padding:14px 18px; margin:18px 0; border-left:4px solid; }

.catalog-alert.success { background:#edf8f2; border-color:#21845a; }

.catalog-alert.error { background:#fff0ed; border-color:var(--red); }



.catalog-page { background:#fff; }

.catalog-header { position:relative; z-index:20; border-bottom:1px solid rgba(0,0,0,.07); background:#fff; }

.catalog-header .trip-header-inner { min-height:90px; display:flex; justify-content:space-between; align-items:center; gap:30px; }

.catalog-header .trip-brand { display:flex; align-items:center; }

.catalog-header .trip-brand img { display:block; width:185px; height:auto; }

.catalog-header .trip-nav { display:flex; align-items:center; gap:28px; font-size:13px; font-weight:500; }

.catalog-header .trip-nav a { position:relative; }

.catalog-header .trip-nav a::after { content:""; position:absolute; right:100%; bottom:-8px; left:0; height:1px; background:var(--red); transition:.25s; }

.catalog-header .trip-nav a:hover::after,

.catalog-header .trip-nav a.is-current::after { right:0; }

.catalog-hero {

    min-height:470px;

    display:flex;

    align-items:center;

    position:relative;

    overflow:hidden;

    color:#fff;

    background:

        linear-gradient(90deg,rgba(8,8,8,.82) 0%,rgba(8,8,8,.58) 45%,rgba(8,8,8,.16) 78%),

        url('https\://images.unsplash.com/photo-1524231757912-21f4fe3a7200?auto=format&fit=crop&w=2000&q=86') center 48% / cover no-repeat;

}

.catalog-hero::after { content:""; position:absolute; left:0; bottom:0; width:34%; height:5px; background:var(--red); }

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

.catalog-hero .eyebrow { color:var(--red); }

.catalog-hero h1 { margin:15px 0 20px; max-width:820px; font-family:Lora,Georgia,serif; font-size:clamp(54px,7vw,90px); font-weight:400; line-height:.96; letter-spacing:-2.5px; }

.catalog-hero p { max-width:660px; margin:0; font-family:Lora,Georgia,serif; font-size:21px; font-style:italic; line-height:1.55; }

.catalog-public-list { padding-top:85px; padding-bottom:100px; }

.catalog-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:60px; }

.catalog-card { min-width:0; padding:28px; border:1px solid var(--line); background:var(--warm); }

.catalog-card.is-primary { display:grid; grid-template-columns:minmax(250px,390px) minmax(280px,1fr); align-items:center; gap:60px; grid-column:1/-1; padding:42px; }

.catalog-cover-button { position:relative; display:block; width:100%; aspect-ratio:210/297; padding:0; overflow:hidden; border:0; background:#eee; box-shadow:0 18px 45px rgba(30,24,20,.18); cursor:pointer; text-align:left; }

.catalog-cover-button img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .35s ease; }

.catalog-cover-button:hover img { transform:scale(1.02); }

.catalog-default-cover { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:35px; color:#fff; background:#151515; text-align:center; }

.catalog-default-cover::after { content:""; position:absolute; right:0; bottom:0; left:0; height:7px; background:var(--red); }

.catalog-default-cover img { width:min(74%,235px); height:auto; margin-bottom:60px; object-fit:contain; }

.catalog-default-cover small { color:var(--red); letter-spacing:.32em; font-size:10px; font-style:normal; }

.catalog-default-cover strong { margin:15px 0 30px; font-size:28px; letter-spacing:.08em; }

.catalog-default-cover em { font-family:Lora,Georgia,serif; font-size:15px; font-weight:400; line-height:1.55; }

.catalog-open-label { position:absolute; right:0; bottom:0; left:0; padding:16px 20px; color:#fff; background:rgba(0,0,0,.76); font-size:13px; font-weight:700; text-align:center; transform:translateY(100%); transition:transform .25s ease; }

.catalog-cover-button:hover .catalog-open-label, .catalog-cover-button:focus .catalog-open-label { transform:none; }

.catalog-card-copy { padding-top:25px; }

.catalog-card.is-primary .catalog-card-copy { padding-top:0; }

.catalog-card-copy h2 { margin:12px 0 7px; font-family:Lora,Georgia,serif; font-size:clamp(30px,4vw,48px); font-weight:400; line-height:1.08; }

.catalog-card-copy p { color:#62605d; line-height:1.65; }

.catalog-edition { color:#716e69; font-size:13px; text-transform:uppercase; letter-spacing:.14em; }

.catalog-badge { display:inline-block; padding:6px 9px; color:#fff; background:var(--red); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }

.catalog-open-secondary { display:inline-block; min-height:50px; margin-top:15px; cursor:pointer; border:0; background:var(--red); color:#fff; padding:0 25px; font-weight:600; }

.catalog-empty { position:relative; padding:65px 50px; border-left:5px solid var(--red); background:#171717; color:#fff; text-align:left; }

.catalog-empty h2 { margin:0 0 12px; font-family:Lora,Georgia,serif; font-size:clamp(30px,4vw,50px); font-weight:400; }

.catalog-empty p { margin:0; color:#cfcfcf; }



.catalog-reader[hidden] { display:none; }

.catalog-reader { position:fixed; z-index:9999; inset:0; display:grid; grid-template-rows:64px 1fr 46px; color:#fff; background:#242424; }

.catalog-reader-open { overflow:hidden; }

.catalog-reader-topbar { display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:14px; padding:0 18px; background:#111; }

.catalog-reader-topbar > strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.catalog-reader-actions { display:flex; gap:8px; }

.catalog-reader-icon { display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%; color:#fff; background:#2c2c2c; font-size:23px; cursor:pointer; text-decoration:none; }

.catalog-stage { position:relative; min-height:0; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:16px 70px; background:radial-gradient(circle at center,#4b4b4b,#272727 72%); }

.catalog-pages { display:flex; align-items:center; justify-content:center; max-width:100%; max-height:100%; gap:4px; perspective:1600px; }

.catalog-page-sheet { max-width:100%; max-height:100%; background:#fff; box-shadow:0 12px 36px rgba(0,0,0,.5); animation:catalog-page-in .22s ease-out; }

.catalog-canvas { display:block; max-width:100%; max-height:calc(100vh - 145px); width:auto !important; height:auto !important; }

.catalog-arrow { position:absolute; z-index:2; top:50%; translate:0 -50%; width:52px; height:76px; border:0; color:#fff; background:rgba(0,0,0,.38); font-size:48px; line-height:1; cursor:pointer; }

.catalog-arrow.prev { left:10px; }

.catalog-arrow.next { right:10px; }

.catalog-arrow:disabled { opacity:.2; cursor:default; }

.catalog-loading { padding:25px; color:#fff; font-size:15px; text-align:center; }

.catalog-loading.error { color:#ffd0c8; }

.catalog-reader-footer { display:flex; justify-content:center; align-items:center; gap:30px; padding:0 18px; background:#111; font-size:13px; }

.catalog-reader-hint { color:#aaa; }

@keyframes catalog-page-in { from { opacity:.25; transform:translateX(12px) rotateY(-2deg); } to { opacity:1; transform:none; } }



@media (max-width: 899px) {

    .catalog-header .trip-nav { display:none; }

    .catalog-header .trip-brand img { width:155px; }

    .catalog-hero { min-height:410px; }

    .catalog-hero h1 { letter-spacing:-1.5px; }

    .catalog-card-grid { justify-content:center; }

    .catalog-card.is-primary { display:block; padding:24px; }

    .catalog-card.is-primary .catalog-card-copy { padding-top:28px; }

    .catalog-stage { padding:10px 46px; }

    .catalog-arrow { width:38px; height:60px; font-size:38px; }

    .catalog-reader-hint { display:none; }

    .catalog-reader-topbar { padding:0 10px; }

}



a {

    color: inherit;

    text-decoration: none;

}



.wrap {

    width: min(1180px, calc(100% - 56px));

    margin: 0 auto;

}





/* HEADER */



.site-header {

    background: #fff;

    position: relative;

    z-index: 20;

}



.header-inner {

    height: 86px;

    display: flex;

    align-items: center;

    justify-content: space-between;

}



.brand {

    display: flex;

    flex-direction: column;

    line-height: 1;

}



.brand-name {

    color: var(--red);

    font-size: 27px;

    font-weight: 700;

    letter-spacing: 2px;

}



.brand-payoff {

    margin-top: 6px;

    color: var(--red);

    font-size: 7px;

    font-weight: 600;

    letter-spacing: 2.6px;

}



.main-nav {

    display: flex;

    align-items: center;

    gap: 30px;

    font-size: 13px;

    font-weight: 500;

}



.main-nav a {

    position: relative;

}



.main-nav a::after {

    content: "";

    position: absolute;

    left: 0;

    right: 100%;

    bottom: -7px;

    height: 1px;

    background: var(--red);

    transition: .25s;

}



.main-nav a:hover::after {

    right: 0;

}





/* HERO */



.hero-home {

    min-height: 610px;

    position: relative;

    display: flex;

    align-items: center;

    overflow: hidden;



    background:

        linear-gradient(

            90deg,

            rgba(10,10,10,.72) 0%,

            rgba(10,10,10,.47) 42%,

            rgba(10,10,10,.12) 75%

        ),

        url('https\://images.unsplash.com/photo-1524231757912-21f4fe3a7200?auto=format&fit=crop&w=2000&q=85')

        center 47% / cover no-repeat;

}



.hero-content {

    position: relative;

    z-index: 2;

    color: #fff;

}



.eyebrow {

    color: var(--red);

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 3.2px;

    text-transform: uppercase;

}



.eyebrow.light {

    color: #fff;

}



.hero-home h1 {

    max-width: 720px;

    margin: 17px 0 20px;

    font-family: Lora, Georgia, serif;

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

    font-weight: 400;

    line-height: .94;

    letter-spacing: -3px;

}



.hero-copy {

    max-width: 550px;

    margin: 0 0 32px;

    font-family: Lora, Georgia, serif;

    font-size: 21px;

    font-style: italic;

    line-height: 1.55;

}



.btn {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 50px;

    padding: 0 25px;

    font-size: 13px;

    font-weight: 600;

    transition: .2s;

}



.btn-primary {

    background: var(--red);

    color: #fff;

}



.btn-primary:hover {

    transform: translateY(-2px);

}





/* SEARCH */



.search-strip {

    position: relative;

    z-index: 5;

    margin-top: -37px;

}



.search-box {

    min-height: 92px;

    display: grid;

    grid-template-columns: 1.25fr 1fr 1fr 150px;

    background: #fff;

    box-shadow: 0 16px 45px rgba(0,0,0,.12);

}



.search-item {

    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 20px 27px;

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

}



.search-label {

    margin-bottom: 5px;

    color: #888;

    font-size: 9px;

    font-weight: 600;

    letter-spacing: 2px;

}



.search-item strong {

    font-family: Lora, Georgia, serif;

    font-size: 16px;

    font-weight: 400;

}



.search-button {

    display: grid;

    place-items: center;

    background: var(--red);

    color: #fff;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 1px;

}





/* GENERIC SECTIONS */



.section-block {

    padding: 105px 0 110px;

}



.section-heading {

    margin-bottom: 44px;

    display: flex;

    align-items: end;

    justify-content: space-between;

    gap: 50px;

}



.section-heading h2,

.agency-box h2 {

    margin: 8px 0 0;

    font-family: Lora, Georgia, serif;

    font-size: 48px;

    font-weight: 400;

    line-height: 1.08;

}



.section-heading > p {

    max-width: 400px;

    margin: 0;

    color: #666;

    font-family: Lora, Georgia, serif;

    font-size: 17px;

    line-height: 1.55;

}





/* TRAVEL CARDS */



.travel-grid {

    display: grid;

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

    gap: 22px;

}



.travel-card {

    background: #fff;

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

    transition: .25s;

}



.travel-card:hover {

    transform: translateY(-5px);

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

}



.travel-image {

    height: 235px;

    position: relative;

    overflow: hidden;

    background-size: cover;

    background-position: center;

}



.travel-image::after {

    content: "";

    position: absolute;

    inset: 0;

    background: linear-gradient(0deg, rgba(0,0,0,.4), transparent 60%);

}



.travel-image span {

    position: absolute;

    left: 20px;

    bottom: 17px;

    z-index: 2;

    color: #fff;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 2.5px;

    text-transform: uppercase;

}



.placeholder-1 {

    background-image: url('https\://images.unsplash.com/photo-1524231757912-21f4fe3a7200?auto=format&fit=crop&w=1000&q=80');

}



.placeholder-2 {

    background-image: url('https\://images.unsplash.com/photo-1541432901042-2d8bd64b4a9b?auto=format&fit=crop&w=1000&q=80');

}



.placeholder-3 {

    background-image: url('https\://images.unsplash.com/photo-1641128324972-af3212f0f6bd?auto=format&fit=crop&w=1000&q=80');

}



.travel-body {

    padding: 24px 23px 27px;

}



.travel-body h3 {

    margin: 7px 0 8px;

    font-family: Lora, Georgia, serif;

    font-size: 25px;

    font-weight: 600;

    line-height: 1.15;

}



.travel-subtitle {

    min-height: 48px;

    margin: 0 0 19px;

    color: #555;

    font-size: 13px;

    line-height: 1.55;

}



.travel-meta {

    display: flex;

    flex-wrap: wrap;

    gap: 7px 18px;

    padding: 14px 0;

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

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

    font-size: 11px;

    font-weight: 600;

}



.text-link {

    display: inline-block;

    margin-top: 19px;

    color: var(--red);

    font-size: 12px;

    font-weight: 700;

}





/* DESTINATIONS */



.destinations-section {

    padding: 95px 0 105px;

    background: var(--warm);

}



.destination-grid {

    display: grid;

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

    gap: 14px;

}



.destination-card {

    min-height: 205px;

    padding: 25px;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    background: #111;

    color: #fff;

    transition: .2s;

}



.destination-card:hover {

    background: var(--red);

}



.destination-card.future {

    background: #e7e0d7;

    color: #777;

}



.destination-name {

    font-family: Lora, Georgia, serif;

    font-size: 28px;

}



.destination-card span {

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 1px;

    text-transform: uppercase;

}





/* MANIFESTO */



.manifesto {

    padding: 115px 0;

    background: #111;

    color: #fff;

}



.manifesto-grid {

    display: grid;

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

    gap: 100px;

    align-items: center;

}



.manifesto h2 {

    margin: 13px 0 0;

    font-family: Lora, Georgia, serif;

    font-size: clamp(45px, 5vw, 66px);

    font-weight: 400;

    line-height: 1.05;

}



.manifesto-copy {

    color: #ddd;

    font-family: Lora, Georgia, serif;

    font-size: 17px;

    line-height: 1.7;

}



.light-link {

    color: #fff;

}





/* AGENCIES */



.agency-section {

    padding: 90px 0;

}



.agency-box {

    padding: 48px 55px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 50px;

    background: var(--warm);

    border-left: 4px solid var(--red);

}



.agency-box p {

    max-width: 600px;

    margin: 15px 0 0;

    color: #666;

    font-size: 14px;

}



.btn-dark {

    flex: 0 0 auto;

    background: #111;

    color: #fff;

}





/* FOOTER */



.site-footer {

    padding: 65px 0 25px;

    background: #111;

    color: #fff;

}



.footer-grid {

    display: grid;

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

    gap: 50px;

}



.footer-brand {

    display: flex;

    flex-direction: column;

}



.footer-brand strong {

    color: var(--red);

    font-size: 27px;

    letter-spacing: 2px;

}



.footer-brand span {

    margin-top: 6px;

    color: var(--red);

    font-size: 7px;

    letter-spacing: 2.5px;

}



.footer-grid > div:not(.footer-brand) {

    display: flex;

    flex-direction: column;

    gap: 10px;

    font-size: 12px;

    color: #aaa;

}



.footer-grid > div > strong {

    margin-bottom: 6px;

    color: #fff;

    font-size: 12px;

}



.footer-bottom {

    margin-top: 55px;

    padding-top: 20px;

    border-top: 1px solid #333;

    color: #777;

    font-size: 10px;

}





/* Existing product/backoffice compatibility */



.product {

    padding: 46px 0;

}



.title {

    font-family: Lora, serif;

    font-size: 58px;

    line-height: 1;

}



.meta {

    display: flex;

    gap: 18px;

    flex-wrap: wrap;

    margin: 18px 0 30px;

}



.section {

    padding: 24px 0;

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

}



.days {

    display: grid;

    gap: 10px;

}



.day {

    display: grid;

    grid-template-columns: 36px 1fr;

    gap: 12px;

}



.n {

    width: 30px;

    height: 30px;

    border-radius: 50%;

    background: var(--red);

    color: #fff;

    display: grid;

    place-items: center;

    font-weight: 700;

}



.cols {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 28px;

}



.price {

    color: var(--red);

    font-weight: 700;

}



.adminbar {

    background: #111;

    color: #fff;

    padding: 14px 0;

}



.adminbar a {

    margin-right: 18px;

}



.table {

    width: 100%;

    border-collapse: collapse;

}



.table td,

.table th {

    padding: 11px;

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

    text-align: left;

}



.field {

    display: grid;

    gap: 5px;

    margin: 12px 0;

}



.field input,

.field textarea,

.field select {

    width: 100%;

    padding: 10px;

    border: 1px solid #bbb;

}



.field textarea {

    min-height: 110px;

}





/* RESPONSIVE */



@media (max-width: 900px) {



    .main-nav {

        display: none;

    }



    .hero-home {

        min-height: 570px;

    }



    .search-box {

        grid-template-columns: 1fr 1fr;

    }



    .search-button {

        min-height: 70px;

    }



    .travel-grid {

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

    }



    .destination-grid {

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

    }



    .manifesto-grid {

        grid-template-columns: 1fr;

        gap: 45px;

    }



    .footer-grid {

        grid-template-columns: 1fr 1fr;

    }

}



@media (max-width: 620px) {



    .wrap {

        width: min(100% - 34px, 1180px);

    }



    .header-inner {

        height: 72px;

    }



    .hero-home {

        min-height: 520px;

    }



    .hero-home h1 {

        letter-spacing: -2px;

    }



    .search-strip {

        margin-top: 0;

    }



    .search-box {

        grid-template-columns: 1fr;

    }



    .search-item {

        border-right: 0;

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

    }



    .section-block,

    .destinations-section {

        padding: 70px 0;

    }



    .section-heading {

        align-items: start;

        flex-direction: column;

        gap: 20px;

    }



    .section-heading h2,

    .agency-box h2 {

        font-size: 39px;

    }



    .travel-grid,

    .destination-grid {

        grid-template-columns: 1fr;

    }



    .travel-subtitle {

        min-height: auto;

    }



    .agency-box {

        padding: 35px 28px;

        align-items: start;

        flex-direction: column;

    }



    .footer-grid {

        grid-template-columns: 1fr 1fr;

        gap: 35px;

    }

}



.brand-logo {

    display: block;

    width: 165px;

    height: auto;

}



.brand {

    display: flex;

    align-items: center;

}

/* NOSTOS reader v3: pagine affiancate senza filtri colore */
.catalog-pages { width:100%; min-width:0; }
.catalog-page-sheet { flex:0 1 auto; min-width:0; overflow:hidden; }
.catalog-page-sheet canvas { filter:none !important; mix-blend-mode:normal !important; opacity:1 !important; }
#catalog-native { font-size:11px; font-weight:700; }
