:root {
      --main: #9B4A2F;
      --cream: #F7EFE0;
      --green: #7B9B5A;
      --gold: #C8943C;
      --ink: #2F211B;
      --muted: #75675F;
      --paper: #FBF6EB;
      --white: #FFFFFF;
      --line: rgba(47, 33, 27, .16);
      --shadow: 0 28px 70px rgba(47, 33, 27, .18);
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      color: var(--ink);
      background: var(--paper);
      font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
      line-height: 1.85;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
      background-image:
        radial-gradient(rgba(155,74,47,.055) 1.2px, transparent 1.2px),
        url("src/texture-1.jpg");
      background-size: 28px 28px, 520px auto;
      background-blend-mode: multiply;
    }
    img { max-width: 100%; display: block; }
    a { color: inherit; text-decoration: none; }
    h1, h2, h3, .lead, .btn, summary { word-break: auto-phrase; text-wrap: balance; }
    .mincho { font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif; }
    .mono { font-family: Georgia, "Times New Roman", serif; }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 30;
      background: rgba(247, 239, 224, .9);
      border-bottom: 1px solid var(--line);
      backdrop-filter: blur(16px);
    }
    .nav {
      width: min(1180px, calc(100% - 40px));
      margin: 0 auto;
      min-height: 74px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 22px;
    }
    .brand { display: flex; align-items: center; gap: 12px; font-weight: 800; }
    .brand img { width: 42px; height: 42px; object-fit: contain; }
    .nav-links { display: flex; align-items: center; gap: 22px; font-size: 14px; color: var(--muted); }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 48px;
      padding: 12px 22px;
      border-radius: 999px;
      border: 1px solid currentColor;
      font-weight: 800;
      transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
    }
    .btn:hover { transform: translateY(-2px); }
    .btn-primary { background: var(--main); color: var(--white); box-shadow: 0 16px 30px -18px var(--main); }
    .btn-secondary { background: rgba(255,255,255,.68); color: var(--main); }

    .hero {
      width: 100%;
      min-height: 790px;
      position: relative;
      background: var(--cream);
      overflow: hidden;
      isolation: isolate;
    }
    .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background: url("src/texture-1.jpg") center/480px;
      opacity: .32;
      mix-blend-mode: multiply;
      z-index: -2;
    }
    .hero::after {
      content: "";
      position: absolute;
      right: -14vw;
      top: -16vw;
      width: 52vw;
      height: 52vw;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(123,155,90,.28), transparent 66%);
      z-index: -1;
    }
    .hero-inner {
      width: min(1360px, calc(100% - 44px));
      margin: 0 auto;
      min-height: 790px;
      display: grid;
      grid-template-columns: 45% 55%;
      align-items: center;
      gap: 46px;
      position: relative;
      z-index: 1;
    }
    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 14px;
      color: var(--main);
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .eyebrow::before { content: ""; width: 34px; height: 1px; background: currentColor; }
    h1 {
      margin: 0 0 24px;
      font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
      font-size: clamp(3rem, 5vw, 5rem);
      line-height: 1.12;
      font-weight: 700;
    }
    .lead { max-width: 760px; margin: 0; color: var(--muted); font-size: 17px; }
    .hero .lead { max-width: 520px; font-size: 18px; }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
    .hero-note { margin-top: 22px; color: var(--muted); font-size: 14px; }
    .hero-visual { position: relative; min-height: 570px; display: grid; place-items: center; }
    .hero-photo {
      width: min(100%, 730px);
      aspect-ratio: 4 / 3;
      border-radius: 10px;
      object-fit: cover;
      box-shadow: var(--shadow);
    }
    .label-card {
      position: absolute;
      right: 2%;
      bottom: 7%;
      width: min(310px, 48%);
      background: rgba(255,255,255,.88);
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 20px 22px;
      backdrop-filter: blur(10px);
    }
    .label-card b { display: block; margin-bottom: 6px; }
    .decor { position: absolute; z-index: 0; pointer-events: none; mix-blend-mode: multiply; }
    .decor.d1 { width: 180px; left: 3%; top: 15%; opacity: .36; }
    .decor.d2 { width: 220px; right: 6%; top: 10%; opacity: .28; }
    .lens {
      position: absolute;
      width: 210px;
      height: 210px;
      border-radius: 50%;
      border: 3px solid rgba(255,255,255,.9);
      box-shadow: 0 18px 42px rgba(47,33,27,.28);
      background-image: url("src/fv.jpg");
      background-repeat: no-repeat;
      background-size: 1584px 1056px;
      display: none;
      pointer-events: none;
    }
    .j .hero-visual:hover .lens { display: block; }

    .section { position: relative; padding: 112px 0; overflow: hidden; }
    .wrap { width: min(1120px, calc(100% - 44px)); margin: 0 auto; position: relative; z-index: 1; }
    .wide-wrap { width: min(1240px, calc(100% - 44px)); margin: 0 auto; position: relative; z-index: 1; }
    .title {
      margin: 0 0 22px;
      font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
      font-size: clamp(2rem, 4vw, 3.55rem);
      line-height: 1.28;
      font-weight: 700;
    }

    .manifest { background: var(--white); }
    .manifest .wrap { text-align: center; max-width: 980px; }
    .manifest-bar {
      display: flex;
      justify-content: space-between;
      gap: 20px;
      margin-bottom: 58px;
      padding-bottom: 14px;
      border-bottom: 1px solid var(--line);
      color: var(--muted);
      font-size: 12px;
      letter-spacing: .08em;
    }
    .manifesto {
      margin: 0;
      font-family: Georgia, "Yu Mincho", "Hiragino Mincho ProN", serif;
      font-size: clamp(2rem, 4.4vw, 4.3rem);
      line-height: 1.52;
      font-weight: 700;
    }
    .ln { display: block; overflow: hidden; }
    .ln > span { display: block; }
    .uline { display: block; width: 0; height: 5px; background: var(--main); border-radius: 8px; margin: 22px auto 0; }
    .manifest .lead { margin: 38px auto 0; max-width: 600px; }

    .reasons { background: var(--paper); }
    .reasons-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 66px; align-items: start; }
    .sticky-head { position: sticky; top: 110px; }
    .sticky-head .mark { width: 66px; height: 4px; background: var(--main); border-radius: 5px; margin-top: 28px; }
    .reason-list { border-top: 1px solid var(--ink); }
    .reason {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 30px;
      align-items: start;
      padding: 42px 4px;
      border-bottom: 1px solid var(--line);
    }
    .reason-num {
      font-family: Georgia, serif;
      font-size: clamp(3.2rem, 6vw, 5.8rem);
      line-height: .85;
      color: transparent;
      -webkit-text-stroke: 1.4px var(--main);
    }
    .reason-thumb {
      width: 104px;
      height: 78px;
      border-radius: 8px;
      overflow: hidden;
      float: right;
      margin: 0 0 12px 20px;
    }
    .reason-thumb img { width: 100%; height: 100%; object-fit: cover; }
    .reason h3 { margin: 0 0 10px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.25rem, 2vw, 1.7rem); }
    .reason p { margin: 0; color: var(--muted); }

    .services { background: var(--cream); }
    .zig { display: grid; gap: 88px; margin-top: 56px; }
    .service-block { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; }
    .service-block:nth-child(even) { grid-template-columns: .9fr 1.1fr; }
    .service-block:nth-child(even) .service-img { order: 2; }
    .service-img { position: relative; aspect-ratio: 16 / 11; border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); }
    .service-img img { width: 100%; height: 100%; object-fit: cover; }
    .service-card {
      position: relative;
      z-index: 2;
      background: rgba(255,255,255,.88);
      border: 1px solid var(--line);
      border-radius: 10px;
      padding: 34px 32px;
      margin-left: -70px;
      box-shadow: 0 24px 48px -30px rgba(47,33,27,.45);
    }
    .service-block:nth-child(even) .service-card { order: 1; margin-left: 0; margin-right: -70px; }
    .ghost-num {
      position: absolute;
      font-family: Georgia, serif;
      font-size: clamp(5rem, 12vw, 10rem);
      color: transparent;
      -webkit-text-stroke: 1.5px rgba(155,74,47,.48);
      line-height: .8;
      top: -62px;
      z-index: 1;
    }
    .service-block:nth-child(odd) .ghost-num { right: 6%; }
    .service-block:nth-child(even) .ghost-num { left: 6%; }
    .service-card h3 { margin: 0 0 12px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.35rem, 2.4vw, 1.85rem); }
    .tag { display: inline-block; margin-top: 16px; color: var(--main); border: 1px solid var(--main); border-radius: 999px; padding: 4px 12px; font-size: 12px; font-weight: 800; }

    .producer-band {
      min-height: 560px;
      background: url("src/section-bg-2.jpg") center/cover fixed;
      color: var(--white);
      display: grid;
      align-items: end;
    }
    .producer-band::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(47,33,27,.82), rgba(47,33,27,.2)); }
    .producer-band .wrap { padding-bottom: 76px; }
    .producer-band .lead { color: rgba(255,255,255,.86); }

    .proof { background: var(--white); }
    .proof-matrix {
      margin-top: 40px;
      display: grid;
      grid-template-columns: 1.1fr .9fr;
      gap: 38px;
      align-items: stretch;
    }
    .proof-big {
      border: 1px solid var(--line);
      border-radius: 10px;
      padding: 36px;
      background: var(--paper);
      display: grid;
      align-content: space-between;
      min-height: 360px;
    }
    .proof-big .big-number { font-family: Georgia, serif; font-size: clamp(4.5rem, 12vw, 8.5rem); line-height: .9; color: var(--main); opacity: .22; }
    .badge-stack { display: grid; gap: 16px; }
    .badge {
      display: grid;
      grid-template-columns: 92px 1fr;
      gap: 18px;
      align-items: center;
      background: rgba(255,255,255,.78);
      border: 1px solid var(--line);
      border-radius: 10px;
      padding: 16px;
    }
    .badge img { width: 86px; height: 86px; object-fit: contain; }

    .voices { background: var(--paper); }
    .voice-top { display: grid; grid-template-columns: .82fr 1.18fr; gap: 50px; align-items: stretch; }
    .voice-hero { position: relative; min-height: 430px; border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); }
    .voice-hero img { width: 100%; height: 100%; object-fit: cover; }
    .voice-hero::before { content: ""; position: absolute; left: -12px; top: -12px; width: 96px; height: 96px; border-left: 3px solid var(--main); border-top: 3px solid var(--main); }
    .voice-copy { display: flex; flex-direction: column; justify-content: center; }
    blockquote { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1.5rem, 3vw, 2.45rem); line-height: 1.55; font-weight: 700; }
    .voice-index { list-style: none; margin: 56px 0 0; padding: 0; border-top: 1px solid var(--ink); }
    .voice-index li {
      display: grid;
      grid-template-columns: 70px 1fr 150px 86px;
      gap: 18px;
      align-items: baseline;
      padding: 22px 6px;
      border-bottom: 1px solid var(--line);
      transition: background .25s ease, padding .25s ease;
    }
    .voice-index li:hover { background: rgba(155,74,47,.055); padding-left: 16px; }
    .voice-index .no { color: var(--main); font-weight: 900; }
    .voice-index .q { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(1rem, 1.6vw, 1.3rem); }
    .voice-index .name, .voice-index .type { color: var(--muted); font-size: 13px; }

    .price { background: var(--cream); }
    .ship-table {
      margin-top: 42px;
      background: rgba(255,255,255,.72);
      border: 1px solid var(--line);
      border-radius: 12px;
      overflow: hidden;
      box-shadow: 0 24px 50px -34px rgba(47,33,27,.42);
    }
    .ship-row { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; border-bottom: 1px solid var(--line); }
    .ship-row:last-child { border-bottom: 0; }
    .ship-row > div { padding: 20px 22px; text-align: center; }
    .ship-row > div:first-child { text-align: left; font-weight: 800; }
    .ship-row.head > div { padding-top: 28px; padding-bottom: 28px; font-family: Georgia, "Yu Mincho", serif; font-size: 1.2rem; }
    .ship-row .recommended { background: rgba(123,155,90,.16); }
    .check { display: inline-flex; width: 24px; height: 24px; align-items: center; justify-content: center; border-radius: 50%; background: var(--green); color: var(--white); font-size: 13px; }

    .steps { background: var(--white); }
    .flow { position: relative; margin-top: 52px; }
    .spine { position: absolute; left: 39px; top: 10px; bottom: 60px; width: 2px; background: var(--line); overflow: hidden; }
    .spine i { position: absolute; inset: 0; background: linear-gradient(var(--green), var(--main)); transform: scaleY(0); transform-origin: top; }
    .step { position: relative; display: grid; grid-template-columns: 80px 1fr; gap: 30px; padding-bottom: 42px; }
    .node {
      width: 80px;
      height: 80px;
      border-radius: 50%;
      background: var(--white);
      border: 2px solid var(--green);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: Georgia, serif;
      font-weight: 900;
      font-size: 25px;
      color: var(--green);
      z-index: 2;
      box-shadow: 0 10px 24px -12px rgba(123,155,90,.5);
    }
    .step-card { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 24px 28px; }
    .step-card h3 { margin: 0 0 8px; font-family: Georgia, "Yu Mincho", serif; font-size: 1.35rem; }

    .faq { background: var(--paper); }
    details { border-top: 1px solid var(--line); padding: 20px 0; }
    details:last-child { border-bottom: 1px solid var(--line); }
    summary { cursor: pointer; font-weight: 900; list-style: none; }
    .company { background: var(--white); }
    .company-grid { display: grid; grid-template-columns: .88fr 1.12fr; gap: 46px; align-items: start; }
    .company img { border-radius: 10px; box-shadow: var(--shadow); }
    .info { border-top: 1px solid var(--line); }
    .info p { display: grid; grid-template-columns: 150px 1fr; gap: 18px; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--line); }

    .final-cta {
      min-height: 88vh;
      display: grid;
      place-items: center;
      color: var(--white);
      background: #140f0b;
      text-align: center;
      isolation: isolate;
    }
    .final-cta::before { content: ""; position: absolute; inset: 0; background: url("src/gift-scene-1.jpg") center/cover; opacity: .5; z-index: -3; }
    .final-cta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,15,11,.78), rgba(20,15,11,.62), rgba(20,15,11,.88)); z-index: -2; }
    .glow { position: absolute; width: 48vw; height: 48vw; border-radius: 50%; filter: blur(90px); mix-blend-mode: screen; opacity: .42; background: radial-gradient(circle, var(--main), transparent 64%); left: 6%; top: 10%; z-index: -1; }
    .glow.g2 { background: radial-gradient(circle, var(--gold), transparent 64%); left: auto; top: auto; right: 5%; bottom: 6%; }
    .final-cta .lead { color: rgba(255,255,255,.86); margin: 0 auto; }
    .final-cta .btn-secondary { background: var(--white); color: var(--main); }
    .site-footer { background: var(--ink); color: var(--cream); padding: 56px 0; }
    .footer-grid { width: min(1120px, calc(100% - 44px)); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
    .footer-links { display: flex; flex-wrap: wrap; gap: 16px; color: rgba(247,239,224,.76); font-size: 14px; }

    @keyframes floatSoft { 0%,100% { transform: translateY(0); } 50% { transform: translateY(14px); } }
    @keyframes shimmer { 0% { transform: translateX(-130%); } 100% { transform: translateX(130%); } }
    .decor.d1 { animation: floatSoft 7s ease-in-out infinite; }
    .decor.d2 { animation: floatSoft 9s ease-in-out infinite reverse; }
    .reveal, .line-reveal, .auto-card, .auto-row { will-change: transform, opacity; }
    @media (prefers-reduced-motion: reduce) {
      .decor, .glow { animation: none !important; }
    }
    @media (max-width: 768px) {
      .nav { min-height: 66px; }
      .nav-links { display: none; }
      .hero, .hero-inner { min-height: auto; }
      .hero-inner { grid-template-columns: 1fr; padding: 50px 0 64px; }
      .hero-visual { min-height: auto; }
      .label-card { position: relative; right: auto; bottom: auto; width: 100%; margin-top: -24px; }
      .section { padding: 74px 0; }
      .reasons-grid, .service-block, .service-block:nth-child(even), .proof-matrix, .voice-top, .company-grid, .footer-grid { grid-template-columns: 1fr; }
      .sticky-head { position: static; }
      .service-img, .service-block:nth-child(even) .service-img { order: 0; }
      .service-card, .service-block:nth-child(even) .service-card { order: 0; margin: -42px 16px 0; }
      .voice-index li { grid-template-columns: 48px 1fr; }
      .voice-index .name, .voice-index .type { grid-column: 2; }
      .ship-table { overflow-x: auto; }
      .ship-row { grid-template-columns: 140px 130px 130px 130px; min-width: 530px; }
      .step { grid-template-columns: 58px 1fr; gap: 18px; }
      .node { width: 58px; height: 58px; font-size: 19px; }
      .spine { left: 28px; }
      .info p { grid-template-columns: 1fr; gap: 4px; }
      .hero-actions { display: grid; }
      .btn { width: 100%; }
    }
  
/* ZOROYA fixed pages / WordPress migration support */
.zoroya-sub-nav{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.zoroya-sub-nav a,.wp-page-links a{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line,rgba(0,0,0,.14));border-radius:999px;padding:.55em 1em;font-weight:700;font-size:13px;background:rgba(255,255,255,.72)}
.zoroya-sub-nav a[aria-current="page"]{background:var(--ink,#222);color:#fff;border-color:var(--ink,#222)}
.wp-page-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.page-main{background:var(--bg,#f7f3ed);color:var(--body,#333);min-height:60vh}
.page-hero{padding:clamp(76px,10vw,132px) 0 clamp(44px,7vw,82px);border-bottom:1px solid var(--line,rgba(0,0,0,.12));background:linear-gradient(135deg,rgba(255,255,255,.75),rgba(255,255,255,.28))}
.page-hero .section-inner,.page-section .section-inner,.zoroya-final .section-inner{width:min(1120px,calc(100% - 44px));margin:0 auto}
.page-hero h1{font-size:clamp(32px,5vw,56px);margin:.18em 0 .28em}
.page-hero p{max-width:42em;color:var(--muted,var(--body,#555));font-size:clamp(15px,1.8vw,18px)}
.page-section{padding:clamp(58px,8vw,100px) 0;border-bottom:1px solid var(--line-soft,var(--line,rgba(0,0,0,.08)))}
.page-section h2{font-size:clamp(25px,3.4vw,40px);margin-bottom:24px}
.zoroya-sub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.zoroya-sub-card{background:var(--paper,#fff);border:1px solid var(--line,rgba(0,0,0,.12));border-radius:12px;padding:24px;box-shadow:0 18px 44px -34px rgba(0,0,0,.34)}
.zoroya-sub-card h3{font-size:clamp(19px,2vw,24px);margin-bottom:10px}
.zoroya-sub-card p,.zoroya-sub-card li{color:var(--muted,var(--body,#555));font-size:15px}
.zoroya-sub-card ul{margin:12px 0 0;padding-left:1.25em}
.zoroya-flow{display:grid;gap:14px;counter-reset:flow}
.zoroya-flow li{list-style:none;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;background:rgba(255,255,255,.58);border:1px solid var(--line,rgba(0,0,0,.12));padding:18px;border-radius:10px}
.zoroya-flow li::before{counter-increment:flow;content:counter(flow,decimal-leading-zero);font-weight:800;color:var(--accent,#9a6a33);font-family:inherit}
.zoroya-info{display:grid;grid-template-columns:180px 1fr;gap:0;border-top:1px solid var(--line,rgba(0,0,0,.12));background:rgba(255,255,255,.5)}
.zoroya-info dt,.zoroya-info dd{margin:0;padding:14px 16px;border-bottom:1px solid var(--line,rgba(0,0,0,.12))}
.zoroya-info dt{font-weight:800;color:var(--ink,#222)}
.zoroya-faq{display:grid;gap:14px}
.zoroya-faq details{background:var(--paper,#fff);border:1px solid var(--line,rgba(0,0,0,.12));border-radius:10px;padding:18px 20px}
.zoroya-faq summary{cursor:pointer;font-weight:800;color:var(--ink,#222)}
.zoroya-faq p{margin-top:12px;color:var(--muted,var(--body,#555))}
.zoroya-form-slot{background:var(--paper,#fff);border:1px dashed var(--accent,#9a6a33);border-radius:12px;padding:26px}
.zoroya-final{padding:clamp(56px,8vw,94px) 0;background:var(--ink,#222);color:#fff}
.zoroya-final h2{color:#fff}
.zoroya-final p{color:rgba(255,255,255,.78);max-width:40em}
.zoroya-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}
@media (max-width:768px){
  .zoroya-sub-grid,.zoroya-info{grid-template-columns:1fr}
  .zoroya-info dt{padding-bottom:4px;border-bottom:0}
  .zoroya-info dd{padding-top:4px}
  .page-hero .section-inner,.page-section .section-inner,.zoroya-final .section-inner{width:min(100% - 28px,1120px)}
}
