/* ============================= 追従バナー ============================= */
/* 右下固定（PC/タブレット） */
.ec-follow-banner{
  position:fixed;
  right:24px;
  bottom:calc(24px + env(safe-area-inset-bottom));
  z-index:2147483000;
  pointer-events:auto;
  transform:none;
}
.ec-follow-link{
  display:block;
  text-decoration:none;
}
.ec-follow-img{
  display:block;
  /* PCでしっかり大きく表示。画面幅に応じて伸縮 */
  width:clamp(420px, 28vw, 560px);
  height:auto;
}

/* タブレットは少しだけ縮小 */
@media (max-width:1024px){
  .ec-follow-img{ width:clamp(360px, 34vw, 480px); }
}

/* スマホ：下中央・大きめ（画面幅に追従） */
@media (max-width:768px){
  .ec-follow-banner{
    right:auto;
    left:50%;
    bottom:calc(16px + env(safe-area-inset-bottom));
    transform:translateX(-50%);
  }
  .ec-follow-img{
    width:min(98vw, 640px); /* 端末幅いっぱい近くまで大きく */
    max-width:none;
  }
}

/* =============================== ecforce KVバナー（スコープ付き）=============================== */
/* フルブリード & 背景色、既定フォント/文字色 */
.ec-custom-kv-banner-section {
  background: #fae8d7;
  color: #2e2e2e;
  font-family: 'Yu Gothic', '游ゴシック', YuGothic,
                'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;

  /* 親の余白影響を排除して横幅いっぱいに表示（フルブリード） */
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;

  /* リセット */
  padding: 0;
  box-sizing: border-box;
}

.ec-custom-kv-banner-section * {
  box-sizing: border-box;
}

/* 画像ラッパー */
.ec-custom-kv-banner-container {
  position: relative;
  width: 100%;
  padding: 0;
  margin: 0;
  overflow: hidden; /* はみ出し防止（念のため） */
}

/* picture をブロック要素として扱う */
.ec-custom-kv-banner-picture {
  display: block;
  width: 100%;
  line-height: 0; /* 画像下の余白対策 */
}

/* 画像は横幅100%、縦横比を保持して自動縮尺。トリミングなし */
.ec-custom-kv-banner-image {
  display: block;
  width: 100%;
  height: auto;
  background-color: #fae8d7; /* 読み込み中のチラつき対策 */
}

/* 親テンプレ側の余白上書き（必要に応じて） */
.ec-force-theme-template .ec-custom-kv-banner-section,
.main-content .ec-custom-kv-banner-section,
.content-wrapper .ec-custom-kv-banner-section {
  padding: 0 !important;
  margin: 0 !important;
}


/* ===== スマホ（768px以下）で上下をカットして見せる ===== */
@media (max-width: 768px) {
  /* 表示したい縦横比は調整可能。初期は16:9で上下をやや多めにトリミング */
  .ec-custom-kv-banner-section {
    --sp-aspect-w: 1;
    --sp-aspect-h: 1;
  }

  .ec-custom-kv-banner-container {
    /* アスペクト比を固定し、画像は中でカバー表示にする */
    aspect-ratio: var(--sp-aspect-w) / var(--sp-aspect-h);
    height: auto;
  }

  .ec-custom-kv-banner-picture {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 0;
  }

  .ec-custom-kv-banner-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    background-color: #fae8d7;
  }
}

/* =============================== ブランディングセクション=============================== */
.ec-brand-wrap {
  background-color: #fae8d7;
  width: 100%;
  padding: 100px 20px;
}

.ec-brand-container {
  max-width: 1200px;
  margin: 0 auto;
}

.ec-brand-header {
  text-align: center;
  margin-bottom: 80px;
}

.ec-brand-title {
  color: #947055;
  font-family: '游ゴシック体', 'Yu Gothic', YuGothic, sans-serif;
  font-size: 48px;
  font-weight: bold;
  letter-spacing: 0em;
  line-height: 1.4;
  margin-bottom: 20px;
}

.ec-brand-subtitle {
  color: #111111;
  font-family: '游ゴシック体', 'Yu Gothic', YuGothic, sans-serif;
  font-size: 32px;
  font-weight: bold;
  letter-spacing: 0em;
  line-height: 1.6;
  margin: 0;
}

.ec-brand-content {
  display: flex;
  align-items: center;
  gap: 60px;
}

.ec-brand-text {
  flex: 1;
  padding: 40px 60px 40px 40px;
}

.ec-brand-desc {
  color: #111111;
  font-family: '游ゴシック体', 'Yu Gothic', YuGothic, sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-bottom: 30px;
}

.ec-brand-desc:last-child {
  margin-bottom: 0;
}

