/* =====================================
   FROM HISTORY TO THE SKY
   Travel Magazine Style
===================================== */


/* ---------- GLOBAL ---------- */

* {
    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}


body {

    margin: 0;

    font-family:
    "Arial",
    "Helvetica Neue",
    sans-serif;

    color: #222;

    background: #ffffff;

    line-height: 1.7;

}



img {

    max-width: 100%;

    display: block;

    object-fit: cover;

}



h1,
h2,
h3 {

    font-family:
    "Georgia",
    "Times New Roman",
    serif;

    font-weight: 600;

}



h2 {

    font-size: clamp(2rem,4vw,3.2rem);

    margin-bottom: 30px;

}



h3 {

    font-size: 1.25rem;

    margin-top: 25px;

}



p {

    font-size: 1.05rem;

}





/* ---------- TOP NAV ---------- */


.topbar {

    position: sticky;

    top:0;

    z-index:100;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:20px 6%;

    background:white;

    border-bottom:1px solid #eee;

}



.logo {

    font-weight:bold;

    letter-spacing:2px;

}



.topbar nav {

    display:flex;

    gap:30px;

}



.topbar a {

    text-decoration:none;

    color:#222;

    font-size:0.95rem;

}



.topbar a:hover {

    text-decoration:underline;

}





/* ---------- HERO ---------- */


.hero {

    position:relative;

    height:90vh;

    min-height:600px;

}



.hero img {

    width:100%;

    height:100%;

    filter:

    brightness(65%);

}



.hero-content {

    position:absolute;

    top:50%;

    left:8%;

    transform:translateY(-50%);

    color:white;

    max-width:700px;

}



.hero h1 {

    font-size:

    clamp(3rem,7vw,6rem);

    line-height:0.95;

    letter-spacing:3px;

}



.hero p {

    font-size:1.5rem;

}



.hero span {

    letter-spacing:3px;

}





/* ---------- BUTTONS ---------- */


button {

    padding:14px 26px;

    margin:10px 8px 0 0;

    border:none;

    background:#111;

    color:white;

    cursor:pointer;

    font-size:1rem;

}



button:hover {

    opacity:.8;

}







/* ---------- SECTIONS ---------- */


.section,
.destination,
.feature,
.technology,
.interview,
.recommendation,
.sources {

    width:min(1200px,90%);

    margin:100px auto;

}



.intro {

    width:min(900px,90%);

    margin:100px auto;

    text-align:center;

}



.intro p {

    font-size:1.25rem;

}







/* ---------- CONTENTS ---------- */


.contents-grid {

    display:grid;

    grid-template-columns:

    repeat(4,1fr);

    gap:30px;

}



.contents-grid div {

    border-top:3px solid #222;

    padding-top:20px;

}





/* ---------- DESTINATION ---------- */


.destination {

    display:grid;

    grid-template-columns:

    1fr 1fr;

    gap:60px;

    align-items:center;

}



.destination.reverse {

    direction:rtl;

}



.destination.reverse .text-block {

    direction:ltr;

}



.image-block img {

    width:100%;

    height:600px;

}





.text-block {

    padding:20px;

}





/* ---------- FEATURE ---------- */


.feature {

    background:#f6f6f6;

    padding:70px;

}



.feature-text {

    max-width:900px;

    margin:auto;

}



.wide-image {

    width:100%;

    max-height:600px;

    margin:30px 0;

}





/* ---------- TIMELINE ---------- */


.timeline {

    display:flex;

    gap:20px;

    margin-top:40px;

}



.timeline div {

    flex:1;

    padding:25px;

    background:white;

    border-left:

    4px solid #222;

}






/* ---------- TECHNOLOGY ---------- */


.technology {

    padding:60px 0;

}



.tech-grid {

    display:grid;

    grid-template-columns:

    repeat(3,1fr);

    gap:30px;

}



.tech-card {

    padding:30px;

    background:#f5f5f5;

}







/* ---------- IMAGES ---------- */


.small-image {

    max-width:600px;

    margin:30px 0;

}



.quote {

    margin:40px 0;

    padding:30px;

    border-left:5px solid #222;

    font-style:italic;

    background:#fafafa;

}







/* ---------- INTERVIEW ---------- */


.interview-grid {

    display:grid;

    grid-template-columns:

    repeat(3,1fr);

    gap:30px;

}



.person {

    padding:30px;

    border:1px solid #ddd;

}







/* ---------- EXPORT ---------- */


.export-area {

    text-align:center;

    padding:60px;

    background:#f2f2f2;

}







footer {

    text-align:center;

    padding:50px;

    background:#111;

    color:white;

    letter-spacing:2px;

}








/* =====================================
   PRINT MODE
   PDF / A4 / A5
===================================== */


@media print {


body {

    background:white;

}



.topbar {

    display:none;

}



button {

    display:none !important;

}



.export-area {

    display:none;

}



.hero {

    height:260mm;

    page-break-after:always;

}



.destination,
.feature,
.technology,
.interview,
.recommendation {

    page-break-before:always;

}



img {

    break-inside:avoid;

}



p,
li {

    font-size:11pt;

}



footer {

    page-break-before:always;

}


}







/* =====================================
   MOBILE
===================================== */


@media(max-width:800px){


.topbar {

    flex-direction:column;

    gap:15px;

}


.topbar nav {

    gap:15px;

    flex-wrap:wrap;

}



.hero {

    height:75vh;

}



.hero-content {

    left:5%;

}



.destination,
.destination.reverse {

    display:flex;

    flex-direction:column;

    direction:ltr;

}



.image-block img {

    height:350px;

}



.contents-grid {

    grid-template-columns:1fr;

}



.tech-grid {

    grid-template-columns:1fr;

}



.interview-grid {

    grid-template-columns:1fr;

}



.feature {

    padding:30px;

}



h2 {

    font-size:2rem;

}


}