@charset "UTF-8";

/* =====================================================
  SECTION HEAD
===================================================== */

.fd-blockhead{
  margin-bottom:18px;
}

.fd-kicker{
  margin:0 0 12px;
  color:rgba(0,0,0,.44);
  font-family:var(--fd-serif-en);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.28em;
  text-transform:uppercase;
}

.fd-title{
  font-family:var(--fd-heading);
  font-size:clamp(34px,4vw,54px);
  line-height:1.18;
  font-weight:400;
  letter-spacing:.08em;
  color:rgba(0,0,0,.84);
}

.fd-body{
  max-width:780px;
  color:rgba(0,0,0,.58);
  line-height:2.05;
}

.fd-blockhead--center{
  text-align:center;
}

.fd-title--center{
  text-align:center;
}


/* =====================================================
  GRID / CARD
===================================================== */

.fd-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.fd-card{
  display:block;
  color:inherit;
  text-decoration:none;
  padding:24px 0 22px;
  border-top:1px solid var(--fd-line);
}

.fd-card__kicker{
  margin:0 0 10px;
  color:rgba(0,0,0,.42);
  font-family:var(--fd-serif-en);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.fd-card__title{
  margin:0 0 12px;
  font-family:var(--fd-heading);
  font-size:19px;
  line-height:1.5;
  font-weight:400;
  letter-spacing:.08em;
  color:rgba(0,0,0,.84);
}

.fd-card__body{
  color:rgba(0,0,0,.54);
  line-height:1.95;
}


/* =====================================================
  RIGHT FIXED BADGES
===================================================== */

.fd-sidebadges{
  position:fixed; top:50%; right:0; transform:translateY(-50%);
  z-index:120; display:flex; flex-direction:column; gap:0;
  width:40px; background:#313131; color:#f8f8f8;
}
.fd-sidebadges::before{
  content:""; position:absolute; left:8px; top:16px; bottom:16px;
  width:1px; background:rgba(248,248,248,.35); pointer-events:none;
}
.fd-sidebadge{
  width:40px; height:152px; display:flex; align-items:center; justify-content:center;
  padding:0; border:0; background:transparent; color:inherit; text-decoration:none;
  font:400 12px/1.2 'Cormorant Garamond',serif; letter-spacing:.08em;
  transition:transform .3s ease,opacity .3s ease;
}
.fd-sidebadge span{ writing-mode:vertical-rl; }
@media(hover:hover) and (pointer:fine){
  .fd-sidebadge:hover{ transform:translateY(2px); opacity:.8; }
}
.fd-spbar{
  position:fixed; left:20px; right:20px;
  bottom:calc(12px + env(safe-area-inset-bottom,0px));
  display:none; height:52px; z-index:200; background:#313131;
}
.fd-spbar__btn{
  flex:1; min-width:0; height:52px; padding:0 12px;
  display:flex; align-items:center; justify-content:center;
  border:0; background:transparent; color:#f8f8f8; text-decoration:none;
  font:400 12px/1.4 'Cormorant Garamond',serif; letter-spacing:.08em;
}
.fd-sidebadge:focus-visible,.fd-spbar__btn:focus-visible{
  outline:2px solid #f8f8f8; outline-offset:-4px;
}
body.is-menu-open :is(.fd-sidebadges,.fd-spbar){ visibility:hidden; pointer-events:none; }
@media(prefers-reduced-motion:reduce){ .fd-sidebadge{ transition:none; } .fd-sidebadge:hover{ transform:none; } }

/* =====================================================
  RESERVE BUTTON ICON
===================================================== */

.fd-reserve__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  font-size:13px;
  line-height:1;
  color:rgba(0,0,0,.72);

  transform:translateY(-1px);
}

.fd-reserve__btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
}


/* =====================================================
  RESPONSIVE
===================================================== */

@media (max-width:960px){

  body{
    padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));
  }

  .fd-grid{
    grid-template-columns:1fr;
    gap:14px;
  }

  .fd-sidebadges{
    display:none;
  }

  .fd-spbar{
    display:flex;
  }

  .fd-title{
    font-size:clamp(24px,7vw,36px);
    line-height:1.22;
    letter-spacing:.06em;
  }

  .fd-card__title{
    font-size:17px;
    letter-spacing:.06em;
  }

}