/* Reset */
* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

/* Base */
:root {
   --text: #222;
   --muted: #666;
   --line: #e9e9e9;

   /* Accent */
   --gold: #8B7A3E;

   /* Background color sampled from the provided image */
   --paper: #F7F9EE;

   /* Typography */
   --serif: "Noto Serif JP", serif;
   --sans: Inter, -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN",
      "Noto Sans JP", system-ui, sans-serif;

   --shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
   --radius: 16px;
}

body {
   font-family: var(--sans);
   color: var(--text);
   background: var(--paper);
   /* beige */
   line-height: 1.85;
   -webkit-font-smoothing: antialiased;
   text-rendering: optimizeLegibility;
}

img {
   max-width: 100%;
   height: auto;
   display: block;
}

/* Accessibility / focus */
:focus-visible {
   outline: 2px solid rgba(139, 122, 62, 0.55);
   outline-offset: 3px;
   border-radius: 6px;
}

.divider {
   height: 1px;
   background: var(--line);
}

/* Layout */
.container {
   width: min(980px, 92vw);
   margin: 0 auto;
}

@media (max-width: 768px) {
   .container {
      width: 88vw;
   }
}

/* Header (sticky, minimal) */
.site-header {
   position: sticky;
   top: 0;
   z-index: 50;
   background: rgba(247, 249, 238, 0.88);
   backdrop-filter: saturate(140%) blur(10px);
   border-bottom: 1px solid var(--line);
}

.header-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 16px;
   padding: 14px 0;
}

.brand-link {
   display: flex;
   gap: 12px;
   align-items: center;
   text-decoration: none;
   color: inherit;
}

.brand-mark {
   width: 10px;
   height: 10px;
   border-radius: 50%;
   background: var(--gold);
   display: inline-block;
}

.brand-text {
   display: flex;
   flex-direction: column;
   gap: 2px;
}

.brand-name {
   font-family: var(--serif);
   font-weight: 600;
   letter-spacing: 0.02em;
}

.brand-sub {
   font-size: 12px;
   color: var(--muted);
}

.nav {
   display: flex;
   gap: 14px;
   align-items: center;
   font-size: 13px;
}

.nav a {
   text-decoration: none;
   color: var(--muted);
   padding: 8px 10px;
   border-radius: 999px;
}

.nav a:hover {
   color: var(--text);
}

.nav a.is-active {
   color: var(--text);
   border: 1px solid var(--line);
   background: #fff;
}

.nav-cta {
   color: #fff;
   background: #111;
   border: 1px solid #111;
}

.nav-cta:hover {
   opacity: 0.92;
}

/* Hero (background image + overlay) */
.hero {
   position: relative;
   padding: 72px 0 64px;
   background: var(--paper);
   text-align: center;
   overflow: hidden;
}

.hero-media {
   position: absolute;
   inset: 0;
   background-image: url("img/firstview.png");
   background-size: cover;
   background-position: center bottom;
   background-repeat: no-repeat;
   transform: scale(1.02);
}

.hero-overlay {
   position: absolute;
   inset: 0;
   background: rgba(247, 249, 238, 0.78);
}

.hero-inner {
   position: relative;
}

.hero h1,
.hero-title {
   font-family: var(--serif);
   font-weight: 600;
   font-size: clamp(28px, 6vw, 44px);
   line-height: 1.45;
   letter-spacing: 0.02em;
   margin-bottom: 14px;
}

.hero-lead {
   font-size: 14px;
   color: var(--muted);
   margin-top: 10px;
}

.hero-actions {
   display: flex;
   justify-content: center;
   gap: 10px;
   flex-wrap: wrap;
   margin: 14px 0 10px;
}

.btn {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   padding: 10px 14px;
   border-radius: 999px;
   font-size: 13px;
   text-decoration: none;
   letter-spacing: 0.03em;
}

.btn-primary {
   background: #111;
   color: #fff;
   border: 1px solid #111;
}

.btn-primary:hover {
   opacity: 0.92;
}

.btn-ghost {
   background: transparent;
   border: 1px solid var(--line);
   color: var(--text);
}

.btn-ghost:hover {
   background: #fff;
}

.hero-meta {
   display: flex;
   justify-content: center;
   flex-wrap: wrap;
   gap: 10px;
   margin-top: 14px;
   color: var(--muted);
   font-size: 12px;
}

.meta-dot {
   width: 4px;
   height: 4px;
   border-radius: 50%;
   background: var(--gold);
   display: inline-block;
   transform: translateY(6px);
}

