/*
  Destination page redesign
  Shared visual system with country-specific palettes.
*/

:root{
  --country-primary:#1f6feb;
  --country-secondary:#34a853;
  --country-accent:#fbbc05;
  --country-deep:#14213d;
  --country-soft:#eef5ff;
  --country-warm:#fff8e8;
  --country-glow:rgba(31,111,235,.18);
}

.destination-australia{
  --country-primary:#0057b8;
  --country-secondary:#00843d;
  --country-accent:#ffcd00;
  --country-deep:#0f3567;
  --country-soft:#edf7ff;
  --country-warm:#fff9df;
  --country-glow:rgba(0,87,184,.2);
}

.destination-canada{
  --country-primary:#d80621;
  --country-secondary:#8a1538;
  --country-accent:#ffffff;
  --country-deep:#5e0715;
  --country-soft:#fff1f3;
  --country-warm:#f8fbff;
  --country-glow:rgba(216,6,33,.18);
}

.destination-germany{
  --country-primary:#111111;
  --country-secondary:#dd0000;
  --country-accent:#ffce00;
  --country-deep:#1e1a12;
  --country-soft:#fff5d7;
  --country-warm:#fff8ec;
  --country-glow:rgba(221,0,0,.16);
}

.destination-ireland{
  --country-primary:#169b62;
  --country-secondary:#ff883e;
  --country-accent:#ffffff;
  --country-deep:#0d4d35;
  --country-soft:#edf9f4;
  --country-warm:#fff2e9;
  --country-glow:rgba(22,155,98,.18);
}

.destination-uk{
  --country-primary:#012169;
  --country-secondary:#c8102e;
  --country-accent:#ffffff;
  --country-deep:#061a45;
  --country-soft:#eef3ff;
  --country-warm:#fff0f3;
  --country-glow:rgba(1,33,105,.2);
}

.destination-us{
  --country-primary:#3c3b6e;
  --country-secondary:#b22234;
  --country-accent:#ffffff;
  --country-deep:#151843;
  --country-soft:#eef2ff;
  --country-warm:#fff0f2;
  --country-glow:rgba(60,59,110,.2);
}

