/* =========================
   Global font
========================= */

body,
main,
article,
section,
li,
dt,
dd,
a,
button {
  font-family: "Outfit", "Noto Sans JP", sans-serif !important;
  letter-spacing: 0.025em;
}


p,
.AfBlockRichText,
.AfCard__text {
  font-family: "Outfit", "Noto Sans JP", sans-serif !important;
  font-weight: 400;
  font-size: 1.2rem !important;
  line-height: 1.85 !important;
  letter-spacing: 0.025em;
}


h1,
h2,
h3,
.heading-1,
.heading-2,
.heading-3 {
  font-family:"Noto Serif JP", serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em;
}



/* =========================
   Section headings
========================= */

.heading-2 {
  font-size: 2rem !important;
  line-height: 1.35 !important;
  margin-bottom: 28px !important;
}



/* =========================
   Focus cards
========================= */

.AfFocus__link {
  font-family: "Outfit", "Noto Sans JP", sans-serif !important;
  font-size: 1.35rem !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
}



.AfCard__title,
.AfCard__link,
.af-tour__title {
  font-family:"Noto Serif JP", serif !important;
  font-weight: 700 !important;
}



/* =========================
   Hero title
========================= */

.AfHero__title.heading-1 {
  font-family:"Noto Serif JP", serif !important;
  font-weight: 600 !important;

  max-width: 480px !important;
  line-height: 1.42 !important;
  letter-spacing: 0.08em !important;

  display: block !important;
  margin: 0 auto !important;
  padding: 0 !important;

  color: #ffffff !important;
  text-align: center !important;

  background: none !important;
  border-radius: 0 !important;

  text-shadow:
    0 3px 18px rgba(0,0,0,.45),
    0 1px 3px rgba(0,0,0,.35);
}


/* =========================
   Hero intro
========================= */

.AfHero__intro.paragraph-xl,
.AfHero__intro.paragraph-xl p {
  font-size: 1.25rem !important;
  line-height: 1.8 !important;
  letter-spacing: 0.025em !important;
}



/* =========================
   Promo block
========================= */

.AfPromo {
  background: #f3f1e9 !important;
  padding: 60px 40px !important;
}


.AfPromo__heading .heading-3 {
  line-height: 1.6 !important;
}


.AfPromo__content .AfButton--red {
  background-color:#4a7bb8 !important;
  border-color:#4a7bb8 !important;
  color:#ffffff !important;
}


.AfPromo__content .AfButton--red:hover {
  background-color:#3a6a9e !important;
  border-color:#3a6a9e !important;
}



/* =========================
   Button
========================= */

button,
.af-tour__btn {
  font-family:"Outfit","Noto Sans JP",sans-serif !important;
  font-weight:700 !important;
}



/* =========================
   PC
========================= */

@media(min-width:1024px){

  .AfPromo__content {
    display:grid !important;
    grid-template-columns:1fr 1.2fr !important;
    gap:40px !important;
    align-items:center !important;
  }


  .AfPromo__heading {
    background:#ffffff !important;
    padding:32px 36px !important;
    border-radius:8px !important;
    max-width:360px !important;
  }


  .AfPromo__heading .heading-3 {
    max-width:320px !important;
    font-size:1.7rem !important;
    line-height:1.65 !important;
  }

}



/* =========================
   Tablet
========================= */

@media(min-width:600px) and (max-width:1023px){

  .AfPromo__heading .heading-3 {
    font-size:1.45rem!important;
    line-height:1.6!important;
  }

}



/* =========================
   Mobile
========================= */

@media(max-width:599px){


  .AfHero__title.heading-1 {

    width:calc(100% - 64px) !important;
    max-width:620px !important;

    margin-left:auto !important;
    margin-right:auto !important;

    padding:20px 18px !important;
    box-sizing:border-box !important;

    font-size:2.05rem !important;
    line-height:1.55 !important;
    letter-spacing:0.035em !important;

    text-align:center !important;

    word-break:keep-all !important;
    overflow-wrap:normal !important;
  }



  .AfHero__intro.paragraph-xl,
  .AfHero__intro.paragraph-xl p {
    font-size:1rem!important;
    line-height:1.7!important;
  }


  .AfHero__intro.bg-white {
    padding:22px!important;
  }



  .heading-2 {
    font-size:1.55rem!important;
    line-height:1.4!important;
  }



  .AfFocus__link {
    font-size:1.25rem!important;
    line-height:1.45!important;
  }



  .AfPromo__heading {
    background:#ffffff!important;
    padding:24px!important;
    border-radius:8px!important;
    margin-bottom:20px!important;
  }


  .AfPromo__heading .heading-3 {
    font-size:1.25rem!important;
    line-height:1.55!important;
  }

}

