
    :root {
      --brand: #4f9396;
      --brand-dark: #2f777b;
      --green: #1f5a3f;
      --ink: #151815;
      --white: #fff;
      --copy-left: clamp(64px, 7.2vw, 112px);
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--white);
      font-family: "Noto Sans JP", "Noto Sans Japanese", sans-serif;
      letter-spacing: 0;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    .first-view {
      position: relative;
      min-height: 100svh;
      overflow: hidden;
      background: var(--white);
    }

    .photo-area {
      position: absolute;
      inset: 0 0 0 23.5vw;
      margin: 0;
      background: #c5d2bd;
    }

    .photo-area::after {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(255, 255, 255, 0.02);
      pointer-events: none;
    }

    .photo-area img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      object-position: center;
      filter: sepia(0.16) saturate(0.86) contrast(0.96) brightness(0.98);
    }

    .logo-panel {
      position: absolute;
      inset: 0 auto 0 0;
      z-index: 3;
      width: 23.5vw;
      min-width: 300px;
      background: var(--white);
    }

    .logo {
      position: absolute;
      top: 68px;
      left: 50%;
      transform: translateX(-50%);
      display: block;
      width: 132px;
      height: 132px;
      background: var(--brand);
      mask: url("../assets/eguchi-garden-logo.png") center / contain no-repeat;
      -webkit-mask: url("../assets/eguchi-garden-logo.png") center / contain no-repeat;
    }

    .site-header {
      position: absolute;
      z-index: 4;
      top: 34px;
      right: clamp(24px, 3.4vw, 56px);
      left: calc(23.5vw + 26px);
      display: flex;
      align-items: flex-start;
      justify-content: flex-end;
      gap: clamp(16px, 1.8vw, 30px);
      color: var(--white);
      text-shadow: 0 2px 14px rgba(0, 0, 0, 0.28);
    }

    .global-nav {
      display: flex;
      gap: clamp(16px, 2vw, 34px);
      align-items: flex-start;
      font-size: 14px;
      font-weight: 500;
      line-height: 1.3;
      white-space: nowrap;
    }

    .global-nav span {
      display: block;
      margin-top: 6px;
      font-size: 10px;
      font-family: "Josefin Sans", sans-serif;
      font-weight: 400;
      letter-spacing: 0.1em;
      text-align: center;
      text-transform: uppercase;
    }
    .global-nav a { position:relative; display:block; padding:0 0 7px; transition:color .2s ease; }
    .global-nav a::after { position:absolute; right:50%; bottom:0; left:50%; height:1px; background:currentColor; content:""; transition:left .2s ease,right .2s ease; }
    .global-nav a:hover, .global-nav a:focus-visible { color:#dcead9; }
    .global-nav a:hover::after, .global-nav a:focus-visible::after { right:0; left:0; }

    .shop-links {
      display: flex;
      gap: 10px;
      margin-left: 4px;
    }

    .shop-links a {
      min-width: 130px;
      padding: 13px 17px;
      border: 2px solid rgba(255, 255, 255, 0.88);
      font-size: 13px;
      font-weight: 500;
      text-align: center;
      line-height: 1;
    }

    .hero-copy {
      position: relative;
      z-index: 3;
      min-height: 100svh;
      display: grid;
      align-content: center;
      padding: 190px 0 76px var(--copy-left);
    }

    .jp-catch {
      margin: 0 0 36px;
      color: var(--brand-dark);
      font-size: clamp(16px, 1.55vw, 22px);
      font-weight: 500;
      line-height: 1.6;
      letter-spacing: 0.04em;
      text-shadow: 0 1px 8px rgba(255, 255, 255, 0.62);
    }

    .english-main {
      margin: 0;
      color: var(--brand);
      text-shadow: 0 1px 12px rgba(255, 255, 255, 0.58);
      font-family: "Josefin Sans", sans-serif;
      font-size: clamp(46px, 5.6vw, 80px);
      font-weight: 400;
      line-height: 1.18;
      letter-spacing: 0.035em;
      text-transform: uppercase;
    }

    .english-main span {
      display: block;
      white-space: nowrap;
    }

    .english-main .line-2 {
      color: #eaf2ef;
      text-shadow: 0 4px 20px rgba(0, 0, 0, 0.26);
    }

    .lead {
      width: min(800px, 66vw);
      margin: 48px 0 0;
      padding-left: 0;
      color: var(--ink);
      font-size: clamp(15px, 1.35vw, 19px);
      font-weight: 500;
      line-height: 2.05;
      letter-spacing: 0.04em;
      text-shadow: 0 1px 12px rgba(255, 255, 255, 0.9);
    }

    .scroll {
      position: absolute;
      z-index: 4;
      right: 26px;
      top: 50%;
      display: inline-flex;
      align-items: center;
      gap: 18px;
      color: var(--ink);
      font-size: 12px;
      font-family: "Josefin Sans", sans-serif;
      font-weight: 400;
      letter-spacing: 0.08em;
      writing-mode: vertical-rl;
      text-transform: uppercase;
    }

    .scroll::after {
      content: "";
      width: 1px;
      height: 58px;
      background: var(--ink);
    }

    @media (max-width: 980px) {
      .photo-area {
        inset-left: 0;
      }

      .logo-panel {
        width: 210px;
        min-width: 210px;
        height: 116px;
        inset: 0 auto auto 0;
      }

      .logo {
        top: 24px;
        left: 26px;
        transform: none;
        width: 96px;
        height: 58px;
      }

      .site-header {
        top: 28px;
        left: 240px;
      }

      .global-nav {
        display: none;
      }

      .shop-links a {
        min-width: 104px;
        padding: 12px 14px;
      }

      .hero-copy {
        padding: 160px 22px 86px;
      }

      .jp-catch {
        margin-left: 0;
        color: var(--white);
        text-shadow: 0 3px 18px rgba(0, 0, 0, 0.34);
      }

      .english-main {
        color: var(--white);
        text-shadow: 0 4px 22px rgba(0, 0, 0, 0.24);
      }

      .lead {
        width: min(660px, 100%);
        color: var(--white);
        text-shadow: 0 3px 18px rgba(0, 0, 0, 0.34);
      }

      .scroll {
        color: var(--white);
      }

      .scroll::after {
        background: var(--white);
      }
    }

    @media (max-width: 620px) {
      .first-view::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        background: rgba(6, 28, 20, 0.28);
      }

      .photo-area {
        inset: 0;
      }

      .photo-area img {
        object-position: 58% center;
      }

      .logo-panel {
        width: 178px;
        height: 102px;
      }

      .logo {
        top: 20px;
        left: 22px;
        width: 88px;
        height: 54px;
      }

      .site-header {
        top: 26px;
        right: 18px;
        left: auto;
      }

      .shop-links a {
        min-width: 92px;
        padding: 11px 12px;
        font-size: 12px;
      }

      .hero-copy {
        align-content: end;
        padding: 148px 22px 76px;
      }

      .jp-catch {
        margin-bottom: 24px;
        font-size: 18px;
      }

      .english-main {
        font-size: clamp(42px, 15vw, 64px);
        line-height: 1.02;
      }

      .english-main span {
        white-space: normal;
      }

      .lead {
        margin-top: 30px;
        font-size: 15px;
        line-height: 1.9;
      }

      .scroll {
        display: none;
      }
    }