.destination-page{
  background:
    linear-gradient(180deg,#fff 0%,#fbfcff 48%,#fff 100%);
}

.destination-page .kicker{
  color:var(--country-primary);
  letter-spacing:.11em;
}

.destination-page .btn{
  border-radius:8px;
}

.destination-page .btn-primary{
  background:var(--country-primary);
  box-shadow:0 15px 30px var(--country-glow);
}

.destination-page .btn-primary:hover{
  background:var(--country-deep);
}

.destination-page .btn-soft:hover{
  color:var(--country-primary);
  border-color:color-mix(in srgb,var(--country-primary) 35%,#d8e0ea);
}

.destination-page .dest-hero{
  min-height:calc(100vh - 74px);
  display:grid;
  align-items:center;
  padding:58px 0 38px;
  background:
    linear-gradient(110deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.56) 46%,rgba(255,255,255,.86) 100%),
    radial-gradient(circle at 8% 14%,color-mix(in srgb,var(--country-primary) 20%,transparent),transparent 28%),
    radial-gradient(circle at 86% 18%,color-mix(in srgb,var(--country-secondary) 20%,transparent),transparent 28%),
    linear-gradient(135deg,var(--country-soft),var(--country-warm));
  border-bottom:1px solid color-mix(in srgb,var(--country-primary) 14%,#e8edf4);
}

.destination-page .dest-hero::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.5;
  background:
    linear-gradient(90deg,var(--country-primary) 0 33%,var(--country-accent) 33% 66%,var(--country-secondary) 66% 100%);
  clip-path:polygon(0 0,100% 0,100% 12px,0 22px);
}

.destination-page .dest-hero-grid{
  grid-template-columns:minmax(0,.95fr) minmax(360px,1.02fr);
  gap:52px;
}

.destination-page .dest-flag-emoji{
  font-size:3rem;
}

.destination-page .dest-flag-badge{
  border-color:color-mix(in srgb,var(--country-primary) 22%,#dde6f1);
  color:var(--country-primary);
}

.destination-page .dest-hero h1{
  max-width:14ch;
  color:var(--country-deep);
  font-size:4.5rem;
  letter-spacing:0;
}

.destination-page .dest-hero-region{
  color:color-mix(in srgb,var(--country-deep) 54%,#7d8998);
}

.destination-page .dest-copy{
  max-width:680px;
  color:#4f647a;
  font-size:1.06rem;
}

.destination-page .dest-pill{
  border-radius:8px;
  border-color:color-mix(in srgb,var(--country-primary) 18%,#dde6f1);
  background:rgba(255,255,255,.78);
  color:var(--country-deep);
}

.destination-page .dest-hero-stage{
  min-height:480px;
}

.destination-page .dest-orbit{
  border-color:color-mix(in srgb,var(--country-primary) 26%,transparent);
}

.country-hero-art{
  position:relative;
  width:min(530px,100%);
  min-height:430px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--country-primary) 22%,#dfe7f1);
  border-radius:8px;
  background:
    linear-gradient(150deg,rgba(255,255,255,.94),rgba(255,255,255,.66)),
    radial-gradient(circle at 72% 20%,color-mix(in srgb,var(--country-secondary) 25%,transparent),transparent 26%),
    radial-gradient(circle at 18% 78%,color-mix(in srgb,var(--country-primary) 22%,transparent),transparent 31%),
    linear-gradient(135deg,var(--country-soft),var(--country-warm));
  box-shadow:0 34px 72px rgba(30,47,74,.15),0 18px 38px var(--country-glow);
  transform-style:preserve-3d;
  transform:rotateY(-7deg) rotateX(3deg) translateZ(10px);
  transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease;
}

.country-hero-art:hover{
  transform:rotateY(-3deg) rotateX(1deg) translateY(-4px);
  box-shadow:0 40px 82px rgba(30,47,74,.18),0 22px 46px var(--country-glow);
}

.country-hero-art::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:14px;
  background:linear-gradient(90deg,var(--country-primary) 0 33%,var(--country-accent) 33% 66%,var(--country-secondary) 66% 100%);
}

.country-hero-art::after{
  content:"";
  position:absolute;
  inset:42px 26px 26px;
  opacity:.28;
  background:
    linear-gradient(color-mix(in srgb,var(--country-primary) 16%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--country-primary) 16%,transparent) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(180deg,#000,transparent 90%);
}

.hero-map-label{
  position:absolute;
  top:42px;
  left:32px;
  z-index:2;
}

.hero-map-label span{
  display:block;
  color:var(--country-deep);
  font-family:'Fraunces',Georgia,serif;
  font-size:4rem;
  line-height:.9;
  letter-spacing:0;
}

.hero-map-label small{
  display:block;
  margin-top:10px;
  color:#5f7085;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.hero-route-line{
  position:absolute;
  right:56px;
  top:78px;
  z-index:2;
  width:210px;
  height:132px;
  border-top:2px solid color-mix(in srgb,var(--country-primary) 48%,transparent);
  border-right:2px solid color-mix(in srgb,var(--country-secondary) 44%,transparent);
  border-radius:0 90px 0 0;
  transform:rotate(-9deg);
}

.hero-pin{
  position:absolute;
  z-index:3;
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--country-secondary);
  box-shadow:0 0 0 8px color-mix(in srgb,var(--country-secondary) 15%,transparent);
}

.hero-pin-one{right:244px;top:72px}
.hero-pin-two{right:48px;top:190px;background:var(--country-primary);box-shadow:0 0 0 8px color-mix(in srgb,var(--country-primary) 15%,transparent)}

.hero-flag{
  position:absolute;
  left:50%;
  top:47%;
  z-index:3;
  width:320px;
  height:200px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.82);
  border-radius:8px;
  background:#fff;
  box-shadow:0 22px 42px rgba(20,38,62,.18);
  transform:translate(-50%,-50%);
}

.hero-flag .shape{
  position:absolute;
  display:block;
  background:var(--country-primary);
  box-shadow:none;
}

.hero-ticket{
  position:absolute;
  left:30px;
  right:30px;
  bottom:30px;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:76px;
  padding:17px 20px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:8px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(12px);
  box-shadow:0 16px 36px rgba(22,40,65,.1);
}

.hero-ticket strong{
  color:var(--country-deep);
  font-family:'Fraunces',Georgia,serif;
  font-size:1.32rem;
  letter-spacing:0;
}

.hero-ticket span{
  color:#627288;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
  text-align:right;
  text-transform:uppercase;
}

.hero-australia .hero-flag{
  background:#012169;
}

.hero-australia .shape-one{
  left:0;
  top:0;
  width:148px;
  height:92px;
  background:
    linear-gradient(27deg,transparent 0 42%,#fff 42% 49%,#c8102e 49% 53%,#fff 53% 60%,transparent 60%),
    linear-gradient(-27deg,transparent 0 42%,#fff 42% 49%,#c8102e 49% 53%,#fff 53% 60%,transparent 60%),
    linear-gradient(90deg,transparent 0 43%,#fff 43% 57%,transparent 57%),
    linear-gradient(0deg,transparent 0 39%,#fff 39% 61%,transparent 61%),
    linear-gradient(90deg,transparent 0 47%,#c8102e 47% 53%,transparent 53%),
    linear-gradient(0deg,transparent 0 45%,#c8102e 45% 55%,transparent 55%),
    #012169;
}

.hero-australia .shape-two,
.hero-australia .shape-three,
.hero-australia .shape-four{
  background:transparent;
}

.hero-australia .shape-two::before{
  content:"★";
  position:absolute;
  left:42px;
  top:118px;
  color:#fff;
  font-size:32px;
  line-height:1;
}

.hero-australia .shape-three::before{
  content:"★";
  position:absolute;
  left:228px;
  top:44px;
  color:#fff;
  font-size:20px;
  line-height:1;
  text-shadow:30px 36px 0 #fff, -8px 78px 0 #fff, 36px 104px 0 #fff;
}

.hero-australia .shape-four::before{
  content:"★";
  position:absolute;
  left:270px;
  top:100px;
  color:#fff;
  font-size:14px;
  line-height:1;
}

.hero-canada .hero-flag{
  background:linear-gradient(90deg,#d80621 0 25%,#fff 25% 75%,#d80621 75% 100%);
}

.hero-canada .shape-one{
  left:50%;
  top:40px;
  width:88px;
  height:98px;
  background:#d80621;
  clip-path:polygon(50% 0,59% 24%,81% 12%,73% 37%,98% 39%,76% 55%,88% 80%,60% 70%,50% 100%,40% 70%,12% 80%,24% 55%,2% 39%,27% 37%,19% 12%,41% 24%);
  transform:translateX(-50%);
}

.hero-canada .shape-two,
.hero-canada .shape-three,
.hero-canada .shape-four{
  display:none;
}

.hero-germany .hero-flag{
  background:linear-gradient(180deg,#111 0 33.333%,#dd0000 33.333% 66.666%,#ffce00 66.666% 100%);
}

.hero-germany .shape,
.hero-ireland .shape{
  display:none;
}

.hero-ireland .hero-flag{
  background:linear-gradient(90deg,#169b62 0 33.333%,#fff 33.333% 66.666%,#ff883e 66.666% 100%);
}

.hero-uk .hero-flag{
  background:
    linear-gradient(29deg,transparent 0 42%,#fff 42% 48%,#c8102e 48% 52%,#fff 52% 58%,transparent 58%),
    linear-gradient(-29deg,transparent 0 42%,#fff 42% 48%,#c8102e 48% 52%,#fff 52% 58%,transparent 58%),
    linear-gradient(90deg,transparent 0 42%,#fff 42% 58%,transparent 58%),
    linear-gradient(0deg,transparent 0 38%,#fff 38% 62%,transparent 62%),
    linear-gradient(90deg,transparent 0 47%,#c8102e 47% 53%,transparent 53%),
    linear-gradient(0deg,transparent 0 44%,#c8102e 44% 56%,transparent 56%),
    #012169;
}

.hero-uk .shape{
  display:none;
}

.hero-us .hero-flag{
  background:repeating-linear-gradient(180deg,#b22234 0 15.4px,#fff 15.4px 30.8px);
}

.hero-us .shape-one{
  left:0;
  top:0;
  width:142px;
  height:108px;
  background:#3c3b6e;
}

.hero-us .shape-one::before{
  content:"★ ★ ★ ★ ★\A  ★ ★ ★ ★\A ★ ★ ★ ★ ★\A  ★ ★ ★ ★\A ★ ★ ★ ★ ★";
  position:absolute;
  left:11px;
  top:9px;
  color:#fff;
  font-size:9px;
  line-height:1.75;
  letter-spacing:4px;
  white-space:pre;
}

.hero-us .shape-two,
.hero-us .shape-three,
.hero-us .shape-four{
  display:none;
}

.destination-page .dest-image-shell{
  border-radius:18px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.98),color-mix(in srgb,var(--country-soft) 70%,#fff));
  box-shadow:0 34px 72px rgba(30,47,74,.16),0 18px 36px var(--country-glow);
}

.destination-page .dest-image-shell::before{
  border-radius:18px;
  background:linear-gradient(135deg,var(--country-primary),var(--country-secondary));
  opacity:.18;
}

.destination-page .dest-image-shell .photo-frame{
  border-radius:12px;
}

.destination-page .dest-gloss{
  border-radius:12px;
}

.destination-page .float-chip{
  border-radius:8px;
  color:var(--country-deep);
}

.destination-page .float-chip b{
  border-radius:7px;
  background:color-mix(in srgb,var(--country-primary) 13%,#fff);
}

.hero-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  max-width:680px;
  margin-top:26px;
  opacity:0;
  transform:translateY(16px);
  animation:riseIn .7s ease .42s forwards;
}

.metric-card{
  min-height:96px;
  padding:16px;
  border:1px solid color-mix(in srgb,var(--country-primary) 16%,#dde6f1);
  border-radius:10px;
  background:rgba(255,255,255,.74);
  box-shadow:0 14px 34px rgba(23,44,72,.07);
}

.metric-card strong{
  display:block;
  color:var(--country-deep);
  font-family:'Fraunces',Georgia,serif;
  font-size:1.5rem;
  line-height:1;
  letter-spacing:0;
}

.metric-card span{
  display:block;
  margin-top:8px;
  color:#65758a;
  font-size:.74rem;
  font-weight:800;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.section-head{
  max-width:720px;
}

.section-head h2,
.detail-panel h2,
.steps-copy h2{
  color:var(--country-deep);
  font-size:2.8rem;
  letter-spacing:0;
}

.section-head p,
.detail-panel>p,
.steps-copy p{
  margin:14px 0 0;
  color:#5f7085;
}

.why-section{
  padding:82px 0 76px;
  background:#fff;
}

.why-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:34px;
}

.reason-card{
  min-height:252px;
  padding:24px;
  border:1px solid color-mix(in srgb,var(--country-primary) 14%,#e3e9f2);
  border-radius:8px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.9)),
    linear-gradient(135deg,var(--country-soft),var(--country-warm));
  box-shadow:0 22px 46px rgba(27,45,70,.08);
}

.reason-number{
  display:inline-grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:8px;
  background:var(--country-primary);
  color:#fff;
  font-weight:900;
  font-size:.78rem;
}

.reason-card h3,
.pathway-item h3,
.step-card h3{
  margin:18px 0 8px;
  color:var(--country-deep);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  font-size:1.04rem;
  letter-spacing:0;
}

.reason-card p,
.pathway-item p,
.step-card p,
.fact-list dd{
  margin:0;
  color:#64748a;
  font-size:.9rem;
  line-height:1.7;
}

.detail-section{
  padding:78px 0;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--country-soft) 72%,#fff),#fff);
}

.detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.65fr);
  gap:22px;
  align-items:stretch;
}

.detail-panel,
.country-card,
.step-card{
  border:1px solid color-mix(in srgb,var(--country-primary) 15%,#e3e9f2);
  border-radius:8px;
  background:rgba(255,255,255,.9);
  box-shadow:0 24px 54px rgba(25,44,69,.08);
}

.detail-panel{
  padding:34px;
}

.pathway-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:26px;
}

.pathway-item{
  min-height:154px;
  padding:20px;
  border-radius:8px;
  background:linear-gradient(135deg,rgba(255,255,255,.95),color-mix(in srgb,var(--country-soft) 64%,#fff));
  border:1px solid color-mix(in srgb,var(--country-primary) 12%,#e8edf4);
}

.pathway-item span{
  color:var(--country-primary);
  font-size:.77rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.country-card{
  position:relative;
  overflow:hidden;
  padding:30px;
}

.country-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:8px;
  background:linear-gradient(90deg,var(--country-primary),var(--country-accent),var(--country-secondary));
}

.fact-list{
  display:grid;
  gap:18px;
  margin:24px 0 0;
}

.fact-list dt{
  color:var(--country-deep);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fact-list dd{
  margin-top:4px;
}

.steps-section{
  padding:78px 0 46px;
  background:#fff;
}

.steps-layout{
  display:grid;
  grid-template-columns:minmax(270px,.55fr) minmax(0,1fr);
  gap:30px;
  align-items:start;
}

.steps-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.step-card{
  min-height:185px;
  padding:24px;
}

.step-card span{
  color:var(--country-primary);
  font-family:'Fraunces',Georgia,serif;
  font-size:1.6rem;
  font-weight:650;
}

.destination-page .uni-section{
  padding:76px 0;
  background:
    linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--country-soft) 54%,#fff) 100%);
}

.destination-page .uni-head h2{
  color:var(--country-deep);
  font-size:2.55rem;
  letter-spacing:0;
}

.destination-page .uni-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}

.destination-page .uni-card{
  min-height:310px;
  display:flex;
  flex-direction:column;
  border-radius:8px;
  border-color:color-mix(in srgb,var(--country-primary) 14%,#e3e9f2);
}

.destination-page .uni-card:hover{
  border-color:color-mix(in srgb,var(--country-primary) 36%,#c7d4e6);
}

.destination-page .uni-top{
  align-items:flex-start;
}

.destination-page .uni-icon{
  border-radius:8px;
  background:color-mix(in srgb,var(--country-primary) 12%,#fff);
  color:var(--country-primary);
}

.destination-page .uni-meta{
  margin-top:auto;
  padding-top:16px;
}

.destination-page .uni-tag{
  border-radius:7px;
  background:color-mix(in srgb,var(--country-soft) 72%,#fff);
}

.destination-page .uni-link{
  color:var(--country-primary);
}

.destination-page .dest-cta{
  padding:28px 0 84px;
  background:#fff;
}

.destination-page .dest-cta-box{
  border-radius:8px;
  background:
    linear-gradient(110deg,color-mix(in srgb,var(--country-primary) 95%,#111),color-mix(in srgb,var(--country-secondary) 82%,#111));
  box-shadow:0 30px 68px var(--country-glow);
}

.destination-page .dest-cta-box .kicker,
.destination-page .dest-cta-box h2,
.destination-page .dest-cta-box p{
  color:#fff;
}

.destination-page .dest-cta-box p{
  opacity:.86;
}

.destination-page .dest-cta-actions .btn-primary{
  background:#fff;
  color:var(--country-primary);
  border-color:#fff;
}

.destination-page .dest-cta-actions .btn-primary:hover{
  background:rgba(255,255,255,.9);
}

.destination-page .dest-cta-actions .btn-soft{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.52);
  color:#fff;
}

.destination-page .dest-cta-actions .btn-soft:hover{
  background:#fff;
  color:var(--country-primary);
}

@media(max-width:1100px){
  .destination-page .uni-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:1000px){
  .destination-page .dest-hero{
    min-height:auto;
  }

  .destination-page .dest-hero-grid,
  .detail-grid,
  .steps-layout{
    grid-template-columns:1fr;
  }

  .destination-page .dest-hero h1{
    max-width:none;
    font-size:3.5rem;
  }

  .section-head h2,
  .detail-panel h2,
  .steps-copy h2{
    font-size:2.35rem;
  }

  .destination-page .uni-head h2{
    font-size:2.25rem;
  }
}

@media(max-width:760px){
  .destination-page .dest-hero{
    padding-top:48px;
  }

  .destination-page .dest-hero h1{
    font-size:2.65rem;
  }

  .section-head h2,
  .detail-panel h2,
  .steps-copy h2,
  .destination-page .uni-head h2{
    font-size:2rem;
  }

  .hero-metrics,
  .why-grid,
  .pathway-list,
  .steps-grid,
  .destination-page .uni-grid{
    grid-template-columns:1fr;
  }

  .country-hero-art{
    min-height:390px;
  }

  .hero-map-label{
    top:36px;
    left:24px;
  }

  .hero-map-label span{
    font-size:3.2rem;
  }

  .hero-flag{
    width:320px;
    height:200px;
    transform:translate(-50%,-50%) scale(.78);
  }

  .hero-ticket{
    left:22px;
    right:22px;
    bottom:22px;
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }

  .hero-ticket span{
    text-align:left;
  }

  .metric-card,
  .reason-card,
  .pathway-item,
  .step-card,
  .destination-page .uni-card{
    min-height:auto;
  }

  .detail-panel,
  .country-card{
    padding:24px;
  }
}

@media(prefers-reduced-motion:reduce){
  .hero-metrics,
  .country-hero-art{
    animation:none;
    opacity:1;
    transform:none;
    transition:none;
  }
}
