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

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

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

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

body {
   font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN",
      "Noto Sans JP", system-ui, sans-serif;
   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;
}

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

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

/* Hero (centered) */
.hero {
   padding: 56px 0 34px;
   border-bottom: 1px solid var(--line);
   background: var(--paper);
   text-align: center;
}

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

.hero h1 {
   font-size: clamp(26px, 5.5vw, 40px);
   letter-spacing: 0.03em;
   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-size: clamp(18px, 4.2vw, 24px);
   margin-bottom: 18px;
   padding-left: 12px;
   border-left: 4px solid #000;
}

/* 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;
}

.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;
   }
}