:root{--ink:#0d0e0c;--paper:#f3f0e8;--gold:#c6a15a;--olive:#34372b;--line:#c9c1b5}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;max-width:100%;overflow-x:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 "DM Sans",sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #e0bd78;outline-offset:3px}
.skip-link{position:fixed;left:16px;top:16px;z-index:100;transform:translateY(-160%);background:#111;color:#fff;padding:10px 14px}
.skip-link:focus{transform:translateY(0)}
.tour-nav{height:82px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:absolute;z-index:5;width:100%;color:#fff;border-bottom:1px solid #ffffff38}
.brand{display:flex;flex-direction:column;line-height:1}
.brand b{font:500 1.5rem "Playfair Display",serif;letter-spacing:.16em}
.brand small{font-size:.56rem;letter-spacing:.36em;color:var(--gold);margin-top:7px}
.tour-nav nav{display:flex;gap:28px;font-size:.78rem}
.tour-nav .quote-link{border:1px solid #ffffff70;padding:10px 15px;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem}
.language-picker{display:flex;align-items:center;gap:7px;margin-left:auto;margin-right:16px;color:#fff}
.language-picker select{border:0;border-bottom:1px solid #ffffff70;background:#11120fd9;color:#fff;padding:7px 22px 7px 7px;font-size:.78rem;letter-spacing:.1em}
.language-picker option{background:#111;color:#fff}
.tour-hero{min-height:760px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(360px,.5fr);background:#111;color:#fff}
.tour-visual{position:relative;min-height:760px;overflow:hidden}
.tour-visual img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.transfer-hero-visual img{object-position:center}
.tour-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#090a08ed 0%,#090a0894 42%,#090a0828 76%),linear-gradient(90deg,#090a0870,transparent 58%)}
.photo-attribution{position:absolute;z-index:3;right:18px;bottom:16px;padding:6px 9px;background:#090a08a8;color:#e7e5df;font-size:.7rem;line-height:1.3}
.hero-title{position:absolute;z-index:2;left:7vw;bottom:70px;max-width:780px;min-width:0;text-shadow:0 2px 18px #000d,0 1px 3px #000}
.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.19em;color:#e8c77f;margin:0 0 18px}
.hero-title h1{font:500 clamp(4rem,7vw,7.5rem)/.92 "Playfair Display",serif;letter-spacing:-.045em;margin:0;max-width:100%;overflow-wrap:break-word;hyphens:auto}
.hero-title p{font-size:1.05rem;color:#f3f3ef;max-width:600px}
.tour-summary{padding:130px 42px 55px;display:flex;flex-direction:column;justify-content:space-between;border-left:1px solid #ffffff25;min-width:0;max-width:100%}
.summary-top>span{font-size:.76rem;letter-spacing:.15em;color:#e0bd78}
.summary-top h2{font:500 2rem/1.15 "Playfair Display",serif;margin:18px 0 30px}
.facts{display:grid}
.fact{display:flex;justify-content:space-between;gap:18px;padding:16px 0;border-top:1px solid #ffffff27;font-size:.75rem;min-width:0}
.fact span{color:#bfc0ba}
.fact b{text-align:right;font-weight:500;min-width:0;overflow-wrap:anywhere}
.summary-actions{display:grid;gap:11px;margin-top:35px}
.button{min-height:53px;display:flex;align-items:center;justify-content:center;text-transform:uppercase;letter-spacing:.11em;font-size:.76rem;font-weight:600}
.button.gold{background:var(--gold);color:#111}
.button.outline{border:1px solid #ffffff4d}
.content{padding:120px 7vw}
.intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:10vw}
.intro h2,.itinerary h2,.included h2,.faq h2,.request h2{font:500 clamp(2.8rem,5vw,5.5rem)/1.03 "Playfair Display",serif;letter-spacing:-.04em;margin:0}
.intro-copy{font-size:1.08rem;color:#454640;max-width:680px}
.intro-copy p:first-child{font:500 1.45rem/1.5 "Playfair Display",serif;color:#171814;margin-top:0}
.image-credit{margin:14px 0 0;color:#77766f;font-size:.7rem;letter-spacing:.02em}
.day-strip{margin-top:100px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.day-strip.route-benefits{grid-template-columns:repeat(3,1fr)}
.day-strip div{padding:25px 20px;border-right:1px solid var(--line)}
.day-strip div:last-child{border:0}
.day-strip small{font-size:.76rem;letter-spacing:.11em;color:#765822;text-transform:uppercase}
.day-strip b{display:block;font:500 1.15rem "Playfair Display",serif;margin-top:8px}
.itinerary{padding:120px 7vw;background:#e4ded2}
.timeline{margin-top:60px;border-top:1px solid #aaa294}
.stop{display:grid;grid-template-columns:80px 250px 1fr;gap:30px;padding:32px 0;border-bottom:1px solid #bdb5a8}
.stop>span{font:500 1.4rem "Playfair Display",serif;color:#8b6b35}
.stop h3{font:500 1.55rem "Playfair Display",serif;margin:0}
.stop p{margin:0;color:#5e5f58}
.note{margin-top:30px;color:#686960;font-size:.83rem}
.included{padding:120px 7vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw}
.lists{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.lists h3{font:500 1.5rem "Playfair Display",serif;margin:0 0 20px}
.lists ul{list-style:none;padding:0;margin:0}
.lists li{padding:12px 0;border-bottom:1px solid var(--line);color:#55564f}
.lists li:before{content:"—";color:#98753b;margin-right:12px}
.personalise{padding:105px 7vw;background:var(--olive);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}
.personalise h2{font:500 clamp(2.8rem,5vw,5rem)/1.03 "Playfair Display",serif;margin:0}
.personalise p{color:#dedfd9}
.personalise a{display:inline-block;border-bottom:1px solid var(--gold);padding:9px 0;color:#e8c77f;text-transform:uppercase;letter-spacing:.11em;font-size:.76rem}
.faq{padding:120px 7vw}
.faq-grid{margin-top:60px;display:grid;grid-template-columns:1fr 1fr;gap:14px 50px}
.faq details{border-top:1px solid var(--line);padding:20px 0}
.faq summary{cursor:pointer;font:500 1.12rem "Playfair Display",serif}
.faq details p{color:#62635c;margin:14px 0 0}
.request{padding:110px 7vw;background:#11120f;color:#fff;display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}
.request>div{min-width:0}
.request>div>p{color:#d2d3cd;max-width:480px}
.request h2{max-width:100%;overflow-wrap:normal}
.request-form{background:#eeeae1;color:#111;padding:36px;display:grid;gap:18px;min-width:0;width:100%}
.request-form label{display:grid;gap:7px}
.request-form label span{font-size:.76rem;text-transform:uppercase;letter-spacing:.11em;color:#595951;font-weight:600}
.request-form input,.request-form select,.request-form textarea{border:0;border-bottom:1px solid #aaa294;background:transparent;padding:10px 2px;max-width:100%;width:100%;min-width:0;outline:none}
.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;min-width:0}
.request-form button{border:0;background:#181914;color:#fff;min-height:56px;text-transform:uppercase;letter-spacing:.11em;font-size:.76rem;cursor:pointer}
.request-form small{text-align:center;color:#777}
.more{padding:100px 7vw;background:#d4ccbd}
.more h2{font:500 clamp(2.4rem,4vw,4.4rem) "Playfair Display",serif;margin:0 0 35px}
.more-links{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #aaa294}
.more a{padding:24px 10px;border-bottom:1px solid #aaa294;font:500 1.35rem "Playfair Display",serif;display:flex;justify-content:space-between}
.more a+a{border-left:1px solid #aaa294;padding-left:25px}
.more span{color:#8a6a31}
.content .eyebrow,.itinerary .eyebrow,.included .eyebrow,.faq .eyebrow,.more .eyebrow{color:#76551f;font-weight:600}
.hero-title .eyebrow,.personalise .eyebrow,.request .eyebrow{color:#efd08c}
footer{padding:50px 7vw 28px;background:#090a08;color:#888;display:grid;grid-template-columns:1fr auto;gap:25px;align-items:center}
footer .brand{color:#fff}
footer>div{text-align:right;font-size:.76rem}
.legal{grid-column:1/-1;padding-top:20px;border-top:1px solid #ffffff1c;font-size:.68rem}
.floating-wa{position:fixed;right:18px;bottom:18px;z-index:10;width:56px;height:56px;border-radius:50%;background:#25d366 url("whatsapp.svg") center/28px no-repeat;color:transparent;font-size:0;box-shadow:0 10px 30px #0005}
.request-form .email-request{border:1px solid #8d8b82;background:transparent;color:#181914;margin-top:-10px}
.belvero-contact-fields{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}
.form-status{min-height:1.4em;margin:-4px 0 0;text-align:center;color:#8c3b32;font-size:.8rem}
.form-status.success{color:#315e3b}
.email-request:disabled{opacity:.58;cursor:wait}
.floating-wa{transition:opacity .2s ease,transform .2s ease}
.request-in-view .floating-wa,.summary-in-view .floating-wa{opacity:0;pointer-events:none;transform:translateY(12px)}
.rome-shore-page .tour-hero{grid-template-columns:minmax(0,1.18fr) minmax(390px,.62fr)}
.rome-shore-page .rome-day-visual img{object-position:center center}
.rome-shore-page .rome-day-visual:after{background:linear-gradient(0deg,#090a08fa 0%,#090a08b8 43%,#090a084a 72%,#090a081f 100%),linear-gradient(90deg,#090a0890,transparent 62%)}
.rome-shore-page .hero-title{left:50%;right:auto;width:min(82%,780px);transform:translateX(-50%)}
.rome-shore-page .content,.rome-shore-page .itinerary,.rome-shore-page .included,.rome-shore-page .faq,.rome-shore-page .more{padding-left:max(7vw,calc((100vw - 1440px)/2 + 60px));padding-right:max(7vw,calc((100vw - 1440px)/2 + 60px))}
.rome-shore-page .personalise,.rome-shore-page .request{padding-left:max(7vw,calc((100vw - 1440px)/2 + 60px));padding-right:max(7vw,calc((100vw - 1440px)/2 + 60px))}
.rome-shore-page .compact-intro{padding-top:90px;padding-bottom:85px}
.rome-shore-page .compact-intro .day-strip{margin-top:65px}
.rome-shore-page .compact-itinerary{padding-top:90px;padding-bottom:90px}
.rome-shore-page .compact-itinerary .timeline{margin-top:42px}
.rome-shore-page .compact-faq{padding-top:85px;padding-bottom:85px}
.rome-shore-page .compact-faq .faq-grid{margin-top:40px}
.rome-shore-page .compact-assurance{padding-top:75px;padding-bottom:75px}
.rome-shore-page .compact-request{padding-top:85px;padding-bottom:85px}
@media(max-width:900px){.tour-nav{height:72px;padding:0 22px}
.photo-attribution{top:88px;right:12px;bottom:auto;font-size:.66rem}
.language-picker{margin-left:auto;margin-right:8px}
.language-picker span{display:none}
.language-picker select{padding:6px 17px 6px 5px}
.tour-nav nav{display:none}
.tour-hero{grid-template-columns:1fr}
.tour-visual{min-height:690px}
.hero-title{left:24px;right:24px;bottom:55px}
.hero-title h1{font-size:clamp(3.4rem,16vw,5.8rem)}
.tour-summary{padding:55px 24px;border-left:0}
.intro,.included,.personalise,.request{grid-template-columns:1fr;gap:50px}
.content,.itinerary,.included,.faq{padding:85px 24px}
.day-strip{grid-template-columns:1fr 1fr;margin-top:65px}
.day-strip.route-benefits{grid-template-columns:1fr}
.day-strip div:nth-child(2){border-right:0}
.day-strip div:nth-child(-n+2){border-bottom:1px solid var(--line)}
.stop{grid-template-columns:55px 1fr}
.stop p{grid-column:2}
.lists,.faq-grid{grid-template-columns:1fr}
.personalise,.request{padding:85px 24px}
.more{padding:80px 24px}
.more-links{grid-template-columns:1fr}
.more a+a{border-left:0;padding-left:10px}
footer{grid-template-columns:1fr;padding:45px 24px}
footer>div{text-align:left}
.legal{grid-column:1}
.form-row{grid-template-columns:1fr}
.belvero-contact-fields{grid-template-columns:1fr}
.rome-shore-page .tour-hero{grid-template-columns:1fr}
.rome-shore-page .hero-title{left:50%;right:auto;width:calc(100% - 48px);transform:translateX(-50%)}
.rome-shore-page .content,.rome-shore-page .itinerary,.rome-shore-page .included,.rome-shore-page .faq,.rome-shore-page .more,.rome-shore-page .personalise,.rome-shore-page .request{padding-left:24px;padding-right:24px}
}
@media(max-width:520px){.tour-nav .quote-link{padding:8px;font-size:.7rem}
.tour-visual{min-height:580px}
.transfer-hero-visual img{object-fit:cover;object-position:center}
.hero-title h1{font-size:clamp(2.55rem,12vw,3rem);line-height:.94}
.tour-summary{padding-top:45px}
.request h2{font-size:clamp(2.35rem,11vw,3rem);line-height:1.04;letter-spacing:-.045em}
.rome-shore-page .compact-intro{padding-top:60px;padding-bottom:60px}
.rome-shore-page .compact-intro .intro{gap:28px}
.rome-shore-page .compact-intro .intro h2{font-size:2.7rem;line-height:1.02}
.rome-shore-page .compact-intro .intro-copy,.rome-shore-page .compact-intro .intro-copy p:first-child{font:400 1rem/1.6 "DM Sans",sans-serif;color:#4f504a}
.rome-shore-page .compact-intro .day-strip{margin-top:45px}
.rome-shore-page .compact-itinerary{padding-top:65px;padding-bottom:65px}
.rome-shore-page .compact-faq{padding-top:65px;padding-bottom:65px}
.rome-shore-page .compact-assurance,.rome-shore-page .compact-request{padding-top:65px;padding-bottom:65px}
.day-strip{grid-template-columns:1fr}
.day-strip div{border-right:0;border-bottom:1px solid var(--line)!important}
.day-strip div:last-child{border-bottom:0!important}
.request-form{padding:24px 18px;overflow:hidden}
.request>div>p{font-size:1rem;line-height:1.55}
.floating-wa{width:48px;height:48px;right:14px;bottom:14px}
.lists{gap:35px}
}
