/* ============================================================
 * フジヤ — colors & type
 * 旧藤江勝太郎家住宅 / 運営: 城下社中 / 館内: 茶風詩
 * 静岡県周智郡森町城下 — 秋葉街道の宿場町、お茶文化、古民家。
 *
 * Brand aesthetic: heritage Japanese — washi paper, sumi ink,
 * aged wood (cha 茶), persimmon (kakiiro 柿色) accent, matcha hint.
 * ============================================================ */

:root {
  /* ---- Color primitives ---------------------------------- */

  /* Paper / neutrals — washi 和紙 */
  --fjy-paper:       #F5EFE3;   /* warm washi cream — page background */
  --fjy-paper-2:     #EDE5D2;   /* secondary surface */
  --fjy-sand:        #DDCCAE;   /* tatami / chip / divider strip */
  --fjy-stone:       #BCAB8A;   /* muted surface, photo placeholder */
  --fjy-hairline:    #D4C7AE;   /* borders, dividers */

  /* Sumi ink 墨 — text */
  --fjy-sumi:        #1C1814;   /* primary text */
  --fjy-sumi-2:      #4A4036;   /* secondary text */
  --fjy-sumi-3:      #6E6356;   /* tertiary / captions */
  --fjy-sumi-4:      #9D917F;   /* placeholder / disabled */

  /* Cha 茶 — tea-brown / aged wood. Primary brand. */
  --fjy-cha:         #6B4F2A;   /* primary — aged cedar, brewed tea */
  --fjy-cha-dark:    #4A3719;
  --fjy-cha-soft:    #9B7B57;
  --fjy-cha-tint:    #E8DCC4;

  /* Kaki 柿色 — persimmon. Original brand accent (kept, used least). */
  --fjy-kaki:        #C8612A;
  --fjy-kaki-dark:   #9A4317;
  --fjy-kaki-tint:   #F4D8BE;

  /* Enji 臙脂色 — deep festival-lacquer red. The 城下 accent.
     Referenced from 谷本社 屋台 and shrine lacquer. */
  --fjy-enji:        #A03548;
  --fjy-enji-dark:   #7A2438;
  --fjy-enji-tint:   #EBD3D7;

  /* Matcha 抹茶 — sencha tea green. The 森の茶 accent (use in tea contexts). */
  --fjy-matcha:      #6B7A3A;
  --fjy-matcha-dark: #4D5A29;
  --fjy-matcha-tint: #DCE0BF;

  /* Ai 藍 — indigo. Used very rarely (festival yatai / shrine references). */
  --fjy-ai:          #2E4A5C;
  --fjy-ai-tint:     #C9D3DA;

  /* Semantic */
  --fjy-success:     #6B7A3A;
  --fjy-warning:     #BD8520;
  --fjy-error:       #A93821;
  --fjy-info:        #2E4A5C;

  /* ---- Semantic mappings -------------------------------- */
  --bg:               var(--fjy-paper);
  --bg-2:             var(--fjy-paper-2);
  --surface:          #FBF8F1;
  --surface-sunken:   var(--fjy-sand);
  --fg-1:             var(--fjy-sumi);
  --fg-2:             var(--fjy-sumi-2);
  --fg-3:             var(--fjy-sumi-3);
  --fg-4:             var(--fjy-sumi-4);
  --border:           var(--fjy-hairline);
  --border-strong:    var(--fjy-stone);
  --accent:           var(--fjy-enji);
  --accent-2:         var(--fjy-matcha);
  --brand:            var(--fjy-cha);

  /* ---- Type families ------------------------------------ */
  --font-jp-serif:   "Noto Serif JP", "Noto Serif JP", "Yu Mincho", "YuMincho",
                     "Hiragino Mincho ProN", serif;
  --font-jp-sans:    "Noto Sans JP", "Noto Sans JP", "Hiragino Kaku Gothic ProN",
                     "Yu Gothic", sans-serif;
  --font-en-serif:   "Cormorant Garamond", "EB Garamond", "Noto Serif JP", serif;
  --font-en-sans:    "Inter", "Helvetica Neue", "Noto Sans JP", sans-serif;
  --font-mono:       "JetBrains Mono", "SF Mono", ui-monospace, monospace;

  --font-display:    var(--font-jp-serif);    /* heritage = serif-first */
  --font-body:       var(--font-jp-sans);
  --font-label:      var(--font-en-sans);

  /* ---- Type scale --------------------------------------- */
  --fs-12: 0.75rem;   --fs-13: 0.8125rem; --fs-14: 0.875rem;
  --fs-15: 0.9375rem; --fs-16: 1rem;      --fs-18: 1.125rem;
  --fs-20: 1.25rem;   --fs-24: 1.5rem;    --fs-28: 1.75rem;
  --fs-32: 2rem;      --fs-40: 2.5rem;    --fs-48: 3rem;
  --fs-56: 3.5rem;    --fs-72: 4.5rem;    --fs-96: 6rem;

  --fw-thin: 200;     --fw-light: 300;    --fw-regular: 400;
  --fw-medium: 500;   --fw-semi: 600;     --fw-bold: 700;

  --lh-tight: 1.2;    --lh-snug: 1.4;
  --lh-normal: 1.75;  --lh-loose: 1.95;

  --tr-tight:   -0.01em;
  --tr-normal:  0;
  --tr-jp:      0.04em;
  --tr-label:   0.18em;
  --tr-eyebrow: 0.32em;

  /* ---- Spacing — 4px base ------------------------------ */
  --sp-0: 0; --sp-1: 4px; --sp-2: 8px; --sp-3: 12px;
  --sp-4: 16px; --sp-5: 24px; --sp-6: 32px; --sp-7: 48px;
  --sp-8: 64px; --sp-9: 96px; --sp-10: 128px; --sp-11: 160px;

  /* ---- Radii — restrained, heritage-flat --------------- */
  --r-0: 0;     /* default for photos, sections */
  --r-1: 2px;
  --r-2: 4px;
  --r-3: 6px;   /* default card */
  --r-4: 12px;
  --r-pill: 999px;

  /* ---- Shadows — soft, paper-like ---------------------- */
  --sh-0: none;
  --sh-1: 0 1px 2px rgba(28, 24, 20, 0.05);
  --sh-2: 0 4px 12px rgba(28, 24, 20, 0.07), 0 1px 2px rgba(28, 24, 20, 0.04);
  --sh-3: 0 12px 32px rgba(28, 24, 20, 0.09), 0 2px 6px rgba(28, 24, 20, 0.04);
  --sh-4: 0 28px 60px rgba(28, 24, 20, 0.13);
  --sh-press: inset 0 1px 2px rgba(28, 24, 20, 0.08);

  /* ---- Motion ------------------------------------------ */
  --ease-out:    cubic-bezier(0.2, 0.7, 0.2, 1);
  --ease-in-out: cubic-bezier(0.6, 0, 0.2, 1);
  --dur-fast:    140ms;
  --dur-base:    260ms;
  --dur-slow:    520ms;
  --dur-slowest: 900ms;
}