.AfPromo {
  background: none !important;
  background-color: transparent !important;
  padding: 40px 0 !important;
}

.cotedazur-cities-section {
position: relative;

margin: 56px calc(50% - 50vw);
padding: 60px calc((100vw - 1180px) / 2);

background: #dff3fb;
}

.cotedazur-cities-section h2,
.cotedazur-cities-grid {
max-width: 1180px;
margin-left: auto;
margin-right: auto;
}

.cotedazur-cities-section h2 {
  font-size: 1.9rem !important;
  font-family: "Noto Serif JP", serif !important;
  margin: 0 0 36px;
  text-align: center;
  line-height: 1.4;
  font-weight: 700;
}

.cotedazur-cities-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 34px;
}

.cotedazur-city-card {
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(0,20,60,0.08);
  transition: transform .25s ease, box-shadow .25s ease;
}

.cotedazur-city-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0,20,60,0.13);
}

/* 上段・中段（2枚＋2枚） */
.cotedazur-city-card:nth-child(1),
.cotedazur-city-card:nth-child(2),
.cotedazur-city-card:nth-child(3),
.cotedazur-city-card:nth-child(4) {
  grid-column: span 3;
}

/* 下段（3枚） */
.cotedazur-city-card:nth-child(5),
.cotedazur-city-card:nth-child(6),
.cotedazur-city-card:nth-child(7) {
  grid-column: span 2;
}

.cotedazur-city-card img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
}

.cotedazur-city-card:nth-child(5) img,
.cotedazur-city-card:nth-child(6) img,
.cotedazur-city-card:nth-child(7) img {
  height: 245px;
}

.cotedazur-city-card-content {
  padding: 24px 22px 30px;
}

/* タグ */
.cotedazur-city-tag {
display: block;
margin: 0 0 12px;

font-family: "Noto Serif JP", serif !important;
font-size: 0.9rem;
font-weight: 600;

letter-spacing: 0.18em;
line-height: 1;

color: #08639f;

text-transform: uppercase;
}


/* 下線アクセント */
.cotedazur-city-tag::after {
content: "";
display: block;

width: 36px;
height: 1px;

margin-top: 10px;

background: #08639f;
}
.cotedazur-city-card h3 {
  font-size: 1.35rem !important;
  margin: 0 0 16px;
  line-height: 1.45;
  font-weight: 700;
  color:#00143c;
}

.cotedazur-city-card-content p {
  margin: 0;
  font-size: 1.25rem !important;
  line-height: 1.85 !important;
  letter-spacing: 0.025em;
}


/* =========================
   Photo credit
========================= */

.cotedazur-img-wrap {
  position: relative;
}

.cotedazur-img-wrap img {
  display: block;
  width: 100%;
}

.photo-credit {
  position: absolute;
  right: 8px;
  bottom: 6px;
  color: #fff;
  font-size: 10px;
  line-height: 1;
  text-shadow: 0 1px 4px rgba(0,0,0,.6);
  z-index: 2;
}

/* =========================
   Tablet
========================= */

@media(max-width:1023px){

  .cotedazur-cities-grid {
    grid-template-columns: repeat(2,1fr);
    gap:28px;
  }

  .cotedazur-city-card:nth-child(n){
    grid-column:span 1;
  }

  .cotedazur-city-card img {
    height:240px !important;
  }

}

/* =========================
   Mobile
========================= */

@media(max-width:599px){

  .cotedazur-cities-section {
margin:40px calc(50% - 50vw) !important;
padding:40px 24px !important;
box-sizing:border-box;
}


.cotedazur-cities-section h2 {
font-size:1.55rem !important;
margin:0 auto 28px !important;
padding:0 8px;
line-height:1.5;
}


.cotedazur-cities-grid {
grid-template-columns:1fr;
gap:24px;

width:100%;
max-width:100%;
}


.cotedazur-city-card {
width:100%;
border-radius:12px;
}


.cotedazur-city-card img {
height:220px !important;
}


.cotedazur-city-card-content {
padding:24px 22px 28px;
}


.cotedazur-city-tag {
font-size:.85rem;
}


.cotedazur-city-card h3 {
font-size:1.25rem !important;
line-height:1.5;
}


.cotedazur-city-card-content p {
font-size:1.25rem !important;
line-height:1.75 !important;
}
}

