 :root {
      /* Warm campaign palette + trust blue #597db4 */
      --bg: #faf7f2;
      --paper: #ffffff;
      --ink: #2d2b29;
      --sub: #6f6a64;
      --line: #e5e0d8;
      --accent: #d96a3a;
      --accent-dark: #b84f24;
      --trust-blue: #597db4;
      --trust-blue-dark: #466a9f;
      --warm: #d96a3a;
      --campaign-soft: #fff3ea;
      --soft: #f4eee6;
      --max: 1180px;
      --radius: 22px;
      --shadow: 0 14px 40px rgba(70, 61, 50, .09);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      color: var(--ink);
      background: var(--bg);
      font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", sans-serif;
      line-height: 1.8;
      letter-spacing: .03em;
    }
    img { display: block; width: 100%; height: auto; }
    a { color: inherit; text-decoration: none; }

    .wrap { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
    .section { padding: 96px 0; }
    .section--white { background: var(--paper); }
    .section--soft { background: var(--soft); }
    .section--dark { background: #34312e; color: #fff; }

    .eyebrow {
      margin: 0 0 14px;
      font-size: 12px;
      font-weight: 800;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: #9d603f;
    }
    .section--dark .eyebrow { color: #d7e4f5; }
    .section-title {
      margin: 0 0 22px;
      font-size: clamp(30px, 4.4vw, 58px);
      line-height: 1.25;
      letter-spacing: .01em;
    }
    .section-lead {
      max-width: 780px;
      margin: 0;
      font-size: clamp(16px, 1.8vw, 20px);
      color: var(--sub);
    }
    .section--dark .section-lead { color: #e7edf5; }

    /* Header — smileland.net / Compact Smile inspired */
    .site-header {
      position: sticky;
      top: 0;
      z-index: 80;
      background: rgba(255,255,255,.97);
      border-bottom: 1px solid #ece9e4;
      box-shadow: 0 3px 16px rgba(45,43,41,.045);
      backdrop-filter: blur(10px);
    }
    .header-inner {
      width: min(calc(100% - 36px), 1380px);
      min-height: 92px;
      margin-inline: auto;
      display: grid;
      grid-template-columns: 190px 1fr auto;
      align-items: center;
      gap: 24px;
    }
    .brand {
      display: inline-flex;
      flex-direction: column;
      justify-content: center;
      color: #2d2b29;
      line-height: 1;
      font-weight: 900;
      font-size: 21px;
      letter-spacing: .075em;
      white-space: nowrap;
    }
    .brand::after { display:none !important; }
    .brand-sub {
      margin-top: 8px;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .17em;
      color: #8a857f;
    }
    .global-nav {
      align-self: stretch;
      display: flex;
      align-items: stretch;
      justify-content: center;
    }
    .global-nav ul {
      display: flex;
      align-items: stretch;
      justify-content: center;
      gap: 0;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .global-nav li { display:flex; }
    .global-nav a {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      min-width: 92px;
      padding: 0 13px;
      color: #34312e;
      font-size: 12px;
      font-weight: 800;
      letter-spacing: .045em;
      transition: .2s ease;
    }
    .global-nav a small {
      display: block;
      margin-top: 5px;
      color: #aaa39b;
      font-size: 8px;
      font-weight: 700;
      letter-spacing: .11em;
      text-transform: uppercase;
    }
    .global-nav a::after {
      content:"";
      position:absolute;
      left:50%;
      bottom:0;
      width:0;
      height:2px;
      background:#2d2b29;
      transform:translateX(-50%);
      transition:.2s ease;
    }
    .global-nav a:hover { color:#000; }
    .global-nav a:hover::after { width:48%; }

    .header-actions {
      display:flex;
      align-items:center;
      gap:8px;
    }
    .header-action {
      min-height: 50px;
      padding: 0 16px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:1px solid #dcd7d0;
      background:#fff;
      color:#34312e;
      font-size:11px;
      line-height:1.35;
      font-weight:800;
      text-align:center;
      transition:.2s ease;
      white-space:nowrap;
    }
    .header-action:hover { background:#f7f4ef; }
    .header-action.contact {
      border-color:#34312e;
      background:#34312e;
      color:#fff;
    }
    .header-action.contact:hover { background:#161513; }

    .menu-toggle {
      display:none;
      width:48px;
      height:48px;
      border:0;
      background:transparent;
      padding:0;
      cursor:pointer;
    }
    .menu-toggle span {
      display:block;
      width:26px;
      height:1px;
      margin:6px auto;
      background:#34312e;
      transition:.2s ease;
    }

    .mobile-nav {
      display:none;
      border-top:1px solid #ece9e4;
      background:#fff;
    }
    .mobile-nav-inner {
      padding: 14px 20px 24px;
    }
    .mobile-nav a {
      display:flex;
      justify-content:space-between;
      align-items:center;
      padding:15px 4px;
      border-bottom:1px solid #eeeae5;
      font-size:14px;
      font-weight:800;
    }
    .mobile-nav a::after { content:"→"; color:#aaa39b; font-weight:500; }
    .mobile-nav .mobile-cta-row {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:18px;
    }
    .mobile-nav .mobile-cta-row a {
      justify-content:center;
      min-height:52px;
      padding:0 10px;
      border:1px solid #34312e;
      text-align:center;
      font-size:12px;
    }
    .mobile-nav .mobile-cta-row a::after { display:none; }
    .mobile-nav .mobile-cta-row a:last-child {
      background:#34312e;
      color:#fff;
    }

    @media (max-width: 1180px) {
      .header-inner {
        grid-template-columns: 170px 1fr auto;
        gap:14px;
      }
      .global-nav a {
        min-width:78px;
        padding:0 8px;
        font-size:11px;
      }
      .header-action:first-child { display:none; }
    }

    @media (max-width: 900px) {
      .header-inner {
        min-height:68px;
        grid-template-columns:1fr auto;
      }
      .global-nav, .header-actions { display:none; }
      .menu-toggle { display:block; }
      .mobile-nav.is-open { display:block; }
      .brand { font-size:19px; }
      .brand-sub { margin-top:6px; font-size:8px; }
    }

    /* Hero */
    .hero {
      position: relative;
      overflow: hidden;
      min-height: 760px;
      display: grid;
      align-items: center;
      padding: 78px 0 74px;
      background:
        radial-gradient(circle at 85% 10%, rgba(217,106,58,.13), transparent 36%),
        linear-gradient(135deg, #fbfaf7 0%, #f2eee7 100%);
    }
    .hero::after {
      content: "";
      position: absolute;
      right: -180px;
      bottom: -280px;
      width: 620px;
      height: 620px;
      border: 1px solid rgba(181,144,99,.28);
      border-radius: 50%;
    }
    .hero-grid {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1.03fr .97fr;
      gap: 56px;
      align-items: center;
    }
    .hero-kicker {
      display: inline-block;
      margin-bottom: 18px;
      padding: 8px 14px;
      border: 1px solid var(--ink);
      border-radius: 999px;
      font-size: 12px;
      font-weight: 800;
      letter-spacing: .08em;
    }
    .hero h1 {
      margin: 0;
      font-size: clamp(36px, 6vw, 78px);
      line-height: 1.13;
      letter-spacing: -.015em;
    }
    .hero h1 .price {
      display: block;
      margin-top: 14px;
      font-size: clamp(62px, 10vw, 132px);
      line-height: .95;
      letter-spacing: -.045em;
    }
    .hero h1 .tax {
      font-size: .22em;
      letter-spacing: .03em;
      margin-left: 8px;
    }
    .hero-sub {
      margin: 22px 0 0;
      font-size: clamp(19px, 2.3vw, 28px);
      font-weight: 800;
    }
    .hero-total {
      display: inline-block;
      margin-top: 18px;
      padding: 10px 14px;
      background: var(--ink);
      color: white;
      font-weight: 800;
      font-size: 17px;
    }
    .hero-note { margin: 16px 0 0; color: var(--sub); font-size: 13px; }

    .hero-visual {
      position: relative;
      min-height: 520px;
      border-radius: 28px;
      overflow: hidden;
      background:
        url('img/hiraya-top.webp') center/cover no-repeat,
        #e5e0d8;
      box-shadow: var(--shadow);
    }
    .hero-visual::before {
      content: "";
      white-space: pre;
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      text-align: center;
      color: rgba(32,39,52,.58);
      font-size: 14px;
      font-weight: 700;
      content: none;
    }
    .hero-badge {
      position: absolute;
      right: 20px;
      bottom: 20px;
      width: 156px;
      aspect-ratio: 1;
      display: grid;
      place-items: center;
      text-align: center;
      padding: 18px;
      border-radius: 50%;
      background: var(--accent);
      color: #fff;
      font-weight: 800;
      line-height: 1.35;
      transform: rotate(-7deg);
      box-shadow: 0 12px 30px rgba(0,0,0,.10);
    }

    .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      min-height: 58px;
      padding: 0 28px;
      border-radius: 999px;
      font-weight: 800;
      transition: .2s ease;
    }
    .btn:hover { transform: translateY(-2px); }
    .btn--primary { background: var(--accent); color: #fff; }
    .btn--outline { border: 1px solid var(--ink); background: transparent; }

    /* Price strip */
    .price-strip { margin-top: -30px; position: relative; z-index: 3; }
    .price-strip-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      background: var(--paper);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
    }
    .price-strip-item { padding: 30px 34px; }
    .price-strip-item + .price-strip-item { border-left: 1px solid var(--line); }
    .plan-name { font-weight: 800; font-size: 18px; }
    .old-price { color: var(--sub); font-size: 14px; text-decoration: line-through; }
    .new-price { font-size: 36px; font-weight: 900; line-height: 1.1; margin-top: 3px; }
    .discount { display: inline-block; margin-left: 8px; color: var(--warm); font-size: 14px; font-weight: 900; }

    /* Total section */
    .total-box {
      margin-top: 42px;
      display: grid;
      grid-template-columns: .9fr 1.1fr;
      gap: 40px;
      padding: 44px;
      background: var(--paper);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
    }
    .total-big {
      font-size: clamp(34px, 5vw, 70px);
      font-weight: 900;
      line-height: 1.15;
    }
    .check-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
    .check-list li {
      position: relative;
      padding-left: 34px;
      font-weight: 700;
    }
    .check-list li::before {
      content: "✓";
      position: absolute;
      left: 0;
      top: 0;
      color: var(--accent-dark);
      font-weight: 900;
    }
    .fineprint { margin-top: 22px; font-size: 12px; color: var(--sub); }

    /* Plans */
    .plans { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 48px; }
    .plan-card {
      background: var(--paper);
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--shadow);
    }
    .plan-image {
      min-height: 330px;
      position: relative;
      background: #dbe4ef center/cover no-repeat;
    }
    .plan-image.two { background-image: url('images/plan-2f.jpg'); }
    .plan-image.hiraya { background-image: url('images/plan-hiraya.jpg'); }
    .plan-image::before {
      content: "";
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      color: rgba(32,39,52,.56);
      font-weight: 700;
    }
    .plan-body { padding: 32px; }
    .plan-label { color: var(--accent-dark); font-weight: 900; letter-spacing: .12em; font-size: 12px; }
    .plan-body h3 { margin: 6px 0 18px; font-size: 30px; line-height: 1.35; }
    .plan-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
    .pill { padding: 7px 12px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; font-weight: 700; }
    .plan-price { padding-top: 18px; border-top: 1px solid var(--line); }
    .plan-price strong { display: block; font-size: 36px; line-height: 1.1; }

    /* Comparison */
    .comparison-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 54px; align-items: center; margin-top: 40px; }
    .quote-card {
      padding: 42px;
      border-radius: var(--radius);
      background: #fff;
      box-shadow: var(--shadow);
    }
    .quote-card .question { font-size: clamp(30px, 4vw, 52px); font-weight: 900; line-height: 1.25; }
    .quote-card .question em { font-style: normal; color: var(--accent-dark); }
    .compare-list { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin-top: 26px; }
    .compare-list div { padding: 16px 18px; background: var(--soft); border-radius: 14px; font-weight: 800; }

    /* Performance */
    .performance-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 42px; }
    .performance-card {
      padding: 34px 24px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #fff;
      text-align: center;
    }
    .performance-card small { display: block; color: var(--sub); font-weight: 700; }
    .performance-card strong { display: block; margin-top: 5px; font-size: clamp(30px, 4vw, 52px); line-height: 1.1; }
    .performance-card p { margin: 10px 0 0; font-size: 13px; color: var(--sub); }

    .balance-box {
      margin-top: 44px;
      padding: 44px;
      border-radius: var(--radius);
      background: var(--soft);
    }
    .balance-box h3 { margin: 0; font-size: clamp(26px, 3.2vw, 40px); }
    .balance-box p { margin-bottom: 0; }

    /* Why */
    .why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 42px; }
    .why-card { padding: 26px; background: #fff; border-radius: 18px; box-shadow: var(--shadow); }
    .why-card span { display: block; color: var(--accent-dark); font-weight: 900; font-size: 13px; }
    .why-card h3 { margin: 8px 0 8px; font-size: 20px; }
    .why-card p { margin: 0; font-size: 14px; color: var(--sub); }

    /* CTA */
    .cta-box {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 32px;
      align-items: center;
      padding: 52px;
      border: 1px solid rgba(255,255,255,.18);
      border-radius: 28px;
      background: rgba(255,255,255,.04);
    }
    .cta-box h2 { margin: 0; font-size: clamp(34px, 4.8vw, 62px); line-height: 1.2; }
    .cta-box p { margin: 15px 0 0; color: #dce6f2; }
    .btn--white { background: #fff; color: var(--ink); min-width: 260px; }

    /* FAQ */
    .faq { margin-top: 36px; display: grid; gap: 12px; }
    details { background: #fff; border-radius: 16px; padding: 0 22px; border: 1px solid var(--line); }
    summary { cursor: pointer; font-weight: 800; padding: 20px 0; }
    details p { margin: 0 0 22px; color: var(--sub); }

    footer { padding: 40px 0 90px; background: #34312e; color: #ddd4ca; font-size: 12px; }
    .footer-inner { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }

    .mobile-cta { display: none; }

    @media (max-width: 900px) {
      .hero { min-height: auto; padding-top: 54px; }
      .hero-grid,
      .total-box,
      .comparison-grid,
      .cta-box { grid-template-columns: 1fr; }
      .hero-visual { min-height: 380px; }
      .plans { grid-template-columns: 1fr; }
      .performance-grid { grid-template-columns: 1fr; }
      .why-grid { grid-template-columns: repeat(2, 1fr); }
      .price-strip-inner { grid-template-columns: 1fr; }
      .price-strip-item + .price-strip-item { border-left: 0; border-top: 1px solid var(--line); }
      .btn--white { min-width: 0; }
    }

    @media (max-width: 640px) {
      .wrap { width: min(calc(100% - 28px), var(--max)); }
      .section { padding: 72px 0; }
      .site-header .header-cta { display: none; }
      .hero { padding-top: 36px; padding-bottom: 54px; }
      .hero-grid { gap: 34px; }
      .hero-visual { min-height: 300px; border-radius: 18px; }
      .hero-badge { width: 118px; right: 12px; bottom: 12px; font-size: 12px; }
      .hero-actions .btn { width: 100%; }
      .price-strip { margin-top: -18px; }
      .price-strip-item { padding: 24px; }
      .total-box, .balance-box { padding: 28px 22px; }
      .plan-body { padding: 26px 22px; }
      .plan-image { min-height: 260px; }
      .compare-list { grid-template-columns: 1fr; }
      .quote-card { padding: 28px 22px; }
      .why-grid { grid-template-columns: 1fr; }
      .cta-box { padding: 32px 22px; }
      .mobile-cta {
        position: fixed;
        z-index: 80;
        left: 12px;
        right: 12px;
        bottom: 12px;
        display: block;
      }
      .mobile-cta a {
        display: grid;
        place-items: center;
        min-height: 56px;
        border-radius: 999px;
        background: var(--accent);
        color: #fff;
        font-weight: 900;
        box-shadow: 0 12px 28px rgba(0,0,0,.2);
      }
    }

    /* Warm conversion refinement: Smile House base + warm campaign + trust blue */
    .brand { color: var(--ink); }
    .brand::after { content:""; display:inline-block; width:7px; height:7px; margin-left:8px; border-radius:50%; background:var(--accent); vertical-align:middle; }
    .hero-kicker { border-color:#b9afa3; background:rgba(255,255,255,.68); }
    .hero h1 .price, .new-price, .total-big, .price-accent { color:var(--accent); }
    .hero-total { background:#34312e; }
    .hero-badge { background:var(--accent); }
    .btn--primary, .header-cta { box-shadow:0 8px 22px rgba(89,125,180,.20); }
    .btn--primary:hover, .header-cta:hover { background:var(--accent-dark); }
    .plan-card, .total-box, .feature-card, .faq-item { border:1px solid var(--line); }
    .section--soft .section-title, .section--white .section-title { color:var(--ink); }
    .accent-rule { width:72px; height:3px; background:var(--accent); border-radius:99px; margin:18px 0 26px; }
    .campaign-chip { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px; background:var(--campaign-soft); color:var(--accent-dark); font-weight:800; font-size:12px; }
    @media (max-width: 760px){ .hero { background:linear-gradient(180deg,#fbfaf7 0%,#f2eee7 100%); } }

    /* Trust-blue is intentionally limited to performance / reassurance areas */
    .performance-card { border-color: rgba(89,125,180,.22); background: #fbfdff; }
    .performance-card strong { color: var(--trust-blue); }
    .performance-card small { color: var(--trust-blue-dark); }
    .section--white .performance-grid + .balance-box { border-left: 4px solid var(--trust-blue); }
    .performance-grid::before { content: "PERFORMANCE / TRUST"; grid-column: 1 / -1; color: var(--trust-blue-dark); font-size: 11px; font-weight: 900; letter-spacing: .16em; margin-bottom: -6px; }
    .hero h1 .price, .new-price, .total-big, .price-accent, .plan-price strong { color: var(--accent); }
    .discount { color: var(--accent-dark); }
    .hero-total { background: #34312e; }
    .hero-badge { box-shadow: 0 14px 32px rgba(184,79,36,.22); }
    .btn--primary, .header-cta, .mobile-cta a { box-shadow: 0 10px 24px rgba(184,79,36,.24); }
    .price-strip-inner { border-top: 4px solid var(--accent); }
    .quote-card .question em { color: var(--accent-dark); }
    .plan-label, .why-card span, .check-list li::before { color: #9d603f; }
    .accent-rule { background: var(--accent); }
    .section--dark { background: #34312e; }
    .section--dark .eyebrow { color: #f6c7ad; }
    .section--dark .section-lead, .cta-box p { color: #eee3d9; }
    @media (max-width: 640px) {
      .hero h1 .price { text-shadow: 0 1px 0 rgba(255,255,255,.7); }
    }
    /* Compact Smile reference styling, scoped to the hero total-price label. */
    .hero .hero-total {
      display: inline-flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 10px;
      max-width: 100%;
      padding: 12px 18px;
      background: #fff;
      border: 1px solid #deddd8;
      color: #2f302d;
      font-family: -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP",sans-serif;
      font-size: 16px;
      font-weight: 800;
      line-height: 1.9;
      letter-spacing: .045em;
      box-shadow: 0 6px 20px rgba(0,0,0,.04);
    }
    .hero .hero-total b { color: #d46f46; }
    /* Sections carried over from the Compact Smile reference. */
    .compact-intro, .compact-why {
      color: #2f302d; line-height: 1.9; letter-spacing: .045em;
    }
    .compact-intro { background: #fff; text-align: center; padding: 100px 0; }
    .compact-why { background: #f4f1ea; padding: 100px 0; }
    .compact-intro .narrow, .compact-why .narrow {
      width: min(calc(100% - 40px), 860px); margin-inline: auto;
    }
    .compact-intro .intro-copy { max-width: 820px; }
    .compact-intro .eyebrow, .compact-why .eyebrow {
      font-family: Arial,sans-serif; font-size: 12px; letter-spacing: .22em;
      color: #6f745e; font-weight: 700; margin-bottom: 12px;
    }
    .compact-intro h2, .compact-why h2 {
      margin: 0 0 24px; font-size: clamp(30px,4.4vw,54px);
      font-weight: 700; line-height: 1.4; letter-spacing: .03em;
    }
    .compact-intro p { font-size: 18px; color: #696a64; margin: 0 0 18px; }
    .compact-intro .rule { width: 52px; height: 1px; background: #8a8f74; margin: 28px auto 0; }
    .compact-why .lead { font-size: clamp(16px,2vw,19px); color: #696a64; margin: 0; }
    .compact-inclusions { margin-top: 36px; }
    .compact-inclusions details { border-top: 1px solid #deddd8; padding: 20px 0; }
    .compact-inclusions details:last-child { border-bottom: 1px solid #deddd8; }
    .compact-inclusions ul { padding-left: 1.3em; margin: 18px 0 0; color: var(--sub); }
    .compact-plan-note { font-size: 14px; color: var(--sub); }
    @media (max-width: 820px) {
      .compact-intro, .compact-why { padding: 72px 0; }
      .compact-intro .narrow, .compact-why .narrow { width: calc(100% - 28px); }
    }
    @media (max-width: 520px) {
      .compact-intro h2, .compact-why h2 { font-size: 34px; }
    }
    /* Closing campaign colors: warm skin-tone background and orange CTA. */
    #contact.section--dark { background: #f4eee6; color: #2d2b29; }
    #contact .eyebrow { color: #9d603f; }
    #contact .cta-box p { color: #6f6a64; }
    #contact .btn--white {
      background: #d96a3a;
      border-color: #d96a3a;
      color: #fff;
      box-shadow: 0 10px 24px rgba(184,79,36,.20);
    }
    #contact .btn--white:hover { background: #b84f24; border-color: #b84f24; color: #fff; }
    /* Campaign refinements */
    section[id] { scroll-margin-top: 110px; }
    .campaign-tax { display:block; font-size:14px; color:var(--sub); margin:8px 0; font-weight:600; }
    .campaign-period { font-weight:800; }
    .hero-badge small { display:block; font-size:11px; }
    .campaign-reasons { background:#f4eee6; }
    .campaign-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:32px; }
    .campaign-grid article, .campaign-grid li { padding:28px; background:white; border:1px solid var(--line); border-radius:16px; }
    .campaign-grid h3 { font-size:21px; line-height:1.6; margin:8px 0 16px; }
    .campaign-grid p { color:var(--sub); margin:0; }
    .campaign-grid span { color:var(--accent-dark); font-weight:800; }
    ol.campaign-grid { padding-left:24px; }
    .campaign-inline { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:32px; }
    .campaign-inline > a:not(.btn) { text-decoration:underline; text-underline-offset:5px; }
    .campaign-actions { display:grid; gap:14px; max-width:100%; }
    .campaign-actions .btn { min-width:0; white-space:normal; text-align:center; }
    #contact .campaign-actions .btn--outline { color:var(--ink); background:white; border-color:var(--line); }
    #contact .action-note { font-size:12px; max-width:300px; margin:0; }
    .hero-visual > img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
    .plan-image > img { width:100%; height:100%; object-fit:cover; }
    .floor-plan { width:100%; height:auto; object-fit:contain; margin:24px 0; }
    a:focus-visible, button:focus-visible, summary:focus-visible { outline:3px solid #597db4; outline-offset:4px; }
    @media(max-width:960px) { .campaign-grid { grid-template-columns:1fr; } }
    @media(max-width:640px) {
      .campaign-inline { align-items:stretch; flex-direction:column; }
      .campaign-inline .btn { text-align:center; }
      footer { padding-bottom:90px; }
      .hero-kicker { font-size:12px; }
    }
    /* Six comparison points */
    .comparison-checks {
      list-style:none; padding:0; margin:28px 0 0;
      display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
    }
    .comparison-checks li {
      min-width:0; padding:22px 20px 24px; background:#fffdf9;
      border:1px solid #e4d9cc; border-radius:12px;
      box-shadow:0 4px 14px rgba(70,61,50,.035);
    }
    .comparison-number {
      display:inline-flex; align-items:center; justify-content:center;
      width:34px; height:28px; border-radius:6px;
      color:#a34a27; background:#f8e8dc;
      font:700 12px/1 Arial,sans-serif; letter-spacing:.08em;
      margin-bottom:14px;
    }
    .comparison-checks h3 {
      margin:0 0 9px; color:#2d2b29; font-size:16px;
      font-weight:800; line-height:1.65; letter-spacing:.01em;
      overflow-wrap:anywhere;
    }
    .comparison-checks p {
      margin:0; color:#6f6a64; font-size:13px; line-height:1.85;
    }
    @media(max-width:640px) {
      .comparison-checks { grid-template-columns:1fr; gap:10px; }
      .comparison-checks li { position:relative; padding:20px 18px 20px 65px; }
      .comparison-number { position:absolute; top:22px; left:18px; margin:0; }
      .comparison-checks h3 { margin-bottom:5px; }
    }
    /* Philosophy and performance, consolidated from the reference design. */
    .smile-thinking { background:#faf9f6; color:#2f302d; }
    .smile-thinking-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
    .smile-thinking .eyebrow, .smile-performance > .wrap > .eyebrow {
      color:#6f745e; font-family:Arial,sans-serif; font-weight:700; letter-spacing:.22em;
    }
    .smile-thinking h2 { font-size:clamp(30px,3.5vw,46px); font-weight:700; line-height:1.65; margin:0; letter-spacing:.01em; }
    .smile-thinking h2 span { text-decoration:underline; text-decoration-color:#8a8f74; text-decoration-thickness:2px; text-underline-offset:10px; }
    .thinking-break { display:none; }
    .smile-thinking-copy { color:#696a64; font-size:16px; line-height:1.95; }
    .smile-thinking-copy p { margin:0 0 20px; }
    .smile-thinking-copy p:last-child { margin-bottom:0; }
    .smile-thinking-copy .thinking-lead { color:#2f302d; font-size:21px; font-weight:700; line-height:1.7; }
    .smile-performance .performance-grid::before { content:none; }
    .smile-performance .performance-card strong { font-size:clamp(26px,3vw,40px); line-height:1.4; overflow-wrap:anywhere; }
    .smile-performance-note { border-top:1px solid var(--line); margin:28px 0 0; padding-top:22px; color:var(--sub); font-size:14px; line-height:1.9; max-width:900px; }
    @media(max-width:960px) {
      .smile-thinking-grid { grid-template-columns:1fr; gap:30px; }
    }
    @media(max-width:480px) {
      .smile-thinking h2 { font-size:30px; }
      .thinking-break { display:block; }
      .smile-thinking-copy .thinking-lead { font-size:19px; }
    }
    /* Streamlined visit-focused campaign */
    main .section { padding:72px 0; }
    main .compact-intro { padding:48px 0; }
    main .compact-intro h2 { font-size:clamp(26px,3.5vw,40px); margin-bottom:14px; }
    main .compact-intro p { margin-bottom:0; }
    .price-reason { margin-top:24px; }
    .price-reason p { color:var(--sub); font-size:15px; line-height:1.8; }
    .visit-works { background:#f4eee6; }
    .visit-case-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:30px; }
    .visit-case { padding:28px; background:#fff; border:1px solid var(--line); border-radius:16px; }
    .visit-case img { width:100%; aspect-ratio:3/2; object-fit:cover; margin-bottom:20px; border-radius:8px; }
    .visit-case-label { font-size:12px; color:#9d603f; font-weight:700; }
    .visit-case h3 { font-size:22px; line-height:1.6; margin:12px 0; }
    .visit-case p { color:var(--sub); font-size:15px; }
    .visit-case a,.visit-catalog { text-decoration:underline; text-underline-offset:5px; font-size:14px; }
    .visit-mid-cta { margin-top:30px; text-align:center; }
    .visit-mid-cta p { color:var(--sub); font-size:14px; }
    .visit-mid-cta .btn { white-space:normal; text-align:center; }
    #contact .section-lead { color:var(--sub); }
    .visit-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; list-style:none; padding:0; margin:30px 0; }
    .visit-benefits li { background:#fffaf4; padding:22px; border:1px solid var(--line); border-radius:12px; }
    .visit-benefits span { color:#a34a27; font:700 13px Arial,sans-serif; display:block; margin-bottom:12px; }
    .visit-benefits strong { font-size:17px; }
    .visit-benefits p { font-size:13px; color:var(--sub); margin:10px 0 0; }
    #contact .cta-box { padding:30px; gap:28px; border:1px solid #dfcdbb; background:#fffaf4; grid-template-columns:minmax(0,1fr) minmax(260px,.8fr); }
    .visit-deadline { font-size:22px; line-height:1.5; margin:12px 0; }
    .visit-steps { font-size:13px; line-height:1.9; }
    #contact .action-note { max-width:none; }
    @media(max-width:960px) { #contact .cta-box { grid-template-columns:1fr; } }
    @media(max-width:640px) {
      main .section { padding:52px 0; }
      main .compact-intro { padding:36px 0; }
      .visit-case-grid,.visit-benefits { grid-template-columns:1fr; gap:14px; }
      .visit-case { padding:22px; }
      .visit-benefits { gap:10px; }
      .visit-benefits li { padding:16px 20px; }
      .visit-benefits span { display:inline-block; margin:0 10px 0 0; }
      #contact .cta-box { padding:24px 20px; }
      .visit-mid-cta .btn { width:100%; padding:14px 20px; }
    }
    .floor-perspectives { margin:26px 0; }
    .floor-perspectives h4 { font-size:17px; margin:0 0 14px; }
    .floor-perspectives-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .floor-perspectives figure { margin:0; min-width:0; border:1px solid var(--line); background:#fffdf9; border-radius:10px; overflow:hidden; }
    .floor-perspectives a { display:block; cursor:zoom-in; }
    .floor-perspectives img { display:block; width:100%; height:auto; }
    .floor-perspectives figcaption { padding:12px; line-height:1.7; }
    .floor-perspectives figcaption strong { display:block; font-size:13px; }
    .floor-perspectives figcaption span { display:block; color:var(--sub); font-size:12px; }
    .floor-perspectives figcaption small { display:block; margin-top:8px; color:#9d603f; font-size:11px; }
    .floor-perspectives-note { color:var(--sub); font-size:11px; line-height:1.8; margin:12px 0 0; }
    @media(max-width:640px) { .floor-perspectives-grid { grid-template-columns:1fr; } }
    /* Orange header contact action and footer */
    .site-header .header-action.contact,
    .site-header .mobile-cta-row a[href="https://smileland.net/contact/"] {
      background:var(--accent); border-color:var(--accent); color:#fff;
    }
    .site-header .header-action.contact:hover,
    .site-header .mobile-cta-row a[href="https://smileland.net/contact/"]:hover {
      background:var(--accent-dark); border-color:var(--accent-dark); color:#fff;
    }
    footer { background:var(--accent); color:#fff; }
/* 9プラン比較一覧：既存LPのカラーと余白に合わせた追加スタイル */
.plan-collection{margin-top:56px;padding-top:44px;border-top:1px solid var(--line);scroll-margin-top:110px}
.pc-heading{font-size:clamp(22px,3vw,30px);line-height:1.6;margin:10px 0}
.pc-lead{color:var(--sub);font-size:14px;margin:0 0 24px}
.pc-tabs{display:flex;gap:12px;margin:26px 0}
.pc-tabs button{font:inherit;font-weight:700;border:1px solid var(--line);border-radius:40px;background:var(--paper);color:var(--ink);padding:13px 30px;cursor:pointer;min-height:48px}
.pc-tabs button span{font-size:12px;margin-left:10px;font-weight:400}
.pc-tabs button[aria-selected="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.pc-tabs button:focus-visible,.pc-zoom:focus-visible,.pc-dialog button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.pc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.pc-grid[hidden]{display:none!important}
.pc-card{border:1px solid var(--line);border-radius:16px;background:var(--paper);overflow:hidden;min-width:0}
.pc-thumbs{display:flex;gap:8px;padding:16px;background:var(--bg);min-height:220px}
.pc-zoom{flex:1;min-width:0;border:0;background:#fff;padding:8px;font:inherit;cursor:zoom-in;display:flex;flex-direction:column;justify-content:center}
.pc-zoom img{height:160px;object-fit:contain}.pc-zoom span{font-size:11px;color:var(--accent-dark);margin-top:10px}
.pc-placeholder{min-height:220px;margin:0;background:var(--bg);display:flex;flex-direction:column;justify-content:center;align-items:center;color:#8f8273;gap:6px}
.pc-placeholder span{padding:16px 32px;border:1px dashed #d6cbbb;border-radius:5px;font-size:14px}.pc-placeholder small{font-size:12px}
.pc-info{padding:20px}.pc-label{font-size:11px;letter-spacing:.12em;color:var(--accent-dark);margin:0 0 8px}.pc-info h4{font-size:18px;margin:0 0 8px}.pc-info>p:last-child{font-size:13px;color:var(--sub);margin:0}
.pc-note{font-size:12px;line-height:1.8;color:var(--sub);margin:20px 0 0}.pc-cta{margin-top:30px}
.pc-dialog{border:0;border-radius:16px;padding:24px;max-width:920px;width:calc(100% - 32px);max-height:90vh;overflow:auto;color:var(--ink);background:var(--paper)}
.pc-dialog::backdrop{background:rgba(25,22,18,.65)}.pc-dialog-head{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:16px}.pc-dialog-head p{font-weight:700;margin:0}.pc-dialog button{font:inherit;background:var(--soft);border:1px solid var(--line);border-radius:30px;padding:8px 18px;cursor:pointer;white-space:nowrap}
#pc-dialog-image{width:100%;max-height:65vh;object-fit:contain}
@media(max-width:800px){.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pc-tabs button{padding:12px 20px}}
@media(max-width:480px){.pc-tabs{gap:8px}.pc-tabs button{padding:12px 16px;flex:1;font-size:14px}.pc-tabs button span{display:block;margin:2px 0 0}.pc-grid{gap:12px}.pc-info{padding:14px}.pc-info h4{font-size:16px}.pc-thumbs{padding:8px;gap:4px;min-height:170px}.pc-zoom{padding:3px}.pc-zoom img{height:110px}.pc-zoom span{font-size:10px}.pc-placeholder{min-height:170px}.pc-placeholder span{padding:12px 15px}.pc-dialog{padding:16px}.pc-dialog-head p{font-size:13px}}

/* iPhone/Safari: explicit button appearance and compact plan layout. */
.plan-collection .pc-tabs button,
.plan-collection .pc-zoom,
.pc-dialog button{
  -webkit-appearance:none;appearance:none;
  background-image:none;box-shadow:none;text-shadow:none;
  font-family:inherit;letter-spacing:inherit;
  -webkit-tap-highlight-color:rgba(217,106,58,.12);
}
.plan-collection .pc-tabs button{
  border:1px solid #e5e0d8;border-radius:40px;
  background-color:#fff;color:#2d2b29;
}
.plan-collection .pc-tabs button[aria-selected="true"]{
  background-color:#2d2b29;border-color:#2d2b29;color:#fff;
}
.plan-collection .pc-card{background-color:#fff;border-radius:16px;overflow:hidden}
.plan-collection .pc-thumbs{
  display:flex;align-items:stretch;gap:10px;
  background-color:#faf7f2;padding:14px;min-width:0;
}
.plan-collection .pc-zoom{
  display:flex;flex:1 1 0;flex-direction:column;align-items:stretch;
  justify-content:flex-start;width:0;min-width:0;max-width:100%;
  margin:0;padding:0;border:1px solid #e5e0d8;border-radius:10px;
  overflow:hidden;background-color:#fff;color:#b84f24;
  text-align:center;line-height:1.5;cursor:zoom-in;
}
.plan-collection .pc-zoom img{
  display:block;flex:none;width:100%;max-width:100%;height:180px;
  object-fit:contain;margin:0;padding:10px;background-color:#fff;
}
.plan-collection .pc-zoom span{
  display:block;flex:none;width:100%;margin:0;padding:10px 6px;
  border-top:1px solid #eee7df;background-color:#fff;color:#b84f24;
  font-size:12px;font-weight:600;line-height:1.6;
  white-space:normal;overflow-wrap:anywhere;
}
.plan-collection .pc-info{background-color:#fff}
.pc-dialog button{background-color:#f4eee6;color:#2d2b29}
.pc-dialog{background-color:#fff;color:#2d2b29}
@media(max-width:600px){
  .plan-collection{margin-top:36px;padding-top:30px}
  .plan-collection .pc-heading{font-size:23px;line-height:1.6}
  .plan-collection .pc-lead{font-size:14px;line-height:1.9}
  .plan-collection .pc-grid{grid-template-columns:minmax(0,1fr);gap:18px}
  .plan-collection .pc-tabs{display:flex;gap:10px;margin:22px 0}
  .plan-collection .pc-tabs button{
    flex:1 1 0;min-width:0;min-height:48px;padding:11px 10px;
    font-size:14px;line-height:1.6;
  }
  .plan-collection .pc-tabs button span{display:inline;margin-left:5px;font-size:12px}
  .plan-collection .pc-thumbs{gap:10px;padding:12px;min-height:0}
  .plan-collection .pc-zoom img{height:200px;padding:8px}
  .plan-collection .pc-zoom:only-child img{height:220px;padding:12px}
  .plan-collection .pc-info{padding:18px}
  .plan-collection .pc-info h4{font-size:18px;line-height:1.6;margin:0 0 8px}
  .plan-collection .pc-label{font-size:11px;margin:0 0 8px}
  .plan-collection .pc-info>p:last-child{font-size:13px;line-height:1.8}
  .pc-dialog{max-height:85vh;max-height:85dvh;width:calc(100% - 24px);padding:14px}
  #pc-dialog-image{max-height:65vh;max-height:65dvh}
}
@media(max-width:350px){
  .plan-collection .pc-tabs button{font-size:13px;padding-inline:6px}
  .plan-collection .pc-tabs button span{font-size:11px;margin-left:3px}
  .plan-collection .pc-thumbs{gap:6px;padding:10px}
  .plan-collection .pc-zoom img{height:170px;padding:6px}
  .plan-collection .pc-zoom span{font-size:11px}
}