/* ============================================================
 * Semantic text styles
 * ============================================================ */
html, body {
  background: var(--bg);
  color: var(--fg-1);
  font-family: var(--font-body);
  font-size: var(--fs-16);
  line-height: var(--lh-normal);
  letter-spacing: var(--tr-jp);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.fjy-display {
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  font-size: clamp(2.25rem, 4.5vw, var(--fs-72));
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: var(--fg-1);
}

.fjy-h1, h1 {
  font-family: var(--font-display);
  font-weight: var(--fw-medium);
  font-size: clamp(1.75rem, 3vw, var(--fs-48));
  line-height: var(--lh-snug);
  letter-spacing: 0.06em;
  color: var(--fg-1);
}

.fjy-h2, h2 {
  font-family: var(--font-display);
  font-weight: var(--fw-medium);
  font-size: var(--fs-32);
  line-height: var(--lh-snug);
  letter-spacing: 0.05em;
  color: var(--fg-1);
}

.fjy-h3, h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-medium);
  font-size: var(--fs-20);
  line-height: var(--lh-snug);
  letter-spacing: 0.04em;
  color: var(--fg-1);
}

.fjy-eyebrow {
  font-family: var(--font-en-sans);
  font-weight: var(--fw-medium);
  font-size: var(--fs-12);
  letter-spacing: var(--tr-eyebrow);
  text-transform: uppercase;
  color: var(--fg-3);
}

.fjy-subtitle {
  font-family: var(--font-en-serif);
  font-weight: var(--fw-regular);
  font-size: var(--fs-18);
  letter-spacing: 0.04em;
  color: var(--fg-3);
}

.fjy-body, p {
  font-family: var(--font-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-16);
  line-height: var(--lh-normal);
  letter-spacing: var(--tr-jp);
  color: var(--fg-2);
}
.fjy-body-lg { font-size: var(--fs-18); line-height: var(--lh-loose); }
.fjy-body-sm { font-size: var(--fs-14); line-height: 1.7; color: var(--fg-3); }

.fjy-caption {
  font-family: var(--font-en-sans);
  font-size: var(--fs-12);
  letter-spacing: 0.08em;
  color: var(--fg-3);
}

.fjy-label {
  font-family: var(--font-en-sans);
  font-weight: var(--fw-medium);
  font-size: var(--fs-13);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  color: var(--fg-1);
}

.fjy-lead {
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  font-size: var(--fs-24);
  line-height: 2;
  letter-spacing: 0.1em;
  color: var(--fg-1);
}

.fjy-vertical {
  writing-mode: vertical-rl;
  font-family: var(--font-display);
  letter-spacing: 0.14em;
  line-height: 1.95;
}

.fjy-kaki-text {
  color: var(--fjy-enji);
  font-family: var(--font-display);
  letter-spacing: 0.12em;
}

.fjy-datestamp {
  font-family: var(--font-en-serif);
  font-size: var(--fs-13);
  letter-spacing: 0.06em;
  color: var(--fg-3);
}

a.fjy-link, .fjy-link {
  color: var(--fg-1);
  text-decoration: none;
  border-bottom: 1px solid var(--fg-1);
  padding-bottom: 1px;
  transition: color var(--dur-base) var(--ease-out),
              border-color var(--dur-base) var(--ease-out);
}
a.fjy-link:hover, .fjy-link:hover {
  color: var(--fjy-enji);
  border-color: var(--fjy-enji);
}