.cotedazur-instagram-section{
max-width:1180px;
margin:56px auto;
padding:0 24px;
}

.cotedazur-instagram-section h2{
font-size:1.9rem!important;
font-family:"Noto Serif JP",serif!important;
text-align:center;
margin:0 0 36px;
}


/* grid */
.cotedazur-instagram-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:18px;
}


/* card */
.cotedazur-instagram-card{
position:relative;
display:block;
overflow:hidden;
border-radius:12px;
aspect-ratio:1/1;
box-shadow:0 8px 22px rgba(0,20,60,.08);
transition:.3s ease;
}


.cotedazur-instagram-card:hover{
transform:translateY(-4px);
box-shadow:0 14px 30px rgba(0,20,60,.14);
}


.cotedazur-instagram-card img{
width:100%;
height:100%;
display:block;
object-fit:cover;
transition:.4s ease;
}


.cotedazur-instagram-card:hover img{
transform:scale(1.05);
}


/* Instagram感 */
.cotedazur-instagram-card::after{
content:"Instagram →";
position:absolute;
right:14px;
bottom:12px;

font-family:"Outfit",sans-serif;
font-size:.8rem;
font-weight:600;
letter-spacing:.08em;

color:#fff;
text-shadow:0 2px 8px rgba(0,0,0,.5);

opacity:0;
transition:.3s;
}


.cotedazur-instagram-card:hover::after{
opacity:1;
}


/* tablet */
@media(max-width:1023px){

.cotedazur-instagram-grid{
grid-template-columns:repeat(2,1fr);
}

}


/* mobile */
@media(max-width:599px){

.cotedazur-instagram-section{
margin:40px auto;
padding:0 18px;
}

.cotedazur-instagram-section h2{
font-size:1.55rem!important;
}

.cotedazur-instagram-grid{
gap:14px;
}

}

.AfCampaign.bg-goldLight {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 72px 0 !important;
  background: linear-gradient(
    135deg,
    #dff3fb 0%,
    #eef9fc 60%,
    #ffffff 100%
  ) !important;
}

.AfCampaign .AfCampaign__heading,
.AfCampaign .heading-2.color-gold {
  display: none !important;
}


.AfCampaign .AfCampaign__content {
  display: grid !important;
  grid-template-columns: 440px minmax(640px, 1fr) !important;
  gap: 56px !important;
  align-items: center !important;
  max-width: 1320px !important;
  margin: 0 auto !important;
  padding: 0 48px !important;
  box-sizing: border-box !important;
}


.AfCampaign .AfCampaign__articles {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

.AfCampaign .AfCampaign__video {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
}


.AfCampaign .AfCampaign__articles .AfCard--small {
  display: flex !important;
  flex-direction: column-reverse !important;
  width: 100% !important;
  max-width: 440px !important;
  background: #ffffff !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  box-shadow: 0 12px 30px rgba(0,120,200,.12) !important;
}

.AfCampaign .AfCampaign__articles .AfCard__cover {
  width: 100% !important;
  height: 260px !important;
  min-height: 260px !important;
  order: 2 !important;
}

.AfCampaign .AfCampaign__articles .AfCard__cover .AfImage,
.AfCampaign .AfCampaign__articles .AfCard__cover img,
.AfCampaign .AfCampaign__articles .AfCard__cover .AfImage__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 0 !important;
}

.AfCampaign .AfCampaign__articles .AfCard__content {
  display: block !important;
  padding: 28px 30px !important;
  order: 1 !important;
}

.AfCampaign .AfCampaign__articles .AfCard__title,
.AfCampaign .AfCampaign__articles .AfCard__link {
  display: block !important;
  font-size: 1.52rem !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  color: #00143c !important;
  text-decoration: none !important;
  margin-bottom: 16px !important;
}

.AfCampaign .AfCampaign__articles .AfCard__text {
  display: block !important;
  font-size: 1.28rem !important;
  line-height: 1.75 !important;
  color: #000000 !important;
  margin: 0 !important;
}


.AfCampaign .AfYoutubePlayer,
.AfCampaign .AfYoutubePlayer__player {
  width: 100% !important;
}

.AfCampaign .AfCampaign__video iframe,
.AfCampaign .AfYoutubePlayer__frame {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  min-height: 420px !important;
  display: block !important;
  border-radius: 16px !important;
  box-shadow: 0 12px 30px rgba(0,120,200,.12) !important;
}

