@charset "UTF-8";

/************************************************************************
* 代表挨拶
* 数値は PSD 保存値（実寸 = カンプ@2x ÷ 2、画面幅 2046px で等倍）
************************************************************************/

/*------------------------------------------------------------------
ヒーロー
--------------------------------------------------------------------*/

.fantasia-greeting-hero__inner {
  position: relative;
  display: flex;
  align-items: flex-start;
}

/* タイトルと飾り文字は左カラム内で中央揃え（PSD の justification = center） */
.fantasia-greeting-hero__head {
  flex: 0 0 33.66%;
  margin-top: clamp(34px, 4.64vw, 95px);
  margin-left: 6.38%;
  text-align: center;
}

.fantasia-greeting-hero__title {
  margin: 0;
  color: var(--fantasia-sub-purple);
  font-size: var(--fantasia-sub-fz-title);
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1;
  text-indent: 0.2em; /* letter-spacing の末尾分を戻して中央に見せる */
}

.fantasia-greeting-hero__lead {
  margin: clamp(17px, 2.35vw, 48px) 0 0;
  line-height: 0;
}

.fantasia-greeting-hero__lead img {
  width: 100%;
  height: auto;
}

/* 写真と署名は本文と縦に重なるため、フローから外して絶対配置する
   （カンプでは block1 の見出しが写真の左横に来る） */
.fantasia-greeting-hero__profile {
  position: absolute;
  top: clamp(10px, 1.32vw, 27px);
  right: 0;
  left: 54.2%;
  display: flex;
  align-items: flex-start;
}

.fantasia-greeting-hero__figure {
  flex: 0 0 43.26%;
  margin: 0;
}

.fantasia-greeting-hero__figure img {
  width: 100%;
  height: auto;
}

.fantasia-greeting-hero__name {
  margin: clamp(70px, 9.775vw, 200px) 0 0 6.46%;
  font-size: clamp(20px, 1.955vw, 40px);
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.25;
}

.fantasia-greeting-hero__company {
  display: block;
  font-size: clamp(14px, 1.222vw, 25px);
  letter-spacing: 0.05em;
  line-height: 2;
}

/* 右端の金飾りと桜（装飾） */
.fantasia-greeting-hero__deco {
  position: absolute;
  top: clamp(13px, 1.71vw, 35px);
  right: 0;
  width: 8.82%;
  height: auto;
  pointer-events: none;
}

/*------------------------------------------------------------------
本文
--------------------------------------------------------------------*/

.fantasia-greeting-message {
  margin-top: clamp(28px, 3.617vw, 74px);
}

.fantasia-greeting-message .fantasia-sub-heading {
  color: var(--fantasia-sub-purple);
  font-size: clamp(20px, 1.711vw, 35px);
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.43;
}

.fantasia-greeting-message .fantasia-sub-heading::before {
  content: '◆';
  margin-right: 0.6em;
}

.fantasia-greeting-message .fantasia-sub-text {
  font-weight: 600;
}

h3.fantasia-sub-heading {
  font-size: clamp(15px, 1.3vw, 28px) !important;
}


/* ブロックの下余白・間隔はカンプ上で 1 ブロックずつ異なるため実測値で個別に当てる
   （罫線までの余白 = padding-bottom / 次ブロックまで = margin-top。単位は実寸 px 換算） */
.fantasia-greeting-message .fantasia-sub-block--ruled {
  padding-bottom: clamp(24px, 3.128vw, 64px);
}

.fantasia-greeting-message .fantasia-sub-block:nth-child(1) {
  padding-bottom: clamp(30px, 4.057vw, 83px);
}

.fantasia-greeting-message .fantasia-sub-block:nth-child(2) {
  padding-bottom: clamp(27px, 3.617vw, 74px);
}

.fantasia-greeting-message .fantasia-sub-block + .fantasia-sub-block {
  margin-top: clamp(28px, 3.763vw, 77px);
}

.fantasia-greeting-message .fantasia-sub-block:nth-child(2) {
  margin-top: clamp(35px, 4.741vw, 97px);
}

.fantasia-greeting-message .fantasia-sub-block:nth-child(3) {
  margin-top: clamp(33px, 4.496vw, 92px);
}

.fantasia-greeting-message .fantasia-sub-block:nth-child(5) {
  margin-top: clamp(30px, 4.008vw, 82px);
}

.fantasia-greeting-message .fantasia-sub-block:nth-child(6) {
  margin-top: clamp(26px, 3.519vw, 72px);
}

.fantasia-greeting-signature {
  margin: clamp(22px, 2.981vw, 61px) 0 0;
  padding-right: clamp(12px, 2.493vw, 51px);
  padding-left: var(--fantasia-sub-inset);
  font-size: var(--fantasia-sub-fz-text);
  letter-spacing: 0.03em;
  line-height: 1.74;
  text-align: right;
}

.mt30{
  margin: 30px 0 0 0 !important;
}

.tL{
  text-align: left !important;
}
.tC{
  text-align: center !important;
}
.tR{
  text-align: right !important;
}

.price_tbl{
  text-align:left;
  padding:20px 0;
}
.price_tbl table{
  font-size: var(--fantasia-sub-fz-text);
  font-weight: 600;
  margin:20px 0;
  border: 1px solid #664821;
  border-collapse: collapse;
}

.price_tbl table thead{
    background: linear-gradient(#fbf2f8, #f6edf4);
    font-weight: 700;
}


.price_tbl table th,
.price_tbl table td{
    height: 42px;
    padding: 6px 10px;
    border: 1px solid #c9c5c6;
}

.price_tbl table thead td,
.price_tbl table th{
    font-size: clamp(14px, 1.25vw, 18px);
}
.price_tbl table thead th,
.price_tbl table tbody th{
  text-align: left;
}

.price_tbl caption{
  caption-side: bottom;
  text-align: left;
  font-size:1.2rem;
}

.fantasia-ul{
  font-size: var(--fantasia-sub-fz-text);
  font-weight: 600;
}
.fantasia-ul li{
  margin: 0 0 10px;
}

/*------------------------------------------------------------------
狭い画面
--------------------------------------------------------------------*/

@media (max-width: 760px) {
  .fantasia-greeting-hero__inner {
    display: block;
  }

  .fantasia-greeting-hero__head {
    margin-left: 0;
  }

  .fantasia-greeting-hero__profile {
    position: static;
    display: block;
    margin-top: 32px;
  }

  .fantasia-greeting-hero__figure {
    width: 62%;
    margin-inline: auto;
  }

  .fantasia-greeting-hero__name {
    margin: 20px 0 0;
    text-align: center;
  }

  .fantasia-greeting-hero__deco {
    display: none;
  }
  .price_tbl table th, .price_tbl table td {
    padding: 10px 20px;
}

}