/* Keep the text color boundary aligned with the photo edge. */
    :root { --panel-width: max(300px, 23.5vw); }
    .photo-area { left: var(--panel-width); }
    .logo-panel { width: var(--panel-width); }
    .photo-area::after { background: rgba(8, 24, 17, .24); }
    .site-header { left: calc(var(--panel-width) + 24px); flex-wrap: wrap; }
    .shop-links { order: -1; width: 100%; justify-content: flex-end; }
    .global-nav { flex-wrap: wrap; row-gap: 14px; font-size: 14px; }
    .jp-catch, .english-main, .lead {
      width: calc(100% - 48px);
      background: linear-gradient(to right, var(--brand) 0, var(--brand) calc(var(--panel-width) - var(--copy-left)), #fff calc(var(--panel-width) - var(--copy-left)), #fff 100%);
      background-clip: text;
      -webkit-background-clip: text;
      color: transparent;
      -webkit-text-fill-color: transparent;
      text-shadow: none;
      letter-spacing: 0;
    }
    .jp-catch { font-size: 22px; line-height: 1.8; margin-bottom: 28px; }
    .english-main { font-size: 64px; line-height: 1.22; font-weight: 500; }
    .english-main .line-2 { color: inherit; text-shadow: none; }
    .lead { max-width: 720px; font-size: 18px; line-height: 2; margin-top: 36px; }
    .scroll { color: #fff; text-shadow: 0 1px 3px #183b2a; }
    .scroll::after { background: #fff; }
    @media (max-width: 1200px) and (min-width: 981px) {
      .english-main { font-size: 56px; }
      .global-nav { gap: 16px; font-size: 12px; }
    }
    @media (max-width: 980px) {
      .photo-area { left: 0; }
      .logo-panel { width: 210px; }
      .jp-catch, .english-main, .lead {
        background: none; color: #fff; -webkit-text-fill-color: #fff;
        text-shadow: 0 2px 4px rgba(0,0,0,.35);
        width: calc(100% - 20px);
      }
      .photo-area::after { background: rgba(8,24,17,.38); }
      .english-main { font-size: 52px; }
    }
    @media (max-width: 620px) {
      .first-view::before { display: none; }
      .logo-panel { width: 178px; min-width: 178px; }
      .jp-catch { font-size: 18px; }
      .english-main { font-size: 36px; line-height: 1.25; }
      .lead { font-size: 16px; margin-top: 26px; }
    }
    @media (max-width: 360px) { .english-main { font-size: 30px; } }
.garden-concept { padding: 110px 7.2% 100px; background: #fff; color: #203d30; scroll-margin-top: 24px; }
    .concept-inner { max-width: 1280px; margin: auto; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 8%; align-items: center; }
    .concept-label { margin: 0 0 24px; color: var(--brand-dark); font: 400 15px/1.4 "Josefin Sans", sans-serif; }
    .concept-title { margin: 0 0 32px; font-size: 34px; font-weight: 500; line-height: 1.75; }
    .concept-text { margin: 0 0 22px; color: #374b40; font-size: 15px; line-height: 2.25; }
    .concept-text span { display: block; }
    .concept-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 38px; min-height: 52px; margin-top: 12px; padding: 12px 0; border-bottom: 1px solid #2f777b; color: #285a46; font-size: 14px; }
    .concept-link:hover { color: #151815; border-bottom-color: #151815; }
    .concept-link:focus-visible { outline: 2px solid var(--brand-dark); outline-offset: 6px; }
    .concept-photo { margin: 0; align-self: center; }
    .concept-photo img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: 38% center; filter: sepia(.08) saturate(.9); }
    .concept-photo figcaption { margin-top: 16px; font: 400 13px/1.5 "Josefin Sans", sans-serif; color: #557165; }
    @media (max-width: 980px) {
      .garden-concept { padding: 80px 6%; }
      .concept-inner { gap: 6%; }
      .concept-title { font-size: 28px; }
      .concept-text { font-size: 14px; }
    }
    @media (max-width: 620px) {
      .garden-concept { padding: 60px 24px; }
      .concept-inner { grid-template-columns: minmax(0, 1fr); gap: 38px; }
      .concept-label { font-size: 13px; margin-bottom: 20px; }
      .concept-title { font-size: 26px; margin-bottom: 24px; }
      .concept-text { line-height: 2.1; }
      .concept-text span { display: inline; }
      .concept-photo img { aspect-ratio: 5/4; }
    }
    .concept-title, .concept-label, .concept-photo figcaption { color: var(--brand); }
    .concept-text, .concept-link { color: #151815; }
    .concept-link { border-bottom-color: var(--brand); }
.garden-features { padding: 96px 7.2% 104px; background: #f2f6f4; color: #151815; }
    .features-inner { max-width: 1280px; margin: auto; }
    .features-header { margin-bottom: 48px; }
    .features-header .concept-title { margin-bottom: 0; }
    .voice-title-wrap { display: flex; align-items: center; justify-content: center; gap: 24px; }
    .voice-boots { display: block; width: 76px; height: auto; flex-shrink: 0; filter: saturate(.42) brightness(.96); mix-blend-mode: multiply; transform: rotate(-8deg); }
    @media(max-width:620px) { .voice-title-wrap { gap: 14px; } .voice-boots { width: 52px; } }
    .features-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; }
    .feature { min-width: 0; }
    .feature-photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; filter: sepia(.08) saturate(.9); }
    .feature:nth-child(1) .feature-photo { object-position: 72% center; }
    .feature-number { display: block; margin: 26px 0 15px; color: var(--brand); font: 400 18px/1.4 "Josefin Sans",sans-serif; }
    .feature h3 { margin: 0 0 18px; color: var(--brand-dark); font-size: 22px; font-weight: 500; line-height: 1.7; }
    .feature p { font-size: 14px; line-height: 2.1; margin: 0; }
    .features-footer { margin-top: 42px; text-align: right; }
    @media(max-width:980px) { .garden-features { padding: 72px 6%; } .features-grid { gap: 22px; } .feature h3 { font-size: 19px; } }
    @media(max-width:620px) { .garden-features { padding: 60px 24px; } .features-header { margin-bottom: 32px; } .features-grid { grid-template-columns: minmax(0,1fr); gap: 38px; } .feature-photo { aspect-ratio: 5/3; } .feature h3 { font-size: 22px; } .feature-number { margin-top: 20px; } .features-footer { text-align: left; margin-top: 28px; } }
.garden-features { background: #fff; padding-top: 80px; }
    .features-inner { max-width: 1120px; }
    .features-header { text-align: center; margin-bottom: 72px; }
    .features-header .concept-title br { display: none; }
    .features-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 100px; }
    .feature {
      display: grid;
      grid-template-columns: minmax(0,1fr) minmax(0,1.08fr);
      grid-template-rows: auto auto 1fr;
      column-gap: 9%;
      align-items: start;
    }
    .feature-photo {
      grid-column: 2; grid-row: 1 / 4;
      aspect-ratio: 4/3;
      box-shadow: 22px 22px 0 -6px #e7efeb;
    }
    .feature-number { grid-column: 1; grid-row: 1; margin: 24px 0 20px; font-size: 16px; }
    .feature h3 { grid-column: 1; grid-row: 2; font-size: 24px; margin: 0 0 24px; }
    .feature p { grid-column: 1; grid-row: 3; font-size: 15px; line-height: 2.2; }
    .feature:nth-child(even) .feature-photo { grid-column: 1; box-shadow: -22px 22px 0 -6px #e7efeb; }
    .feature:nth-child(even) .feature-number,
    .feature:nth-child(even) h3,
    .feature:nth-child(even) p { grid-column: 2; }
    .features-footer { margin-top: 70px; text-align: center; }
    @media(max-width:980px) {
      .feature { column-gap: 7%; }
      .feature h3 { font-size: 21px; }
      .feature p { font-size: 14px; }
      .feature-number { margin-top: 0; }
      .features-grid { gap: 80px; }
    }
    @media(max-width:620px) {
      .features-header { margin-bottom: 42px; }
      .features-header .concept-title br { display: block; }
      .features-grid { gap: 60px; }
      .feature { grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto auto auto; }
      .feature .feature-photo { grid-column: 1; grid-row: 3; width: calc(100% - 12px); margin: 0 0 34px; box-shadow: 18px 18px 0 -6px #e7efeb; }
      .feature .feature-number { grid-column: 1; grid-row: 1; margin: 0 0 14px; }
      .feature h3 { grid-column: 1; grid-row: 2; font-size: 22px; }
      .feature p { grid-column: 1; grid-row: 4; }
      .feature:nth-child(even) .feature-photo { grid-column: 1; margin-left: 12px; box-shadow: -18px 18px 0 -6px #e7efeb; }
      .feature:nth-child(even) .feature-number,
      .feature:nth-child(even) h3,
      .feature:nth-child(even) p { grid-column: 1; }
      .features-footer { margin-top: 40px; }
    }
    .feature-photo { height: auto; aspect-ratio: 7 / 5; object-fit: cover; }
    .concept-photo img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
    .garden-concept { background: #f2f5ef; padding: 64px 5% 72px; overflow: hidden; }
    .garden-concept .concept-inner { display: block; position: relative; max-width: 1180px; }
    .garden-concept .concept-copy { position: relative; z-index: 1; width: 64%; max-width: 670px; margin: auto; text-align: center; }
    .garden-concept .concept-title { font-size: 30px; font-weight: 300; color: #151815; line-height: 1.7; margin-bottom: 38px; }
    .garden-concept .concept-title br { display: none; }
    .garden-concept .concept-label { font-size: 13px; margin-bottom: 24px; }
    .garden-concept .concept-text { font-size: 14px; line-height: 2.2; margin-bottom: 28px; }
    .garden-concept .concept-link { border: 1px solid #8ca99a; border-radius: 40px; background: #eaf1e7; padding: 14px 28px; min-height: 54px; margin-top: 0; }
    .concept-botanical { position: absolute; width: 11%; height: 145px; object-fit: contain; opacity: .62; filter: saturate(.78); pointer-events: none; }
    .concept-botanical.yellow { left: 0; top: 30px; transform: rotate(-12deg); }
    .concept-botanical.purple { right: 0; top: 0; transform: rotate(9deg); }
    .concept-botanical.leaves { left: 4%; bottom: 34px; transform: rotate(-9deg); }
    .concept-botanical.red { right: 2%; bottom: 20px; transform: rotate(10deg); }
    .concept-botanical.shears { left: 1%; top: 36px; width: 14%; height: 118px; object-fit:contain; mix-blend-mode:multiply; opacity:.88; filter:none; transform:rotate(-8deg); }
    .concept-botanical.wheelbarrow { right: 2%; bottom: 12px; width: 14%; height: 118px; object-fit:contain; mix-blend-mode:multiply; opacity:.88; filter:none; transform:rotate(4deg); }
    @media(max-width:760px) {
      .garden-concept { padding: 56px 24px 110px; }
      .garden-concept .concept-copy { width: 100%; }
      .garden-concept .concept-title { font-size: 25px; }
      .garden-concept .concept-title br { display: block; }
      .garden-concept .concept-text span { display: block; }
      .concept-botanical { width: 48px; height: 64px; }
      .concept-botanical.yellow { left: -10px; top: -22px; }
      .concept-botanical.purple { right: -10px; top: -22px; }
      .concept-botanical.leaves { left: 2px; bottom: -70px; width: 70px; height: 70px; }
      .concept-botanical.red { right: 0; bottom: -70px; height: 70px; }
      .concept-botanical.shears { left:-8px; top:-16px; width:64px; height:60px; transform:rotate(-8deg); }
      .concept-botanical.wheelbarrow { right:-8px; bottom:-72px; width:72px; height:62px; transform:rotate(4deg); }
    }
    .garden-concept { min-height: 100svh; padding-top: 120px; padding-bottom: 120px; display: flex; align-items: center; }
    .garden-concept .concept-inner { width: 100%; }
    @media(max-width:760px) { .garden-concept { padding-top: 100px; padding-bottom: 140px; } }
.garden-works { padding: 100px 7.2% 110px; background: #f2f5ef; color: #151815; }
    .works-inner { max-width: 1280px; margin: auto; }
    .works-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 42px; }
    .works-heading .concept-label { margin-bottom: 16px; }
    .works-title { font-size: 32px; font-weight: 300; line-height: 1.6; margin: 0; }
    .works-intro { max-width: 470px; margin: 0; font-size: 14px; line-height: 2.1; }
    .works-gallery { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 36px; }
    .work-item { margin: 0; min-width: 0; }
    .work-item:nth-child(2) { padding-top: 70px; }
    .work-item img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; filter: sepia(.08) saturate(.9); }
    .work-item figcaption { display: flex; align-items: baseline; gap: 18px; margin-top: 20px; }
    .work-number { font: 400 13px/1.5 "Josefin Sans",sans-serif; color: var(--brand-dark); }
    .work-name { margin: 0; font-size: 19px; font-weight: 400; line-height: 1.7; }
    .works-footer { text-align: center; margin-top: 48px; }
    @media(max-width:980px) { .garden-works { padding: 76px 6%; } .works-heading { align-items: start; flex-direction: column; gap: 20px; } .works-gallery { gap: 24px; } .work-name { font-size: 17px; } }
    @media(max-width:620px) { .garden-works { padding: 60px 24px; } .works-title { font-size: 27px; } .works-gallery { grid-template-columns: minmax(0,1fr); gap: 32px; } .work-item:nth-child(2) { padding-top: 0; } .work-item figcaption { margin-top: 14px; } .works-footer { margin-top: 30px; } }
    .feature-photo.plan-sketch { object-fit: contain; background: white; filter: none; }
    .works-heading { display: block; text-align: center; margin-bottom: 44px; }
    .works-heading .concept-label { font: 500 42px/1.3 "Josefin Sans", sans-serif; color: var(--brand); letter-spacing: 0; margin-bottom: 10px; }
    .works-title { font-size: 16px; font-weight: 500; }
    .works-intro { max-width: 850px; margin: 36px auto 0; }
    .works-gallery { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; }
    .work-item:nth-child(2) { padding-top: 0; }
    .work-item a { display: block; color: inherit; text-decoration: none; }
    .work-item a:focus-visible { outline: 2px solid var(--brand-dark); outline-offset: 5px; }
    .work-item img { aspect-ratio: 15/11; height: auto; filter: none; }
    .work-item figcaption { display: block; margin: -16px 0 0; position: relative; padding-right: 18px; }
    .work-tag { display: inline-block; background: white; color: var(--brand-dark); padding: 9px 14px; font-size: 12px; }
    .work-category-tag { display:inline-block; margin:0 6px 8px 0; padding:6px 10px; background:#e7efeb; color:#2f6566; font-size:11px; line-height:1.4; }
    .work-item figcaption .work-category-tag { margin:0 0 0 0; }
    .work-name { margin-top:10px; }
    .work-name { margin-top: 12px; padding-left: 20px; position: relative; font-size: 15px; line-height: 1.7; font-weight: 400; }
    .work-name::before { content: ""; position: absolute; left: 0; top: 12px; width: 11px; border-top: 1px solid; }
    .works-footer { margin-top: 76px; }
    .works-footer .concept-link { display: inline-flex; justify-content: center; width: 360px; max-width: 100%; min-height: 64px; border: 1px solid var(--brand-dark); border-radius: 0; background: white; padding: 18px 24px; color: var(--brand-dark); font-size: 14px; }
    @media(max-width:980px) { .works-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px 16px; } }
    @media(max-width:620px) { .works-heading .concept-label { font-size: 32px; } .works-intro { margin-top: 26px; } .works-gallery { grid-template-columns: minmax(0,1fr); gap: 32px; } .works-footer { margin-top: 40px; } }
    .garden-flow { padding: 110px 7.2% 120px; background: #fff; color: #151815; }
    .flow-inner { max-width: 1200px; margin: auto; }
    .flow-heading { text-align: center; margin-bottom: 64px; }
    .flow-label { margin: 0 0 12px; font: 500 42px/1.3 "Josefin Sans", sans-serif; color: var(--brand); letter-spacing: 0; }
    .flow-heading h2 { margin: 0; font-size: 22px; font-weight: 400; line-height: 1.7; }
    .flow-intro { margin: 24px auto 0; font-size: 14px; line-height: 2; }
    .flow-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 52px 44px; }
    .flow-step { border-top: 1px solid #cbded7; padding-top: 22px; min-width: 0; }
    .flow-number { display: block; margin-bottom: 18px; font: 400 15px/1.5 "Josefin Sans", sans-serif; color: var(--brand-dark); }
    .flow-step h3 { font-size: 20px; font-weight: 400; margin: 0 0 14px; line-height: 1.7; }
    .flow-step p { font-size: 14px; line-height: 2; margin: 0; }
    @media(max-width:980px) { .flow-steps { gap: 38px 28px; } .flow-step h3 { font-size: 18px; } }
    @media(max-width:760px) { .garden-flow { padding: 76px 24px 84px; } .flow-label { font-size: 32px; } .flow-heading { margin-bottom: 42px; } .flow-heading h2 { font-size: 20px; } .flow-steps { grid-template-columns: repeat(2,minmax(0,1fr)); } }
    @media(max-width:480px) { .flow-steps { grid-template-columns: minmax(0,1fr); gap: 28px; } .flow-number { margin-bottom: 10px; } }
    .garden-flow { background: #f2f5ef; padding: 80px 7.2% 100px; }
    .flow-inner { max-width: 1120px; }
    .flow-heading { margin-bottom: 56px; }
    .flow-steps { display: grid; grid-template-columns: minmax(0,1fr); gap: 32px; padding-left: 10px; }
    .flow-step { position: relative; display: grid; grid-template-columns: minmax(240px,36%) minmax(0,1fr); gap: 32px; align-items: center; min-height: 142px; padding: 32px 40px 32px 104px; background: #fff; border: 0; }
    .flow-number { position: absolute; left: -10px; top: -10px; width: 72px; height: 72px; display: flex; align-items: center; justify-content: center; margin: 0; background: var(--brand); color: #fff; font: 400 42px/1 "Josefin Sans",sans-serif; padding-top: 6px; }
    .flow-step h3 { display: flex; align-items: center; justify-content: center; min-height: 76px; margin: 0; padding: 16px 20px; background: #eaf1ed; color: var(--brand-dark); font-size: 20px; font-weight: 500; line-height: 1.7; text-align: center; overflow-wrap: anywhere; }
    .flow-step p { font-size: 14px; line-height: 2; }
    .flow-step:not(:last-child)::after { content: ""; position: absolute; bottom: -12px; left: calc(50% - 14px); border-left: 14px solid transparent; border-right: 14px solid transparent; border-top: 12px solid #fff; }
    @media(max-width:760px) { .garden-flow { padding: 64px 24px 76px; } .flow-step { grid-template-columns: minmax(0,1fr); gap: 20px; padding: 64px 22px 28px; } .flow-number { width: 56px; height: 56px; font-size: 34px; } .flow-step h3 { min-height: 64px; font-size: 18px; padding: 14px 16px; } }
    .garden-voice { padding: 110px 7.2% 120px; background: #fff; color: #151815; text-align: center; }
    .voice-inner { max-width: 1120px; margin: auto; position: relative; padding: 0 160px; }
    .voice-label { margin: 0 0 12px; font: 500 42px/1.3 "Josefin Sans",sans-serif; color: var(--brand); letter-spacing: 0; }
    .voice-title { margin: 0; font-size: 22px; font-weight: 400; line-height: 1.7; }
    .voice-intro { max-width: 640px; margin: 32px auto 38px; font-size: 14px; line-height: 2.2; }
    .voice-link { display: inline-flex; align-items: center; justify-content: center; gap: 28px; width: 360px; max-width: 100%; min-height: 64px; padding: 16px 20px; color: var(--brand-dark); border: 1px solid var(--brand-dark); text-decoration: none; font-size: 14px; background: #fff; }
    .voice-link:hover { background: #f2f5ef; }
    .voice-link:focus-visible { outline: 2px solid var(--brand-dark); outline-offset: 5px; }
    .voice-flower { position: absolute; width: 120px; height: 190px; object-fit: contain; pointer-events: none; opacity: .6; }
    .voice-flower.left { left: 0; top: 30px; transform: rotate(-10deg); }
    .voice-flower.right { right: 0; bottom: 0; transform: rotate(8deg); }
    @media(max-width:760px) { .garden-voice { padding: 76px 24px 100px; } .voice-inner { padding: 0; } .voice-label { font-size: 32px; } .voice-title { font-size: 20px; } .voice-intro { max-width: 460px; } .voice-flower { width: 42px; height: 70px; } .voice-flower.left { left: 0; top: -18px; } .voice-flower.right { right: 0; bottom: -80px; } }
    .garden-about { padding: 110px 7.2% 120px; background: #fff; color: #151815; }
    .about-inner { max-width: 1120px; margin: auto; }
    .about-heading { text-align: center; margin-bottom: 60px; }
    .about-label { margin: 0 0 12px; font: 500 42px/1.3 "Josefin Sans",sans-serif; color: var(--brand); letter-spacing: 0; }
    .about-heading h2 { font-size: 22px; font-weight: 400; line-height: 1.7; margin: 0; }
    .about-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 8%; align-items: start; }
    .about-portrait { margin: 0; padding-bottom: 20px; }
    .about-portrait img { display: block; width: 100%; height: auto; box-shadow: -18px 18px 0 #e7efeb; }
    .about-message { font-size: 16px; line-height: 2.2; margin: 0 0 30px; }
    .about-name { margin: 0 0 8px; font-size: 24px; font-weight: 400; }
    .about-name-en { margin: 0 0 26px; color: var(--brand-dark); font: 400 14px/1.5 "Josefin Sans",sans-serif; }
    .about-profile { margin: 0 0 28px; font-size: 13px; line-height: 2; }
    .about-profile div { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 16px; padding: 14px 0; border-top: 1px solid #dce5df; }
    .about-profile dt { color: var(--brand-dark); }
    .about-profile dd { margin: 0; }
    .about-link { display: inline-flex; gap: 40px; align-items: center; border-bottom: 1px solid var(--brand); color: var(--brand-dark); padding: 8px 0 12px; font-size: 14px; text-decoration: none; }
    @media(max-width:760px) { .garden-about { padding: 76px 24px 84px; } .about-label { font-size: 32px; } .about-heading h2 { font-size: 20px; } .about-heading { margin-bottom: 38px; } .about-layout { grid-template-columns: minmax(0,1fr); gap: 30px; } .about-portrait { width: calc(100% - 18px); margin-left: 18px; max-width: 500px; } .about-message { font-size: 15px; } }
    .garden-blog { padding: 100px 7.2% 110px; background: #f2f5ef; color: #151815; }
    .blog-inner { max-width: 1120px; margin: auto; }
    .blog-heading { text-align: center; margin-bottom: 48px; }
    .blog-label { margin: 0 0 12px; font: 500 42px/1.3 "Josefin Sans",sans-serif; color: var(--brand); letter-spacing: 0; }
    .blog-heading h2 { margin: 0; font-size: 22px; font-weight: 400; line-height: 1.7; }
    .blog-intro { max-width: 740px; margin: 28px auto 0; font-size: 14px; line-height: 2.2; }
    .blog-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid #ccd9d0; }
    .blog-list li { border-bottom: 1px solid #ccd9d0; }
    .blog-article { display: grid; grid-template-columns: 100px 148px minmax(0,1fr) 20px; gap: 24px; align-items: center; padding: 28px 16px; color: inherit; text-decoration: none; }
    .blog-article:hover { background: #fff; }
    .blog-article:focus-visible { outline: 2px solid var(--brand-dark); outline-offset: 3px; }
    .blog-date { font: 400 14px/1.5 "Josefin Sans",sans-serif; color: #515b53; }
    .blog-category { color: var(--brand-dark); font-size: 12px; line-height: 1.5; }
    .blog-article h3 { margin: 0; font-size: 15px; line-height: 1.9; font-weight: 400; overflow-wrap: anywhere; }
    .blog-arrow { color: var(--brand-dark); }
    .blog-footer { text-align: center; margin-top: 44px; }
    .blog-link { display: inline-flex; align-items: center; justify-content: center; gap: 40px; width: 360px; max-width: 100%; min-height: 64px; border: 1px solid var(--brand-dark); color: var(--brand-dark); background: white; text-decoration: none; padding: 16px 24px; font-size: 14px; }
    .blog-link:hover { background: #e7efeb; }
    @media(max-width:760px) { .garden-blog { padding: 76px 24px 84px; } .blog-label { font-size: 32px; } .blog-heading h2 { font-size: 20px; } .blog-article { grid-template-columns: 100px minmax(0,1fr) 20px; gap: 10px 16px; padding: 22px 0; } .blog-article h3 { grid-column: 1/3; grid-row: 2; } .blog-arrow { grid-column: 3; grid-row: 1/3; } }
    .garden-access { padding: 100px 7.2% 110px; background: #fff; color: #151815; }
    .access-inner { max-width: 1120px; margin: auto; }
    .access-heading { text-align: center; margin-bottom: 52px; }
    .access-label { margin: 0 0 12px; font: 500 42px/1.3 "Josefin Sans",sans-serif; color: var(--brand); letter-spacing: 0; }
    .access-heading h2 { margin: 0; font-size: 22px; font-weight: 400; line-height: 1.7; }
    .access-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 7%; align-items: center; }
    .access-map { width: 100%; height: 380px; border: 0; display: block; background: #f2f5ef; }
    .access-name { font-size: 24px; font-weight: 400; margin: 0 0 24px; }
    .access-address { font-style: normal; font-size: 14px; line-height: 2.2; }
    .access-address a { color: inherit; text-decoration: none; }
    .access-address a:hover { text-decoration: underline; }
    .access-area { margin-top: 24px; padding-top: 22px; border-top: 1px solid #dce5df; }
    .access-area h3 { font-size: 15px; color: var(--brand-dark); font-weight: 500; margin: 0 0 10px; }
    .access-area p { font-size: 14px; line-height: 2; margin: 0; }
    .access-map-link { display: inline-flex; align-items: center; gap: 26px; color: var(--brand-dark); font-size: 14px; text-decoration: none; border-bottom: 1px solid var(--brand); padding: 12px 0; margin-top: 14px; }
    @media(max-width:760px) { .garden-access { padding: 76px 24px 84px; } .access-label { font-size: 32px; } .access-heading h2 { font-size: 20px; } .access-layout { grid-template-columns: minmax(0,1fr); gap: 34px; } .access-map { height: 300px; } }
    .garden-social { background: #f5efe5; color: #151815; padding: 76px 24px 84px; text-align: center; }
    .social-inner { max-width: 800px; margin: auto; }
    .social-label { margin: 0 0 20px; font: 400 32px/1.4 "Josefin Sans",sans-serif; color: var(--brand); letter-spacing: 0; }
    .social-title { margin: 0 0 30px; font-size: 24px; line-height: 1.8; font-weight: 400; }
    .social-link { display: inline-flex; align-items: center; justify-content: center; gap: 28px; width: 360px; max-width: 100%; padding: 18px 24px; min-height: 64px; border: 1px solid var(--brand-dark); color: var(--brand-dark); background: #fff; text-decoration: none; font-size: 14px; }
    .social-link:hover { background: #e7efeb; }
    .social-link:focus-visible { outline: 2px solid var(--brand-dark); outline-offset: 5px; }
    .social-account { margin: 16px 0 0; font: 400 14px/1.6 "Josefin Sans",sans-serif; color: var(--brand-dark); }
    @media(max-width:620px) { .garden-social { padding: 60px 24px 68px; } .social-label { font-size: 28px; } .social-title { font-size: 20px; } }
    .garden-footer { background: #2f6566; color: #fff; padding: 64px 7.2% 26px; }
    .footer-inner { max-width: 1120px; margin: auto; }
    .footer-main { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 72px; padding-bottom: 44px; }
    .footer-brand { display: flex; align-items: flex-start; gap: 28px; }
    .footer-logo { display: block; flex: 0 0 110px; width: 110px; height: 110px; background: #fff; mask: url("../assets/eguchi-garden-logo.png") center/contain no-repeat; -webkit-mask: url("../assets/eguchi-garden-logo.png") center/contain no-repeat; }
    .footer-name { margin: 8px 0 16px; font-size: 18px; font-weight: 400; }
    .footer-address { font-style: normal; font-size: 12px; line-height: 2.2; }
    .garden-footer a { color: inherit; }
    .footer-address a { text-decoration: none; }
    .footer-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 28px; }
    .footer-nav a { font-size: 13px; text-decoration: none; line-height: 1.8; }
    .footer-nav a:hover, .footer-group a:hover { text-decoration: underline; }
    .footer-contact { margin-top: 28px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; border: 1px solid #b9d2cf; text-decoration: none; font-size: 14px; }
    .footer-contact:hover { background: #ffffff12; }
    .footer-group { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; padding: 24px 0; border-top: 1px solid #ffffff40; border-bottom: 1px solid #ffffff40; }
    .footer-group h2 { margin: 0 12px 0 0; font-size: 13px; font-weight: 400; }
    .footer-group a { font-size: 12px; text-decoration: none; }
    .footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-top: 24px; }
    .footer-bottom small { font-size: 11px; }
    .footer-top { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; text-decoration: none; font-size: 24px; }
    .garden-footer a:focus-visible { outline: 2px solid white; outline-offset: 5px; }
    @media(max-width:760px) { .garden-footer { padding: 48px 24px 20px; } .footer-main { grid-template-columns: minmax(0,1fr); gap: 36px; } .footer-brand { gap: 20px; } .footer-logo { flex-basis: 90px; width: 90px; height: 90px; } .footer-group h2 { flex-basis: 100%; } }
    /* Shared action style across content sections and footer. */
    :root body a:is(.concept-link, .voice-link, .about-link, .blog-link, .social-link, .access-map-link, .footer-contact) {
      box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center;
      position: relative; width: 360px; max-width: 100%; min-height: 64px;
      padding: 18px 48px; gap: 0; border: 1px solid var(--brand-dark); border-radius: 0;
      background: #fff; color: var(--brand-dark); font-size: 14px; font-weight: 400;
      line-height: 1.7; text-align: center; text-decoration: none; letter-spacing: 0;
    }
    :root body a:is(.concept-link, .voice-link, .about-link, .blog-link, .social-link, .access-map-link, .footer-contact) > span {
      position: absolute; right: 22px; font-size: 0;
    }
    :root body a:is(.concept-link, .voice-link, .about-link, .blog-link, .social-link, .access-map-link, .footer-contact) > span::after {
      content: "\2192"; font-size: 18px;
    }
    :root body a:is(.concept-link, .voice-link, .about-link, .blog-link, .social-link, .access-map-link, .footer-contact):hover {
      background: #e7efeb; color: var(--brand-dark); border-color: var(--brand-dark);
    }
    :root body a:is(.concept-link, .voice-link, .about-link, .blog-link, .social-link, .access-map-link, .footer-contact):focus-visible {
      outline: 2px solid var(--brand-dark); outline-offset: 5px;
    }
    /* Text-led concept rows with a consistent reading axis. */
    .garden-features .features-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
    .garden-features .feature {
      grid-template-columns: 110px minmax(0,1fr) 210px;
      grid-template-rows: auto auto; gap: 18px 36px;
      padding: 48px 0; border-top: 1px solid #dce5df; align-items: start;
    }
    .garden-features .feature:last-child { border-bottom: 1px solid #dce5df; }
    .garden-features .feature .feature-number {
      grid-column: 1; grid-row: 1 / 3; margin: 5px 0 0; font-size: 15px; line-height: 1.8;
    }
    .garden-features .feature h3 {
      grid-column: 2; grid-row: 1; margin: 0; font-size: 24px; font-weight: 400; line-height: 1.7;
    }
    .garden-features .feature h3 br { display: none; }
    .garden-features .feature p {
      grid-column: 2; grid-row: 2; margin: 0; font-size: 15px; line-height: 2.2;
    }
    .garden-features .feature .feature-photo {
      grid-column: 3; grid-row: 1 / 3; width: 100%; height: auto; aspect-ratio: 7/5;
      margin: 4px 0 0; box-shadow: none; align-self: center;
    }
    .garden-features .features-footer { text-align: center; margin-top: 48px; }
    @media(max-width:980px) {
      .garden-features .feature { grid-template-columns: 90px minmax(0,1fr) 150px; column-gap: 24px; }
      .garden-features .feature h3 { font-size: 22px; }
    }
    @media(max-width:620px) {
      .garden-features .feature { grid-template-columns: minmax(0,1fr) 100px; gap: 16px 18px; padding: 32px 0; }
      .garden-features .feature .feature-number { grid-column: 1; grid-row: 1; margin: 0; font-size: 14px; }
      .garden-features .feature h3 { grid-column: 1; grid-row: 2; font-size: 20px; }
      .garden-features .feature p { grid-column: 1 / -1; grid-row: 3; font-size: 14px; }
      .garden-features .feature .feature-photo { grid-column: 2; grid-row: 1 / 3; margin: 0; }
    }
    .garden-features .features-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
    .garden-features .feature { grid-template-columns: minmax(0,1fr); grid-template-rows: auto 82px auto 1fr; gap: 20px; padding: 0; border: 0; }
    .garden-features .feature:last-child { border: 0; }
    .garden-features .feature .feature-number { grid-column: 1; grid-row: 1; margin: 0; text-align: center; }
    .garden-features .feature h3 { grid-column: 1; grid-row: 2; font-size: 21px; text-align: center; align-self: center; }
    .garden-features .feature h3 br { display: block; }
    .garden-features .feature .feature-photo { grid-column: 1; grid-row: 3; margin: 0; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; object-position: center; filter: none; box-shadow: none; }
    .garden-features .feature p { grid-column: 1; grid-row: 4; font-size: 14px; line-height: 2.1; }
    .feature-image-note { margin: 20px 0 0; text-align: right; font-size: 11px; color: #626c65; }
    @media(max-width:980px) { .garden-features .features-grid { gap: 22px; } .garden-features .feature h3 { font-size: 18px; } .garden-features .feature { grid-template-rows: auto 92px auto 1fr; } }
    @media(max-width:760px) { .garden-features .features-grid { grid-template-columns: minmax(0,1fr); gap: 52px; max-width: 520px; margin: auto; } .garden-features .feature { grid-template-rows: auto auto auto auto; } .garden-features .feature h3 { font-size: 22px; } }

    .garden-recruit { padding:48px 24px; background:#f2f6f4; }
    .recruit-inner { max-width:1120px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:32px; }
    .recruit-label { margin:0 0 14px; color:var(--brand-dark); font:400 14px/1.4 "Josefin Sans",sans-serif; }
    .garden-recruit h2 { margin:0 0 14px; font-size:26px; font-weight:400; line-height:1.7; }
    .recruit-copy { margin:0; font-size:14px; line-height:2; }
    .recruit-link { display:flex; align-items:center; justify-content:space-between; gap:32px; flex-shrink:0; min-height:56px; padding:16px 24px; border:1px solid var(--brand-dark); color:var(--brand-dark); font-size:14px; background:#fff; }
    .recruit-link:hover { background:#e7efeb; }
    .recruit-link:focus-visible { outline:2px solid var(--brand-dark); outline-offset:5px; }
    @media(max-width:760px) { .recruit-inner { display:block; } .garden-recruit h2 { font-size:23px; } .recruit-link { margin-top:24px; width:fit-content; max-width:100%; } }
  

    .menu-toggle { display:none; }
    @media(max-width:980px) {
      .site-header { top:18px; right:18px; left:auto; z-index:10; align-items:center; }
      .menu-toggle { display:flex; width:48px; height:48px; flex:0 0 48px; flex-direction:column; justify-content:center; align-items:center; gap:5px; border:1px solid rgba(255,255,255,.8); background:rgba(37,76,56,.88); color:#fff; cursor:pointer; }
      .menu-toggle span { display:block; width:21px; height:1px; background:currentColor; transition:transform .2s,opacity .2s; }
      .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(6px) rotate(45deg); }
      .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
      .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-6px) rotate(-45deg); }
      .global-nav, .site-header .global-nav { display:none; }
      .global-nav.is-open { position:absolute; top:58px; right:0; display:flex; width:min(340px,calc(100vw - 36px)); flex-direction:column; align-items:stretch; gap:0; padding:10px 20px; border:1px solid rgba(255,255,255,.5); background:rgba(35,70,51,.97); color:#fff; text-shadow:none; white-space:normal; }
      .global-nav.is-open a { padding:12px 0; border-bottom:1px solid rgba(255,255,255,.22); }
      .global-nav.is-open a:last-child { border-bottom:0; }
      .global-nav.is-open span { margin-top:3px; text-align:left; }
      .shop-links { display:none; }
    }
    @media(prefers-reduced-motion:reduce) { .menu-toggle span,.global-nav a,.global-nav a::after { transition:none; } }
  
    .garden-site-footer { background: #2f6566; color: #fff; padding: 64px 7.2% 26px; }
    .site-footer-inner { max-width: 1120px; margin: auto; }
    .site-footer-main { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 72px; padding-bottom: 44px; }
    .site-footer-brand { display: flex; align-items: flex-start; gap: 28px; }
    .site-footer-logo { display: block; flex: 0 0 110px; width: 110px; height: 110px; background: #fff; mask: url("../assets/eguchi-garden-logo.png") center/contain no-repeat; -webkit-mask: url("../assets/eguchi-garden-logo.png") center/contain no-repeat; }
    .site-footer-name { margin: 8px 0 16px; font-size: 18px; font-weight: 400; }
    .site-footer-address { font-style: normal; font-size: 12px; line-height: 2.2; }
    .garden-site-footer a { color: inherit; }
    .site-footer-address a { text-decoration: none; }
    .site-footer-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 28px; }
    .site-footer-nav a { font-size: 13px; text-decoration: none; line-height: 1.8; }
    .site-footer-nav a:hover, .site-footer-group a:hover { text-decoration: underline; }
    .site-footer-contact { margin-top: 28px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; border: 1px solid #b9d2cf; text-decoration: none; font-size: 14px; }
    .site-footer-contact:hover { background: #ffffff12; }
    .site-footer-group { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; padding: 24px 0; border-top: 1px solid #ffffff40; border-bottom: 1px solid #ffffff40; }
    .site-footer-group h2 { margin: 0 12px 0 0; font-size: 13px; font-weight: 400; }
    .site-footer-group a { font-size: 12px; text-decoration: none; }
    .site-footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-top: 24px; }
    .site-footer-bottom small { font-size: 11px; }
    .site-footer-top { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; text-decoration: none; font-size: 24px; }
    .garden-site-footer a:focus-visible { outline: 2px solid white; outline-offset: 5px; }
    @media(max-width:760px) { .garden-site-footer { padding: 48px 24px 20px; } .site-footer-main { grid-template-columns: minmax(0,1fr); gap: 36px; } .site-footer-brand { gap: 20px; } .site-footer-logo { flex-basis: 90px; width: 90px; height: 90px; } .site-footer-group h2 { flex-basis: 100%; } }

.garden-site-footer { font-family:"Noto Sans JP",sans-serif; letter-spacing:0; }
.garden-site-footer .site-footer-inner { display:block; }
.garden-site-footer p.site-footer-name { margin:8px 0 16px; font-size:18px; line-height:1.8; }
.garden-site-footer nav { justify-content:start; color:white; }
.garden-site-footer h2 { line-height:1.8; }
.garden-site-footer small { color:white; margin:0; }
.garden-site-footer a.site-footer-contact { width:360px; max-width:100%; min-height:64px; box-sizing:border-box; justify-content:center; background:white; color:#2f777b; border:1px solid #2f777b; }
.garden-site-footer a.site-footer-contact:hover { background:#e7efeb; color:#2f777b; }
.site-contact { position:relative; isolation:isolate; padding:0 24px 72px; margin-top:68px; background:#e1eadd; color:#151815; text-align:center; font-family:"Noto Sans JP",sans-serif; letter-spacing:0; }
.site-contact::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(#e1eaddbb,#e1eaddbb),url("../assets/garden-planting-75.jpg") center/cover; }
.site-contact-inner { max-width:1120px; margin:auto; }
.site-contact h2 { position:relative; top:-25px; margin:0; font:400 48px/1.2 "Josefin Sans",sans-serif; color:#2f777b; }
.site-contact .site-contact-subtitle { margin:-8px 0 28px; font-size:16px; line-height:1.8; }
.site-contact .site-contact-lead { margin:0 0 40px; font-size:14px; line-height:2; }
.site-contact-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.site-contact-option { background:#ffffffde; padding:36px 24px; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.site-contact-option h3 { margin:0 0 24px; font:400 16px/1.5 "Josefin Sans",sans-serif; }
.site-contact-option .site-contact-phone { font:400 34px/1.5 "Josefin Sans",sans-serif; color:#2f777b; text-decoration:none; white-space:nowrap; }
.site-contact-option p { margin:12px 0 0; font-size:12px; line-height:1.8; }
.site-contact-option .site-contact-button { display:flex; align-items:center; justify-content:center; gap:20px; width:360px; max-width:100%; min-height:64px; padding:16px; box-sizing:border-box; background:white; color:#2f777b; border:1px solid #2f777b; font-size:14px; text-decoration:none; }
.site-contact-button:hover { background:#e7efeb!important; }
.site-contact a:focus-visible { outline:2px solid #2f777b; outline-offset:5px; }
@media(max-width:760px) { .site-contact { padding:0 24px 48px; } .site-contact h2 { font-size:36px; top:-19px; } .site-contact-options { grid-template-columns:minmax(0,1fr); gap:20px; } .site-contact-option { padding:28px 16px; } .site-contact-option .site-contact-phone { font-size:28px; } }


.material-illustration { display:block; width:104px; height:104px; object-fit:contain; mix-blend-mode:multiply; }
.blog-material { margin:0 auto 24px; }
.care-material { width:88px; height:88px; margin:0 0 20px; }
.construction-photo { margin:28px 0 0; }
.construction-photo img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.project-materials { max-width:1200px; margin:0 auto; padding:0 24px 88px; }
.project-materials h2 { margin:0 0 28px; font-size:24px; font-weight:300; }
.project-materials-grid { display:grid; grid-template-columns:2fr 1fr; gap:20px; }
.project-materials-grid figure { margin:0; min-width:0; }
.project-materials-grid img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.project-materials-grid figure:last-child img { aspect-ratio:3/4; }
.project-materials-grid figcaption { padding-top:12px; font-size:13px; line-height:1.8; }
@media(max-width:620px) {
  .material-illustration { width:76px; height:76px; }
  .project-materials { padding-bottom:56px; }
  .project-materials h2 { font-size:21px; }
  .project-materials-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  .project-materials-grid figure:last-child img { aspect-ratio:3/2; }
}
.photo-area .hero-slide[hidden] { display:none; }
.hero-photo-controls { position:absolute; right:24px; bottom:24px; z-index:5; display:flex; gap:8px; }
.hero-photo-controls button { width:44px; height:44px; padding:0; border:1px solid #fff; border-radius:50%; background:#fff; color:#2f777b; font:500 14px "Josefin Sans",sans-serif; cursor:pointer; }
.hero-photo-controls button[aria-pressed="true"] { background:#2f777b; color:#fff; }
.hero-photo-controls button:focus-visible { outline:3px solid #151815; outline-offset:3px; }