@media(max-width: 1100px) {
  .AfCampaign .AfCampaign__content {
    grid-template-columns: 400px minmax(0, 1fr) !important;
    gap: 36px !important;
  }

  .AfCampaign .AfCampaign__video iframe,
  .AfCampaign .AfYoutubePlayer__frame {
    min-height: 320px !important;
  }
}

@media(max-width: 820px) {
  .AfCampaign.bg-goldLight {
    padding: 36px 0 !important;
  }

  .AfCampaign .AfCampaign__content {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 0 24px !important;
  }

  .AfCampaign .AfCampaign__articles,
  .AfCampaign .AfCampaign__video {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .AfCampaign .AfCampaign__articles .AfCard--small {
    max-width: 100% !important;
  }

  .AfCampaign .AfCampaign__articles .AfCard__cover {
    height: 240px !important;
    min-height: 240px !important;
  }

  .AfCampaign .AfCampaign__articles .AfCard__content {
    padding: 22px !important;
  }

  .AfCampaign .AfCampaign__articles .AfCard__title,
  .AfCampaign .AfCampaign__articles .AfCard__link {
    font-size: 1.3rem !important;
  }

  .AfCampaign .AfCampaign__articles .AfCard__text {
    font-size: 1rem !important;
  }

  .AfCampaign .AfCampaign__video iframe,
  .AfCampaign .AfYoutubePlayer__frame {
    min-height: 0 !important;
  }
}

.af-tour {
  width: 100%;
  margin: 32px 0;
  padding: 32px 0;
  background: linear-gradient(135deg, #eef7fb 0%, #f8f2e8 100%) !important;
  color: #00143c;
}

.af-tour__container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

.af-tour__inner {
  display: grid !important;
  grid-template-columns: 420px minmax(0, 1fr) !important;
  gap: 32px !important;
  align-items: stretch !important;
}

.af-tour__media {
  margin: 0 !important;
}

.af-tour__media a {
  display: block !important;
  height: 100% !important;
}

.af-tour__media img {
  width: 100% !important;
  height: 100% !important;
  min-height: 520px !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 22px !important;
  box-shadow: 0 14px 34px rgba(0, 20, 60, 0.16);
}

.af-tour__content {
  background: rgba(255,255,255,.94);
  border-radius: 22px;
  padding: 30px 36px;
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
  box-sizing: border-box;
}

.af-tour__brand {
  margin-bottom: 18px;
}

.af-tour__brand img {
  max-width: 90px;
  height: auto;
  display: block;
}

.af-tour__lead {
  font-size: 1.45rem !important;
  line-height: 1.45 !important;
  font-weight: 700;
  margin: 0 0 14px;
}

.af-tour__kicker {
  font-size: 1.15rem !important;
  line-height: 1.5 !important;
  font-weight: 700;
  margin: 0 0 8px;
}

.af-tour__title {
  font-size: 2.35rem !important;
  line-height: 1.25 !important;
  margin: 0 0 18px;
}

.af-tour__text {
  font-size: 1.16rem !important;
  line-height: 1.7 !important;
  margin: 0 0 20px;
}

.af-tour__dl {
  width: 78%;
  max-width: 720px;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(0,20,60,.18);
}

.af-tour__row {
  display: grid;
  grid-template-columns: 7em 1fr;
  gap: 16px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(0,20,60,.18);
}

.af-tour__row dt,
.af-tour__row dd {
  font-size: 1.08rem !important;
  line-height: 1.55 !important;
}

.af-tour__row dt {
  font-weight: 700;
  white-space: nowrap;
}

.af-tour__row dd {
  margin: 0;
}

.af-tour__cta {
  margin-top: 20px;
}

.af-tour__btn {
  display: inline-block;
  background: #0078c8;
  color: #fff !important;
  padding: 14px 34px;
  border-radius: 999px;
  font-size: 1.15rem !important;
  font-weight: 700;
  text-decoration: none !important;
  box-shadow: 0 4px 10px rgba(0,120,200,.18);
  transition: all .25s ease;
}

.af-tour__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0,120,200,.22);
}

@media (max-width: 820px) {
  .af-tour__inner {
    grid-template-columns: 1fr !important;
  }

  .af-tour__media img {
    height: auto !important;
    min-height: 0 !important;
    max-height: 420px !important;
  }

  .af-tour__content {
    padding: 24px 22px;
  }

  .af-tour__dl {
    width: 100%;
  }

  .af-tour__title {
    font-size: 1.7rem !important;
  }

  .af-tour__row {
    grid-template-columns: 1fr;
  }
}