.ec-brand-image {
  flex: 1;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.ec-brand-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.pc-only {
  display: inline;
}

/* タブレット */
@media (min-width: 769px) and (max-width: 1024px) {
  .ec-brand-wrap {
    padding: 80px 30px;
  }

  .ec-brand-header {
    margin-bottom: 60px;
  }

  .ec-brand-title {
    font-size: 30px;
  margin-bottom: 20px;
  }

  .ec-brand-subtitle {
    font-size: 18px;
  font-weight: 600;
  }

  .ec-brand-content {
    gap: 40px;
  }

  .ec-brand-text {
    padding: 30px 40px 30px 30px;
  }

  .ec-brand-desc {
    font-size: 15px;
  }
}

/* スマートフォン */
@media (max-width: 768px) {
  .ec-brand-wrap {
    padding: 60px 15px;
  }

  .ec-brand-header {
    margin-bottom: 50px;
  }

  .ec-brand-title {
    font-size: 24px;
  margin-bottom: 36px;
  }

  .ec-brand-subtitle {
    font-size: 18px;
  font-weight: 550;
   margin-bottom: 40px;
  }

  .ec-brand-content {
    flex-direction: column;
    gap: 30px;
  }

  .ec-brand-text {
    padding: 20px;
    order: 2;
  }

  .ec-brand-image {
    order: 1;
    height: 280px;
  }

  .ec-brand-desc {
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    margin-bottom: 20px;
  }

  .pc-only {
    display: none;
  }
}

/* =============================== こだわり・特徴 =============================== */
.ec-premium-vertical-wrapper {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  background: #FFF;
  box-sizing: border-box;
  overflow: hidden;
}

.ec-premium-vertical-wrapper .ec-premium-vertical-section {
  padding: 100px 40px;
  max-width: 1400px;
  margin: 0 auto;
}

.ec-premium-vertical-wrapper .ec-premium-section-header {
  text-align: center;
  margin-bottom: 80px;
}

.ec-premium-vertical-wrapper .ec-premium-main-title {
  font-family: 'Avenir Next Demi',system-ui,-apple-system,sans-serif;color:#947055;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0px;
  margin: 0 0 15px 0;
  text-transform: uppercase;
}

.ec-premium-vertical-wrapper .ec-premium-subtitle {
  font-family: '游ゴシック体', 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', sans-serif;
  color: #111111;
  font-size: 32px;
  font-weight: bold;
  margin: 0;
  letter-spacing: 0em;
}

.ec-premium-vertical-wrapper .ec-premium-vertical-content {
  display: flex;
  flex-direction: column;
  gap: 100px;
  max-width: 1200px;
  margin: 0 auto;
}

.ec-premium-vertical-wrapper .ec-premium-vertical-block {
  display: flex;
  align-items: stretch;
  position: relative;
}

.ec-premium-vertical-wrapper .ec-premium-vertical-block.ec-premium-reverse {
  flex-direction: row-reverse;
}

.ec-premium-vertical-wrapper .ec-premium-image-container {
  position: relative;
  flex: 1;
  max-width: 550px;
  overflow: hidden;
}

.ec-premium-vertical-wrapper .ec-premium-video-container {
  max-width: 350px;
  flex: 0 0 350px;
}

.ec-premium-vertical-wrapper .ec-premium-vertical-img {
  width: 100%;
  height: 100%;
  display: block;
  aspect-ratio: 5 / 3.5;
  object-fit: cover;
}

.ec-premium-vertical-wrapper .ec-premium-video {
  width: 100%;
  height: 100%;
  display: block;
  aspect-ratio: 9 / 16;
  object-fit: cover;
  background-color: #000;
}

.ec-premium-vertical-wrapper .ec-premium-vertical-textbox {
  flex: 1;
  padding: 50px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-color: #ffffff;
}

.ec-premium-vertical-wrapper .ec-premium-vertical-heading {
  font-family: '游ゴシック体', 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', sans-serif;
  color: #947055;
  font-size: 32px;
  font-weight: 700;
  margin: 0 0 20px 0;
  line-height: 1.5;
  letter-spacing: 0em;
}

.ec-premium-vertical-wrapper .ec-premium-vertical-description {
  font-family: '游ゴシック体', 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', sans-serif;
  color: #111111;
  font-size: 20px;
  line-height: 1.8;
  margin: 0 0 25px 0;
  letter-spacing: 0em;
}

.ec-premium-vertical-wrapper .ec-premium-note {
  display: block;
  font-size: 12px;
  color: #6b6b6b;
  margin-top: 10px;
  letter-spacing: 0em;
}

.ec-premium-vertical-wrapper .ec-premium-divider {
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, #947055 0%, transparent 100%);
  margin-top: 20px;
}

@media (max-width: 1024px) {
  .ec-premium-vertical-wrapper .ec-premium-vertical-section {
    padding: 80px 30px;
    max-width: 1100px;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-textbox {
    padding: 40px;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-heading {
    font-size: 28px;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-description {
    font-size: 18px;
  }
  .ec-premium-vertical-wrapper .ec-premium-video-container {
    max-width: 300px;
    flex: 0 0 300px;
  }
}

@media (max-width: 768px) {
  .ec-premium-vertical-wrapper .ec-premium-vertical-section {
    padding: 70px 20px;
  }
  .ec-premium-vertical-wrapper .ec-premium-section-header {
    margin-bottom: 60px;
  }
  .ec-premium-vertical-wrapper .ec-premium-main-title {
    font-size: 13px;
  }
  .ec-premium-vertical-wrapper .ec-premium-subtitle {
    font-size: 24px;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-content {
    gap: 70px;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-block,
  .ec-premium-vertical-wrapper .ec-premium-vertical-block.ec-premium-reverse {
    flex-direction: column;
  }
  .ec-premium-vertical-wrapper .ec-premium-image-container {
    max-width: 100%;
    height: 250px;
  }
  .ec-premium-vertical-wrapper .ec-premium-video-container {
    max-width: 100%;
    flex: 0 0 auto;
    height: 350px;
    display: flex;
    justify-content: center;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-img {
    aspect-ratio: auto;
    height: 100%;
    width: 100%;
  }
  /* スマホ動画サイズ */
  .ec-premium-vertical-wrapper .ec-premium-video-container {
    max-width: 100%;
    flex: 0 0 auto;
    height: 350px;
    display: flex;
    justify-content: center;
  }
  .ec-premium-vertical-wrapper .ec-premium-video {
    width: auto;
    max-width: 280px;
    height: 100%;
    aspect-ratio: 9 / 16;
    object-fit: cover;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-textbox {
    padding: 35px 25px;
    text-align: center;
  }
  .ec-premium-vertical-wrapper .ec-premium-number {
    font-size: 40px;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-heading {
    font-size: 24px;
    margin: 0 0 15px 0;
  }
  .ec-premium-vertical-wrapper .ec-premium-vertical-description {
    font-size: 18px;
    line-height: 1.75;
  }
  .ec-premium-vertical-wrapper .ec-premium-note {
    font-size: 11px;
    margin-top: 8px;
  }
  .ec-premium-vertical-wrapper .ec-premium-divider {
    margin: 20px auto 0;
  }
}

.ec-premium-vertical-wrapper * { box-sizing: border-box; }
.ec-premium-vertical-wrapper a { text-decoration: none !important; }

@media (min-width: 1025px){
  #quality .ec-premium-vertical-wrapper .ec-premium-vertical-textbox{
    text-align: center;
    align-items: center;
  }
  #quality .ec-premium-vertical-wrapper .ec-premium-divider{
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 1025px){ /* PC */
  #quality .ec-premium-vertical-wrapper .ec-premium-video-container{
    width: 480px !important;
    max-width: 480px !important;
    flex: 0 0 480px !important;
    aspect-ratio: 1 / 1;
  }
}
@media (min-width: 769px) and (max-width: 1024px){ /* タブレット */
  #quality .ec-premium-vertical-wrapper .ec-premium-video-container{
    width: 420px !important;
    max-width: 420px !important;
    flex: 0 0 420px !important;
    aspect-ratio: 1 / 1;
  }
}
@media (min-width: 769px){ .sp-only{ display:none; } }

/* --------- 3つ目動画だけ：スマホ・タブレットで上を少し削る --------- */
@media (max-width: 1024px) {
  :root { --crop-y: 70%; } /* 値↑で上を多くカット */
  #quality .ec-premium-video.crop-top{
    aspect-ratio: 3 / 4;             /* 9/16 → 3/4 に寄せる */
    object-fit: cover;
    object-position: 50% var(--crop-y); /* 下寄せ表示＝上部が切れる */
  }
}
@media (max-width: 768px) {
  #quality .ec-premium-video.crop-top{
    width: auto;          /* 既存と整合 */
    max-width: 320px;     /* 必要に応じ 300〜360pxで微調整 */
    height: 100%;
    aspect-ratio: 3 / 4;
    object-position: 50% var(--crop-y);
  }
}

/* =============================== 商品 =============================== */
/* ベース */
.ec-custom-brand-story-wrapper{
  width:100vw; position:relative; left:50%; right:50%;
  margin-left:-50vw; margin-right:-50vw; overflow:hidden;
}
.ec-custom-brand-story-section{ padding:0; max-width:100%; margin:0 auto; background:#fff !important; }
.ec-custom-brand-story-banner{ position:relative; width:100%; }
.ec-custom-brand-story-banner-img{ width:100%; height:auto; display:block; object-fit:cover; }

/* 画像上コピー（既定はPC/Tab向け：右側・中央） */
.ec-custom-brand-story-banner-copy{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:flex-end;
  pointer-events:none;
}
.ec-custom-brand-story-copybox{
  pointer-events:auto;
  width:min(60%,1000px);
  margin-right:clamp(16px,6vw,80px);
  text-align:center;
}

/* 見出し・CTA（既存トーン踏襲） */
.ec-custom-brand-story-heading{
  color:#111111 !important;
  font-family:'游ゴシック体','Yu Gothic','游ゴシック','YuGothic','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,Osaka,'ＭＳ Ｐゴシック','MS PGothic',sans-serif;
  font-size:48px !important; font-weight:bold !important; line-height:1.65 !important;
  letter-spacing:0 !important; margin:0 0 40px !important;
}
.ec-custom-brand-story-highlight{ color:#947055 !important; font-weight:bold !important; }
.ec-custom-brand-story-heading .ec-custom-brand-story-en{
  font-family:"Avenir Next","Avenir","Helvetica Neue",Arial,sans-serif !important;
  font-weight:600 !important;
}
.ec-custom-brand-story-cta-container{ margin-top:10px; }
.ec-custom-brand-story-cta-button{
  display:inline-block; background:#947055; color:#fff; padding:15px 60px; border-radius:50px;
  text-decoration:none; font-size:32px; font-weight:bold; border:2px solid #947055;
  transition:all .3s ease; box-sizing:border-box;
}
.ec-custom-brand-story-cta-button:hover{
  background:transparent; border-color:#fae8d7; color:#fae8d7; text-decoration:none;
}


/* 追加レンジ：小さめPC（タブレットより少し大きめ） */
@media (min-width:1025px) and (max-width:1280px){
  .ec-custom-brand-story-heading{ font-size:36px !important; line-height:1.6 !important; }
  .ec-custom-brand-story-cta-button{ font-size:28px; padding:18px 72px; }
}

/* タブレット */
@media (min-width:769px) and (max-width:1024px){
  .ec-custom-brand-story-heading{ font-size:36px !important; line-height:1.6 !important; margin-bottom:28px !important; }
  .ec-custom-brand-story-copybox{ width:min(60%,560px); }
  .ec-custom-brand-story-cta-button{ font-size:22px; padding:16px 68px; }
}

/* スマホ：画像“上”の下部にテキスト＆CTAを重ねる（背景ボックスなし） */
@media (max-width:768px){
  .ec-custom-brand-story-banner{ position:relative; }
  .ec-custom-brand-story-banner-copy{
    justify-content:center; align-items:flex-end; /* 下寄せ */
    padding-bottom:clamp(12px,4vw,24px);
  }
  .ec-custom-brand-story-copybox{
    width:100%; margin:0; text-align:center;
    background:none !important; padding:0 !important; border-radius:0 !important;
  }
  .ec-custom-brand-story-heading{
    font-size:24px !important; margin-bottom:18px !important; line-height:1.6 !important;
  }
  .ec-custom-brand-story-cta-button{ padding:12px 40px; font-size:15px;margin-bottom:18px !important; }
}

/* =============================== アレンジセクション =============================== */
.ec-arrange-wrap{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;background:#fae8d7;box-sizing:border-box;overflow:hidden}
.ec-arrange-sec{padding:80px 20px 48px;max-width:1200px;margin:0 auto}
.ec-arrange-cont{max-width:900px;margin:0 auto}
.ec-arrange-card{background:transparent;border-radius:0;overflow:visible;display:grid;grid-template-columns:1.2fr 1fr;gap:32px;box-shadow:none}
.ec-arrange-img-box{width:100%;height:100%;min-height:450px;position:relative}
.ec-arrange-img{width:100%;height:100%;display:block;object-fit:cover}
.ec-arrange-txt-box{display:flex;align-items:center;justify-content:center;background:transparent;padding:0}
.ec-arrange-txt-inner{text-align:left;padding:20px 0}
.ec-arrange-label{display:inline-block;font-family:'Avenir Next Demi',system-ui,-apple-system,sans-serif;color:#947055;font-size:13px;font-weight:400;letter-spacing:0;text-transform:uppercase;margin-bottom:16px}
.ec-arrange-title{color:#111111;font-size:32px;font-weight:bold;font-family:'游ゴシック体', 'Yu Gothic', 'ヒラギノ角ゴ Pro W3', sans-serif;line-height:1.4;margin:0 0 22px;padding:0;letter-spacing:0}
.ec-arrange-desc{color:#111;font-size:18px;font-family:'游ゴシック体','Yu Gothic',sans-serif;line-height:1.9;margin:0 0 24px;padding:0;letter-spacing:0}
.ec-arrange-divider{width:60px;height:1px;background:linear-gradient(90deg,#947055 0%,transparent 100%)}
.ec-arrange-wrap *{box-sizing:border-box}

/* PC：左テキスト／右画像＆画像を小さく */
@media(min-width:1025px){
  .ec-arrange-txt-box{order:1}
  .ec-arrange-img-box{order:2;min-height:340px;height:340px}
  .ec-arrange-txt-inner{text-align:center}
  .ec-arrange-divider{margin:0 auto}
}

/* 追加レンジ：小さめPC（タブレットより少し大きめ） */
@media(min-width:1025px) and (max-width:1280px){
  .ec-arrange-img-box{min-height:320px;height:320px}
}

/* タブレット */
@media(max-width:1024px){
  .ec-arrange-sec{padding:70px 20px 44px}
  .ec-arrange-card{grid-template-columns:1fr 1fr;gap:24px}
  .ec-arrange_title{font-size:30px}
  .ec-arrange-img-box{min-height:300px;height:300px}
}

/* スマホ：画像さらに小さく */
@media(max-width:768px){
  .ec-arrange-sec{padding:60px 20px 36px}
  .ec-arrange-card{grid-template-columns:1fr;gap:20px}
  .ec-arrange-img-box{height:220px;min-height:220px}
  .ec-arrange-txt-inner{text-align:center;padding:0 10px}
  .ec-arrange-label{margin-bottom:12px}
  .ec-arrange-title{font-size:26px;margin-bottom:18px}
  .ec-arrange-desc{font-size:16px;margin-bottom:20px}
  .ec-arrange-divider{margin:0 auto;width:54px}
}

/* 極小端末 */
@media(max-width:480px){
  .ec-arrange-sec{padding:52px 15px 28px}
  .ec-arrange-img_box{height:200px;min-height:200px}
  .ec-arrange-title{font-size:24px}
  .ec-arrange-desc{font-size:15px}
}

/* ============================= Instagramフィード ============================= */
.ec-ig-wrap{background:#fae8d7;width:100%}
.ec-ig-sec{padding:50px 20px 100px;max-width:1200px;margin:0 auto}

/* ヘッド（アカウント＋キャプション） */
.ec-ig-head{display:flex;flex-direction:column;align-items:center;gap:15px;margin-bottom:32px}
.ec-ig-account{display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;text-decoration:none!important;transition:opacity .3s;margin-bottom:0}
.ec-ig-account:hover{opacity:.7}
.ec-ig-icon{width:40px;height:40px;color:#2e2e2e}
.ec-ig-user{color:#111111;font-family:'游ゴシック体','Yu Gothic',sans-serif;font-size:24px;font-weight:bold;letter-spacing:.03em}

/* キャプション */
.ec-ig-caption{margin:0;text-align:center;width:100%;display:block;line-height:1.6;color:#947055;font-family:'游ゴシック体','Yu Gothic',sans-serif;font-size:20px;font-weight:bold}

/* グリッド */
.ec-ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;max-width:900px;margin:0 auto}
.ec-ig-item{position:relative;display:block;overflow:hidden;aspect-ratio:1/1;border-radius:8px;text-decoration:none!important;transition:transform .3s}
.ec-ig-item:hover{transform:scale(1.02)}
.ec-ig-img{width:100%;height:100%;object-fit:cover;display:block}
.ec-ig-overlay{position:absolute;inset:0;background:rgba(46,46,46,.7);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.ec-ig-item:hover .ec-ig-overlay{opacity:1}
.ec-ig-txt{color:#fff;font-size:12px}
.ec-ig-wrap *{box-sizing:border-box}
.ec-ig-wrap a{text-decoration:none!important}

/* PCだけ大きく：横幅拡張で1枚のサイズUP */
@media(min-width:1025px){
  .ec-ig-grid{max-width:1120px;gap:28px}
}

/* TB */
@media(min-width:769px) and (max-width:1024px){
  .ec-ig-sec{padding:70px 30px}
  .ec-ig-head{margin-bottom:28px}
  .ec-ig-grid{grid-template-columns:repeat(4,1fr);gap:20px;max-width:750px}
}

/* SP */
@media(max-width:768px){
  .ec-ig-sec{padding:20px 15px 80px}
  .ec-ig-head{gap:18px;margin-bottom:24px}
  .ec-ig-icon{width:36px;height:36px}
  .ec-ig-user{font-size:18px}
  .ec-ig-caption{font-size:16px;line-height:1.5}
  .ec-ig-grid{grid-template-columns:repeat(2,1fr);gap:10px;max-width:400px}
  .ec-ig-txt{font-size:12px}
}

/* ============================= 受賞実績・メディア掲載（ロゴサイズ最適化／PCのみ調整） ============================= */
.ec-achievement-wrapper{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;background:#FFF;box-sizing:border-box;overflow:hidden}
.ec-achievement-section{padding:100px 20px;max-width:1200px;margin:0 auto}
.ec-achievement-block{margin-bottom:100px}
.ec-achievement-block:last-child{margin-bottom:0}
.ec-achievement-header{text-align:center;margin-bottom:60px}
.ec-achievement-main-title{font-family:'Avenir Next Demi',system-ui,-apple-system,sans-serif;color:#947055;font-size:14px;font-weight:400;letter-spacing:0;margin:0 0 15px;text-transform:uppercase}
.ec-achievement-subtitle{font-family:'游ゴシック体','Yu Gothic','ヒラギノ角ゴ Pro W3',sans-serif;color:#111;font-size:32px;font-weight:bold;margin:0}

/* 受賞実績 */
.ec-award-content{display:grid;grid-template-columns:repeat(2,1fr);gap:60px;max-width:600px;margin:0 auto;align-items:center}
.ec-award-item{opacity:1}
.ec-award-logo-wrapper{display:flex;align-items:center;justify-content:center;padding:20px}
.ec-award-logo{max-width:200px;max-height:200px;width:auto;height:auto;object-fit:contain}

/* メディア掲載 */
.ec-media-content{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;max-width:900px;margin:0 auto;align-items:center}
.ec-media-item{opacity:1;min-width:0}
.ec-media-link{text-decoration:none;display:block}
.ec-media-logo-wrapper{display:flex;align-items:center;justify-content:center;width:100%;padding:20px;min-height:100px}
.ec-media-logo{display:block;max-width:180px;max-height:80px;width:100%;height:auto;object-fit:contain}

.ec-achievement-wrapper *{box-sizing:border-box}

/* PCサイズ調整：Qoo10小さめ／横長大きめ／オレンジページ特大 */
@media (min-width:1025px){
  .ec-media-content{display:flex;flex-wrap:wrap;justify-content:center;gap:50px;max-width:900px}
  .ec-media-item{flex:0 0 calc((100% - 100px) / 3);max-width:calc((100% - 100px) / 3)}
  .ec-award-logo.is-qoo10{max-width:150px;max-height:150px}
  .ec-media-logo.is-wide{max-width:240px;max-height:100px}
  .ec-media-logo.is-xl{max-width:300px;max-height:120px}
}

/* タブレット */
@media(max-width:1024px){
  .ec-achievement-section{padding:80px 20px}
  .ec-achievement-block{margin-bottom:80px}
  .ec-achievement-header{margin-bottom:50px}
  .ec-award-content{gap:50px}
  .ec-award-logo{max-width:180px;max-height:180px}
  .ec-media-content{grid-template-columns:repeat(2,1fr);gap:40px}
}

/* スマホ（既存サイズ維持） */
@media(max-width:768px){
  .ec-achievement-section{padding:70px 20px}
  .ec-achievement-block{margin-bottom:70px}
  .ec-achievement-header{margin-bottom:40px}
  .ec-achievement-main-title{font-size:13px;}
  .ec-achievement-subtitle{font-size:24px}
  .ec-award-content{grid-template-columns:repeat(2,1fr);gap:30px;max-width:100%}
  .ec-award-logo-wrapper{padding:10px}
  .ec-award-logo{max-width:120px;max-height:120px}
  .ec-media-content{grid-template-columns:repeat(2,1fr);gap:25px;max-width:100%}
  .ec-media-item:nth-child(3):last-child{grid-column:1 / -1;max-width:200px;margin:0 auto}
  .ec-media-logo-wrapper{min-height:60px;padding:10px}
  .ec-media-logo{max-width:100px;max-height:50px}
  .ec-award-logo.is-qoo10{max-width:90px;max-height:90px}
  .ec-media-logo.is-wide{max-width:130px;max-height:65px}
  .ec-media-logo.is-xl{
    max-width: 160px;   /* オレンジページだけサイズ大 */
    max-height: 80px;
  }
}

@media(max-width:480px){
  .ec-achievement-section{padding:60px 15px}
  .ec-achievement-block{margin-bottom:60px}
  .ec-award-content{gap:20px}
  .ec-award-logo{max-width:100px;max-height:100px}
  .ec-media-content{grid-template-columns:repeat(2,1fr);gap:20px}
  .ec-media-item:nth-child(3):last-child{grid-column:1 / -1;max-width:180px;margin:0 auto}
  .ec-media-logo{max-width:90px;max-height:45px}
}

/* ============================= お知らせ ============================= */
/* ラッパー */
.ec-news-wrapper{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;background:#fff;box-sizing:border-box;overflow:hidden}
.ec-news-section{padding:100px 20px;max-width:1200px;margin:0 auto}

/* ヘッダー（サブタイトルあり） */
.ec-news-header{text-align:center;margin-bottom:60px}
.ec-news-main-title{font-family:'Avenir Next Demi',system-ui,-apple-system,sans-serif;color:#947055;font-size:14px;font-weight:400;letter-spacing:0;margin:0 0 15px 0;text-transform:uppercase}
.ec-news-subtitle{font-family:'游ゴシック体','Yu Gothic',sans-serif;color:#111111;font-size:32px;font-weight:bold;margin:0}

/* リスト */
.ec-news-content{max-width:900px;margin:0 auto}
.ec-news-item{
  display:flex;align-items:center;gap:40px;padding:34px 0;border-bottom:2px solid #fae8d7;
  position:relative;transition:all .3s ease;animation:newsSlideIn .6s ease forwards;opacity:0;
  text-decoration:none;color:inherit
}
.ec-news-item:first-child{border-top:2px solid #fae8d7}
.ec-news-item:hover{background:#fae8d7;margin:0 -30px;padding:34px 30px}
.ec-news-date{flex-shrink:0;width:80px;padding-top:0}
.ec-news-year{display:block;font-family:'游ゴシック体','Yu Gothic',sans-serif;color:#111111;font-size:12px;font-weight:300;margin-bottom:4px}
.ec-news-day{display:block;font-family:'游ゴシック体','Yu Gothic',sans-serif;color:#111111;font-size:24px;font-weight:300}
.ec-news-body{flex:1;min-width:0;display:flex;align-items:center}
.ec-news-title{margin:0;font-family:'游ゴシック体','Yu Gothic',sans-serif;color:#111111;font-size:18px;font-weight:500;line-height:1.6}
.ec-news-arrow{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#947055;opacity:0;transition:all .3s ease}
.ec-news-item:hover .ec-news-arrow{opacity:1;transform:translateX(5px)}
@keyframes newsSlideIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.ec-news-wrapper *{box-sizing:border-box}

/* CTA */
.ec-news-more{text-align:center;margin-top:60px}
.ec-news-more-btn{
  display:inline-block;background-color:#947055;color:#fff;font-family:'游ゴシック体','Yu Gothic','ヒラギノ角ゴ Pro W3',sans-serif;
  padding:15px 60px;border-radius:50px;text-decoration:none;font-size:16px;font-weight:bold;border:2px solid #947055;transition:all .3s ease;cursor:pointer
}
.ec-news-more-btn:hover{background-color:#fae8d7;border-color:#fae8d7;color:#111}

/* SP */
@media(max-width:768px){
  .ec-news-section{padding:70px 20px}
  .ec-news-subtitle{font-family:'游ゴシック体','Yu Gothic',sans-serif;color:#111111;font-size:22px;font-weight:bold;margin:0}
  .ec-news-header{margin-bottom:40px}
  .ec-news-item{flex-direction:column;align-items:flex-start;gap:16px;padding:26px 0;animation:none;opacity:1}
  .ec-news-item:hover{background:transparent;margin:0;padding:26px 0}
  .ec-news-date{width:auto;display:flex;align-items:center;gap:10px}
  .ec-news-day{font-size:20px}
  .ec-news-title{font-size:16px}
  .ec-news-arrow{display:none}
  .ec-news-more{margin-top:40px}
  .ec-news-more-btn{padding:12px 40px;font-size:15px}
}

/* ============================= お客様の声 ============================= */
#ugc .euw{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;background:#fff}
#ugc .eus{padding:80px 0 140px;max-width:100%;margin:0 auto}
#ugc .euh{text-align:center;margin-bottom:60px;padding:0 20px}
#ugc .eum{font-family:'Avenir Next Demi',system-ui,-apple-system,sans-serif;color:#947055;font-size:14px;font-weight:400;letter-spacing:0;margin:0 0 10px;text-transform:uppercase}
#ugc .eust{font-family:'游ゴシック体','Yu Gothic',sans-serif;color:#111111;font-size:32px;font-weight:bold;margin:0;letter-spacing:.01em}

/* UGC Grid */
#ugc .ugc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:0 auto;padding:0 20px;max-width:1200px}
#ugc .ugc-card{width:100%;display:block;background:#fff;border-radius:12px;border:1px solid rgba(0,0,0,.06);overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 2px 10px rgba(0,0,0,.05);transition:box-shadow .2s ease,transform .2s ease}
#ugc .ugc-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.08);transform:translateY(-2px)}
#ugc .ugc-media{width:100%;aspect-ratio:1/1;background:#f0eee9;overflow:hidden;position:relative;display:block;margin:0}
#ugc .ugc-media img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 50%!important;margin:0;padding:0;border:0}
#ugc .ugc-txt{padding:14px 14px 16px}
#ugc .ugc-user{color:#111111;font-size:13px;font-weight:700;margin:0 0 6px;font-family:'Avenir Next Demi'}
#ugc .ugc-desc{color:#828f8f;font-size:13px;line-height:1.6;margin:0;font-family:'游ゴシック体','Yu Gothic',sans-serif}

/* 注意書き：グリッド直下に配置（PC=右寄せ／SP=中央） */
#ugc .ugc-note{
  max-width:1200px;margin:12px auto 0;padding:0 20px;
  color:#6b6b6b;font-size:11px;line-height:1.5;letter-spacing:0;text-align:right;
}

/* Tablet */
@media (max-width:1024px){
  #ugc .ugc-grid{grid-template-columns:repeat(3,1fr);gap:20px;max-width:960px}
  #ugc .ugc-note{max-width:960px}
  #ugc .euh{margin-bottom:56px}
}

/* SP */
@media (max-width:768px){
  #ugc .eus{padding:60px 0 100px}
  #ugc .euh{margin-bottom:48px}
  #ugc .eum{font-size:11px;}
  #ugc .eust{font-size:22px}
  #ugc .ugc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:94vw;padding:0 12px}
  #ugc .ugc-card{border-radius:10px}
  #ugc .ugc-txt{padding:10px 10px 12px}
  #ugc .ugc-user{font-size:12px;margin-bottom:4px}
  #ugc .ugc-desc{font-size:12px;line-height:1.5}
  #ugc .ugc-note{max-width:94vw;padding:0 12px;text-align:center}
}

/* Guard */
#ugc .euw *{box-sizing:border-box}
#ugc a{text-decoration:none!important}

/* ============================= バナー（全体リンク付き） ============================= */
/* Base設定 */
.ec-custom-hero-wrapper { --safe-left: clamp(24px, 8vw, 120px); --text-color: #ffffff; }
.ec-custom-hero-wrapper * { box-sizing: border-box; }
.ec-custom-hero-section {
  position: relative; min-height: 600px; display: flex; align-items: center;
  overflow: hidden; font-family: '游ゴシック体','Yu Gothic','メイリオ',Meiryo,system-ui,sans-serif;
}

/* 背景画像 */
.ec-custom-hero-bg { position: absolute; inset: 0; z-index: 1; }
.ec-custom-hero-bg-img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ec-custom-hero-bg-img--pc { display: block; }
.ec-custom-hero-bg-img--sp { display: none; }

/* テキスト */
.ec-custom-hero-content { position: relative; z-index: 2; width: 100%; padding-left: var(--safe-left); padding-right: 24px; }
.ec-custom-text-wrapper { color: var(--text-color); text-shadow: 0 2px 10px rgba(0,0,0,.2); max-width: 600px; }
.ec-custom-text-wrapper p { margin: 0 !important; padding: 0; line-height: 1.3; }
.ec-custom-hero-wrapper .ec-custom-text-wrapper p + p { margin-top: clamp(20px, 3vw, 36px) !important; }

.ec-custom-hero-wrapper .ec-custom-text-line1 {
  display: flex; align-items: center; gap: 12px; font-size: 50px; font-weight: bold;
  margin-left: clamp(12px, 36vw, 100px) !important;
}
.ec-custom-hero-line-img { width: 40px; height: 40px; }

.ec-custom-hero-wrapper .ec-custom-text-line2 {
  font-size: 64px; font-weight: bold; display: inline-block; border-bottom: 3px solid var(--text-color);
  padding-bottom: 8px; letter-spacing: 0em;
}

/* 角丸の四角バッジ */
.ec-custom-hero-wrapper .ec-custom-text-line3 {
  font-size: 50px; font-weight: bold; display: block; width: max-content;
  margin-left: clamp(12px, 9vw, 400px) !important;
}
.ec-custom-cta-badge{
  display: inline-block; padding: 8px 16px; border: 2px solid #fff; border-radius: 10px;
  font-size: .6em; font-weight: 700; letter-spacing: .02em; line-height: 1; /* pの50px基準で相対縮小 */
  background: rgba(0,0,0,.15); /* 視認性を少しだけ上げる（必要なら外してOK） */
}

/* 全面リンク */
.ec-custom-hero-link{ position:absolute; inset:0; z-index: 3; display:block; text-decoration:none; }
.ec-custom-hero-link:focus-visible{ outline: 3px solid rgba(255,255,255,.85); outline-offset: -3px; }

/* SR-only */
.ec-sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* スマートフォン */
@media (max-width: 768px) {
  .ec-custom-hero-bg-img--pc { display: none; }
  .ec-custom-hero-bg-img--sp { display: block; }
  .ec-custom-hero-section { min-height: auto; aspect-ratio: 16 / 9; }
  .ec-custom-hero-wrapper { --safe-left: 12px; }

  .ec-custom-hero-wrapper .ec-custom-text-line1{
    font-size: 16px; gap: 8px; margin-left: clamp(8px, 4vw, 24px) !important;
  }
  .ec-custom-hero-line-img{ width: 28px; height: 28px; }

  .ec-custom-hero-wrapper .ec-custom-text-line2{ font-size: 19px; padding-bottom: 5px; }

  .ec-custom-hero-wrapper .ec-custom-text-line3{
    font-size: 16px; width: max-content; margin-left: clamp(8px, 4vw, 24px) !important;
  }
  .ec-custom-cta-badge{
    padding: 7px 12px; border-width: 1.5px; border-radius: 8px; font-size: .9em; background: rgba(0,0,0,.12);
  }

  .ec-custom-hero-wrapper .ec-custom-text-wrapper p + p{
    margin-top: clamp(12px, 2.5vw, 20px) !important;
  }
}
