@charset "UTF-8";

/************************************/
/* CSS Reset */
/************************************/

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;}
body{min-height:100vh;line-height:1.5;font-family:var(--font-family-main);color:var(--color-text);background-color:var(--color-bg);}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;line-height:1.2;}
ul,ol{list-style:none;}
a{color:inherit;text-decoration:none;}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto;}
button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none;}
button{cursor:pointer;}
table{border-collapse:collapse;border-spacing:0;}

a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus{outline:2px solid var(--color-primary);outline-offset:2px;}

body{font-family:var(--font-family-main);letter-spacing:1.5px;font-feature-settings:"palt" 1;-webkit-font-kerning:auto;font-kerning:auto;overflow-x:hidden;}


/************************************/
/* Display Utility */
/************************************/

.u-show{display:block !important;}
.u-hide{display:none !important;}
.u-sp-only{display:block;}
.u-pc-only{display:none;}

@media (max-width: 1023px) {
.u-sp-only{display:flex !important;}
.u-pc-only{display:none !important;}
}
@media (min-width: 1024px) {
.u-sp-only{display:none;}
.u-pc-only{display:block;}
}

.u-tb-only{display:none;}
@media (min-width: 768px) and (max-width: 1023px) {
.u-tb-only{display:block;}
}


/************************************/
/* Root Variables */
/************************************/