.fjy-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-3);
  font-family: var(--font-en-serif);
  font-size: var(--fs-15);
  letter-spacing: 0.1em;
  color: var(--fg-1);
  text-decoration: none;
  transition: color var(--dur-base) var(--ease-out);
}
.fjy-cta::after {
  content: "";
  width: 40px;
  height: 1px;
  background: currentColor;
  transition: width var(--dur-base) var(--ease-out);
}
.fjy-cta:hover { color: var(--fjy-enji); }
.fjy-cta:hover::after { width: 56px; }

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { --fjy-paper: #FFFFFF; --fjy-paper-2: #FFFFFF; --fjy-hairline: #000000; background: #FFFFFF; color: var(--fg-1); }
#app { min-height: 100vh; }
::selection { background: var(--fjy-enji); color: #FFFFFF; }
/* ============================================================
 * Mobile — 768 px breakpoint
 * ============================================================ */
@media (max-width: 768px){
  .fjy-section{padding-top:60px!important;padding-bottom:60px!important;padding-left:20px!important;padding-right:20px!important;}
  .fjy-section-sm{padding-top:40px!important;padding-bottom:40px!important;padding-left:20px!important;padding-right:20px!important;}
  .fjy-2col{grid-template-columns:1fr!important;gap:32px!important;}
  .fjy-3col{grid-template-columns:1fr!important;gap:16px!important;}
  .fjy-hero-text{padding:0 20px 48px!important;max-width:100%!important;}
  .fjy-news-row{grid-template-columns:auto 1fr!important;gap:4px 12px!important;align-items:start!important;}
  .fjy-news-row>:nth-child(3){grid-column:1/-1;}
  .fjy-news-row>:nth-child(4){display:none!important;}
  .fjy-fee-row{grid-template-columns:1fr!important;gap:6px!important;}
  .fjy-hours-row{grid-template-columns:auto 1fr!important;column-gap:12px!important;}
  .fjy-hours-row>div{padding-left:12px!important;padding-right:12px!important;}
  .fjy-hours-time{font-size:13px!important;white-space:nowrap!important;}
  .fjy-hours-fee{text-align:right!important;}
  .fjy-article-pad{padding-left:20px!important;padding-right:20px!important;}
  .fjy-footer-bar{flex-direction:column!important;gap:6px!important;padding:16px 20px!important;}
  .fjy-footer-bar a{position:static!important;}
  h1:not(.fjy-display){font-size:clamp(1.5rem,7vw,2.25rem)!important;}
  h2{font-size:clamp(1.3rem,5.5vw,2rem)!important;}
}

/* ===== Privacy / legal pages ===== */
.fjy-legal{padding:120px 48px;max-width:780px;margin:0 auto;}
.fjy-legal__eyebrow{margin-bottom:12px;}
.fjy-legal__title{margin:0 0 48px;font-size:36px;}
.fjy-legal__item{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--fjy-hairline);}
.fjy-legal__head{margin:0 0 16px;font-size:18px;}
.fjy-legal__body{margin:0;color:var(--fg-2);line-height:1.85;}


/* ==== auto-extracted static styles (refactor) ==== */
/* ===== about ===== */
.fjy-ab-01{background:var(--fjy-paper-2);border-bottom:1px solid var(--fjy-hairline);padding:14px 48px;display:flex;align-items:center;gap:32px;font-size:13px}
.fjy-ab-02{letter-spacing:0.3em}
.fjy-ab-03{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-ab-04{color:var(--fg-1);text-decoration:none;font-family:var(--font-jp-sans)}
.fjy-ab-05{margin-left:auto;font-size:12px;color:var(--fg-3)}
.fjy-ab-06{padding:160px 48px;background:var(--fjy-paper-2)}
.fjy-ab-07{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}
.fjy-ab-08{margin-bottom:12px}
.fjy-ab-09{margin:0 0 24px;font-size:36px}
.fjy-ab-10{margin:0 0 16px;max-width:480px}
.fjy-ab-11{margin:0;max-width:480px}
.fjy-ab-12{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.fjy-ab-13{padding:80px 48px;background:var(--fjy-paper-2)}
.fjy-ab-14{max-width:1080px;margin:0 auto}
.fjy-ab-15{display:grid;grid-template-columns:1fr 1.2fr;gap:64px;align-items:stretch}
.fjy-ab-16{overflow:hidden}
.fjy-ab-17{margin:0 0 24px;font-size:24px}
.fjy-ab-18{margin:0 0 20px;max-width:460px}
.fjy-ab-19{margin:0 0 24px;max-width:460px}
.fjy-ab-20{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:auto 1fr;column-gap:20px;row-gap:10px;font-family:var(--font-jp-sans);font-size:13px;color:var(--fg-2)}
.fjy-ab-21{color:var(--fjy-cha)}
.fjy-ab-22{width:100%;height:100%;object-fit:cover;object-position:20% center;display:block}
.fjy-ab-23{margin:0;max-width:460px}
.fjy-ab-24{width:100%;height:100%;object-fit:cover;display:block}
.fjy-ab-25{max-width:1080px;margin:0 auto;margin-bottom:48px}
.fjy-ab-26{margin:0 0 16px;font-size:24px}
.fjy-ab-27{margin:0;font-size:14px;color:var(--fg-3)}
.fjy-ab-28{width:100%;margin-bottom:24px;display:flex;gap:4px;align-items:stretch}
.fjy-ab-29{flex:3;min-width:0;display:block;object-fit:contain}
.fjy-ab-30{flex:2;min-width:0;display:block;object-fit:contain}
.fjy-ab-31{width:100%;aspect-ratio:16/9;margin-bottom:48px;overflow:hidden}
.fjy-ab-32{border:0;display:block}
.fjy-ab-33{margin-top:40px;margin-bottom:32px;max-width:780px;margin:40px auto 32px}
.fjy-ab-34{border-top:1px solid var(--fjy-hairline);border-bottom:1px solid var(--fjy-hairline)}
.fjy-ab-35{padding:12px 20px;font-size:13px;font-family:var(--font-jp-sans);color:var(--fg-3);background:#EFEFEF;display:flex;align-items:center;justify-content:center}
.fjy-ab-36{padding:12px 20px;font-size:14px;font-family:var(--font-jp-sans);color:var(--fg-2)}
.fjy-ab-37{margin:12px 0 0;font-size:12px;color:var(--fg-3);letter-spacing:0.04em}

/* ===== cafe ===== */
.fjy-cf-01{background:var(--fjy-paper-2);border-bottom:1px solid var(--fjy-hairline);padding:14px 48px;display:flex;align-items:center;gap:32px;font-size:13px}
.fjy-cf-02{letter-spacing:0.3em}
.fjy-cf-03{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-cf-04{color:var(--fg-1);text-decoration:none;font-family:var(--font-jp-sans)}
.fjy-cf-05{margin-left:auto;font-size:12px;color:var(--fg-3)}
.fjy-cf-06{padding:160px 48px;background:var(--fjy-paper-2)}
.fjy-cf-07{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center}
.fjy-cf-08{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.fjy-cf-09{margin-bottom:12px}
.fjy-cf-10{margin:0 0 24px;font-size:36px}
.fjy-cf-11{margin:0 0 0;max-width:480px}
.fjy-cf-12{color:var(--fjy-matcha-dark)}
.fjy-cf-13{margin-top:40px;padding-top:32px;border-top:1px solid var(--fjy-hairline);display:flex;flex-direction:column;gap:14px}
.fjy-cf-14{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.06em;color:var(--fg-1);text-decoration:none;transition:color 260ms cubic-bezier(.2,.7,.2,1)}
.fjy-cf-15{font-size:11px;color:var(--fg-4)}
.fjy-cf-16{padding:80px 48px;background:var(--fjy-paper-2)}
.fjy-cf-17{max-width:780px;margin:0 auto}
.fjy-cf-18{margin-bottom:16px}
.fjy-cf-19{border-top:1px solid var(--fjy-hairline);border-bottom:1px solid var(--fjy-hairline);text-align:left}
.fjy-cf-20{padding:14px 20px;font-family:var(--font-jp-serif);font-size:15px;font-weight:500;color:var(--fg-1);display:flex;align-items:center}
.fjy-cf-21{padding:14px 20px;font-size:13px;color:var(--fg-3);line-height:1.7;display:flex;align-items:center}
.fjy-cf-22{margin-top:24px;font-size:12px;color:var(--fg-3)}

/* ===== contact ===== */
.fjy-ct-01{background:var(--fjy-paper-2);border-bottom:1px solid var(--fjy-hairline);padding:14px 48px;display:flex;align-items:center;gap:32px;font-size:13px}
.fjy-ct-02{letter-spacing:0.3em}
.fjy-ct-03{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-ct-04{color:var(--fg-1);text-decoration:none;font-family:var(--font-jp-sans)}
.fjy-ct-05{margin-left:auto;font-size:12px;color:var(--fg-3)}
.fjy-ct-06{padding:120px 48px;max-width:640px;margin:0 auto}
.fjy-ct-07{margin-bottom:56px}
.fjy-ct-08{margin-bottom:12px}
.fjy-ct-09{margin:0 0 16px;font-size:36px}
.fjy-ct-10{margin:0;color:var(--fg-3);font-size:14px;line-height:1.8}
.fjy-ct-11{display:flex;flex-direction:column;gap:24px}
.fjy-ct-12{display:none}
.fjy-ct-13{display:block;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--fg-3);margin-bottom:8px}
.fjy-ct-14{width:100%;padding:10px 14px;border:1px solid var(--fjy-hairline);font-size:14px;color:var(--fg-1);font-family:var(--font-jp-sans);outline:none;background:#FFFFFF}
.fjy-ct-15{width:100%;padding:10px 14px;border:1px solid var(--fjy-hairline);font-size:14px;resize:vertical;color:var(--fg-1);font-family:var(--font-jp-sans);background:#FFFFFF;outline:none}
.fjy-ct-16{padding:14px 32px;background:var(--fjy-sumi);color:#FFFFFF;border:none;cursor:pointer;font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.16em;transition:background 260ms cubic-bezier(.2,.7,.2,1)}

/* ===== event-space ===== */
.fjy-ev-01{background:var(--fjy-paper-2);border-bottom:1px solid var(--fjy-hairline);padding:14px 48px;display:flex;align-items:center;gap:32px;font-size:13px}
.fjy-ev-02{letter-spacing:0.3em}
.fjy-ev-03{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-ev-04{color:var(--fg-1);text-decoration:none;font-family:var(--font-jp-sans)}
.fjy-ev-05{margin-left:auto;font-size:12px;color:var(--fg-3)}
.fjy-ev-06{padding:160px 48px 80px;background:var(--fjy-paper-2)}
.fjy-ev-07{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center;margin-bottom:80px}
.fjy-ev-08{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.fjy-ev-09{margin-bottom:12px}
.fjy-ev-10{margin:0 0 24px;font-size:36px}
.fjy-ev-11{margin:0 0 20px;max-width:480px}
.fjy-ev-12{font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.1em;color:var(--fg-1);text-decoration:none;border-bottom:1px solid var(--fg-1);padding-bottom:2px;transition:color 260ms cubic-bezier(.2,.7,.2,1),border-color 260ms cubic-bezier(.2,.7,.2,1)}
.fjy-ev-13{padding:80px 48px}
.fjy-ev-14{max-width:1080px;margin:0 auto;margin-bottom:80px}
.fjy-ev-15{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.fjy-ev-16{width:100%;aspect-ratio:4/3;object-fit:contain;display:block;background:#FFFFFF}
.fjy-ev-17{margin:0 0 16px;font-size:20px}
.fjy-ev-18{margin:0 0 24px;font-size:14px;color:var(--fg-2);line-height:1.8}
.fjy-ev-19{border-top:1px solid var(--fjy-hairline);border-bottom:1px solid var(--fjy-hairline)}
.fjy-ev-20{padding:10px 14px;font-size:12px;font-family:var(--font-jp-sans);color:var(--fg-3);background:#EFEFEF;text-align:center;display:flex;align-items:center;justify-content:center}
.fjy-ev-21{padding:10px 14px;font-size:13px;font-family:var(--font-jp-sans);color:var(--fg-2)}
.fjy-ev-22{max-width:780px;margin:0 auto}
.fjy-ev-23{margin-bottom:16px}
.fjy-ev-24{display:grid;grid-template-columns:1fr 1fr;background:#EFEFEF;border-bottom:1px solid var(--fjy-hairline)}
.fjy-ev-25{padding:10px 20px;font-size:12px;letter-spacing:0.1em;color:var(--fg-3);font-family:var(--font-jp-sans)}
.fjy-ev-26{padding:14px 20px;font-size:14px;font-family:var(--font-jp-sans);color:var(--fg-2)}
.fjy-ev-27{padding:14px 20px;font-size:14px;font-family:var(--font-jp-sans);color:var(--fg-1)}
.fjy-ev-28{margin:12px 0 0;font-size:12px;color:var(--fg-3);letter-spacing:0.04em}
.fjy-ev-29{padding:80px 48px;background:var(--fjy-paper-2)}
.fjy-ev-30{max-width:640px;margin:0 auto}
.fjy-ev-31{text-align:center;margin-bottom:48px}
.fjy-ev-32{margin:0 0 16px}
.fjy-ev-33{margin:0;font-size:14px;color:var(--fg-3)}
.fjy-ev-34{display:flex;flex-direction:column;gap:24px}
.fjy-ev-35{display:none}
.fjy-ev-36{display:block;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--fg-3);margin-bottom:8px}
.fjy-ev-37{width:100%;padding:10px 14px;border:1px solid var(--fjy-hairline);font-size:14px;color:var(--fg-1);font-family:var(--font-jp-sans);outline:none;background:#FFFFFF}
.fjy-ev-38{width:100%;max-width:100%;min-width:0;box-sizing:border-box;-webkit-appearance:none;appearance:none;padding:10px 14px;border:1px solid var(--fjy-hairline);font-size:14px;color:var(--fg-1);font-family:var(--font-jp-sans);outline:none;background:#FFFFFF}
.fjy-ev-39{width:100%;padding:10px 14px;border:1px solid var(--fjy-hairline);font-size:14px;color:var(--fg-1);font-family:var(--font-jp-sans);background:#FFFFFF;outline:none}
.fjy-ev-40{width:100%;padding:10px 14px;border:1px solid var(--fjy-hairline);font-size:14px;resize:vertical;color:var(--fg-1);font-family:var(--font-jp-sans);background:#FFFFFF;outline:none}
.fjy-ev-41{padding:14px 32px;background:var(--fjy-sumi);color:#FFFFFF;border:none;cursor:pointer;font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.16em;transition:background 260ms cubic-bezier(.2,.7,.2,1)}

/* ===== fujie ===== */
.fjy-fj-01{background:var(--fjy-paper-2);border-bottom:1px solid var(--fjy-hairline);padding:14px 48px;display:flex;align-items:center;gap:32px;font-size:13px}
.fjy-fj-02{letter-spacing:0.3em}
.fjy-fj-03{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-fj-04{color:var(--fg-1);text-decoration:none;font-family:var(--font-jp-sans)}
.fjy-fj-05{margin-left:auto;font-size:12px;color:var(--fg-3)}
.fjy-fj-06{padding:160px 48px;background:var(--fjy-paper-2)}
.fjy-fj-07{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start}
.fjy-fj-08{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.fjy-fj-09{margin-bottom:12px}
.fjy-fj-10{margin:0 0 8px;font-size:36px}
.fjy-fj-11{margin:0 0 32px;max-width:480px}
.fjy-fj-12{margin:0 0 16px;max-width:480px}
.fjy-fj-13{font-family:var(--font-jp-serif);font-size:15px;color:var(--fg-2);letter-spacing:0.06em;margin-bottom:16px;margin-top:32px}
.fjy-fj-14{font-size:13px;color:var(--fjy-matcha-dark);letter-spacing:0.14em}
.fjy-fj-15{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:auto 1fr;column-gap:20px;row-gap:10px;font-family:var(--font-jp-sans);font-size:13px;color:var(--fg-2)}
.fjy-fj-16{color:var(--fjy-cha)}
.fjy-fj-17{margin-top:40px;padding-top:32px;border-top:1px solid var(--fjy-hairline);display:flex;flex-direction:column;gap:14px}
.fjy-fj-18{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.06em;color:var(--fg-1);text-decoration:none;transition:color 260ms cubic-bezier(.2,.7,.2,1)}
.fjy-fj-19{font-size:11px;color:var(--fg-4)}

/* ===== index ===== */
.fjy-ix-01{padding:100px 48px}
.fjy-ix-02{max-width:780px;margin:0 auto}
.fjy-ix-03{text-align:center;margin-bottom:48px}
.fjy-ix-04{margin-bottom:16px}
.fjy-ix-05{margin:0}
.fjy-ix-06{list-style:none;margin:0;padding:0}
.fjy-ix-07{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-ix-08{margin:0;font-size:15px;font-weight:400;color:var(--fg-1)}
.fjy-ix-09{color:var(--fg-3);text-align:right}
.fjy-ix-10{display:contents;text-decoration:none;color:inherit}
.fjy-ix-11{border-top:1px solid var(--fjy-hairline);display:flex;justify-content:flex-end;padding-top:24px}
.fjy-ix-12{font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.1em;color:var(--fg-1);text-decoration:none;border-bottom:1px solid var(--fg-1);padding-bottom:2px}
.fjy-ix-13{background:#FFFFFF}
.fjy-ix-14{padding:10px 32px;position:relative;display:flex;justify-content:center;align-items:center;font-family:var(--font-en-sans);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--fg-3)}
.fjy-ix-15{position:absolute;left:32px;color:var(--fg-3);text-decoration:none;font-size:11px;letter-spacing:0.1em}
.fjy-ix-16{position:relative;width:100%;height:88vh;overflow:hidden}
.fjy-ix-17{position:absolute;inset:0;background:rgba(28,24,20,0.28)}
.fjy-ix-18{position:absolute;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;justify-content:flex-end;height:100%;padding:0 64px 80px;max-width:960px}
.fjy-ix-19{margin-bottom:20px;color:rgba(255,255,255,0.75);letter-spacing:0.3em}
.fjy-ix-20{margin:0;font-size:clamp(1.1rem,2.2vw,2rem);line-height:1.7;color:#FFFFFF}
.fjy-ix-21{display:flex;gap:8px;margin-top:24px}
.fjy-ix-22{padding:120px 48px;display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center;max-width:1280px;margin:0 auto}
.fjy-ix-23{margin:0 0 24px}
.fjy-ix-24{margin:0 0 16px;max-width:460px}
.fjy-ix-25{margin:0 0 20px;max-width:460px}
.fjy-ix-26{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.fjy-ix-27{padding:120px 48px;background:var(--fjy-paper-2)}
.fjy-ix-28{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.fjy-ix-29{margin:0 0 16px;max-width:440px}
.fjy-ix-30{margin:0 0 32px;max-width:440px}
.fjy-ix-31{padding:120px 48px}
.fjy-ix-32{padding:100px 48px;background:var(--fjy-paper-2)}
.fjy-ix-33{max-width:640px;margin:0 auto;text-align:center}
.fjy-ix-34{margin:0 0 20px}
.fjy-ix-35{margin:0 0 32px}

/* ===== news ===== */
.fjy-nw-01{background:var(--fjy-paper-2);border-bottom:1px solid var(--fjy-hairline);padding:14px 48px;display:flex;align-items:center;gap:32px;font-size:13px}
.fjy-nw-02{letter-spacing:0.3em}
.fjy-nw-03{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-nw-04{color:var(--fg-1);text-decoration:none;font-family:var(--font-jp-sans)}
.fjy-nw-05{margin-left:auto;font-size:12px;color:var(--fg-3)}
.fjy-nw-06{padding:120px 48px}
.fjy-nw-07{max-width:780px;margin:0 auto}
.fjy-nw-08{margin-bottom:56px}
.fjy-nw-09{margin-bottom:12px}
.fjy-nw-10{margin:0;font-size:32px}
.fjy-nw-11{list-style:none;margin:0;padding:0}
.fjy-nw-12{margin:0;font-size:17px;font-weight:400}
.fjy-nw-13{color:var(--fg-3);text-align:right}
.fjy-nw-14{display:contents;text-decoration:none;color:inherit}
.fjy-nw-15{border-top:1px solid var(--fjy-hairline)}

/* ===== shiroshita_shachu ===== */
.fjy-ss-01{background:var(--fjy-paper-2);border-bottom:1px solid var(--fjy-hairline);padding:14px 48px;display:flex;align-items:center;gap:32px;font-size:13px}
.fjy-ss-02{letter-spacing:0.3em}
.fjy-ss-03{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-ss-04{color:var(--fg-1);text-decoration:none;font-family:var(--font-jp-sans)}
.fjy-ss-05{margin-left:auto;font-size:12px;color:var(--fg-3)}
.fjy-ss-06{padding:120px 48px}
.fjy-ss-07{max-width:1080px;margin:0 auto}
.fjy-ss-08{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}
.fjy-ss-09{margin-bottom:12px}
.fjy-ss-10{margin:0 0 24px;font-size:36px}
.fjy-ss-11{margin:0 0 20px;max-width:460px}
.fjy-ss-12{margin:0;max-width:460px}
.fjy-ss-13{margin:20px 0 0;max-width:460px}
.fjy-ss-14{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:30% center;display:block}
.fjy-ss-15{padding:120px 0;background:var(--fjy-paper-2)}
.fjy-ss-16{max-width:1080px;margin:0 auto;padding:0 48px}
.fjy-ss-17{margin-bottom:80px;text-align:center}
.fjy-ss-18{margin-bottom:12px;display:block;text-align:left}
.fjy-ss-19{margin:0 0 16px;font-size:36px}
.fjy-ss-20{margin:0 auto;font-size:15px;line-height:1.9;color:var(--fg-2);max-width:560px}
.fjy-ss-21{margin-bottom:20px}
.fjy-ss-22{border-top:1px solid var(--fjy-hairline);border-bottom:1px solid var(--fjy-hairline)}
.fjy-ss-23{padding:16px 20px;font-family:var(--font-jp-serif);font-size:15px;font-weight:500;color:var(--fg-1);line-height:1.6}
.fjy-ss-24{padding:16px 20px;font-size:13px;color:var(--fg-3);line-height:1.7}
.fjy-ss-25{margin-top:48px;padding-top:40px}
.fjy-ss-26{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:auto 1fr;column-gap:32px;row-gap:12px;font-family:var(--font-jp-sans);font-size:13px;color:var(--fg-2)}
.fjy-ss-27{color:var(--fjy-cha)}
.fjy-ss-28{margin-top:32px}
.fjy-ss-29{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.06em;color:var(--fg-1);text-decoration:none;transition:color 260ms cubic-bezier(.2,.7,.2,1)}
.fjy-ss-30{font-size:11px;color:var(--fg-4)}

/* ===== thanks ===== */
.fjy-th-01{background:var(--fjy-paper-2);border-bottom:1px solid var(--fjy-hairline);padding:14px 48px;display:flex;align-items:center;gap:32px;font-size:13px}
.fjy-th-02{letter-spacing:0.3em}
.fjy-th-03{font-size:12px;color:var(--fg-3);letter-spacing:0.06em}
.fjy-th-04{color:var(--fg-1);text-decoration:none;font-family:var(--font-jp-sans)}
.fjy-th-05{margin-left:auto;font-size:12px;color:var(--fg-3)}
.fjy-th-06{padding:160px 48px;max-width:640px;margin:0 auto;text-align:center}
.fjy-th-07{margin:0 0 20px;font-size:24px}
.fjy-th-08{margin:0 0 48px;color:var(--fg-3);font-size:14px;line-height:1.8}
.fjy-th-09{font-family:var(--font-en-serif);font-size:15px;letter-spacing:0.1em;color:var(--fg-1);text-decoration:none;border-bottom:1px solid var(--fg-1);padding-bottom:2px;transition:color 260ms cubic-bezier(.2,.7,.2,1),border-color 260ms cubic-bezier(.2,.7,.2,1)}


/* ==== auto-extracted (batch 2) ==== */
/* ===== common (nav/footer) ===== */
.fjy-cm-01{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.96);border-bottom:1px solid var(--fjy-hairline);padding:18px 40px;display:flex;align-items:center;gap:24px}
.fjy-cm-02{display:flex;align-items:center;gap:14px;color:var(--fg-1);text-decoration:none;flex-shrink:0}
.fjy-cm-03{display:block;height:34px;width:auto}
.fjy-cm-04{font-family:var(--font-jp-serif);font-weight:500;font-size:14px;letter-spacing:0.12em;line-height:1}
.fjy-cm-05{margin-left:auto;flex-shrink:0;width:32px;height:32px;background:none;border:none;padding:0;cursor:pointer;display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.fjy-cm-06{list-style:none;display:flex;gap:22px;margin:0;padding:0;align-items:center;margin-left:auto}
.fjy-cm-07{position:relative}
.fjy-cm-08{position:absolute;top:calc(100% + 14px);left:-16px;background:#FFFFFF;border:1px solid var(--fjy-hairline);box-shadow:0 12px 32px rgba(28,24,20,.09),0 2px 6px rgba(28,24,20,.04);padding:12px 0;min-width:200px;animation:fadeDown 200ms cubic-bezier(.2,.7,.2,1)}
.fjy-cm-09{display:block;padding:10px 22px;font-family:var(--font-jp-sans);font-size:13px;color:var(--fg-1);text-decoration:none;letter-spacing:0.06em;transition:all 200ms cubic-bezier(.2,.7,.2,1)}
.fjy-cm-10{display:flex;gap:10px;align-items:center;flex-shrink:0}
.fjy-cm-11{font-family:var(--font-jp-sans);font-size:12px;letter-spacing:0.14em;color:var(--fjy-enji);text-decoration:none;padding:9px 16px;background:rgba(160,20,20,0.06);transition:all 260ms cubic-bezier(.2,.7,.2,1)}
.fjy-cm-12{position:absolute;top:100%;left:0;right:0;background:#FFFFFF;border-bottom:1px solid var(--fjy-hairline);box-shadow:0 12px 32px rgba(28,24,20,.09),0 2px 6px rgba(28,24,20,.04);padding:8px 24px 24px;display:flex;flex-direction:column;animation:fjyMobileDown 220ms cubic-bezier(.2,.7,.2,1)}
.fjy-cm-13{font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.1em;color:var(--fjy-enji);text-decoration:none;padding:16px 0 0}
.fjy-cm-14{background:#FFFFFF}
.fjy-cm-15{padding:10px 32px;position:relative;display:flex;justify-content:center;align-items:center;font-family:var(--font-en-sans);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--fg-3)}
.fjy-cm-16{position:absolute;left:32px;color:var(--fg-3);text-decoration:none;font-size:11px;letter-spacing:0.1em}


/* ==== auto-extracted (batch 3) ==== */
/* ===== news-detail_001 ===== */
.fjy-nd1-01{padding-bottom:120px}
.fjy-nd1-02{padding:16px 48px;border-bottom:1px solid var(--fjy-hairline);background:var(--fjy-paper-2);display:flex;align-items:center;gap:10px;font-family:var(--font-en-sans);font-size:12px;letter-spacing:0.14em;color:var(--fg-3)}
.fjy-nd1-03{color:var(--fg-3);text-decoration:none;transition:color 200ms}
.fjy-nd1-04{font-size:10px}
.fjy-nd1-05{color:var(--fg-4)}
.fjy-nd1-06{display:flex;align-items:center;gap:16px;margin-bottom:28px}
.fjy-nd1-07{font-family:var(--font-en-sans);font-size:13px;letter-spacing:0.08em;color:var(--fg-3)}
.fjy-nd1-08{font-family:var(--font-jp-sans);font-size:12px;color:var(--fg-4);letter-spacing:0.08em}
.fjy-nd1-09{margin:0 0 16px;font-family:var(--font-jp-serif);font-weight:500;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.6;letter-spacing:0.08em;color:var(--fg-1)}
.fjy-nd1-10{height:1px;background:var(--fjy-hairline);margin-bottom:40px}
.fjy-nd1-11{margin:0;font-family:var(--font-jp-serif);font-size:var(--fs-18);line-height:2;letter-spacing:0.08em;color:var(--fg-1)}
.fjy-nd1-12{margin:0 0 28px;font-family:var(--font-jp-sans);font-size:var(--fs-16);line-height:2;letter-spacing:0.05em;color:var(--fg-2)}
.fjy-nd1-13{margin:0 0 24px;font-family:var(--font-jp-serif);font-weight:500;font-size:var(--fs-20);letter-spacing:0.06em;color:var(--fg-1);padding-bottom:12px;border-bottom:1px solid var(--fjy-hairline)}
.fjy-nd1-14{margin:0 0 28px}
.fjy-nd1-15{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.fjy-nd1-16{margin-top:10px;font-family:var(--font-en-sans);font-size:12px;letter-spacing:0.1em;color:var(--fg-3)}
.fjy-nd1-17{margin:0 0 24px;font-family:var(--font-jp-sans);font-size:var(--fs-16);line-height:2;letter-spacing:0.05em;color:var(--fg-2)}
.fjy-nd1-18{padding-top:0}
.fjy-nd1-19{margin-bottom:20px}
.fjy-nd1-20{margin:0}
.fjy-nd1-21{width:100%;display:block;border:1px solid var(--fjy-hairline);box-shadow:0 4px 12px rgba(28,24,20,0.07)}
.fjy-nd1-22{margin-top:12px;font-family:var(--font-en-sans);font-size:12px;letter-spacing:0.1em;color:var(--fg-3)}
.fjy-nd1-23{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.1em;color:var(--fg-2);text-decoration:none;transition:color 260ms cubic-bezier(.2,.7,.2,1)}

/* ===== news-detail_002 ===== */
.fjy-nd2-01{padding-bottom:120px}
.fjy-nd2-02{padding:16px 48px;border-bottom:1px solid var(--fjy-hairline);background:var(--fjy-paper-2);display:flex;align-items:center;gap:10px;font-family:var(--font-en-sans);font-size:12px;letter-spacing:0.14em;color:var(--fg-3)}
.fjy-nd2-03{color:var(--fg-3);text-decoration:none;transition:color 200ms}
.fjy-nd2-04{font-size:10px}
.fjy-nd2-05{color:var(--fg-4)}
.fjy-nd2-06{display:flex;align-items:center;gap:16px;margin-bottom:28px}
.fjy-nd2-07{font-family:var(--font-en-sans);font-size:13px;letter-spacing:0.08em;color:var(--fg-3)}
.fjy-nd2-08{font-family:var(--font-jp-sans);font-size:12px;color:var(--fg-4);letter-spacing:0.08em}
.fjy-nd2-09{margin:0 0 16px;font-family:var(--font-jp-serif);font-weight:500;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.6;letter-spacing:0.08em;color:var(--fg-1)}
.fjy-nd2-10{height:1px;background:var(--fjy-hairline);margin-bottom:40px}
.fjy-nd2-11{margin:0;font-family:var(--font-jp-serif);font-size:var(--fs-18);line-height:2;letter-spacing:0.08em;color:var(--fg-1)}
.fjy-nd2-12{margin:0 0 28px;font-family:var(--font-jp-sans);font-size:var(--fs-16);line-height:2;letter-spacing:0.05em;color:var(--fg-2)}
.fjy-nd2-13{margin:0 0 24px;font-family:var(--font-jp-serif);font-weight:500;font-size:var(--fs-20);letter-spacing:0.06em;color:var(--fg-1);padding-bottom:12px;border-bottom:1px solid var(--fjy-hairline)}
.fjy-nd2-14{margin:0 0 28px}
.fjy-nd2-15{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.fjy-nd2-16{margin-top:10px;font-family:var(--font-en-sans);font-size:12px;letter-spacing:0.1em;color:var(--fg-3)}
.fjy-nd2-17{margin:0 0 24px;font-family:var(--font-jp-sans);font-size:var(--fs-16);line-height:2;letter-spacing:0.05em;color:var(--fg-2)}
.fjy-nd2-18{padding-top:0}
.fjy-nd2-19{margin-bottom:20px}
.fjy-nd2-20{margin:0}
.fjy-nd2-21{width:100%;display:block;border:1px solid var(--fjy-hairline);box-shadow:0 4px 12px rgba(28,24,20,0.07)}
.fjy-nd2-22{margin-top:12px;font-family:var(--font-en-sans);font-size:12px;letter-spacing:0.1em;color:var(--fg-3)}
.fjy-nd2-23{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-jp-sans);font-size:13px;letter-spacing:0.1em;color:var(--fg-2);text-decoration:none;transition:color 260ms cubic-bezier(.2,.7,.2,1)}
