/*!
 * 花屋 日景 (hikage) — Public site stylesheet
 * File: /assets/css/style.css
 * Version: 20260730_I3 (H+I2案ベース / 追加: おくりものSPTOP・北爪プロフ延長・フォームエラー表示)
 * Composed of:
 *   1. Reset & Design Tokens (CSS custom properties)
 *   2. Global elements (body, img, a)
 *   3. Loader
 *   4. Navigation (fixed top bar)
 *   5. Hero / FV (slider, catchcopy, logo bleed-in)
 *   6. Reveal animations (.reveal / .reveal-img)
 *   7. Section blocks: Brand, Concept, Shitsurae, Garden, Wedding, Okurimono, About, Contact
 *   8. Shared parts (eyebrow, sec-title, tags, buttons, modal)
 *   9. Gallery type-B (壱弐参 overlay cards)
 *  10. Responsive @media (max-width: 960px)
 *  11. Utility: photo-placeholder, hero-catchcopy keyframes, ob-store-divider
 * ---------------------------------------------------------- */
 /* =================================================== RESET & TOKEN =================================================== */
 *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
 :root {
 --clr-text: #3a3530;
 --clr-text-mid: #5c574f;
 --clr-text-light: #8a857d;
 --clr-text-white: #f5f3ef;
 --clr-bg: #f0f0ed;
 --clr-bg-off: #e8e7e3;
 --clr-bg-dark: #282520;
 --clr-border: rgba(58,53,48,0.14);
 --ff-jp: 'Shippori Mincho', serif;
 --ff-en: 'EB Garamond', serif;
 --ls-wide: 0.2em;
 --ls-wider: 0.32em;
 --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
 }
 html { scroll-behavior: smooth; }
 body { font-family: var(--ff-jp); color: var(--clr-text); background: var(--clr-bg); overflow-x: hidden; font-weight: 300; -webkit-font-smoothing: antialiased; }
 img { display: block; width: 100%; height: 100%; object-fit: cover; }
 a { color: inherit; text-decoration: none; }

 /* LOADER */
 /* AUN(H+I2)保険: CSSアニメーションで自動フェードアウト → JSが動かなくても5秒後に必ずローダーが消える */
 #loader { position: fixed; inset: 0; background: var(--clr-bg); display: flex; align-items: center; justify-content: center; z-index: 9999; transition: opacity 0.9s ease 0.2s; animation: loaderFailsafe 1.5s ease 5s forwards; }
 #loader.hidden { opacity: 0; pointer-events: none; animation: none; }
 @keyframes loaderFailsafe { to { opacity: 0; pointer-events: none; visibility: hidden; } }
 .loader-logo { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
 .loader-logo-img { width: 84px; height: auto; opacity: 0.9; }
 .loader-divider { width: 1px; height: 28px; background: var(--clr-text-light); margin: 0 auto; }
 .loader-sub { font-family: var(--ff-en); font-size: 0.62rem; letter-spacing: 0.3em; color: var(--clr-text-light); }

 /* NAV */
 #nav { position: fixed; top: 0; left: 0; right: 0; z-index: 200; display: flex; align-items: center; justify-content: space-between; padding: 0 48px; height: 64px; background: rgba(28,26,24,0.78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: background 0.4s; }
 #nav.scrolled { background: rgba(28,26,24,0.92); }
 .nav-logo { display: flex; align-items: center; gap: 10px; line-height: 1; }
 .nav-logo img { width: auto; height: 34px; object-fit: contain; object-position: left center; opacity: 0.95; display: block; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.35)); }
 .nav-logo-roman { font-family: var(--ff-en); font-size: 0.55rem; letter-spacing: 0.22em; color: rgba(245,243,239,0.5); }
 .nav-menu { display: flex; align-items: center; gap: 32px; list-style: none; }
 .nav-menu a { font-family: var(--ff-jp); font-size: 0.72rem; font-weight: 300; letter-spacing: var(--ls-wide); color: rgba(245,243,239,0.72); transition: color 0.3s; }
 .nav-menu a:hover { color: var(--clr-text-white); }
 .nav-contact { font-family: var(--ff-jp); font-size: 0.65rem; font-weight: 300; letter-spacing: var(--ls-wide); color: rgba(245,243,239,0.85); border: 1px solid rgba(245,243,239,0.4); border-radius: 999px; padding: 8px 22px; transition: background 0.3s, color 0.3s; }
 .nav-contact:hover { background: rgba(245,243,239,0.1); color: var(--clr-text-white); }

 /* HERO（FV: 2026-07-01納品版を維持） */
 #hero { position: relative; width: 100%; height: 100svh; overflow: hidden; }
 .hero-bg { position: absolute; inset: 0; overflow: hidden; }
 .hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
 /* AUN③ FVスライダー(WordPress化時: 枚数可変。追加/削除は<img.hero-slide>単位) */
 .hero-slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.02); transition: opacity 1.6s ease-in-out; will-change: opacity; }
 .hero-slide.is-active { opacity: 1; transform: scale(1.08); animation: heroZoom 8s ease-out forwards; }
 @keyframes heroZoom { to { transform: scale(1); } }
 .hero-overlay { position: absolute; inset: 0; background: linear-gradient(to right, rgba(20,18,16,0.52) 0%, rgba(20,18,16,0.18) 55%, rgba(20,18,16,0.36) 100%); }
 .hero-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 26px; }
 .hero-logo-center { display: flex; flex-direction: column; align-items: center; gap: 10px; opacity: 0; transform: scale(1.06); filter: blur(14px); animation: logoBleedIn 2.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) 2.8s forwards; will-change: opacity, filter, transform; }
 @keyframes logoBleedIn { 0% { opacity: 0; transform: scale(1.06); filter: blur(14px); } 60% { opacity: 0.8; filter: blur(3px); } 100% { opacity: 1; transform: scale(1); filter: blur(0); } }
 .hero-logo-img { width: 152px; height: auto; filter: drop-shadow(0 2px 6px rgba(0,0,0,0.4)); }
 .hero-logo-divider { width: 1px; height: 44px; background: rgba(245,243,239,0.5); }
 .hero-logo-sub { font-family: var(--ff-en); font-size: 0.68rem; letter-spacing: 0.32em; color: rgba(245,243,239,0.6); }
 .hero-catchcopy { writing-mode: vertical-rl; text-orientation: upright; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.3rem, 2.2vw, 2rem); letter-spacing: 0.38em; color: rgba(245,243,239,0.92); line-height: 1; text-shadow: 0 2px 20px rgba(0,0,0,0.3); }
 .hero-catchcopy .cc-char { display: inline-block; opacity: 0; }
 .hero-line { position: absolute; left: 48px; bottom: 96px; height: 1px; width: 0; background: rgba(245,243,239,0.55); animation: heroLineGrow 1.3s ease 2.0s forwards; }
 @keyframes heroLineGrow { to { width: 140px; } }
 .hero-side { position: absolute; left: 24px; top: 50%; transform: translateY(-50%); writing-mode: vertical-rl; font-family: var(--ff-jp); font-size: 0.6rem; letter-spacing: 0.25em; color: rgba(245,243,239,0.4); line-height: 2; }
 .hero-scroll { position: absolute; bottom: 32px; right: 48px; display: flex; flex-direction: column; align-items: center; gap: 8px; font-family: var(--ff-jp); font-size: 0.55rem; letter-spacing: 0.3em; color: rgba(245,243,239,0.45); }
 .hero-scroll::after { content: ''; display: block; width: 1px; height: 44px; background: rgba(245,243,239,0.3); }

 /* めくる動き（草案 /hikage/ の reveal-img を移植）AUN①③④・お客様ご要望 */
 .reveal-img { position: relative; overflow: hidden; background: var(--clr-bg-off); }
 .reveal-img img { transform: scale(1.18); transition: transform 1.8s var(--ease-out); }
 .reveal-img::after { content: ''; position: absolute; inset: 0; background: var(--clr-bg); transform-origin: right; transition: transform 1.4s var(--ease-out); z-index: 2; }
 .reveal-img.is-in img { transform: scale(1); }
 .reveal-img.is-in::after { transform: scaleX(0); }

 /* BRAND — AUN① 草案「OUR CRAFT」構成に回帰（左写真/右横書きリード） */
 #brand { display: grid; grid-template-columns: 1fr 1fr; min-height: 85vh; background: var(--clr-bg); align-items: center; }
 .brand-photo { overflow: hidden; height: 100%; }
 .brand-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
 .brand-text { display: flex; flex-direction: column; justify-content: center; padding: 96px 8vw 96px 72px; }
 .brand-label { font-family: var(--ff-jp); font-size: 0.66rem; letter-spacing: 0.3em; color: var(--clr-text-light); display: flex; align-items: center; gap: 12px; margin-bottom: 44px; }
 .brand-label::before { content: ''; display: block; width: 28px; height: 1px; background: currentColor; }
 .brand-lead-h { font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.15rem, 1.9vw, 1.55rem); line-height: 2.6; letter-spacing: 0.14em; color: var(--clr-text); margin-bottom: 44px; }
 .brand-caption { font-family: var(--ff-jp); font-size: clamp(0.8rem, 1vw, 0.88rem); line-height: 2.5; letter-spacing: 0.08em; color: var(--clr-text-mid); max-width: 520px; }

 /* CONCEPT — AUN② 正しい詩・3連・右始まり縦書き（字サイズ/字間は現状維持） */
 #concept { padding: 110px 8vw; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; background: var(--clr-bg); }
 /* AUN④: DOM順(画像→本文)でも見た目は本文左・画像右で維持 */
 #concept > .concept-body { grid-column: 1; grid-row: 1; }
 #concept > .concept-media { grid-column: 2; grid-row: 1; }
 .concept-label { font-family: var(--ff-jp); font-size: 0.66rem; letter-spacing: 0.3em; color: var(--clr-text-light); display: flex; align-items: center; gap: 12px; margin-bottom: 44px; }
 .concept-label::before { content: ''; display: block; width: 28px; height: 1px; background: currentColor; }
 .concept-stanzas { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: clamp(40px, 4.5vw, 72px); }
 .concept-stanza { display: flex; flex-direction: row-reverse; gap: clamp(10px, 1.1vw, 18px); }
 .concept-stanza p { writing-mode: vertical-rl; text-orientation: upright; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(0.85rem, 1.1vw, 0.95rem); line-height: 1.55; letter-spacing: 0.24em; color: var(--clr-text); }
 .concept-en { font-family: var(--ff-en); font-size: clamp(0.82rem, 1vw, 0.9rem); line-height: 2.4; letter-spacing: 0.04em; color: var(--clr-text-light); margin-top: 60px; }
 .concept-en p { margin-bottom: 0.3em; }
 .concept-img { width: 100%; aspect-ratio: 3/4; overflow: hidden; position: sticky; top: 100px; }
 .concept-img img { width: 100%; height: 100%; object-fit: cover; }

 /* SHARED SECTION PARTS */
 .eyebrow { font-family: var(--ff-jp); font-size: 0.62rem; letter-spacing: 0.24em; color: var(--clr-text-light); margin-bottom: 14px; }
 .sec-title-h { font-family: var(--ff-jp); font-weight: 300; font-size: clamp(2rem, 3.4vw, 3rem); letter-spacing: 0.16em; color: var(--clr-text); line-height: 1.4; margin-bottom: 8px; }
 .sec-sub-jp { font-family: var(--ff-jp); font-size: 0.72rem; letter-spacing: 0.3em; color: var(--clr-text-light); margin-bottom: 40px; }
 .sec-body { font-family: var(--ff-jp); font-weight: 300; color: var(--clr-text); }
 .sec-body .lead { font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 2.6; letter-spacing: 0.12em; margin-bottom: 1.6em; }
 .sec-body .sub { font-size: clamp(0.85rem, 1.1vw, 0.92rem); line-height: 2.6; letter-spacing: 0.1em; color: var(--clr-text-mid); margin-bottom: 0.5em; }

 /* タグ — AUN⑫ 楕円（草案スタイル）で統一 */
 .tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
 .tag { font-family: var(--ff-jp); font-size: 0.66rem; letter-spacing: 0.14em; border: 1px solid var(--clr-border); padding: 8px 20px; color: var(--clr-text-light); transition: border-color 0.3s, color 0.3s; border-radius: 999px; }
 .tag:hover { border-color: var(--clr-text); color: var(--clr-text); }

 .inq-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 32px; font-family: var(--ff-jp); font-size: 0.68rem; letter-spacing: 0.22em; color: var(--clr-text-white); background: var(--clr-text); border: 1px solid var(--clr-text); border-radius: 999px; padding: 13px 32px; transition: background 0.3s, color 0.3s; }
 .inq-link:hover { background: transparent; color: var(--clr-text); }
 .inq-link::after { content: '→'; }

 .see-more-wrap { margin-top: 24px; }
 .see-more-btn { display: inline-flex; align-items: center; gap: 14px; font-family: var(--ff-jp); font-size: 0.66rem; letter-spacing: 0.22em; color: var(--clr-text-white); background: var(--clr-text); border: 1px solid var(--clr-text); border-radius: 999px; padding: 13px 28px; cursor: pointer; transition: background 0.3s, color 0.3s; }
 .see-more-btn:hover { background: transparent; color: var(--clr-text); }

 .modal-overlay { display: none; position: fixed; inset: 0; z-index: 1000; background: rgba(20,18,16,0.92); align-items: center; justify-content: center; opacity: 0; transition: opacity 0.35s ease; }
 .modal-overlay.open { display: flex; }
 .modal-overlay.visible { opacity: 1; }
 .modal-inner { position: relative; width: min(92vw, 1100px); max-height: 90vh; overflow-y: auto; background: var(--clr-bg); padding: 48px 40px 40px; }
 .modal-close { position: absolute; top: 16px; right: 20px; font-family: var(--ff-jp); font-size: 0.62rem; letter-spacing: 0.15em; color: var(--clr-text-light); background: none; border: none; cursor: pointer; }
 .modal-close:hover { color: var(--clr-text); }
 .modal-title { font-family: var(--ff-jp); font-size: 0.72rem; letter-spacing: 0.2em; color: var(--clr-text-light); margin-bottom: 28px; }
 /* AUN(H+)① モーダル1枚表示スライドショー
    ─ 中央ステージ / 左右矢印 / 下部ドット & カウンタ
    ─ キーボード ← → / ESC 対応(main.js側)
    ─ タッチスワイプ対応(main.js側) */
 .slider { position: relative; display: flex; flex-direction: column; align-items: center; gap: 20px; max-width: 1100px; margin: 0 auto; }
 .slider-stage { position: relative; width: 100%; max-width: 900px; overflow: hidden; background: var(--clr-bg-off); }
 .slider-track { display: flex; transition: transform 0.5s var(--ease-out); will-change: transform; }
 .slider-slide { flex: 0 0 100%; width: 100%; aspect-ratio: 3/2; overflow: hidden; background: var(--clr-bg-off); }
 .slider-slide img { width: 100%; height: 100%; object-fit: contain; background: var(--clr-bg-off); display: block; }
 .slider-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 44px; height: 44px; border-radius: 999px; background: rgba(245,243,239,0.9); border: 1px solid rgba(58,53,48,0.14); color: var(--clr-text); font-family: var(--ff-en); font-size: 1.5rem; line-height: 1; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.3s, color 0.3s, opacity 0.3s; padding: 0 0 3px; }
 .slider-arrow:hover { background: var(--clr-text); color: var(--clr-text-white); }
 .slider-arrow:disabled { opacity: 0.3; cursor: default; }
 .slider-prev { left: 10px; }
 .slider-next { right: 10px; }
 .slider-foot { display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap; }
 .slider-dots { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: center; }
 .slider-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(58,53,48,0.22); border: none; padding: 0; cursor: pointer; transition: background 0.3s, transform 0.3s; }
 .slider-dot:hover { background: rgba(58,53,48,0.5); }
 .slider-dot.is-active { background: var(--clr-text); transform: scale(1.25); }
 .slider-count { font-family: var(--ff-en); font-size: 0.72rem; letter-spacing: 0.16em; color: var(--clr-text-light); min-width: 3em; text-align: center; }

 /* AUN⑤⑨: セクション区切り — 縦線1本・和のミニマル装飾（PC: padding 90px上下、縦線1px×56px） */
 .section-divider { display: flex; justify-content: center; align-items: center; padding: 90px 0; background: var(--clr-bg); }
 .section-divider::before { content: ""; display: block; width: 1px; height: 56px; background: var(--clr-text-light); opacity: 0.35; }

 /* SHITSURAE — AUN③ 草案構成（横書き見出し＋左写真2枚ずらし） */
 #shitsurae { background: var(--clr-bg); overflow: hidden; }
 .shitsurae-inner { display: grid; grid-template-columns: 1fr 1fr; min-height: 90vh; }
 .shitsurae-photos { position: relative; overflow: visible; padding-bottom: 12%; }
 .shitsurae-main { width: 100%; height: 100%; overflow: hidden; }
 .shitsurae-main img { width: 100%; height: 100%; object-fit: cover; }
 .shitsurae-sub { position: absolute; bottom: 0; right: -36px; width: 54%; aspect-ratio: 4/3; overflow: hidden; box-shadow: 0 10px 48px rgba(0,0,0,0.14); z-index: 3; }
 .shitsurae-sub img { width: 100%; height: 100%; object-fit: cover; }
 .shitsurae-text { display: flex; flex-direction: column; justify-content: center; padding: 80px 8vw 64px 72px; }

 /* GARDEN — AUN⑥ 黒帯を廃し、余白ある見出しブロックで馴染ませる */
 #garden { background: var(--clr-bg); }
 .garden-head { padding: 104px 8vw 48px; }
 .garden-3col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
 .garden-col { position: relative; overflow: hidden; min-height: 68vh; }
 .garden-col img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s; filter: brightness(0.72); }
 .garden-col:hover img { transform: scale(1.03); filter: brightness(0.82); }
 .garden-col-content { position: absolute; inset: 0; padding: 32px 28px 36px; display: flex; flex-direction: column; justify-content: space-between; }
 .garden-col-label { font-family: var(--ff-jp); font-size: 0.58rem; letter-spacing: 0.24em; color: rgba(245,243,239,0.6); }
 .garden-col-title { writing-mode: vertical-rl; text-orientation: upright; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.4rem, 2.2vw, 2rem); letter-spacing: 0.2em; color: var(--clr-text-white); margin-bottom: 20px; float: right; }
 .garden-col-body { font-family: var(--ff-jp); font-size: clamp(0.78rem, 1vw, 0.88rem); line-height: 2.1; letter-spacing: 0.08em; color: rgba(245,243,239,0.82); clear: both; }
 .garden-col-inq { display: inline-block; margin-top: 20px; font-family: var(--ff-jp); font-size: 0.6rem; letter-spacing: 0.16em; color: rgba(245,243,239,0.65); border-bottom: 1px solid rgba(245,243,239,0.35); padding-bottom: 3px; transition: color 0.3s; }
 .garden-col-inq:hover { color: rgba(245,243,239,0.95); }

 /* WEDDING — AUN④ 草案構成（横書き見出し＋右写真） */
 #wedding { background: var(--clr-bg); }
 .wedding-hd { display: grid; grid-template-columns: 1fr 1fr; min-height: 85vh; overflow: hidden; }
 .wedding-txt { display: flex; flex-direction: column; justify-content: center; padding: 80px 56px 80px 8vw; }
 .wedding-photos { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
 .wedding-photos .wp { overflow: hidden; }
 .wedding-photos .wp img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
 .wedding-photos .wp:hover img { transform: scale(1.04); }
 .wedding-3col { display: grid; grid-template-columns: repeat(3, 1fr); }
 .wedding-card { position: relative; overflow: hidden; aspect-ratio: 3/4; }
 .wedding-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; filter: brightness(0.68); }
 .wedding-card:hover img { transform: scale(1.03); filter: brightness(0.78); }
 .wedding-card-content { position: absolute; inset: 0; padding: 28px 24px; display: flex; flex-direction: column; justify-content: space-between; }
 .wedding-card-label { font-family: var(--ff-jp); font-size: 0.56rem; letter-spacing: 0.24em; color: rgba(245,243,239,0.6); }
 .wedding-card-title-v { writing-mode: vertical-rl; text-orientation: upright; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.4rem, 2vw, 2rem); letter-spacing: 0.2em; color: var(--clr-text-white); float: right; }
 .wedding-card-body { font-family: var(--ff-jp); font-size: 0.78rem; line-height: 2; color: rgba(245,243,239,0.78); clear: both; }
 .wedding-see-more { padding: 28px 8vw; }

 /* OKURIMONO — ⑦3カード（既存）＋ AUN⑧ ストア3枚もカード表現に */
 #okurimono { background: var(--clr-bg); }
 .okuri-hero { position: relative; height: 58vh; overflow: hidden; }
 .okuri-hero img { width: 100%; height: 100%; object-fit: cover; }
 .okuri-hero-title { position: absolute; top: 0; right: 52px; bottom: 0; display: flex; align-items: center; z-index: 3; }
 .okuri-hero-title span { writing-mode: vertical-rl; text-orientation: upright; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.6rem, 2.8vw, 2.4rem); letter-spacing: 0.2em; color: var(--clr-text-white); }
 .okuri-content { padding: 80px 8vw 40px; }
 .okuri-copy { font-family: var(--ff-jp); font-weight: 300; color: var(--clr-text); max-width: 760px; margin-bottom: 64px; }
 .okuri-copy .lead { font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 3; letter-spacing: 0.14em; margin-bottom: 1.4em; }
 .okuri-copy .sub { font-size: clamp(0.85rem, 1.1vw, 0.95rem); line-height: 2.6; letter-spacing: 0.1em; color: var(--clr-text-mid); }
 .okuri-3col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
 .okuri-card { position: relative; overflow: hidden; aspect-ratio: 3/4; }
 .okuri-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s; filter: brightness(0.7); }
 .okuri-card:hover img { transform: scale(1.03); filter: brightness(0.8); }
 .okuri-card-content { position: absolute; inset: 0; padding: 32px 28px 36px; display: flex; flex-direction: column; justify-content: space-between; }
 .okuri-card-label { font-family: var(--ff-jp); font-size: 0.58rem; letter-spacing: 0.24em; color: rgba(245,243,239,0.6); }
 .okuri-card-title { writing-mode: vertical-rl; text-orientation: upright; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.3rem, 2vw, 1.8rem); letter-spacing: 0.2em; color: var(--clr-text-white); margin-bottom: 16px; float: right; }
 .okuri-card-body { font-family: var(--ff-jp); font-size: clamp(0.76rem, 0.95vw, 0.85rem); line-height: 2; letter-spacing: 0.06em; color: rgba(245,243,239,0.82); clear: both; }
 .okuri-store { padding: 0 8vw 80px; border-top: 1px solid var(--clr-border); margin-top: 0; padding-top: 52px; }
 .store-label { font-family: var(--ff-jp); font-size: 0.62rem; letter-spacing: 0.24em; color: var(--clr-text-light); margin-bottom: 12px; display: flex; align-items: center; gap: 10px; }
 .store-label::before { content: ''; display: block; width: 24px; height: 1px; background: currentColor; }
 .store-desc { font-family: var(--ff-jp); font-size: clamp(0.85rem, 1.1vw, 0.95rem); letter-spacing: 0.1em; line-height: 2.2; color: var(--clr-text); margin-bottom: 28px; }
 .store-3col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
 .store-3col .okuri-card { aspect-ratio: 1; }

 /* ABOUT */
 #about { background: var(--clr-bg); padding: 100px 8vw; }
 .about-eyebrow { font-family: var(--ff-jp); font-size: 0.62rem; letter-spacing: 0.24em; color: var(--clr-text-light); margin-bottom: 52px; }
 .about-couple { max-width: 660px; aspect-ratio: 3/2; overflow: hidden; margin-bottom: 60px; }
 .about-couple img { width: 100%; height: 100%; object-fit: cover; }
 .about-profiles { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
 .about-profile { display: flex; gap: 28px; }
 .about-photo { width: 136px; flex-shrink: 0; aspect-ratio: 3/4; overflow: hidden; }
 .about-photo img { width: 100%; height: 100%; object-fit: cover; }
 .profile-name-en { font-family: var(--ff-en); font-size: 0.75rem; letter-spacing: 0.12em; color: var(--clr-text-light); margin-bottom: 4px; }
 .profile-name-jp { font-family: var(--ff-jp); font-size: clamp(0.9rem, 1.2vw, 1rem); letter-spacing: 0.2em; color: var(--clr-text); margin-bottom: 16px; }
 .profile-bio { font-family: var(--ff-jp); font-size: clamp(0.78rem, 0.9vw, 0.85rem); line-height: 2.3; letter-spacing: 0.07em; color: var(--clr-text-mid); }

 /* CONTACT */
 #contact { background: var(--clr-bg); padding: 100px 8vw; border-top: 1px solid var(--clr-border); }
 .contact-eyebrow { font-family: var(--ff-jp); font-size: 0.62rem; letter-spacing: 0.24em; color: var(--clr-text-light); margin-bottom: 16px; }
 .contact-title { font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.3rem, 2.2vw, 1.9rem); letter-spacing: 0.2em; color: var(--clr-text); margin-bottom: 16px; }
 .contact-desc { font-family: var(--ff-jp); font-size: clamp(0.82rem, 1vw, 0.9rem); letter-spacing: 0.1em; line-height: 2.4; color: var(--clr-text-mid); margin-bottom: 56px; }
 .c-form { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 48px; max-width: 820px; }
 .c-group { display: flex; flex-direction: column; gap: 9px; }
 .c-group.full { grid-column: 1/-1; }
 .c-label { font-family: var(--ff-jp); font-size: 0.62rem; letter-spacing: 0.16em; color: var(--clr-text-light); }
 .c-label .req { color: var(--clr-text); margin-left: 4px; font-size: 0.5rem; }
 .c-input, .c-select, .c-textarea { font-family: var(--ff-jp); font-size: clamp(0.82rem, 1vw, 0.9rem); color: var(--clr-text); background: transparent; border: none; border-bottom: 1px solid var(--clr-border); padding: 10px 0; outline: none; transition: border-color 0.3s; width: 100%; }
 .c-input:focus, .c-select:focus, .c-textarea:focus { border-color: var(--clr-text); }
 .c-textarea { resize: vertical; min-height: 110px; }
 .c-submit { grid-column: 1/-1; display: flex; align-items: center; gap: 36px; margin-top: 12px; }
 .c-privacy { font-family: var(--ff-jp); font-size: clamp(0.75rem, 0.9vw, 0.82rem); letter-spacing: 0.08em; color: var(--clr-text-mid); display: flex; align-items: center; gap: 8px; }
 .c-btn { font-family: var(--ff-jp); font-weight: 300; font-size: clamp(0.75rem, 0.9vw, 0.82rem); letter-spacing: 0.3em; color: var(--clr-text-white); background: var(--clr-text); border: 1px solid var(--clr-text); padding: 14px 44px; cursor: pointer; transition: background 0.3s, color 0.3s; }
 .c-btn:hover { background: transparent; color: var(--clr-text); }
 /* AUN(H+I3)③ フォームエラー表示 */
 .c-form-error { max-width: 820px; margin: 0 0 32px; padding: 20px 24px; background: rgba(169, 75, 58, 0.06); border: 1px solid rgba(169, 75, 58, 0.28); color: #a94b3a; font-size: 0.86rem; line-height: 1.9; }
 .c-form-error-heading { font-family: var(--ff-jp); font-size: 0.9rem; letter-spacing: 0.2em; margin-bottom: 6px; }
 .c-form-error ul { margin: 0; padding-left: 1.4em; }
 .c-form-error li { margin: 3px 0; }

 /* FOOTER */
 footer { background: var(--clr-bg-dark); padding: 68px 8vw 44px; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: start; }
 .ft-logo img { width: auto; height: 30px; object-fit: contain; object-position: left center; opacity: 0.85; display: block; margin-bottom: 8px; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3)); }
 .ft-sub { font-family: var(--ff-en); font-size: 0.52rem; letter-spacing: 0.2em; color: rgba(245,243,239,0.3); }
 .ft-nav { display: flex; gap: 48px; }
 .ft-col h4 { font-family: var(--ff-jp); font-size: 0.56rem; letter-spacing: 0.2em; color: rgba(245,243,239,0.38); margin-bottom: 18px; }
 .ft-col ul { list-style: none; }
 .ft-col li { margin-bottom: 12px; }
 .ft-col a { font-family: var(--ff-jp); font-size: clamp(0.72rem, 0.85vw, 0.8rem); letter-spacing: 0.1em; color: rgba(245,243,239,0.5); transition: color 0.3s; }
 .ft-col a:hover { color: rgba(245,243,239,0.9); }
 .ft-copy { grid-column: 1/-1; padding-top: 44px; border-top: 1px solid rgba(245,243,239,0.07); font-family: var(--ff-en); font-size: 0.52rem; letter-spacing: 0.12em; color: rgba(245,243,239,0.22); }

 /* REVEAL ANIMATION */
 .reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.85s ease, transform 0.85s ease; }
 .reveal.visible { opacity: 1; transform: none; }

 /* RESPONSIVE */
 @media (max-width: 960px) {
 #nav { padding: 0 20px; }
 .nav-menu { display: none; }
 #brand, .shitsurae-inner, .okuri-content, .about-profiles, .wedding-hd { grid-template-columns: 1fr; }
 .brand-text { padding: 64px 24px; }
 .shitsurae-sub { display: none; }
 .shitsurae-photos { padding-bottom: 0; }
 .shitsurae-text { padding: 64px 24px; }
 .concept-stanzas { flex-direction: column; gap: 30px; }
 .concept-stanza { flex-direction: column; gap: 4px; }
 .concept-stanza p { writing-mode: horizontal-tb; text-orientation: mixed; font-size: 0.9rem; line-height: 2; letter-spacing: 0.12em; }
 /* AUN④: モバイルはコンセプトを回り込みレイアウトに(画像=右上に浮動、本文が周囲を回り込む)
    追加調整: 画像を横長化&小さめに → 詩の各行が下で100%幅を使えるように */
 #concept { display: block; padding: 60px 20px; }
 #concept::after { content: ''; display: block; clear: both; } /* clearfix */
 .concept-media { float: right; width: 33%; margin: 4px 0 12px 14px; shape-outside: margin-box; }
 .concept-img { position: static; aspect-ratio: 3/2; width: 100%; } /* 3/4→5/4→3/2 で更に低背に(stanza2/3が全幅を使えるよう) */
 .concept-body { display: block; }
 .concept-label { margin-bottom: 24px; }
 .concept-stanzas { display: contents; } /* wrapperを透明化: 各stanzaを.concept-bodyの直接子扱いに → stanza2/3は真の全幅使用 */
 .concept-stanza + .concept-stanza { margin-top: 20px; } /* display:contentsで失われたgapを補填 */
 /* 詩節: 不自然な折返しを防ぐため letter-spacing とサイズを微調整 */
 .concept-stanza p { font-size: 0.85rem !important; line-height: 2.0 !important; letter-spacing: 0.06em !important; }
 .concept-en { margin-top: 32px; font-size: 0.78rem; line-height: 2.1; }
 .concept-en p { letter-spacing: 0.04em; }
 /* AUN⑨ 記憶ルール: 植栽セクションの見出しをしつらえ準拠で左寄せ(モバイル) */
 #garden .shitsurae-text { text-align: left; padding: 40px 24px; }
 #garden .shitsurae-text .sec-title-h,
 #garden .shitsurae-text .sec-sub-jp,
 #garden .shitsurae-text .eyebrow { text-align: left; }


 .garden-3col, .wedding-3col, .okuri-3col, .store-3col { grid-template-columns: 1fr; }
 .wedding-3col .wedding-card { aspect-ratio: 16/9; }
 .c-form { grid-template-columns: 1fr; }
 .c-group.full { grid-column: 1; }
 .c-submit { flex-direction: column; align-items: flex-start; }
 footer { grid-template-columns: 1fr; }
 .ft-nav { flex-wrap: wrap; gap: 28px; }
 .hero-catchcopy { font-size: clamp(1.1rem, 3.8vw, 1.4rem); }
 /* AUN(H+)① モバイル時のモーダルスライダー調整 */
 .modal-inner { padding: 44px 16px 32px; }
 .slider { gap: 14px; }
 .slider-arrow { width: 38px; height: 38px; font-size: 1.25rem; }
 .slider-prev { left: 6px; }
 .slider-next { right: 6px; }
 .slider-slide { aspect-ratio: 3/2; }
 .slider-count { font-size: 0.68rem; }
 .section-divider { padding: 60px 0; }
 .section-divider::before { height: 40px; }
 }

 /* ===== B案: ギャラリー型(婚礼花/おくりもの) ===== */
 .wb-hero { position: relative; height: 86vh; overflow: hidden; }
 .wb-hero img { width: 100%; height: 100%; object-fit: cover; }
 .wb-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,18,16,0.42) 0%, rgba(20,18,16,0.05) 45%); z-index: 1; }
 .wb-hero-title { position: absolute; top: 0; right: 56px; bottom: 0; display: flex; align-items: center; z-index: 3; }
 .wb-hero-title span { writing-mode: vertical-rl; text-orientation: upright; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.7rem, 3vw, 2.6rem); letter-spacing: 0.3em; color: var(--clr-text-white); text-shadow: 0 2px 24px rgba(0,0,0,0.35); }
 .wb-hero-eyebrow { position: absolute; left: 8vw; bottom: 40px; z-index: 3; font-family: var(--ff-jp); font-size: 0.62rem; letter-spacing: 0.28em; color: rgba(245,243,239,0.75); }
 .b-lead-center { max-width: 640px; margin: 0 auto; padding: 104px 24px 72px; text-align: center; }
 .b-lead-center .lead { font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 2.8; letter-spacing: 0.16em; margin-bottom: 1.8em; }
 .b-lead-center .sub { font-size: clamp(0.83rem, 1vw, 0.9rem); line-height: 2.7; letter-spacing: 0.1em; color: var(--clr-text-mid); }
 .b-lead-center .tags { justify-content: center; margin-top: 40px; }
 .b-lead-center .inq-link { margin-top: 36px; }
 .gallery3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5%; padding: 0 8vw 24px; }
 /* AUN追加: 画像内オーバーレイ型カード(画像フルブリード+テキスト重畳) */
 .g-fig { margin: 0; position: relative; aspect-ratio: 3/4; overflow: hidden; }
 .g-photo { position: absolute; inset: 0; overflow: hidden; }
 .g-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
 .g-fig:hover .g-photo img { transform: scale(1.04); }
 /* 底部グラデーション: ノート文言の可読性確保 */
 .g-fig::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.42) 35%, transparent 100%); z-index: 1; pointer-events: none; }
 .g-cap { position: absolute; inset: 0; z-index: 2; pointer-events: none; padding: 22px; text-align: initial; }
 .g-num { position: absolute; top: 22px; left: 50%; transform: translateX(-50%); font-family: var(--ff-jp); font-size: 0.65rem; letter-spacing: 0.34em; color: rgba(245,243,239,0.78); text-shadow: 0 1px 6px rgba(0,0,0,0.5); }
 /* 縦書きタイトル: 右側中央 */
 .g-title { position: absolute; top: 50%; right: 24px; transform: translateY(-50%); writing-mode: vertical-rl; white-space: nowrap; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.15rem, 1.65vw, 1.5rem); letter-spacing: 0.24em; color: rgba(255,255,255,0.96); text-shadow: 0 2px 14px rgba(0,0,0,0.55); }
 /* ノート: 下部オーバーレイ */
 .g-note { position: absolute; bottom: 24px; left: 24px; right: 24px; font-family: var(--ff-jp); font-size: clamp(0.72rem, 0.85vw, 0.78rem); line-height: 2.0; letter-spacing: 0.06em; color: rgba(245,243,239,0.92); text-shadow: 0 1px 5px rgba(0,0,0,0.5); }
 .b-center-btn { text-align: center; padding: 40px 8vw 96px; }
 .ob-intro { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(40px, 5vw, 80px); padding: 110px 8vw 88px; align-items: center; }
 .ob-photo { aspect-ratio: 4/5; overflow: hidden; }
 .ob-text { display: flex; flex-direction: column; gap: clamp(20px, 2vw, 32px); align-items: flex-start; }
 .ob-title-v { writing-mode: horizontal-tb; font-family: var(--ff-jp); font-weight: 300; font-size: clamp(1.8rem, 2.8vw, 2.4rem); letter-spacing: 0.24em; color: var(--clr-text); }
 .ob-copy .lead { font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 2.9; letter-spacing: 0.14em; margin-bottom: 1.6em; }
 .ob-copy .sub { font-size: clamp(0.83rem, 1vw, 0.9rem); line-height: 2.6; letter-spacing: 0.1em; color: var(--clr-text-mid); }
 .ob-store-b { padding: 56px 8vw 40px; margin-top: 40px; }
 /* AUN(H)⑬⑭: ob-store-bを.ob-text本文内に移動した際の上書き（全幅用padding無効化） */
 .ob-text .ob-store-b { padding: 0; margin-top: clamp(20px, 2vw, 32px); width: 100%; }
 .ob-text .ob-store-divider { margin-top: 32px; }
 @media (max-width: 960px) {
 .wb-hero { height: 58vh; }
 .wb-hero-title { right: 20px; }
 /* AUN(H+)④ モバイル時の.gallery3 左右余白を追加(表示幅92% = 左右4% padding) */
 .gallery3 { grid-template-columns: 1fr; gap: 6px; padding: 0 4% 24px; }
 .ob-intro { grid-template-columns: 1fr; padding: 72px 24px 56px; }
 /* AUN(H+I3)① モバイル時、おくりものTOP写真を他TOPと同様の全幅横長表示に揃える */
 .ob-photo { aspect-ratio: 3/2; margin-left: -24px; margin-right: -24px; }
 .ob-text { flex-direction: column; }
 .ob-title-v { writing-mode: horizontal-tb; letter-spacing: 0.24em; }
 .b-lead-center { padding: 72px 24px 48px; }
 }
 
 /* AUN⑥: 写真差替予定のグレーボックス(将来的にimg差替) */
 .photo-placeholder {
 width: 100%;
 height: 100%;
 min-height: 62vh;
 background: linear-gradient(135deg, #dfdcd3 0%, #c9c4b5 100%);
 display: flex;
 align-items: center;
 justify-content: center;
 border: 1px dashed rgba(107,103,84,0.3);
 }
 .photo-placeholder span {
 font-family: var(--ff-jp);
 font-weight: 300;
 font-size: 0.9rem;
 letter-spacing: 0.24em;
 color: #6b6754;
 opacity: 0.7;
 }
 /* Ver①: 「五感で感じる自然を」の表示速度をゆっくり・余韻感UP（上からゆっくり降りてくる） */
 @keyframes ccDropSlow { 0% { opacity: 0; transform: translateY(-1.4em); } 60% { opacity: 1; } 100% { opacity: 1; transform: translateY(0); } }

 /* AUN⑦ 罫線位置変更: 「オンラインストアへ」リンクの下に配置 */
 .ob-store-divider {
 margin: 56px 0 0;
 border: none;
 border-top: 1px solid var(--clr-border);
 width: 100%;
 }

 /* ============================================================
    AUN⑲ CURSOR FOLLOWER (草案準拠 / desktop only)
    ============================================================ */
 .cursor {
   position: fixed;
   width: 8px; height: 8px;
   border-radius: 50%;
   background: var(--clr-text);
   pointer-events: none;
   z-index: 9998;
   -webkit-mix-blend-mode: difference;
   mix-blend-mode: difference;
   -webkit-transform: translate(-50%, -50%);
   transform: translate(-50%, -50%);
   -webkit-transition: width 0.3s var(--ease-out), height 0.3s var(--ease-out), background 0.3s var(--ease-out);
   transition: width 0.3s var(--ease-out), height 0.3s var(--ease-out), background 0.3s var(--ease-out);
   opacity: 0;
   will-change: transform;
   top: 0; left: 0;
 }
 .cursor.is-active { opacity: 1; }
 .cursor.is-hovering {
   width: 60px; height: 60px;
   background: rgba(255,255,255,0.1);
   border: 0.5px solid rgba(255,255,255,0.5);
 }
 @media (pointer: coarse), (hover: none) { .cursor { display: none; } }
