/* Perú Machu editorial design system — inspired by the pacing of CIRQA. */
:root{
  --paper:#F4F0EA;
  --soft:#ECE6DE;
  --white:#FFFFFF;
  --ink:#222222;
  --muted:#625F5A;
  --navy:#142640;
  --gold:#C6985A;
  --gold-light:#E1BF8D;
  --line:#D8D1C8;
  --max:1320px;
}

html{background:var(--paper);scroll-padding-top:110px}
body{background:var(--paper);color:var(--ink);font:300 17px/1.7 HeroGrotesque,Arial,sans-serif}
body p,body li,body label,body input,body select,body textarea,body .nav a,body .tag,body .eyebrow{font-family:HeroGrotesque,Arial,sans-serif}
body h1,body h2,body h3,body h4,body .btn,body .text-link,body .accordion summary{font-family:'Playfair Display',Georgia,serif}
h1,h2,h3,h4{font-weight:420;line-height:1.06;text-wrap:balance}
h1{font-size:clamp(3.2rem,6.3vw,6.8rem);letter-spacing:-.05em}
h2{font-size:clamp(2.5rem,4.4vw,5.1rem);letter-spacing:-.045em}
h3{font-size:clamp(1.55rem,2.25vw,2.5rem);letter-spacing:-.025em}
p{margin-bottom:1.35rem}
.wrap{width:min(var(--max),calc(100% - 96px))}
.section{padding:clamp(120px,9vw,160px) 0}
.section.alt{background:var(--soft)}
.section-head{max-width:870px;margin-bottom:64px}
.section-head h2{margin-bottom:24px}
.section-head>p:last-child{max-width:720px}
.editorial-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:18px 64px;max-width:none;align-items:end}
.editorial-heading .eyebrow{grid-column:1/-1;margin-bottom:4px}
.editorial-heading h2{margin:0}
.editorial-heading>.muted{margin:0 0 8px}
.eyebrow{color:#7B5A31;font-size:.72rem;font-weight:400;letter-spacing:.2em}
.lead{font-size:clamp(1.08rem,1.5vw,1.35rem);font-weight:300;line-height:1.65}
.muted{color:var(--muted)}
.tag{font-size:.7rem;letter-spacing:.16em}

/* Square editorial actions with a vertical fill transition. */
.btn,.text-link{position:relative;isolation:isolate;overflow:hidden;border-radius:0;font-weight:450}
.btn{min-height:52px;padding:13px 25px;background:transparent;border:1px solid var(--navy);color:var(--navy)}
.btn::before{position:absolute;inset:0;z-index:-1;background:var(--navy);content:"";transform:translateY(102%);transition:transform .55s cubic-bezier(.2,.75,.25,1)}
.btn:hover{background:transparent;color:#fff}
.btn:hover::before{transform:translateY(0)}
.btn.secondary{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn.secondary::before{background:var(--ink)}
.text-link{gap:12px;min-height:48px;text-decoration:none;border-bottom:1px solid currentColor}
.text-link span{transition:transform .35s ease}
.text-link:hover span{transform:translateX(5px)}
.section.dark{background:var(--navy);color:#fff}
.section.dark .btn{border-color:var(--gold-light);color:var(--gold-light)}
.section.dark .btn::before{background:var(--gold-light)}
.section.dark .btn:hover{color:var(--navy)}

/* Header and footer. */
.reviewbar{display:none}
.site-header{position:sticky;top:0;z-index:80;background:rgba(20,38,64,.98);border:0;color:#fff;box-shadow:none;transition:background .5s ease,color .5s ease}
.header-inner{min-height:102px}
.brand-mark{display:block;width:184px;height:64px}
.brand-mark img{width:100%;height:100%;object-fit:contain}
.nav{gap:27px}
.nav a{font-size:.78rem;letter-spacing:.04em}
.nav a[aria-current=page]{text-decoration-color:var(--gold);text-underline-offset:8px}
.languages button{color:inherit}
.header-cta{background:var(--gold);border-color:var(--gold);color:var(--navy)}
body.design-home .header-cta{font-family:'Playfair Display',Georgia,serif}
.header-cta::before{background:#E3BE87}
.header-cta:hover{color:var(--navy)}
.menu-toggle{background:transparent;border-color:#ffffff55;color:#fff}
.site-footer{background:var(--navy);color:#fff;padding:100px 0 32px}
.footer-grid{gap:80px}
.footer-grid strong{display:block;margin-bottom:18px;color:var(--gold-light);font:400 1rem/1.2 'Playfair Display',Georgia,serif}
.footer-grid a{font-size:.9rem;text-decoration:none;color:#E7E9ED}
.footer-grid a:hover{color:var(--gold-light)}
.footer-brand p{color:#D3D9E0;font-size:.92rem}
.footer-brand img{filter:brightness(0) invert(1);mix-blend-mode:normal}
.footer-bottom{border-color:#ffffff2b;color:#B9C3CF}
.review-tools{background:#0C1A2E;color:#B9C3CF;border:0}
.review-tools a{color:#fff}

/* Real responsive media. */
.media{border:0;background:#142640}
.media-photo::before,.media-photo::after{display:none}
.media-photo img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform .9s cubic-bezier(.2,.65,.25,1)}
.media-photo:hover img,.card:hover .media-photo img{transform:scale(1.035)}
.media-placeholder{border:1px solid var(--line)}
.card{border:0;background:#fff}
.card .media{border:0}
.card-body{padding:30px 28px 32px}
.card h3{font-size:clamp(1.5rem,2vw,2rem)}
.card-foot a{font-family:'Playfair Display',Georgia,serif;font-weight:500}
.grid{gap:34px}
.grid.two{gap:48px}
.journey-card .media,.destination-card .media,.experience-card .media{aspect-ratio:4/5}

/* Internal page photo covers. */
.page-intro{position:relative;isolation:isolate;display:flex;min-height:62vh;align-items:end;padding:120px 0 78px;background:var(--navy);color:#fff;overflow:hidden}
.page-intro-media,.page-intro-media .media{position:absolute;inset:0;z-index:-2;width:100%;height:100%;aspect-ratio:auto}
.page-intro-media img,.page-intro-media video{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.page-intro-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,19,35,.84),rgba(7,19,35,.46) 58%,rgba(7,19,35,.28))}
.page-intro .wrap{width:min(var(--max),calc(100% - 96px))}
.page-intro .narrow{max-width:900px}
.page-intro .breadcrumb{color:#F2EBDD}
.page-intro .breadcrumb a{color:#fff}
.page-intro .eyebrow{color:var(--gold-light)}
.page-intro h1{margin-bottom:24px;color:#fff}
.page-intro .lead{color:#F1F2F4;max-width:760px}
body:not(.design-home) .site-header+main{min-height:50vh}

/* Benefit strip beneath the approved hero. */
.promise-strip{background:var(--paper);border-color:var(--line)}
.hero-marquee-group{font-family:'Playfair Display',Georgia,serif;font-weight:400;font-variation-settings:'wght' 400;letter-spacing:-.045em}
.promise-strip ul{gap:clamp(52px,8vw,120px);padding:48px 0 44px}
.promise-strip li{flex-basis:270px;gap:18px;font-size:.95rem}
.promise-icon{width:58px;height:58px}

/* Journeys carousel retained, refined to the editorial palette. */
.home-journeys-section{background:var(--paper);padding-top:clamp(120px,9vw,160px)}
.home-journeys-section>.wrap{width:min(1680px,calc(100% - 96px))}
.home-journeys-section .section-head{max-width:820px;margin-inline:auto;text-align:center}
.home-journeys-section .section-head p{margin-inline:auto}
.home-journey-track{background:var(--paper);gap:3px}
.home-journey-card{height:650px}
.home-journey-caption{min-height:112px;padding:22px 12px 0}
.home-journey-title{font:420 clamp(1.35rem,1.8vw,1.75rem)/1.15 'Playfair Display',Georgia,serif}
.home-journey-discover{font-family:HeroGrotesque,Arial,sans-serif}
.home-journey-back{background:var(--navy);padding:42px 34px 30px}
.home-journey-back h3{font-size:clamp(1.8rem,2.5vw,2.45rem)}
.home-journey-controls button{border-color:var(--line);background:transparent}
.home-journeys-section>.wrap>.actions{justify-content:center;margin-top:36px}

/* Editorial stay composition. */
.editorial-stays{overflow:hidden}
.home-stays{display:grid;grid-template-columns:1.18fr .82fr;grid-template-rows:auto auto;gap:72px 56px;align-items:start}
.home-stay-card{position:relative}
.home-stay-card .media{aspect-ratio:16/11}
.home-stay-2{margin-top:132px}
.home-stay-2 .media{aspect-ratio:4/5}
.home-stay-3{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:48px;align-items:end;margin-top:20px}
.home-stay-3 .media{aspect-ratio:16/9}
.home-stay-copy{padding:28px 0 0;max-width:560px}
.home-stay-copy h3{margin:12px 0 14px}
.home-stay-copy p{color:var(--muted)}
.home-stays-cta{margin-top:80px;padding:36px 0 0;border-width:1px 0 0;background:transparent}

/* Alternating approach rows. */
.editorial-approach{background:var(--paper)}
.approach-editorial{display:grid;gap:120px}
.approach-row{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:8vw;align-items:center}
.approach-row:nth-child(even){grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr)}
.approach-row:nth-child(even) .approach-copy{order:2}
.approach-row .media{aspect-ratio:16/10}
.approach-row:nth-child(even) .media{aspect-ratio:4/5;max-height:720px}
.approach-copy{padding-top:20px;border-top:1px solid var(--line)}
.approach-number{display:block;margin-bottom:56px;color:var(--gold);font:400 1rem/1 'Playfair Display',Georgia,serif}
.approach-copy p{max-width:500px;color:var(--muted)}

/* Premium hotel gallery. */
.hotel-showcase-section{background:#E7E0D7;overflow:hidden}
.hotel-showcase{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.hotel-showcase-card{position:relative;min-height:650px;overflow:hidden;background:var(--navy);color:#fff}
.hotel-showcase-card .media{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.hotel-showcase-card::after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(5,15,28,.76));content:""}
.hotel-card-overlay{position:absolute;inset:auto 0 0;z-index:2;padding:38px;color:#fff}
.hotel-card-overlay>img{width:auto;height:54px;max-width:170px;margin-bottom:22px;filter:brightness(0) invert(1)}
.hotel-card-overlay .tag{color:#F0D7B3}
.hotel-card-overlay h3{margin:8px 0 18px;color:#fff}
.hotel-card-overlay a{color:#fff;font-family:'Playfair Display',Georgia,serif;text-underline-offset:7px}
.prototype-rights-note{max-width:850px;margin:30px 0 0;color:var(--muted);font-size:.78rem}

/* Destination collage. */
.home-destinations{background:var(--paper)}
.destination-mosaic{display:grid;grid-template-columns:1.05fr .7fr .95fr;grid-template-rows:420px 310px;gap:4px}
.destination-tile{position:relative;display:block;overflow:hidden;background:var(--navy);color:#fff;text-decoration:none}
.destination-tile .media{width:100%;height:100%;aspect-ratio:auto}
.destination-tile::after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(7,18,33,.76));content:""}
.destination-tile>span{position:absolute;left:28px;right:28px;bottom:24px;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:18px;font:420 clamp(1.35rem,2vw,2.15rem)/1.08 'Playfair Display',Georgia,serif}
.destination-tile small{position:absolute;bottom:calc(100% + 10px);font:300 .7rem/1 HeroGrotesque,Arial,sans-serif;letter-spacing:.15em}
.destination-tile b{font-weight:400}
.destination-tile-1{grid-row:1/3}
.destination-tile-2{grid-column:2;grid-row:1}
.destination-tile-3{grid-column:3;grid-row:1}
.destination-tile-4{grid-column:2/4;grid-row:2}
.destination-tile-5{display:none}

/* Process, FAQ and social proof. */
.planning-process{padding-block:clamp(110px,8vw,145px)}
.planning-process .section-head{max-width:900px}
.planning-process .grid{gap:54px}
.planning-process .step-number{color:var(--gold-light);border-color:#ffffff2f;font-family:'Playfair Display',Georgia,serif}
.planning-process h3{font-size:clamp(1.65rem,2.2vw,2.35rem)}
.home-faq .split{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:9vw;align-items:start}
.accordion summary{font-size:clamp(1.15rem,1.7vw,1.45rem);font-weight:420;padding:25px 0}
.tripadvisor-home{background:#EAE5DE}
.tripadvisor-heading,.tripadvisor-slider,.tripadvisor-caption{max-width:1080px}
.tripadvisor-slider{border:0;background:transparent}
.tripadvisor-review{min-height:330px;padding:60px 70px;background:#fff}
.tripadvisor-review-placeholder{font:420 clamp(1.7rem,2.7vw,2.8rem)/1.3 'Playfair Display',Georgia,serif}
.tripadvisor-review-lines span{height:5px;background:#E2DDD6}
.tripadvisor-controls{background:#fff}
.home-desktop-cta{padding-block:88px}
.home-desktop-cta h2{font-size:clamp(2.4rem,4.3vw,4.5rem)}

/* Journey detail immersion. */
.journey-breadcrumb{background:var(--paper);padding:24px 0}
.journey-hero{min-height:82vh;text-align:left;place-items:end start;padding:110px max(48px,calc((100vw - var(--max))/2)) 92px}
.journey-hero .hero-media,.journey-hero .hero-media .media{width:100%;height:100%;aspect-ratio:auto}
.journey-hero .hero-media::before,.journey-hero .hero-media::after{display:none}
.journey-hero .hero-media img{width:100%;height:100%;object-fit:cover}
.journey-hero::before{background:linear-gradient(90deg,rgba(7,19,35,.82),rgba(7,19,35,.38) 68%,rgba(7,19,35,.18))}
.journey-hero .hero-copy{max-width:900px;margin:0}
.journey-hero .lead{margin-inline:0}
.journey-hero .actions{justify-content:flex-start}
.journey-hero h1{font-size:clamp(3rem,5.7vw,6.4rem)}
.journey-name{font-family:HeroGrotesque,Arial,sans-serif}
.journey-story{gap:8vw}
.detail-side{border:0;background:#fff;padding:42px}
.gallery{gap:4px}

/* Collection cards and editorial grids. */
.filter-layout{justify-content:space-between;margin-bottom:56px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.filters button,.day-tools button{background:transparent;border-color:var(--line);border-radius:0}
.filters button[aria-pressed=true]{background:var(--navy)}
.result-count{margin-bottom:38px}
.destination-card:nth-child(even),.experience-card:nth-child(even){margin-top:90px}
.blog-feature{border:0}
.blog-feature .media{border:0;min-height:520px}
.blog-feature-copy{padding:72px}
.blog-grid{gap:48px}
.article{max-width:860px}
.article>.media{margin-bottom:70px}
.article p{font-size:1.12rem;line-height:1.85}
.article h2{margin-top:64px}

/* Planning form. */
.form-layout{grid-template-columns:minmax(0,780px) minmax(300px,1fr);gap:72px}
.form-card{padding:54px;border:1px solid var(--line);background:#fff}
.form-progress li{border-color:var(--line)}
.form-progress [aria-current=step]{border-color:var(--gold)}
.form-card input:not([type=checkbox]),.form-card select,.form-card textarea{min-height:54px;border:0;border-bottom:1px solid #8B857C;background:transparent;padding-inline:0}
.form-aside{position:sticky;top:130px;padding:38px;background:var(--navy);color:#fff}
.form-aside h2{color:#fff}
.form-aside .notice-demo{background:#ffffff12;border-color:var(--gold);color:#DDE3E9}
.form-aside .media{display:none}

/* IntersectionObserver reveal. */
.reveal-item{opacity:0;transform:translateY(34px);transition:opacity .75s ease,transform .82s cubic-bezier(.2,.65,.25,1)}
.reveal-item.is-visible{opacity:1;transform:translateY(0)}
.media.reveal-item{transform:translateY(24px) scale(.985)}
.media.reveal-item.is-visible{transform:translateY(0) scale(1)}

@media(max-width:1100px){
  .wrap,.page-intro .wrap{width:calc(100% - 56px)}
  .section{padding:100px 0}
  .editorial-heading{grid-template-columns:1fr;gap:14px}
  .nav{gap:14px}
  .nav a{font-size:.72rem}
  .home-stay-2{margin-top:80px}
  .hotel-showcase-card{min-height:540px}
  .destination-mosaic{grid-template-rows:360px 270px}
}

@media(max-width:1100px) and (min-width:741px){
  .hero-marquee{bottom:132px}
  .hero-kicker{bottom:calc(132px + clamp(97px,calc(9.72vw + 2.16px),214px) + 10px)}
}

@media(max-width:960px){
  .site-header .nav{background:var(--navy);border:0;color:#fff}
  .site-header .nav a{font-size:1rem}
  .home-stays{gap:52px 34px}
  .approach-row,.approach-row:nth-child(even){gap:48px;grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr)}
  .hotel-showcase{overflow-x:auto;grid-template-columns:repeat(3,minmax(320px,1fr));scroll-snap-type:x mandatory}
  .hotel-showcase-card{scroll-snap-align:start}
  .destination-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:390px 300px 340px}
  .destination-tile-1{grid-row:1/3}
  .destination-tile-2{grid-column:2;grid-row:1}
  .destination-tile-3{grid-column:2;grid-row:2}
  .destination-tile-4{grid-column:1/3;grid-row:3}
  .form-layout{grid-template-columns:1fr .55fr;gap:34px}
  .form-card{padding:36px}
}

@media(max-width:740px){
  body{font-size:16px}
  .wrap,.page-intro .wrap{width:calc(100% - 36px)}
  .section{padding:72px 0}
  .section-head{margin-bottom:38px}
  .site-header{min-height:76px}
  .header-inner{min-height:76px}
  .brand-mark{width:145px;height:52px}
  .page-intro{min-height:68vh;padding:124px 0 58px}
  .page-intro h1{max-width:100%;font-size:clamp(2.65rem,11.5vw,4.25rem);overflow-wrap:break-word}
  .page-intro .lead{max-width:100%;overflow-wrap:break-word}
  .page-intro-shade{background:linear-gradient(180deg,rgba(7,19,35,.4),rgba(7,19,35,.83))}
  .promise-strip ul{gap:30px;padding:40px 0}
  .promise-icon{width:52px;height:52px}
  .home-journeys-section>.wrap{width:calc(100% - 36px)}
  .home-journey-card{height:590px}
  .home-stays{grid-template-columns:1fr;gap:56px}
  .home-stay-2{margin-top:0}
  .home-stay-2 .media{aspect-ratio:4/5}
  .home-stay-3{grid-column:auto;display:block;margin:0}
  .home-stay-3 .media{aspect-ratio:4/5}
  .home-stays-cta{grid-template-columns:1fr;margin-top:58px}
  .approach-editorial{gap:76px}
  .approach-row,.approach-row:nth-child(even){display:grid;grid-template-columns:1fr;gap:28px}
  .approach-row:nth-child(even) .approach-copy{order:0}
  .approach-number{margin-bottom:30px}
  .approach-row .media,.approach-row:nth-child(even) .media{aspect-ratio:4/5}
  .hotel-showcase{margin-right:calc(50% - 50vw);grid-template-columns:repeat(3,minmax(82vw,1fr))}
  .hotel-showcase-card{min-height:570px}
  .hotel-card-overlay{padding:28px}
  .destination-mosaic{display:flex;margin-inline:calc(50% - 50vw);padding-inline:18px;gap:3px;overflow-x:auto;scroll-snap-type:x mandatory}
  .destination-tile{flex:0 0 82vw;height:540px;scroll-snap-align:center}
  .destination-tile-5{display:block}
  .planning-process .grid{gap:48px}
  .home-faq .split{grid-template-columns:1fr;gap:36px}
  .tripadvisor-review{padding:38px 26px;min-height:350px}
  .journey-hero{min-height:76vh;padding:92px 18px 58px}
  .journey-hero .actions{align-items:stretch}
  .destination-card:nth-child(even),.experience-card:nth-child(even){margin-top:0}
  .form-layout{grid-template-columns:1fr}
  .form-card{padding:30px 20px}
  .form-aside{position:static;padding:30px}
  .site-footer{padding-top:72px}
  .footer-grid{grid-template-columns:1fr;gap:42px}
  .footer-brand{grid-column:auto}
  .mobile-cta:not([hidden]){background:var(--navy);border:0}
  .mobile-cta .btn{background:var(--gold);border-color:var(--gold);color:var(--navy)}
}

@media(prefers-reduced-motion:reduce){
  .reveal-item{opacity:1;transform:none}
  .media-photo img{transition:none}
  .btn::before{transition:none}
}