:root {
  /* Colors - 物撮り本舗 トンマナ */
  --color-primary: #004DA5;
  --color-primary-dark: #002A5E;
  --color-accent: #D52868;
  --color-bg: #ffffff;
  --color-bg2: #F2F2F2;
  --color-text: #333333;
  --color-text-white: #ffffff;
  --color-border: #dddddd;

  /* Gradients */
  --gradient-main: linear-gradient(to right, #4583C8, #284296 80%);

  /* Typography */
  --font-family-main: "Noto Sans JP", "游ゴシック", "YuGothic", "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", sans-serif;
  --font-family-en: "Lato", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", sans-serif;

  /* Layout */
  --container-max-width: 1200px;

  /* Spacing */
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 40px;
  --space-xl: 64px;
  --container-padding: 40px;

  /* Font Size - PC */
  --font-size-caption: 0.875rem;
  --font-size-text: 1rem;
  --font-size-lead: 1.25rem;
  --font-size-subttl: 1.75rem;
  --font-size-ttl: 2.5rem;

  /* Header */
  --header-height: 72px;

  /* Animation */
  --transition-speed: 300ms;
  --easing: ease-in-out;
}

@media (max-width: 1023px) {
  :root {
    --font-size-caption: 0.875rem;
    --font-size-text: 1rem;
    --font-size-lead: 1.125rem;
    --font-size-subttl: 1.5rem;
    --font-size-ttl: 2rem;
    --space-xs: 8px;
    --space-sm: 16px;
    --space-md: 24px;
    --space-lg: 32px;
    --space-xl: 48px;
    --container-padding: 24px;
    --header-height: 60px;
  }
}

@media (max-width: 767px) {
  :root {
    --font-size-caption: 0.75rem;
    --font-size-text: 0.875rem;
    --font-size-lead: 1rem;
    --font-size-subttl: 1.25rem;
    --font-size-ttl: 1.75rem;
    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --container-padding: 16px;
    --header-height: 56px;
  }
}


/************************************/
/* Header */
/************************************/

.header{position:fixed;top:0;left:0;width:100%;z-index:1000;background:#fff;border-bottom:1px solid #e0e8f5;transition:box-shadow var(--transition-speed) var(--easing);}
.header.is-scrolled{box-shadow:0 2px 16px rgba(0,42,94,0.10);}
.header__inner{display:flex;align-items:center;height:var(--header-height);padding:0 var(--space-md);gap:var(--space-sm);}

/* Logo */
.header__logo{flex-shrink:0;margin-right:var(--space-md);}
.header__logo a{display:flex;align-items:center;gap:8px;}
.header__logo img{width:auto;height:30px;}
.header__logo-text{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-family-en);font-size:1.2rem;font-weight:900;color:var(--color-primary-dark);letter-spacing:0.02em;}
.header__logo-symbol{width:32px;height:32px;}

/* PC Navigation */
.header__nav{flex:1;}
.header__nav-list{display:flex;align-items:center;gap:4px;}
.header__nav-item{}
.header__nav-link{display:flex;flex-direction:column;align-items:center;padding:6px 10px;transition:color var(--transition-speed) var(--easing);}
.header__nav-link:hover{color:var(--color-primary);}
.header__nav-link-en{font-family:var(--font-family-en);font-size:0.8rem;font-weight:700;color:var(--color-primary-dark);letter-spacing:0.08em;line-height:1.2;}
.header__nav-link-ja{font-size:0.625rem;color:#666;letter-spacing:0.04em;line-height:1.4;}
.header__nav-link:hover .header__nav-link-en{color:var(--color-primary);}

/* PC Header Right */
.header__right{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0;}
.header__icon-link{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 6px;gap:2px;transition:opacity var(--transition-speed) var(--easing);color:var(--color-primary-dark);}
.header__icon-link:hover{opacity:0.7;}
.header__icon{width:22px;height:22px;}
.header__icon-txt{font-size:0.5rem;line-height:1.3;text-align:center;color:#444;letter-spacing:0;}
.header__cta-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;background:var(--gradient-main);color:#fff;font-size:0.8125rem;font-weight:700;white-space:nowrap;letter-spacing:0.06em;transition:opacity var(--transition-speed) var(--easing);}
.header__cta-btn:hover{opacity:0.85;}

/* SP Right */
.header__sp-right{display:flex;align-items:center;gap:var(--space-sm);margin-left:auto;}
.header__icon--instagram{}

/* Hamburger */
.header__hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;width:40px;height: 40px;gap:5px;padding:4px;}
.header__hamburger-line{display:block;width:24px;height:2px;background:var(--color-primary-dark);transition:transform var(--transition-speed) var(--easing), opacity var(--transition-speed) var(--easing);}
.header__hamburger.is-active .header__hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg);}
.header__hamburger.is-active .header__hamburger-line:nth-child(2){opacity:0;}
.header__hamburger.is-active .header__hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* SP Drawer */
.header__drawer{position:fixed;top:var(--header-height);right:-100%;width:280px;height:calc(100vh - var(--header-height));background:#fff;padding:var(--space-lg) var(--space-md);overflow-y:auto;transition:right var(--transition-speed) var(--easing);z-index:999;box-shadow:-4px 0 20px rgba(0,42,94,0.08);}
.header__drawer.is-open{right:0;}
.header__drawer-list{}
.header__drawer-item{border-bottom:1px solid #eef0f5;}
.header__drawer-link{display:flex;flex-direction:column;padding:14px 0;gap:2px;}
.header__drawer-link-en{font-family:var(--font-family-en);font-size:0.9rem;font-weight:700;color:var(--color-primary-dark);letter-spacing:0.08em;}
.header__drawer-link-ja{font-size:0.75rem;color:#666;}
.header__drawer-contact{margin-top:var(--space-lg);}
.header__drawer-cta{display:flex;align-items:center;justify-content:center;padding:14px;background:var(--gradient-main);color:#fff;font-size:0.875rem;font-weight:700;letter-spacing:0.06em;}

/* Overlay */
.header__overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:998;opacity:0;pointer-events:none;transition:opacity var(--transition-speed) var(--easing);}
.header__overlay.is-show{opacity:1;pointer-events:auto;}
@media (min-width: 1023px) {
.header__hamburger{display:none !important;}
}
/************************************/
/* Hero */
/************************************/

.hero{padding-top:var(--header-height);overflow:hidden;}

/* Main Visual */
.hero__main-visual{position:relative;width:100%;min-height:580px;background:url('../img/top/hero-main.png') center center / cover no-repeat;display:flex;align-items:center;}

/* コンテンツ全体のラッパー */
.hero__content{position:relative;z-index:2;max-width:var(--container-max-width);width:100%;margin:0 auto;padding:var(--space-xl) var(--container-padding);}

/* 白いガウス背景レイヤー（テキストエリア背後） */
.hero__content-inner{position:relative;display:inline-block;max-width:616px;padding:var(--space-lg) var(--space-xl) var(--space-lg) var(--space-lg);overflow:visible;text-align: center;}
.hero__content-inner::before{content:'';position:absolute;inset:-40px;background:radial-gradient(ellipse at 40% 50%, rgba(255,255,255,0.75) 0%, rgba(255,255,255,0.55) 45%, rgba(255,255,255,0) 70%);filter:blur(28px);-webkit-filter:blur(28px);z-index:-1;pointer-events:none;}

/* Label badge */
.hero__label{display:inline-block;padding:5px 14px;background:rgba(0,77,165,0.12);border:1px solid rgba(0,77,165,0.3);color:var(--color-primary-dark);font-size:var(--font-size-caption);font-weight:500;letter-spacing:0.06em;margin-bottom:var(--space-md);width: 100%;box-sizing: border-box;text-align: center;}

/* H1 Title */
.hero__title{font-size:var(--font-size-ttl);font-weight:900;color:var(--color-primary-dark);line-height:1.3;margin-bottom:var(--space-sm);}
.hero__title-line1{display:block;}

.hero__title-line2 {
  display: inline-block;
  font-size: 5rem;
  font-family: "Noto Serif JP", serif;
  font-weight: 900;
  margin: 0;
 
  /* 金系グラデーション（上から下へ） */
  background: linear-gradient(
    180deg,
    #a07820 0%,      /* 上部：落ち着いた金 */
    #f5d97a 30%,     /* 明るいゴールド（ハイライト） */
    #fdf0a0 50%,     /* 最も明るい中心ゴールド */
    #e8c35a 70%,     /* 中間ゴールド */
    #c89830 100%     /* 下部：しっかりした金 */
  );
 
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
 
  filter: drop-shadow(1px 3px 4px rgba(0, 0, 0, 0.65))
          drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.45));
}
/* Subtitle */
.hero__subtitle{font-size:var(--font-size-lead);color:var(--color-primary-dark);font-weight:700;margin-bottom:var(--space-sm);}
.hero__subtitle strong{/* color:var(--color-primary); */font-weight:900;/* font-size: 2rem; */}

/* Desc */
.hero__desc{font-size:var(--font-size-text);color:#444;margin-bottom:var(--space-lg);letter-spacing:0.05em;}

/* CTA */
.hero__cta-wrap{margin-bottom:var(--space-md);}
.hero__cta-btn{display:inline-flex;align-items:center;justify-content:center;padding:20px 56px;background:var(--gradient-main);color:#fff;font-size:var(--font-size-lead);font-weight:700;letter-spacing:0.12em;border:none;box-shadow:4px 4px 0 rgba(0,42,94,0.2);transition:transform var(--transition-speed) var(--easing), box-shadow var(--transition-speed) var(--easing);width: 100%;}
.hero__cta-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(0,42,94,0.2);}

/* Badges */
.hero__badge-list{display:flex;flex-wrap:wrap;gap:var(--space-sm);}
.hero__badge-item{display:flex;align-items:center;gap:5px;color:var(--color-primary-dark);font-size:var(--font-size-caption);font-weight:700;letter-spacing:0.04em;}
.hero__badge-ico{width:18px;height:18px;color:#2BAD2B;flex-shrink:0;}

/* Gallery Strip - 無限スクロール */
.hero__gallery{background:var(--color-primary-dark);overflow:hidden;max-width:100%;}
.hero__gallery-track{display:flex;width:max-content;animation:gallery-scroll 41.6s linear infinite;}
.hero__gallery-track:hover{animation-play-state:paused;}
.hero__gallery-item{position:relative;width:340px;height:200px;flex-shrink:0;overflow:hidden;background:#1a3560 center center / cover no-repeat;}
.hero__gallery-item--1{background-image:url('../img/top/gallery-001.png');}
.hero__gallery-item--2{background-image:url('../img/top/gallery-002.png');}
.hero__gallery-item--3{background-image:url('../img/top/gallery-003.png');}
.hero__gallery-item--4{background-image:url('../img/top/gallery-004.png');}
.hero__gallery-item--5{background-image:url('../img/top/gallery-005.png');}
.hero__gallery-item--6{background-image:url('../img/top/gallery-006.png');}
.hero__gallery-item--7{background-image:url('../img/top/gallery-007.png');}
.hero__gallery-item--8{background-image:url('../img/top/gallery-008.png');}
.hero__gallery-item::after{content:'';position:absolute;inset:0;background:linear-gradient(to top, rgba(0,20,60,0.55) 0%, transparent 60%);transition:opacity var(--transition-speed) var(--easing);}
.hero__gallery-item:hover::after{opacity:0.25;}
.hero__gallery-overlay{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:12px 16px;}
.hero__gallery-tag{display:inline-block;padding:3px 10px;background:rgba(255,255,255,0.18);border:1px solid rgba(255,255,255,0.4);color:#fff;font-size:0.75rem;font-weight:700;letter-spacing:0.08em;backdrop-filter:blur(4px);}

@keyframes gallery-scroll {
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}

@media (max-width: 1023px) {
.hero__main-visual{min-height:460px;}
.hero__content-inner{max-width:500px;}
.hero__gallery-item{width:280px;height:170px;}
}

@media (max-width: 767px) {
.hero__main-visual{min-height:auto;padding-bottom:0;}
.hero__content{padding:var(--space-lg) var(--container-padding);width:100%;box-sizing:border-box;}

/* SP：PCと同じ ::before ガウスアプローチ。solid背景は使わない */
.hero__content-inner{display:block;max-width:100%;width:100%;padding:var(--space-lg) var(--space-md);background:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-sizing:border-box;overflow:visible;}
.hero__content-inner::before{display:block;content:'';position:absolute;inset:-20px -10px -20px -10px;background: radial-gradient(ellipse at 35% 50%, rgb(255 255 255 / 48%) 0%, rgb(255 255 255 / 46%) 40%, rgba(255, 255, 255, 0.0) 75%);filter:blur(22px);-webkit-filter: blur(5px);z-index:-1;pointer-events:none;}

/* Label */
.hero__label{background:rgba(0,77,165,0.15);border-color:rgba(0,77,165,0.4);color:var(--color-primary-dark);font-size:0.7rem;}
/* Title */
.hero__title{font-size:1.35rem;margin-bottom:2px;}
.hero__title-line1{color:var(--color-primary-dark);font-weight:900;display:block;line-height:1.4;}
.hero__title-line2{font-size: 3.5rem;line-height:1.15;margin-bottom:var(--space-sm);/* background: #ffffff; */}
/* subtitle */
.hero__subtitle{font-size: 1.3rem;color:var(--color-primary-dark);font-weight: bold;font-weight: 900;}
/* desc */
.hero__desc{font-size: 1rem;color:#333;margin-bottom:var(--space-md);/* font-weight: bold; */}
/* CTA btn */
.hero__cta-btn{width:100%;padding:16px var(--space-md);font-size:var(--font-size-text);}
/* badges */
.hero__badge-list{gap:var(--space-xs) var(--space-sm);}
.hero__badge-item{color:var(--color-primary-dark);font-size:0.75rem;}
/* gallery */
.hero__gallery-item{width:220px;height:140px;}
.hero__gallery-tag{font-size:0.625rem;padding:2px 7px;}
}

/************************************/
/* Section Heading（汎用セクション見出し）*/
/************************************/

/* セクション共通ラッパー */
.section__inner{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);width:100%;box-sizing:border-box;}

/* 見出しエリア全体 */
.section-heading{margin-bottom:var(--space-xl);text-align:center;}

/* 英語ラベル（帯の上） */
.section-heading__en{display:block;font-family:var(--font-family-en);font-size:0.875rem;font-weight:900;letter-spacing:0.35em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-bottom:6px;line-height:1;}

/* メイン帯（グラデーション紺） */
.section-heading__band{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-md);background:url('../img/common/pattern-wajima.png') center center / 51px, linear-gradient(to right, #4583C8, #284296 80%);padding:14px var(--space-xl);position:relative;overflow:hidden;}

/* 帯の下の三角吹き出し */
.section-heading__band::after{content:'';display:block;position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:18px solid transparent;border-right:18px solid transparent;border-top:14px solid #284296;}

/* 帯内テキスト */
.section-heading__txt{font-size:var(--font-size-lead);font-weight:900;line-height:1.5;color:#fff;position:relative;z-index:1;}
.section-heading__accent{color:#FFD87A;font-weight:900;}

@media (max-width: 1023px) {
.section-heading__band{padding:14px var(--space-lg);}
}

@media (max-width: 767px) {
.section-heading{margin-bottom:var(--space-lg);}
.section-heading__en{font-size:0.75rem;letter-spacing:0.25em;margin-bottom:4px;}
.section-heading__band{padding:12px var(--space-md);width:100%;}
.section-heading__txt{font-size: var(--font-size-subttl);}
.section-heading__band::after{bottom:-12px;border-left:14px solid transparent;border-right:14px solid transparent;border-top:12px solid #284296;}
}



/************************************/
/* Card Area（汎用カードエリア）*/
/************************************/

/* カードグリッドラッパー */
.card-area{background:#fff;padding:var(--space-xl) var(--space-lg);margin-bottom:var(--space-xl);width:100%;box-sizing:border-box;}
.card-area__grid{display:grid;gap:var(--space-lg);}
.card-area__grid--col3{grid-template-columns:repeat(3,1fr);}
.card-area__grid--col2{grid-template-columns:repeat(2,1fr);}

/* 汎用カードアイテム */
.card-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);text-align:center;}

/* アイコン円形 */
.card-item__icon-wrap{display:flex;align-items:center;justify-content:center;background:#F2F2F2;border-radius:50%;}
.card-item__icon-wrap--lg{width:110px;height:110px;box-shadow:0 4px 16px rgba(0,42,94,0.10);}
.card-item__icon-wrap--md{width:80px;height:80px;}
.card-item__icon-wrap--white{background:#fff;}
.card-item__icon{display:block;}
.card-item__icon--lg{width:72px;height:72px;}
.card-item__icon--md{width:52px;height:52px;}
.card-item__txt{font-size:var(--font-size-text);font-weight:700;color:var(--color-primary-dark);line-height:1.7;}

@media (max-width: 1023px) {
.card-area{padding:var(--space-lg) var(--space-md);}
.card-area__grid{gap:var(--space-md);}
.card-area__grid--col3{grid-template-columns:repeat(3,1fr);}
}

@media (max-width: 767px) {
.card-area{padding:var(--space-lg) var(--space-md);margin-bottom:var(--space-lg);}
.card-area__grid--col3{grid-template-columns:repeat(1,1fr);}
.card-area__grid--col2{grid-template-columns:repeat(1,1fr);}
.card-item{flex-direction:row;text-align:left;}
.card-item__icon-wrap--lg{width:80px;height:80px;flex-shrink:0;}
.card-item__icon--lg{width:52px;height:52px;}
}


/************************************/
/* Trouble（お悩みセクション）個別 */
/************************************/

.trouble{padding:var(--space-xl) 0;background:url('../img/common/pattern-wajima.png') center center / 51px, linear-gradient(to right, #4583C8, #284296 80%);color:#fff;position:relative;}
.trouble .section__inner{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);width:100%;box-sizing:border-box;}

/* trouble内のcard-areaは白背景（デフォルトそのまま）*/
.trouble .card-area{background:#fff;}
.trouble .card-item__txt{color:var(--color-primary-dark);}

/* Solution */
.trouble__solution{text-align:center;}
.trouble__solution-txt{display:inline-block;font-size:var(--font-size-lead);font-weight:700;color:#fff;line-height:1.8;}
.trouble__solution-txt strong{color:#FFD87A;font-weight:900;}

@media (max-width: 767px) {
.trouble{padding:var(--space-lg) 0;}
.trouble__solution-txt{font-size:var(--font-size-text);text-align:left;}
}

/************************************/
/* Service（選ばれる理由）*/
/************************************/

.service{padding:var(--space-xl) 0;background:url('../img/common/pattern-wajima-w.png') 0% 0% / 63px, #F2F2F2;}
.service .section-heading__en{color:rgba(0,42,94,0.35);}

/* Intro lead */
.service__lead{text-align:center;font-size:var(--font-size-text);line-height:2;color:var(--color-text);margin-bottom:var(--space-xl);max-width:800px;margin-left:auto;margin-right:auto;}
.service__lead strong{color:var(--color-primary);font-weight:700;}

/* Reason block */
.reason-block{display:grid;grid-template-columns:80px 1fr 1fr;gap:var(--space-lg);align-items:center;background:#fff;padding:var(--space-xl);margin-bottom:var(--space-lg);box-shadow:20px 20px 0 #ddd;position:relative;}
.reason-block--even{grid-template-columns:80px 1fr 1fr;}

/* Number */
.reason-block__number{display:flex;align-items:center;justify-content:center;}
.reason-block__num-en{font-family:var(--font-family-en);font-size:4rem;font-weight:900;color: #b2cffb;line-height:1;letter-spacing:-0.02em;}

/* Image */
.reason-block__img-wrap{position:relative;overflow:hidden;}
.reason-block__img{width:100%;height:280px;object-fit:cover;display:block;}
.reason-block__img-label{position:absolute;bottom:0;left:0;right:0;padding:8px 14px;background:rgba(0,42,94,0.78);color:#fff;font-size:var(--font-size-caption);font-weight:700;letter-spacing:0.06em;text-align:center;}

/* Body */
.reason-block__body{padding:0 var(--space-md);}
.reason-block__ttl{font-size:var(--font-size-subttl);font-weight:900;color:var(--color-primary-dark);line-height:1.5;margin-bottom:var(--space-md);}
.reason-block__ttl-accent{display:block;color:var(--color-primary);font-size:2rem;}
.reason-block__txt{font-size:var(--font-size-text);line-height:1.9;color:var(--color-text);margin-bottom:var(--space-md);}
.reason-block__list{display:flex;flex-direction:column;gap:var(--space-xs);}
.reason-block__list-item{display:flex;align-items:center;gap:10px;font-size:var(--font-size-text);font-weight:500;color:var(--color-primary-dark);}
.reason-block__list-ico{display:inline-block;width:18px;height:18px;border:2px solid var(--color-primary);position:relative;flex-shrink:0;}
.reason-block__list-ico::after{content:'';position:absolute;top:2px;left:5px;width:5px;height:9px;border-right:2px solid var(--color-primary);border-bottom:2px solid var(--color-primary);transform:rotate(45deg);}

/* Compare Slider */
.retouch-compare{position:relative;width:100%;height:280px;overflow:hidden;cursor:col-resize;user-select:none;}
.retouch-compare__after,
.retouch-compare__before{position:absolute;inset:0;}
.retouch-compare__after img,
.retouch-compare__before img{width:100%;height:100%;object-fit:cover;}
.retouch-compare__before{clip-path:inset(0 50% 0 0);}
.retouch-compare__label{position:absolute;top:10px;padding:4px 10px;font-size:0.75rem;font-weight:700;letter-spacing:0.08em;color:#fff;}
.retouch-compare__label--after{left:10px;background:var(--color-primary);}
.retouch-compare__label--before{right:10px;background:#666;}
.retouch-compare__handle{position:absolute;top:0;left:50%;transform:translateX(-50%);width:4px;height:100%;cursor:col-resize;z-index:10;}
.retouch-compare__handle-line{width:2px;height:100%;background:#fff;margin:0 auto;box-shadow:0 0 6px rgba(0,0,0,0.4);}
.retouch-compare__handle-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,0.25);}
.retouch-compare__handle-btn svg{width:14px;height:14px;color:var(--color-primary-dark);}

@media (max-width: 1023px) {
.reason-block{grid-template-columns:60px 1fr;gap:var(--space-md);}
.reason-block__img-wrap{display:none;}
.reason-block__body{grid-column:2/3;}
.reason-block__ttl-accent{font-size:1.5rem;}
}
@media (max-width: 767px) {
.service{padding:var(--space-lg) 0;}
.service__lead{font-size:var(--font-size-text);text-align:left;}
.reason-block{grid-template-columns:1fr;padding:var(--space-lg) var(--space-md);box-shadow:8px 8px 0 #ddd;margin-bottom:var(--space-md);}
.reason-block__number{justify-content:flex-start;}
.reason-block__num-en{font-size:2.5rem;}
.reason-block__img-wrap{display:block;}
.reason-block__img{height:200px;}
.retouch-compare{height:200px;}
.reason-block__body{padding:0;}
.reason-block__ttl{font-size:var(--font-size-subttl);}
.reason-block__ttl-accent{font-size:1.25rem;}
}


/************************************/
/* Plan（撮影プラン）*/
/************************************/

.plan{padding:var(--space-xl) 0;background:#fff;}
.plan .section-heading__en{color:rgba(255,255,255,0.55);}

.plan__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);margin-bottom:var(--space-lg);}

.plan-card{display:flex;flex-direction:column;background:#fff;border: 5px solid #e0e8f5;position:relative;}
.plan-card--standard{border-color:var(--color-primary);box-shadow:20px 20px 0 rgba(0,77,165,0.15);}

.plan-card__head{padding:var(--space-lg) var(--space-md) var(--space-md);background:var(--color-bg2);text-align:center;border-bottom:2px solid #e0e8f5;}
.plan-card--standard .plan-card__head{background:url('../img/common/pattern-wajima.png') center center / 51px, linear-gradient(to right, #4583C8, #284296 80%);border-bottom-color:transparent;}

.plan-card__badge{display:inline-block;padding:4px 14px;background:var(--color-primary-dark);color:#fff;font-size:var(--font-size-caption);font-weight:700;letter-spacing:0.06em;margin-bottom:var(--space-sm);}
.plan-card__badge--popular{background:var(--color-accent);}
.plan-card__badge--premium{background:#6B5C42;}

.plan-card__name{font-size:var(--font-size-lead);font-weight:900;color:var(--color-primary-dark);margin-bottom:var(--space-sm);}
.plan-card--standard .plan-card__name{color:#fff;}

.plan-card__price{display:flex;align-items:baseline;justify-content:center;gap:4px;}
.plan-card__price-num{font-family:var(--font-family-en);font-size:2.5rem;font-weight:900;color:var(--color-primary-dark);}
.plan-card__price-num--quote{font-size:1.75rem;}
.plan-card--standard .plan-card__price-num{color:#FFD87A;}
.plan-card__price-unit{font-size:var(--font-size-caption);color:#666;}
.plan-card--standard .plan-card__price-unit{color:rgba(255,255,255,0.75);}

.plan-card__body{flex:1;padding:0;}
.plan-card__img{width:100%;height:180px;object-fit:cover;display:block;}

.plan-card__list{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);}
.plan-card__list-item{display:flex;align-items:flex-start;gap:8px;font-size:var(--font-size-text);color:var(--color-text);padding-bottom:var(--space-xs);border-bottom:1px dashed #ddd;}
.plan-card__list-item::before{content:'✓';color:var(--color-primary);font-weight:700;flex-shrink:0;}
.plan-card__list-item strong{color:var(--color-primary-dark);font-weight:700;}
.plan-card__list-item:last-child{border-bottom:none;}

.plan-card__foot{padding:var(--space-md);padding-top:0;}
.plan-card__btn{display:flex;align-items:center;justify-content:center;width:100%;padding:14px;background:var(--gradient-main);color:#fff;font-size:var(--font-size-text);font-weight:700;letter-spacing:0.06em;transition:opacity var(--transition-speed) var(--easing);}
.plan-card__btn:hover{opacity:0.85;}

.plan__note{font-size:var(--font-size-caption);color:#666;line-height:1.9;text-align:center;}

@media (max-width: 1023px) {
.plan__grid{grid-template-columns:1fr;gap:var(--space-md);max-width:500px;margin-left:auto;margin-right:auto;}
}
@media (max-width: 767px) {
.plan{padding:var(--space-lg) 0;}
.plan__grid{max-width:100%;gap:var(--space-md);}
.plan-card__price-num{font-size:2rem;}
.plan__note{text-align:left;}
}


/************************************/
/* Flow（ご依頼の流れ）*/
/************************************/

.flow{padding:var(--space-xl) 0;background:url('../img/common/pattern-wajima.png') center center / 51px, linear-gradient(to right, #4583C8, #284296 80%);}
.flow .section-heading__en{color:rgba(255,255,255,0.45);}

.flow__steps{display:flex;flex-direction:column;gap:0;}

.flow-step{display:grid;grid-template-columns:120px 80px 1fr;gap:var(--space-md);align-items:center;background:#fff;padding:var(--space-lg) var(--space-xl);}

.flow-step__num{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.flow-step__num-en{font-family:var(--font-family-en);font-size:0.625rem;font-weight:700;letter-spacing:0.2em;color:var(--color-accent);}
.flow-step__num-digit{font-family:var(--font-family-en);font-size:3rem;font-weight:900;color:var(--color-primary-dark);line-height:1;}

.flow-step__ico-wrap{display:flex;align-items:center;justify-content:center;width: 70px;height: auto;/* background:var(--color-bg2); */}
.flow-step__ico{width: 100%;height: auto;}

.flow-step__ttl{font-size:var(--font-size-lead);font-weight:900;color:var(--color-primary-dark);margin-bottom:6px;}
.flow-step__txt{font-size:var(--font-size-text);color:var(--color-text);line-height:1.8;}

/* Arrow between steps */
.flow-step__arrow{width:4px;height:32px;background:var(--gradient-main);margin:0 auto;position:relative;}
.flow-step__arrow::after{content:'';position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:10px solid #284296;}

@media (max-width: 1023px) {
.flow-step{grid-template-columns:80px 60px 1fr;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);}
.flow-step__num-digit{font-size:2.25rem;}
}
@media (max-width: 767px) {
.flow{padding:var(--space-lg) 0;}
.flow-step{grid-template-columns:60px 1fr;grid-template-rows:auto auto;padding:var(--space-md);}
.flow-step__ico-wrap{display:none;}
.flow-step__body{grid-column:2/3;}
.flow-step__num-digit{font-size:1.75rem;}
.flow-step__ttl{font-size:var(--font-size-lead);}
}


/************************************/
/* Sample（撮影サンプル）*/
/************************************/

.sample{padding:var(--space-xl) 0;background:#fff;}
.sample .section-heading__en{color:rgba(255,255,255,0.55);}

.sample__lead{text-align:center;font-size:var(--font-size-text);color:#666;margin-bottom:var(--space-lg);}

/* Tabs */
.sample__tabs{display:flex;gap:2px;margin-bottom:var(--space-lg);border-bottom:3px solid var(--color-bg2);}
.sample__tab{padding:12px var(--space-lg);font-size:var(--font-size-text);font-weight:700;color:#888;background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-3px;transition:color var(--transition-speed) var(--easing),border-color var(--transition-speed) var(--easing);cursor:pointer;}
.sample__tab.is-active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary);}
.sample__tab:hover{color:var(--color-primary);}

/* Panels */
.sample__panel{display:none;}
.sample__panel.is-active{display:block;}

/* Grid */
.sample__grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto;gap:4px;}
.sample__item{position:relative;overflow:hidden;}
.sample__item--large{grid-column:1/3;grid-row:1/3;}
.sample__img{width:100%;height:100%;object-fit:cover;display:block;min-height:200px;transition:transform 0.5s var(--easing);}
.sample__item--large .sample__img{min-height:420px;}
.sample__item:hover .sample__img{transform:scale(1.04);}
.sample__overlay{position:absolute;inset:0;background:linear-gradient(to top, rgba(0,20,60,0.65) 0%, transparent 55%);display:flex;align-items:flex-end;padding:14px 16px;opacity:0;transition:opacity var(--transition-speed) var(--easing);}
.sample__item:hover .sample__overlay{opacity:1;}
.sample__overlay span{color:#fff;font-size:var(--font-size-caption);font-weight:700;letter-spacing:0.06em;}

@media (max-width: 1023px) {
.sample__tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.sample__tab{flex-shrink:0;padding:12px var(--space-md);}
}
@media (max-width: 767px) {
.sample{padding:var(--space-lg) 0;}
.sample__grid{grid-template-columns:1fr 1fr;gap:3px;}
.sample__item--large{grid-column:1/3;grid-row:auto;}
.sample__item--large .sample__img{min-height:220px;}
.sample__img{min-height:140px;}
.sample__overlay{opacity:1;}
}


/************************************/
/* Before/After */
/************************************/

.beforeafter{padding:var(--space-xl) 0;background:url('../img/common/pattern-wajima-w.png') 0% 0% / 63px, #F2F2F2;}
.beforeafter .section-heading__en{color:rgba(0,42,94,0.35);}

.ba-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xl);margin-bottom:var(--space-xl);}

.ba-pair__ttl{font-size:var(--font-size-text);font-weight:700;color:var(--color-primary-dark);margin-bottom:var(--space-md);padding-left:var(--space-sm);border-left:4px solid var(--color-primary);}

.ba-pair__images{display:grid;grid-template-columns:1fr 40px 1fr;gap:var(--space-sm);align-items:center;}

.ba-pair__col{position:relative;}
.ba-pair__label{position:absolute;top:0;left:0;right:0;padding:6px 10px;font-size:0.625rem;font-weight:700;letter-spacing:0.1em;text-align:center;z-index:2;}
.ba-pair__label span{display:block;font-size:0.5rem;font-weight:400;letter-spacing:0.06em;}
.ba-pair__label--before{background:#777;color:#fff;}
.ba-pair__label--after{background:var(--color-primary);color:#fff;}
.ba-pair__img{width:100%;height:220px;object-fit:cover;display:block;margin-top:28px;}

.ba-pair__arrow{display:flex;align-items:center;justify-content:center;color:var(--color-primary);}
.ba-pair__arrow svg{width:32px;height:32px;}

/* Voice */
.ba-voice{background:#fff;padding:var(--space-xl);box-shadow:20px 20px 0 #ddd;position:relative;max-width:800px;margin:0 auto;}
.ba-voice__ico{position:absolute;top:-20px;left:var(--space-xl);width:40px;height:40px;background:var(--gradient-main);display:flex;align-items:center;justify-content:center;color:#fff;}
.ba-voice__ico svg{width:22px;height:22px;}
.ba-voice__quote{font-size:var(--font-size-lead);font-weight:700;color:var(--color-primary-dark);line-height:1.9;margin-bottom:var(--space-md);}
.ba-voice__author{font-size:var(--font-size-caption);color:#666;text-align:right;}

@media (max-width: 1023px) {
.ba-grid{grid-template-columns:1fr;gap:var(--space-lg);}
}
@media (max-width: 767px) {
.beforeafter{padding:var(--space-lg) 0;}
.ba-pair__images{grid-template-columns:1fr 28px 1fr;}
.ba-pair__img{height:150px;}
.ba-pair__arrow svg{width:22px;height:22px;}
.ba-voice{padding:var(--space-lg) var(--space-md);}
.ba-voice__quote{font-size:var(--font-size-text);}
}


/************************************/
/* FAQ */
/************************************/

.faq{padding:var(--space-xl) 0;background:#fff;}
.faq .section-heading__en{color:rgba(255,255,255,0.55);}

.faq__list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:4px;}

.faq-item{border:1px solid #e0e8f5;}
.faq-item__question{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-lg);background:#fff;text-align:left;transition:background var(--transition-speed) var(--easing);cursor:pointer;}
.faq-item__question:hover{background:#f0f5ff;}
.faq-item.is-active .faq-item__question{background:#f0f5ff;border-bottom:1px solid #e0e8f5;}

.faq-item__q-label{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--gradient-main);color:#fff;font-family:var(--font-family-en);font-size:1.125rem;font-weight:900;flex-shrink:0;}

.faq-item__q-txt{flex:1;font-size:var(--font-size-text);font-weight:700;color:var(--color-primary-dark);line-height:1.6;}

.faq-item__q-ico{width:20px;height:20px;flex-shrink:0;position:relative;}
.faq-item__q-ico::before,
.faq-item__q-ico::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--color-primary);transition:transform var(--transition-speed) var(--easing),opacity var(--transition-speed) var(--easing);}
.faq-item__q-ico::before{width:2px;height:12px;}
.faq-item__q-ico::after{width:12px;height:2px;}
.faq-item.is-active .faq-item__q-ico::before{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}

.faq-item__answer{display:none;padding:var(--space-md) var(--space-lg);background:#f8faff;}
.faq-item__a-txt{display:flex;gap:var(--space-md);font-size:var(--font-size-text);color:var(--color-text);line-height:1.9;}
.faq-item__a-label{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid var(--color-primary);color:var(--color-primary);font-family:var(--font-family-en);font-size:1.125rem;font-weight:900;flex-shrink:0;}

@media (max-width: 767px) {
.faq{padding:var(--space-lg) 0;}
.faq-item__question{padding:var(--space-md);}
.faq-item__q-label{width:30px;height:30px;font-size:1rem;}
.faq-item__q-txt{font-size:var(--font-size-text);}
.faq-item__answer{padding:var(--space-md);}
.faq-item__a-label{width:30px;height:30px;font-size:1rem;}
}


/************************************/
/* Contact */
/************************************/

.contact{padding:var(--space-xl) 0;background:url('../img/common/pattern-wajima-w.png') 0% 0% / 63px, #F2F2F2;}
.contact__inner{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);}

.contact__heading-wrap{text-align:center;margin-bottom:var(--space-xl);}
.contact__heading-en{display:block;font-family:var(--font-family-en);font-size:0.875rem;font-weight:900;letter-spacing:0.35em;color:rgba(0,42,94,0.35);margin-bottom:var(--space-sm);}
.contact__heading-ttl{font-size:var(--font-size-subttl);font-weight:900;color:var(--color-primary-dark);line-height:1.6;margin-bottom:var(--space-md);}
.contact__heading-sub{font-size:var(--font-size-text);color:#666;}

/* Platforms */
.contact__platforms{display:flex;align-items:center;gap:var(--space-lg);justify-content:center;margin-bottom:var(--space-xl);}
.contact__platforms-label{font-size:var(--font-size-caption);font-weight:700;color:#666;white-space:nowrap;}
.contact__platforms-list{display:flex;align-items:center;gap:var(--space-lg);}
.contact__platform-logo{height:28px;width:auto;opacity:0.75;}

/* Form */
.contact__form-wrap{max-width:720px;margin:0 auto;background:#fff;padding:var(--space-xl);box-shadow:20px 20px 0 #ddd;width:100%;box-sizing:border-box;}

.contact-form__row{margin-bottom:var(--space-md);}
.contact-form__label{display:block;font-size:var(--font-size-caption);font-weight:700;color:var(--color-primary-dark);margin-bottom:var(--space-xs);letter-spacing:0.04em;}
.contact-form__required{display:inline-block;padding:2px 6px;background:var(--color-accent);color:#fff;font-size:0.625rem;font-weight:700;margin-left:6px;vertical-align:middle;}
.contact-form__input,
.contact-form__select,
.contact-form__textarea{display:block;width:100%;padding:12px 14px;border:2px solid #d0daea;font-size:var(--font-size-text);color:var(--color-text);background:#fff;transition:border-color var(--transition-speed) var(--easing);}
.contact-form__input:focus,
.contact-form__select:focus,
.contact-form__textarea:focus{border-color:var(--color-primary);outline:none;}
.contact-form__select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23002A5E' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px;}
.contact-form__textarea{resize:vertical;min-height:120px;}
.contact-form__row--privacy{margin-top:var(--space-lg);}
.contact-form__checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;}
.contact-form__checkbox{width:18px;height:18px;border:2px solid #d0daea;flex-shrink:0;appearance:none;cursor:pointer;}
.contact-form__checkbox:checked{background:var(--color-primary);border-color:var(--color-primary);}
.contact-form__checkbox-txt{font-size:var(--font-size-text);color:var(--color-text);}
.contact-form__checkbox-txt a{color:var(--color-primary);text-decoration:underline;}
.contact-form__submit-wrap{margin-top:var(--space-lg);}
.contact-form__submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:20px;background:var(--gradient-main);color:#fff;font-size:var(--font-size-lead);font-weight:700;letter-spacing:0.08em;border:none;box-shadow:4px 4px 0 rgba(0,42,94,0.2);transition:transform var(--transition-speed) var(--easing),box-shadow var(--transition-speed) var(--easing);cursor:pointer;}
.contact-form__submit:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(0,42,94,0.2);}
.contact-form__submit svg{width:20px;height:20px;}

@media (max-width: 767px) {
.contact{padding:var(--space-lg) 0;}
.contact__heading-ttl{font-size:var(--font-size-subttl);}
.contact__platforms{flex-direction:column;gap:var(--space-md);}
.contact__platforms-list{gap:var(--space-md);}
.contact__form-wrap{padding:var(--space-lg) var(--space-md);box-shadow:8px 8px 0 #ddd;}
.contact-form__submit{font-size:var(--font-size-text);padding:16px;}
}


/************************************/
/* Back to Top Button               */
/************************************/

.back-to-top{position:fixed;bottom:24px;right:24px;z-index:900;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gradient-main);color:#fff;box-shadow:2px 2px 0 rgba(0,42,94,0.25);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity 0.35s var(--easing), transform 0.35s var(--easing);}
.back-to-top.is-show{opacity:1;pointer-events:auto;transform:translateY(0);}
.back-to-top:hover{opacity:0.82;}
.back-to-top svg{width:16px;height:16px;flex-shrink:0;}

@media (max-width: 767px) {
.back-to-top{bottom:16px;right:16px;width:36px;height:36px;}
.back-to-top svg{width:14px;height:14px;}
}


/************************************/
/* Footer */
/************************************/

.footer{background:url('../img/common/pattern-wajima.png') center center / 51px, linear-gradient(to right, #4583C8, #284296 80%);color:#fff;}
.footer__inner{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);}

.footer__top{display:grid;grid-template-columns:300px 1fr auto;gap:var(--space-xl);padding:var(--space-xl) 0;border-bottom:1px solid rgba(255,255,255,0.15);}

/* Brand */
.footer__logo{filter:brightness(0) invert(1);height:36px;width:auto;}
.footer__brand-desc{font-size:var(--font-size-caption);line-height:1.9;color:rgba(255,255,255,0.75);margin-top:var(--space-md);}
.footer__social{margin-top:var(--space-md);}
.footer__social-link{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,0.75);font-size:var(--font-size-caption);font-weight:700;transition:color var(--transition-speed) var(--easing);}
.footer__social-link:hover{color:#fff;}
.footer__social-link svg{width:18px;height:18px;}

/* Nav */
.footer__nav{display:flex;gap:var(--space-xl);}
.footer__nav-group{}
.footer__nav-ttl{font-family:var(--font-family-en);font-size:0.625rem;font-weight:700;letter-spacing:0.2em;color:rgba(255,255,255,0.5);margin-bottom:var(--space-md);}
.footer__nav-list{display:flex;flex-direction:column;gap:var(--space-sm);}
.footer__nav-link{font-size:var(--font-size-caption);color:rgba(255,255,255,0.75);transition:color var(--transition-speed) var(--easing);}
.footer__nav-link:hover{color:#fff;}

/* CTA */
.footer__cta{}
.footer__cta-txt{font-size:var(--font-size-caption);color:rgba(255,255,255,0.75);margin-bottom:var(--space-sm);font-weight:700;}
.footer__cta-btn{display:block;padding:16px var(--space-lg);background:#fff;color:var(--color-primary-dark);font-size:var(--font-size-text);font-weight:900;letter-spacing:0.06em;text-align:center;transition:opacity var(--transition-speed) var(--easing);}
.footer__cta-btn:hover{opacity:0.85;}
.footer__contact-info{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);}
.footer__contact-area,
.footer__contact-hours{display:flex;align-items:center;gap:6px;font-size:var(--font-size-caption);color:rgba(255,255,255,0.75);}
.footer__contact-area svg,
.footer__contact-hours svg{width:14px;height:14px;flex-shrink:0;color:rgba(255,255,255,0.6);}

/* Bottom */
.footer__bottom{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) 0;}
.footer__copyright{font-size:0.625rem;color:rgba(255,255,255,0.5);letter-spacing:0.04em;}
.footer__pagetop-link{display:flex;align-items:center;gap:4px;font-family:var(--font-family-en);font-size:0.625rem;font-weight:700;letter-spacing:0.15em;color:rgba(255,255,255,0.6);transition:color var(--transition-speed) var(--easing);}
.footer__pagetop-link:hover{color:#fff;}
.footer__pagetop-link svg{width:16px;height:16px;}

@media (max-width: 1023px) {
.footer__top{grid-template-columns:1fr 1fr;gap:var(--space-lg);}
.footer__cta{grid-column:1/3;}
}
@media (max-width: 767px) {
.footer__top{grid-template-columns:1fr;gap:var(--space-lg);padding:var(--space-lg) 0;}
.footer__nav{flex-direction:column;gap:var(--space-lg);}
.footer__cta{grid-column:auto;}
.footer__cta-btn{padding:14px var(--space-md);}
.footer__bottom{flex-direction:column-reverse;gap:var(--space-md);text-align:center;}
}



/************************************/
/* Privacy Modal */
/************************************/

.privacy-modal {display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9000;}
.privacy-modal.is-open {display:flex;align-items:center;justify-content:center;}
.privacy-modal__overlay {position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);}
.privacy-modal__dialog {position:relative;z-index:1;width:90%;max-width:760px;max-height:80vh;background:#fff;display:flex;flex-direction:column;box-shadow:0 8px 40px rgba(0,0,0,0.3);}
.privacy-modal__header {display:flex;align-items:center;justify-content:space-between;padding:20px 28px;background:#002A5E;color:#fff;flex-shrink:0;}
.privacy-modal__title {font-size:1.125rem;font-weight:700;letter-spacing:0.05em;}
.privacy-modal__close {display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:1rem;color:#fff;border:1px solid rgba(255,255,255,0.4);cursor:pointer;}
.privacy-modal__close:hover {background:rgba(255,255,255,0.15);}
.privacy-modal__body {padding:28px;overflow-y:auto;}
.privacy-modal__lead {font-size:0.9375rem;line-height:1.8;color:#333;margin-bottom:20px;}
.privacy-modal__list {padding-left:1.5em;margin-bottom:20px;}
.privacy-modal__list li {font-size:0.9375rem;line-height:1.8;color:#333;margin-bottom:12px;list-style:decimal;}
.privacy-modal__date {font-size:0.875rem;color:#555;text-align:right;}

@media (max-width:767px) {
.privacy-modal__dialog{width:95%;max-height:85vh;}
.privacy-modal__header{padding:16px 20px;}
.privacy-modal__body{padding:20px;}
}



/************************************/
/* SP Fixed Footer Bar              */
/************************************/

/* PC では非表示（u-sp-only で制御済みだが念のため） */
.sp-footer-bar{display:none;}

@media (max-width: 767px) {

/* バー本体 */
.sp-footer-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:950;height:56px;box-shadow:0 -2px 8px rgba(0,0,0,0.18);}

/* 各ボタン共通 */
.sp-footer-bar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:2px;color:#fff;font-size:0;background:rgba(11,49,143,0.92);border:none;cursor:pointer;text-decoration:none;padding:6px 0 4px;transition:opacity 0.2s ease;}
.sp-footer-bar__item:hover,
.sp-footer-bar__item:active{opacity:0.82;}

/* アイコン（背景画像で表示） */
.sp-footer-bar__icon{display:block;width:24px;height:24px;background-repeat:no-repeat;background-position:center center;background-size:contain;flex-shrink:0;}

/* ラベル */
.sp-footer-bar__label{display:block;font-size:0.625rem;font-weight:700;letter-spacing:0.04em;color:#fff;line-height:1;}

/* 各ボタンのアイコン画像（元データのパスそのまま） */
.sp-footer-bar__item--mail .sp-footer-bar__icon{background-image:url('../img/common/icon_mail.svg');background-size:auto 13px;}
.sp-footer-bar__item--line .sp-footer-bar__icon{background-image:url('../img/common/icon_line.png');background-size:auto 20px;}
.sp-footer-bar__item--tel  .sp-footer-bar__icon{background-image:url('../img/common/icon_tel.svg');background-size:auto 18px;}
.sp-footer-bar__item--top  .sp-footer-bar__icon{background-image:url('../img/common/icon_top.svg');background-size:auto 15px;}

/* フッターバー分の余白をbodyに確保 */
body{padding-bottom:56px;}

}

/* 768px以上ではbodyの余白リセット */
@media (min-width: 768px) {
body{padding-bottom:0;}
}


/*
--------------------------------------------------
  Back to Top Button（浮遊ボタン）
  768px以上のみ表示に変更
--------------------------------------------------
*/

/* 元の .back-to-top を上書き：SP では非表示 */
@media (max-width: 767px) {
.back-to-top{display:none !important;}
}


/************************************/
/* Section Heading - Light version */
/************************************/

.section-heading--light .section-heading__en{color:rgba(0,42,94,0.35);}


/************************************/
/* Fade-in Animation */
/************************************/

.js-fade{opacity:0;transform:translateY(30px);transition:opacity 0.7s var(--easing), transform 0.7s var(--easing);}
.js-fade.is-visible{opacity:1;transform:translateY(0);}
.js-fade--delay1{transition-delay:0.1s;}
.js-fade--delay2{transition-delay:0.2s;}
.js-fade--delay3{transition-delay:0.3s;}



/************************************/
/* Sample Grid 追加バリエーション */
/************************************/

/* 多枚数（7〜10枚）用グリッド：3列ベースで自動折り返し */
.sample__grid--many{grid-template-columns:repeat(3,1fr);grid-template-rows:auto;}
.sample__grid--many .sample__item--large{grid-column:1/3;grid-row:1/3;}

/* 2枚用グリッド（ランドリー） */
.sample__grid--col2{grid-template-columns:repeat(2,1fr);grid-template-rows:auto;}
.sample__grid--col2 .sample__img{min-height:320px;}

@media (max-width: 767px) {
.sample__grid--many{grid-template-columns:repeat(2,1fr);}
.sample__grid--many .sample__item--large{grid-column:1/3;grid-row:auto;}
.sample__grid--col2{grid-template-columns:1fr;}
.sample__grid--col2 .sample__img{min-height:220px;}
}


/************************************/
/* Contact Dialog (mail.php確認画面) */
/************************************/

.contact-dialog{display:none;position:fixed;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0.55);z-index:2000;align-items:center;justify-content:center;padding:20px;}
.contact-dialog__box{position:relative;width:90%;max-width:760px;max-height:85vh;background:#fff;box-shadow:0 0 40px rgba(0,0,0,0.35);}
.contact-dialog__scroll{overflow:auto;-webkit-overflow-scrolling:touch;width:100%;height:100%;max-height:calc(85vh - 36px);}
.contact-dialog__iframe{border:none;width:100%;min-height:420px;height:100%;}
.contact-dialog__close{display:block;width:100%;padding:8px 16px;background:#002A5E;color:#fff;font-size:14px;text-align:right;cursor:pointer;letter-spacing:0.05em;border:none;}

.back-to-top{position:fixed;bottom:24px;right:24px;z-index:900;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--gradient-main);color:#fff;box-shadow:2px 2px 0 rgba(0,42,94,0.25);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity 0.35s var(--easing), transform 0.35s var(--easing);}
.back-to-top.is-show{opacity:1;pointer-events:auto;transform:translateY(0);}
.back-to-top:hover{opacity:0.82;}
.back-to-top svg{width:16px;height:16px;flex-shrink:0;}

@media (max-width: 767px) {
.back-to-top{bottom:16px;right:16px;width:36px;height:36px;}
.back-to-top svg{width:14px;height:14px;}
}