.kicker {
   font-size: 12px;
   color: var(--muted);
   letter-spacing: 0.06em;
   margin-bottom: 10px;
}

.subtitle {
   font-size: 14px;
   color: var(--muted);
}

/* Sections (two-tone: white + beige) */
.section {
   padding: 44px 0;
   background: #fff;
}

.bg-light {
   background: var(--paper);
   border-top: 1px solid var(--line);
   border-bottom: 1px solid var(--line);
}

.section h2 {
   font-family: var(--serif);
   font-weight: 600;
   font-size: clamp(18px, 4.2vw, 24px);
   margin-bottom: 18px;
   letter-spacing: 0.02em;
}

/* Prose */
.prose p {
   font-size: 15px;
   margin-bottom: 14px;
   color: var(--text);
}

/* Remove the quote box styling */
.quote {
   margin-top: 14px;
   padding: 0;
   border: none;
   background: transparent;
   border-radius: 0;
}

/* Photo Blocks */
.photo,
.step-photo {
   margin: 14px 0 18px;
}

/* Producer photo: slightly smaller and centered */
.photo {
   max-width: 620px;
   margin: 14px auto 18px;
}

.photo-placeholder {
   width: 100%;
   border: 1px solid var(--line);
   border-radius: var(--radius);
   background: #fff;
   box-shadow: var(--shadow);
   display: grid;
   place-items: center;
   padding: 14px;
   color: var(--muted);
   text-align: center;
}

.photo .photo-placeholder {
   aspect-ratio: 16 / 10;
}

/* Make step images a bit smaller (especially on desktop) */
.step-photo {
   max-width: 520px;
   margin: 0 auto 14px;
}

.step-photo .photo-placeholder {
   aspect-ratio: 16 / 9;
}

.photo img,
.step-photo img {
   width: 100%;
   border-radius: var(--radius);
   box-shadow: var(--shadow);
}

.caption {
   margin-top: 10px;
   font-size: 13px;
   color: var(--muted);
}

/* Steps */
.steps {
   display: grid;
   gap: 26px;
   margin-top: 8px;
}

.step {
   background: #fff;
   border: 1px solid var(--line);
   border-radius: var(--radius);
   padding: 16px;
   box-shadow: var(--shadow);
}

.step-body h3 {
   font-size: 16px;
   margin-bottom: 8px;
}

.step-body p {
   font-size: 14px;
}

/* Footer */
.footer {
   padding: 36px 0 44px;
   border-top: 1px solid var(--line);
   text-align: center;
   background: var(--paper);
}

.brand {
   font-size: 14px;
   letter-spacing: 0.04em;
}

.muted {
   font-size: 12px;
   color: var(--muted);
   margin-top: 6px;
}

@media (min-width: 860px) {
   .step {
      padding: 18px;
   }
}

/* ===== Elegant Motion (Luxury) ===== */
.fade-up {
   opacity: 0;
   transform: translateY(24px);
   transition: opacity 0.9s ease, transform 0.9s ease;
}

.fade-up.is-visible {
   opacity: 1;
   transform: translateY(0);
}

.delay-1 {
   transition-delay: 0.10s;
}

.delay-2 {
   transition-delay: 0.20s;
}

.delay-3 {
   transition-delay: 0.30s;
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
   .fade-up {
      opacity: 1;
      transform: none;
      transition: none;
   }
}

/* ===== Icon Cards (Reasons / Use cases) ===== */
.icon-card {
   display: grid;
   grid-template-columns: 36px 1fr;
   gap: 14px;
   align-items: start;
}

.icon {
   width: 28px;
   height: 28px;
   stroke: var(--gold);
   stroke-width: 1.5;
   fill: none;
}

/* Make use-cards easier to scan */
.use-card {
   position: relative;
}

/* Spacing between reason cards */
.reasons-grid {
   gap: 22px;
}

/* Spacing between gift use cards */
.use-grid {
   gap: 22px;
}

.use-card p {
   margin-top: 6px;
   line-height: 1.9;
}

.reason-card,
.use-card {
   padding: 20px;
}

@media (max-width: 600px) {
   .icon-card {
      grid-template-columns: 30px 1fr;
      gap: 12px;
   }

   .icon {
      width: 24px;
      height: 24px;
   }
}

@media (max-width: 760px) {
   .nav {
      gap: 6px;
   }

   .nav a {
      padding: 8px 8px;
   }
}

@media (max-width: 600px) {
   .hero {
      padding: 56px 0 48px;
   }

   .hero-media {
      background-position: center;
   }
}