@charset "UTF-8";



/* ==================================================

   基本設定・共通パーツ / 各ページ / レスポンシブ

   元の宣言順と数値を維持

================================================== */





/* ---------- 01. 共通設定 ---------- */

:root {

    --navy: #294b2b;

    --blue: #78a83b;

    --light-blue: #f1f7e8;

    --text: #2f3a2f;

    --muted: #6f7b6a;

    --line: #dce6d3;

    --white: #fff;

    --max: 1120px;

}



\* {

    box-sizing: border-box;

}



html {

    scroll-behavior: smooth;

}



body {

    margin: 0;

    line-height: 1.8;

    font-family: "Noto Sans JP", sans-serif;

    color: var(--text);

    background: #fff;

}



a {

    color: inherit;

    text-decoration: none;

}



.container {

    width: min(calc(100% - 40px), var(--max));

    margin: 0 auto;

}





/* ---------- 02. ヘッダー ---------- */

.header {

    position: sticky;

    top: 0;

    z-index: 20;

    background: rgba(255,255,255,.96);

    border-bottom: 1px solid rgba(220,230,211,.8);

    backdrop-filter: blur(10px);

}



.header-inner {

    min-height: 76px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

}



.logo {

    display: flex;

    align-items: center;

    gap: 12px;

}



.logo > span:last-child {

    display: grid;

    line-height: 1.2;

}



.logo strong {

    font-size: 16px;

    letter-spacing: .04em;

}



.logo small {

    margin-top: 4px;

    font-size: 9px;

    letter-spacing: .12em;

    color: var(--muted);

}



.logo-mark {

    width: 38px;

    height: 38px;

    display: grid;

    place-items: center;

    border-radius: 10px;

    color: #fff;

    font-weight: 800;

    background: linear-gradient(135deg, #9ac94b, #416b32);

    transform: rotate(45deg);

}



.logo-mark::first-letter {

    transform: rotate(-45deg);

}



.logo-mark {

    font-size: 17px;

}



.logo-mark.small {

    width: 30px;

    height: 30px;

    font-size: 13px;

}



.nav {

    display: flex;

    align-items: center;

    gap: 8px;

}



.nav a {

    padding: 25px 14px;

    font-size: 13px;

    font-weight: 600;

    position: relative;

}



.nav a:hover, .nav a.active {

    color: var(--blue);

}



.nav a.active::after {

    content: "";

    position: absolute;

    left: 14px;

    right: 14px;

    bottom: 0;

    height: 3px;

    background: var(--blue);

}



.nav .nav-contact {

    margin-left: 8px;

    padding: 11px 18px;

    color: #fff;

    border-radius: 5px;

    background: var(--navy);

}



.nav .nav-contact::after {

    display: none;

}



.menu-button {

    display: none;

}





/* ---------- 03. ヒーロー・共通 ---------- */

.hero {

    min-height: 570px;

    position: relative;

    overflow: hidden;

    display: flex;

    align-items: center;

    background: #f3f8e9;

}



.hero-bg {

    position: absolute;

    inset: 0;

    background: radial-gradient(circle at 75% 25%, rgba(255,255,255,.95) 0 7%, transparent 24%), linear-gradient(110deg, rgba(243,248,233,.98) 0%, rgba(243,248,233,.75) 38%, rgba(166,201,108,.22) 100%);

}



.hero-bg::before {

    content: "";

    position: absolute;

    width: 72%;

    height: 68%;

    right: -8%;

    bottom: -10%;

    background: linear-gradient(90deg, transparent 0 8%, rgba(65,107,50,.28) 8% 11%, transparent 11% 20%, rgba(65,107,50,.35) 20% 25%, transparent 25% 35%, rgba(65,107,50,.24) 35% 43%, transparent 43% 52%, rgba(65,107,50,.32) 52% 59%, transparent 59% 70%, rgba(65,107,50,.24) 70% 78%, transparent 78%);

    clip-path: polygon(0 45%, 8% 42%, 8% 28%, 18% 28%, 18% 12%, 28% 12%, 28% 35%, 38% 35%, 38% 7%, 49% 7%, 49% 25%, 60% 25%, 60% 0, 72% 0, 72% 18%, 84% 18%, 84% 8%, 96% 8%, 96% 35%, 100% 35%, 100% 100%, 0 100%);

    opacity: .8;

}



.hero-content {

    position: relative;

    z-index: 1;

    padding: 80px 0;

}



.eyebrow, .section-kicker {

    color: var(--blue);

    font-size: 12px;

    font-weight: 800;

    letter-spacing: .2em;

    margin: 0 0 10px;

}



.hero h1 {

    margin: 0;

    color: var(--navy);

    font-family: Georgia, "Noto Serif JP", serif;

    font-size: clamp(38px, 5vw, 62px);

    line-height: 1.35;

    letter-spacing: .04em;

}



.hero-text {

    margin: 25px 0 30px;

    color: #66735f;

    font-size: 15px;

}



.button {

    font-family: "Noto Sans JP", sans-serif;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 24px;

    min-width: 175px;

    padding: 13px 20px;

    border-radius: 4px;

    font-size: 13px;

    font-weight: 700;

    transition: .2s ease;

}



.button span {

    font-size: 18px;

}



.button-primary {

    color: #fff;

    background: var(--blue);

}



.button-primary:hover {

    transform: translateY(-2px);

    background: #648f35;

}



.button-outline {

    color: var(--blue);

    border: 1px solid var(--blue);

    margin-top: 12px;

}



.button-outline:hover {

    color: #fff;

    background: var(--blue);

}





/* ---------- 04. お知らせ ---------- */

.news {

    padding: 100px 0;

    border-bottom: 1px solid var(--line);

    background: #fff;

}



.news-inner {

    display: grid;

    grid-template-columns: 190px 1fr;

    gap: 35px;

    padding: 0;

}



.section-label h2 {

    margin: 0;

    font-size: 22px;

}



.section-label span {

    color: var(--blue);

    font-size: 10px;

    letter-spacing: .16em;

}



.news-item {

    display: grid;

    grid-template-columns: 105px 80px 1fr 25px;

    align-items: center;

    gap: 15px;

    padding: 8px 0;

    border-bottom: 1px solid #eef3ea;

    font-size: 13px;

}



.news-item:last-child {

    border-bottom: 0;

}



.news-item time {

    color: var(--muted);

}



.news-item p {

    margin: 0;

}



.tag {

    color: var(--blue);

    font-size: 11px;

}



.arrow {

    color: var(--blue);

    text-align: right;

}



.section {

    padding: 100px 0;

}



.contact h2 {

    margin: 0 0 22px;

    color: var(--navy);

    font-size: 38px;

    line-height: 1.4;

}





/* ---------- 05. お問い合わせ・導線 ---------- */

.contact {

    color: #294b2b;

    background: #f3f7ed;

    padding: 100px 0;

}



.contact-inner {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 30px;

}



.contact .section-kicker {

    color: #78a83b;

}



.contact h2 {

    color: #294b2b;

    margin-bottom: 8px;

}



.contact p {

    margin: 0;

    color: #6f7b6a;

    font-size: 13px;

}



.button-white {

    color: #ffffff;

    background: #365b32;

}



.button-white:hover {

    color: #ffffff;

    background: #294b2b;

    transform: translateY(-2px);

}





/* ---------- 06. フッター ---------- */

.footer {

    color: #d6e0cf;

    background: #294b2b;

}



.footer-top {

    padding: 35px 0;

    display: flex;

    justify-content: space-between;

    gap: 30px;

}



.footer-logo strong {

    color: #fff;

}



.footer-links {

    display: flex;

    flex-wrap: wrap;

    gap: 20px;

    align-items: center;

    font-size: 11px;

}



.footer-links a:hover {

    color: #fff;

}



.copyright {

    padding: 15px 0;

    border-top: 1px solid rgba(255,255,255,.12);

    text-align: right;

    font-size: 10px;

}





/* ---------- レスポンシブ (max-width: 800px) ---------- */

@media (max-width: 800px) {

    .header-inner {

        min-height: 64px;

    }



    .menu-button {

        display: flex;

        flex-direction: column;

        gap: 5px;

        width: 42px;

        height: 42px;

        align-items: center;

        justify-content: center;

        border: 0;

        background: transparent;

    }



    .menu-button span {

        width: 22px;

        height: 2px;

        background: var(--navy);

    }



    .nav {

        display: none;

        position: absolute;

        top: 64px;

        left: 0;

        right: 0;

        flex-direction: column;

        align-items: stretch;

        padding: 10px 20px 20px;

        background: #fff;

        box-shadow: 0 8px 20px rgba(0,0,0,.08);

    }



    .nav.open {

        display: flex;

    }



    .nav a, .nav .nav-contact {

        padding: 13px 10px;

        margin: 0;

    }



    .nav a.active::after {

        left: 10px;

        right: auto;

        width: 30px;

        bottom: 5px;

    }



    .hero {

        min-height: 610px;

    }



    .hero-content {

        padding: 60px 0;

    }



    .hero-bg::before {

        width: 120%;

        right: -25%;

        opacity: .55;

    }



    .news-inner {

        grid-template-columns: 1fr;

        gap: 30px;

    }



    .news-inner {

        padding: 0;

    }



    .news-item {

        grid-template-columns: 85px 60px 1fr 20px;

        gap: 8px;

    }



    .section {

        padding: 70px 0;

    }



    .news, .contact, .access {

        padding: 70px 0;

    }



    .contact-inner, .footer-top {

        flex-direction: column;

        align-items: flex-start;

    }



    .footer-links {

        gap: 12px 18px;

    }



    .copyright {

        text-align: left;

    }



}





/* ---------- レスポンシブ (max-width: 520px) ---------- */

@media (max-width: 520px) {

    .container {

        width: min(calc(100% - 28px), var(--max));

    }



    .logo strong {

        font-size: 14px;

    }



    .hero h1 {

        font-size: 35px;

    }



    .hero-text br {

        display: none;

    }



    .news-item {

        grid-template-columns: 1fr 20px;

    }



    .news-item .tag {

        display: none;

    }



    .news-item p {

        grid-column: 1;

        grid-row: 2;

    }



    .news-item .arrow {

        grid-column: 2;

        grid-row: 1 / span 2;

    }



    .contact h2 {

        font-size: 30px;

    }



}





/* ---------- 07. お問い合わせフォーム ---------- */

.contact-page {

    padding: 80px 0 100px;

}



.contact-page h1 {

    margin-bottom: 15px;

    font-size: 40px;

    color: #294b2b;

}



.contact-form {

    margin-top: 50px;

    border-top: 1px solid #dddddd;

}



.form-row {

    display: grid;

    grid-template-columns: 220px 1fr;

    gap: 30px;

    padding: 25px 0;

    border-bottom: 1px solid #dddddd;

}



.form-row label {

    font-weight: 700;

}



.form-row label span {

    color: #d33;

}



.form-row input, .form-row select, .form-row textarea {

    width: 100%;

    padding: 12px 15px;

    border: 1px solid #cccccc;

    border-radius: 4px;

    font: inherit;

}



.form-row textarea {

    resize: vertical;

}



.form-submit {

    margin-top: 40px;

    text-align: center;

}





/* ---------- 08. 確認画面 ---------- */

.confirm-table {

    margin-top: 50px;

    border-top: 1px solid #dddddd;

}



.confirm-row {

    display: grid;

    grid-template-columns: 220px 1fr;

    border-bottom: 1px solid #dddddd;

}



.confirm-label {

    padding: 25px;

    background: #f6f9f1;

    font-weight: 700;

}



.confirm-value {

    padding: 25px;

    word-break: break-word;

}



.confirm-buttons {

    display: flex;

    justify-content: center;

    gap: 20px;

    margin-top: 50px;

}





/* ---------- レスポンシブ (max-width: 768px) ---------- */

@media (max-width: 768px) {

    .form-row {

        grid-template-columns: 1fr;

        gap: 10px;

    }



    .confirm-row {

        grid-template-columns: 1fr;

    }



    .confirm-label {

        padding: 15px;

    }



    .confirm-value {

        padding: 15px;

    }



    .confirm-buttons {

        flex-direction: column;

    }



}



.news-list {

    margin-top: 40px;

    max-height: 420px;

    overflow-y: auto;

    overflow-x: hidden;

    padding-right: 15px;

}



.news-item {

    padding: 25px 10px;

    border-bottom: 1px solid #ddd;

}



.news-item:first-child {

    border-top: 1px solid #ddd;

}





/* ---------- 09. アクセス ---------- */

.access {

    padding: 100px 0;

    background: #f7faf2;

}



.access-grid {

    display: grid;

    grid-template-columns: 1fr 1.6fr;

    gap: 50px;

    align-items: start;

    margin-top: 40px;

}



.access-info h3 {

    margin-top: 0;

    margin-bottom: 20px;

    font-size: 24px;

    color: #294b2b;

}



.access-info p {

    margin-bottom: 20px;

    line-height: 1.8;

}



.access-map iframe {

    display: block;

    width: 100%;

    border-radius: 8px;

}





/* ---------- レスポンシブ (max-width: 768px) ---------- */

@media (max-width: 768px) {

    .access-grid {

        grid-template-columns: 1fr;

        gap: 30px;

    }



    .access-map iframe {

        height: 300px;

    }



}



.access {

    padding: 100px 0;

    background: #365b32;

    color: #ffffff;

}



.access .section-kicker {

    color: #b9dd79;

}



.access h2 {

    color: #ffffff;

}



.access-info h3 {

    color: #ffffff;

}



.access-info p {

    color: #edf4e8;

}



.access-mobile {

    margin: 20px 0 25px;

    padding: 20px 24px;

    background: #ffffff;

    border-left: 5px solid #9ac94b;

    border-radius: 6px;

}



.access-tel-label {

    display: block;

    margin-bottom: 3px;

    color: #648f35;

    font-size: 13px;

    font-weight: 700;

    letter-spacing: 0.08em;

}



.access-mobile-number {

    display: block;

    color: #294b2b;

    font-size: 30px;

    font-weight: 700;

    line-height: 1.4;

    text-decoration: none;

}



.access-mobile-number:hover {

    color: #78a83b;

}



.access-tel-hours {

    display: block;

    margin-top: 4px;

    color: #6f7b6a;

    font-size: 12px;

}



.access-info .access-fixed-tel {

    margin: 0 0 20px;

    color: #edf4e8;

    font-size: 14px;

    font-weight: 400;

}



.header-logo {

    width: 48px;

    height: 48px;

    object-fit: contain;

    display: block;

}





/* ---------- 10. ごあいさつ（旧） ---------- */

.tax-message {

    padding: 100px 0 130px;

    background: #f7faf2;

}



.tax-message-heading {

    max-width: 720px;

    margin-bottom: 50px;

}



.tax-message-heading h2 {

    margin: 0;

    color: #294b2b;

    font-size: 36px;

    line-height: 1.55;

    letter-spacing: 0.03em;

}



.tax-message-grid {

    display: grid;

    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);

    gap: 70px;

    align-items: start;

}



.tax-message-copy {

    max-width: 680px;

}



.tax-message-copy p {

    margin: 0 0 25px;

    color: #5f6e59;

    font-size: 15px;

    line-height: 2;

}



.tax-message-copy p:first-child {

    color: #294b2b;

    font-size: 17px;

    font-weight: 700;

}



.tax-message-copy .message-strong {

    color: #294b2b;

    font-size: 16px;

    font-weight: 700;

}



.tax-message-photo {

    position: relative;

    max-width: 400px;

    margin-top: 70px;

    margin-left: auto;

}



.tax-message-photo img {

    display: block;

    width: 100%;

    height: 500px;

    object-fit: cover;

    object-position: center top;

    border-radius: 8px;

}



.tax-message-name {

    position: absolute;

    right: -20px;

    bottom: -25px;

    min-width: 210px;

    padding: 16px 22px;

    background: #ffffff;

    border-left: 4px solid #9ac94b;

    border-radius: 4px;

    box-shadow: 0 8px 25px rgba(41, 75, 43, 0.12);

}



.tax-message-name span {

    display: block;

    color: #78a83b;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 0.1em;

}



.tax-message-name strong {

    display: block;

    margin-top: 3px;

    color: #294b2b;

    font-size: 20px;

}





/* ---------- レスポンシブ (max-width: 768px) ---------- */

@media (max-width: 768px) {

    .tax-message {

        padding: 70px 0 100px;

    }



    .tax-message-heading {

        margin-bottom: 35px;

    }



    .tax-message-heading h2 {

        font-size: 28px;

    }



    .tax-message-grid {

        grid-template-columns: 1fr;

        gap: 45px;

    }



    .tax-message-copy {

        max-width: none;

    }



    .tax-message-copy p {

        margin-bottom: 22px;

        font-size: 14px;

        line-height: 1.95;

    }



    .tax-message-copy p:first-child {

        font-size: 16px;

    }



    .tax-message-photo {

        width: 100%;

        max-width: 380px;

        margin: 20px auto 0;

    }



    .tax-message-photo img {

        height: auto;

        aspect-ratio: 4 / 5;

    }



    .tax-message-name {

        right: 10px;

        bottom: -25px;

    }



}



.footer-logo {

    display: flex;

    align-items: center;

    gap: 12px;

}



.footer-logo-image {

    width: 44px;

    height: 44px;

    object-fit: contain;

    display: block;

}



.footer-logo-text {

    display: flex;

    flex-direction: column;

    line-height: 1.3;

}



.footer-logo-text strong {

    color: #ffffff;

    font-size: 16px;

    letter-spacing: 0.04em;

}



.footer-logo-text small {

    margin-top: 4px;

    color: #d6e0cf;

    font-size: 8px;

    letter-spacing: 0.12em;

}





/* ---------- 11. 対応業務 ---------- */

.services-section {

    position: relative;

    width: 100%;

    padding: 105px 0 120px;

    background: #ffffff;

}



.services-container {

    width: min(1120px, calc(100% - 80px));

    margin: 0 auto;

}



.services-heading {

    margin-bottom: 48px;

    text-align: center;

}



.services-kicker {

    margin: 0 0 10px;

    color: #78a83b;

    font-size: 10px;

    font-weight: 700;

    line-height: 1;

    letter-spacing: 0.22em;

}



.services-heading h2 {

    margin: 0;

    color: #294b2b;

    font-size: 34px;

    font-weight: 600;

    line-height: 1.5;

    letter-spacing: 0.06em;

}



.services-lead {

    margin: 18px 0 0;

    color: #6f7b6a;

    font-size: 14px;

    font-weight: 400;

    line-height: 1.8;

    letter-spacing: 0.04em;

}



.services-grid {

    display: grid;

    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 28px 24px;

}



.service-card {

    display: block;

    min-width: 0;

    color: #294b2b;

    background: #ffffff;

    border: 1px solid #e1e9dc;

    border-radius: 4px;

    text-decoration: none;

    overflow: hidden;

    box-shadow: 0 3px 12px rgba(41, 75, 43, 0.05);

    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;

}



.service-image {

    position: relative;

    width: 100%;

    aspect-ratio: 16 / 9;

    background: #f1f5ed;

    overflow: hidden;

}



.service-image img {

    display: block;

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition: transform 0.55s ease;

}



.service-image::after {

    content: "";

    position: absolute;

    inset: 0;

    background: rgba(247, 250, 241, 0.05);

    pointer-events: none;

}



.service-body {

    padding: 19px 20px 21px;

}



.service-title-row {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

}



.service-title-row h3 {

    margin: 0;

    color: #294b2b;

    font-size: 17px;

    font-weight: 700;

    line-height: 1.5;

    letter-spacing: 0.03em;

}



.service-arrow {

    flex-shrink: 0;

    color: #294b2b;

    font-size: 24px;

    font-weight: 400;

    line-height: 1;

    transition: transform 0.3s ease, color 0.3s ease;

}



.service-body p {

    margin: 8px 0 0;

    color: #6f7b6a;

    font-size: 12px;

    font-weight: 400;

    line-height: 1.7;

}



.service-card:hover {

    color: #294b2b;

    border-color: rgba(120, 168, 59, 0.45);

    transform: translateY(-5px);

    box-shadow: 0 13px 30px rgba(41, 75, 43, 0.10);

}



.service-card:hover .service-image img {

    transform: scale(1.045);

}



.service-card:hover .service-arrow {

    color: #78a83b;

    transform: translateX(4px);

}





/* ---------- レスポンシブ (max-width: 900px) ---------- */

@media (max-width: 900px) {

    .services-section {

        padding: 85px 0 95px;

    }



    .services-container {

        width: calc(100% - 50px);

    }



    .services-grid {

        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 22px;

    }



    .services-heading h2 {

        font-size: 30px;

    }



}





/* ---------- レスポンシブ (max-width: 600px) ---------- */

@media (max-width: 600px) {

    .services-section {

        padding: 65px 0 75px;

    }



    .services-container {

        width: calc(100% - 32px);

    }



    .services-heading {

        margin-bottom: 35px;

    }



    .services-heading h2 {

        font-size: 27px;

    }



    .services-lead {

        margin-top: 14px;

        font-size: 13px;

    }



    .services-grid {

        grid-template-columns: 1fr;

        gap: 18px;

    }



    .service-body {

        padding: 17px 18px 19px;

    }



    .service-title-row h3 {

        font-size: 16px;

    }



    .service-body p {

        font-size: 12px;

    }



}





/* ---------- 12. 料金案内 ---------- */

.price-summary {

    padding: 100px 0;

    background: #f1f7e8;

}



.price-summary .container {

    max-width: 1120px;

}



.price-summary .section-kicker {

    margin: 0 0 10px;

    color: #78a83b;

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 0.2em;

}



.price-summary h2 {

    margin: 0 0 25px;

    color: #294b2b;

    font-size: 38px;

    line-height: 1.4;

    letter-spacing: 0.03em;

}



.price-summary p:not(.section-kicker) {

    max-width: 680px;

    margin: 0 0 10px;

    color: #5f6e59;

    font-size: 15px;

    line-height: 1.9;

}



.price-summary .button {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-width: 190px;

    margin-top: 30px;

    padding: 15px 30px;

    color: #ffffff;

    background: #365b32;

    border-radius: 5px;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: 0.05em;

    text-decoration: none;

    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;

}



.price-summary .button:hover {

    color: #ffffff;

    background: #294b2b;

    transform: translateY(-3px);

    box-shadow: 0 10px 25px rgba(41, 75, 43, 0.18);

}





/* ---------- レスポンシブ (max-width: 768px) ---------- */

@media (max-width: 768px) {

    .price-summary {

        padding: 70px 0;

    }



    .price-summary h2 {

        margin-bottom: 20px;

        font-size: 30px;

    }



    .price-summary p:not(.section-kicker) {

        font-size: 14px;

        line-height: 1.85;

    }



    .price-summary .button {

        margin-top: 25px;

        padding: 14px 26px;

        font-size: 14px;

    }



}



input, select, textarea {

    font-family: "Noto Sans JP", sans-serif;

}





/* ---------- 03. ヒーロー・共通 ---------- */

.hero {

    position: relative;

    width: 100%;

    margin: 0;

    padding: 0;

    background: #f7faf1;

    overflow: hidden;

}





/* ---------- 13. ヒーロースライダー ---------- */

.hero-slider {

    position: relative;

    width: 100%;

    height: 720px;

    background: #f7faf1;

    overflow: hidden;

}



.hero-slide {

    position: absolute;

    inset: 0;

    width: 100%;

    height: 100%;

    background: #f7faf1;

    opacity: 0;

    visibility: hidden;

    transition: opacity 1.5s ease, visibility 1.5s ease;

}



.hero-slide.active {

    z-index: 1;

    opacity: 1;

    visibility: visible;

}



.hero-slide > img {

    position: absolute;

    top: 0;

    left: 50%;

    width: 84%;

    height: 100%;

    object-fit: cover;

    object-position: center center;

    transform: translateX(-50%);

    filter: brightness(1.04) saturate(0.96) contrast(0.97);

    -webkit-mask-image: linear-gradient( to right, transparent 0%, rgba(0, 0, 0, 0.15) 3%, rgba(0, 0, 0, 0.45) 7%, rgba(0, 0, 0, 0.75) 11%, black 17%, black 83%, rgba(0, 0, 0, 0.75) 89%, rgba(0, 0, 0, 0.45) 93%, rgba(0, 0, 0, 0.15) 97%, transparent 100% );

    mask-image: linear-gradient( to right, transparent 0%, rgba(0, 0, 0, 0.15) 3%, rgba(0, 0, 0, 0.45) 7%, rgba(0, 0, 0, 0.75) 11%, black 17%, black 83%, rgba(0, 0, 0, 0.75) 89%, rgba(0, 0, 0, 0.45) 93%, rgba(0, 0, 0, 0.15) 97%, transparent 100% );

    transition: transform 9s ease;

}



.hero-slide.active > img {

    transform: translateX(-50%) scale(1.008);

}



.hero-slide.active > img {

    transform: translateX(-50%) scale(1.008);

}



.hero-overlay {

    position: absolute;

    inset: 0;

    z-index: 1;

    pointer-events: none;

    background: linear-gradient( 90deg, rgba(247, 250, 241, 0.90) 0%, rgba(247, 250, 241, 0.65) 18%, rgba(247, 250, 241, 0.25) 32%, rgba(247, 250, 241, 0) 48% );

}



.hero-content {

    position: absolute;

    inset: 0;

    z-index: 2;

    width: 100%;

    height: 100%;

    pointer-events: none;

}



.hero-content-inner {

    display: flex;

    flex-direction: column;

    justify-content: center;

    align-items: flex-start;

    width: min(1370px, calc(100% - 120px));

    height: 100%;

    margin: 0 auto;

    padding-bottom: 115px;

    box-sizing: border-box;

    pointer-events: auto;

}



.hero-kicker {

    margin: 0 0 14px;

    color: #78a83b;

    font-size: 10px;

    font-weight: 700;

    line-height: 1.5;

    letter-spacing: 0.22em;

}



.hero-content h1 {

    max-width: 620px;

    margin: 0;

    color: #294b2b;

    font-size: clamp(34px, 2.7vw, 46px);

    font-weight: 600;

    line-height: 1.5;

    letter-spacing: 0.035em;

    word-break: keep-all;

}



.hero-description {

    margin: 18px 0 0;

    color: #485746;

    font-size: 13px;

    font-weight: 400;

    line-height: 1.9;

    letter-spacing: 0.02em;

}



.hero-pagination {

    position: absolute;

    left: 50%;

    bottom: 145px;

    z-index: 10;

    display: flex;

    align-items: center;

    width: min(1370px, calc(100% - 120px));

    gap: 9px;

    color: #294b2b;

    font-size: 9px;

    font-weight: 700;

    transform: translateX(-50%);

    pointer-events: none;

}



.pagination-line {

    position: relative;

    display: block;

    width: 45px;

    height: 1px;

    background: rgba(41, 75, 43, 0.30);

    overflow: hidden;

}



.pagination-progress {

    position: absolute;

    top: 0;

    left: 0;

    width: 0;

    height: 100%;

    background: #294b2b;

}



.hero-services {

    position: absolute;

    left: 50%;

    bottom: 18px;

    z-index: 20;

    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));

    width: min(1370px, calc(100% - 120px));

    margin: 0;

    background: rgba(239, 247, 235, 0.76);

    border: 1px solid rgba(255, 255, 255, 0.60);

    border-radius: 9px;

    backdrop-filter: blur(8px);

    -webkit-backdrop-filter: blur(8px);

    box-shadow: 0 10px 30px rgba(41, 75, 43, 0.10);

    transform: translateX(-50%);

    overflow: hidden;

}



.hero-service {

    position: relative;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    min-width: 0;

    min-height: 108px;

    gap: 8px;

    padding: 12px 15px;

    box-sizing: border-box;

    color: #294b2b;

    font-size: 13px;

    font-weight: 700;

    line-height: 1.5;

    text-align: center;

    text-decoration: none;

    transition: background 0.3s ease, transform 0.3s ease;

}



.hero-service:not(:last-child)::after {

    content: "";

    position: absolute;

    top: 25%;

    right: 0;

    width: 1px;

    height: 50%;

    background: rgba(41, 75, 43, 0.14);

}



.hero-service-icon {

    display: block;

    color: #78a83b;

    font-size: 23px;

    font-weight: 400;

    line-height: 1;

    transition: transform 0.3s ease;

}



.hero-service:hover {

    color: #294b2b;

    background: rgba(255, 255, 255, 0.42);

}



.hero-service:hover .hero-service-icon {

    transform: translateY(-3px);

}





/* ---------- レスポンシブ (max-width: 1100px) ---------- */

@media (max-width: 1100px) {

    .hero-slider {

        height: 650px;

    }



    .hero-slide > img {

        width: 92%;

    }



    .hero-content-inner {

        width: calc(100% - 80px);

        padding-bottom: 110px;

    }



    .hero-content h1 {

        font-size: 40px;

    }



    .hero-pagination {

        width: calc(100% - 80px);

    }



    .hero-services {

        width: calc(100% - 80px);

    }



}





/* ---------- レスポンシブ (max-width: 768px) ---------- */

@media (max-width: 768px) {

    .hero {

        overflow: visible;

    }



    .hero-slider {

        height: 580px;

    }



    .hero-slide > img {

        top: 0;

        left: 50%;

        width: 100%;

        height: 100%;

        object-fit: cover;

        object-position: center;

        transform: translateX(-50%);

    }



    .hero-slide.active > img {

        transform: translateX(-50%) scale(1.005);

    }



    .hero-overlay {

        background: linear-gradient( 180deg, rgba(247, 250, 241, 0.97) 0%, rgba(247, 250, 241, 0.92) 22%, rgba(247, 250, 241, 0.78) 40%, rgba(247, 250, 241, 0.45) 58%, rgba(247, 250, 241, 0.15) 75%, rgba(247, 250, 241, 0.02) 100% );

    }



    .hero-content-inner {

        justify-content: flex-start;

        width: 100%;

        margin: 0;

        padding: 55px 24px 90px;

        box-sizing: border-box;

    }



    .hero-kicker {

        margin-bottom: 11px;

        font-size: 9px;

    }



    .hero-content h1 {

        max-width: 100%;

        font-size: clamp( 29px, 8vw, 35px );

        line-height: 1.5;

    }



    .hero-description {

        margin-top: 15px;

        font-size: 12px;

        line-height: 1.8;

    }



    .hero-button {

        min-width: 160px;

        margin-top: 18px;

        padding: 11px 19px;

        font-size: 11px;

    }



    .hero-button span {

        margin-left: 20px;

        font-size: 13px;

    }



    .hero-pagination {

        left: 24px;

        bottom: 24px;

        width: auto;

        font-size: 9px;

        transform: none;

    }



    .hero-services {

        position: relative;

        left: auto;

        bottom: auto;

        grid-template-columns: repeat(2, 1fr);

        width: 100%;

        margin: 0;

        background: rgba(239, 247, 235, 0.92);

        border-radius: 0;

        transform: none;

        box-shadow: 0 8px 25px rgba(41, 75, 43, 0.08);

    }



    .hero-service {

        min-height: 92px;

        padding: 12px 10px;

        gap: 7px;

        font-size: 12px;

        border-bottom: 1px solid rgba(41, 75, 43, 0.10);

    }



    .hero-service:nth-child(even)::after {

        display: none;

    }



    .hero-service-icon {

        font-size: 21px;

    }



}





/* ---------- レスポンシブ (max-width: 480px) ---------- */

@media (max-width: 480px) {

    .hero-slider {

        height: 550px;

    }



    .hero-content-inner {

        padding: 48px 20px 90px;

    }



    .hero-content h1 {

        font-size: 28px;

    }



    .hero-description {

        font-size: 12px;

    }



    .hero-pagination {

        left: 20px;

    }



}





/* ---------- 14. ごあいさつ ---------- */

.message-section {

    position: relative;

    width: 100%;

    padding: 110px 0 120px;

    background: linear-gradient( 90deg, #f7faf1 0%, #f7faf1 48%, #f2f7ed 100% );

    overflow: hidden;

}



.message-inner {

    position: relative;

    display: grid;

    grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.95fr);

    align-items: center;

    width: min(1200px, calc(100% - 100px));

    margin: 0 auto;

    gap: 90px;

}



.message-content {

    position: relative;

    z-index: 2;

}



.message-kicker {

    margin: 0 0 10px;

    color: #78a83b;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 0.22em;

}



.message-title {

    margin: 0 0 36px;

    color: #294b2b;

    font-size: 17px;

    font-weight: 700;

    letter-spacing: 0.08em;

}



.message-heading {

    margin: 0 0 40px;

    color: #294b2b;

    font-size: clamp(26px, 2vw, 34px);

    font-weight: 600;

    line-height: 1.65;

    letter-spacing: 0.02em;

    max-width: 700px;

    word-break: keep-all;

}



.message-text {

    max-width: 620px;

    color: #536050;

    font-size: 13px;

    line-height: 2;

}



.message-text p {

    margin: 0 0 20px;

}



.message-text p:last-child {

    margin-bottom: 0;

}



.message-text strong {

    color: #294b2b;

    font-weight: 700;

}



.message-photo-area {

    position: relative;

    align-self: center;

    width: 100%;

}



.message-photo {

    position: relative;

    width: 100%;

    max-width: 500px;

    margin-left: auto;

    border-radius: 4px;

    overflow: hidden;

}



.message-photo img {

    display: block;

    width: 100%;

    height: 610px;

    object-fit: cover;

    object-position: center top;

}



.message-photo::after {

    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background: linear-gradient( 90deg, rgba(247, 250, 241, 0.65) 0%, rgba(247, 250, 241, 0.30) 7%, rgba(247, 250, 241, 0.08) 14%, rgba(247, 250, 241, 0) 24% );

}



.message-name {

    position: absolute;

    right: -20px;

    bottom: -28px;

    z-index: 3;

    display: flex;

    flex-direction: column;

    min-width: 210px;

    padding: 20px 24px;

    box-sizing: border-box;

    background: rgba(255, 255, 255, 0.96);

    border-left: 3px solid #78a83b;

    box-shadow: 0 12px 30px rgba(41, 75, 43, 0.12);

}



.message-name span {

    margin-bottom: 6px;

    color: #78a83b;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 0.05em;

}



.message-name strong {

    color: #294b2b;

    font-size: 20px;

    font-weight: 700;

    letter-spacing: 0.05em;

}



.message-section::after {

    content: "";

    position: absolute;

    top: 80px;

    right: -180px;

    width: 500px;

    height: 500px;

    border-radius: 50%;

    background: rgba(120, 168, 59, 0.035);

    pointer-events: none;

}





/* ---------- レスポンシブ (max-width: 1000px) ---------- */

@media (max-width: 1000px) {

    .message-section {

        padding: 90px 0 100px;

    }



    .message-inner {

        width: calc(100% - 70px);

        grid-template-columns: minmax(0, 1fr) minmax(300px, 0.8fr);

        gap: 55px;

    }



    .message-heading {

        font-size: 30px;

    }



    .message-photo img {

        height: 540px;

    }



}





/* ---------- レスポンシブ (max-width: 768px) ---------- */

@media (max-width: 768px) {

    .message-section {

        padding: 70px 0 90px;

    }



    .message-inner {

        display: flex;

        flex-direction: column;

        width: calc(100% - 40px);

        gap: 45px;

    }



    .message-content {

        width: 100%;

    }



    .message-title {

        margin-bottom: 25px;

    }



    .message-heading {

        margin-bottom: 30px;

        font-size: 27px;

        line-height: 1.6;

    }



    .message-text {

        max-width: none;

        font-size: 13px;

        line-height: 1.9;

    }



    .message-photo-area {

        width: 100%;

        margin-top: 10px;

    }



    .message-photo {

        width: 100%;

        max-width: none;

    }



    .message-photo img {

        width: 100%;

        height: auto;

        max-height: none;

        object-fit: contain;

    }



    .message-name {

        position: relative;

        right: auto;

        bottom: auto;

        width: calc(100% - 30px);

        min-width: 0;

        margin: -20px 0 0 auto;

        padding: 17px 20px;

    }



}





/* ---------- レスポンシブ (max-width: 480px) ---------- */

@media (max-width: 480px) {

    .message-section {

        padding: 60px 0 75px;

    }



    .message-inner {

        width: calc(100% - 32px);

    }



    .message-kicker {

        font-size: 9px;

    }



    .message-title {

        font-size: 15px;

    }



    .message-heading {

        font-size: 24px;

    }



    .message-text {

        font-size: 12px;

        line-height: 1.9;

    }



    .message-name strong {

        font-size: 18px;

    }



}



.hero-services {

    display: grid;

    grid-template-columns: repeat(6, minmax(0, 1fr));

}



.hero-service {

    min-width: 0;

    text-align: center;

    padding: 20px 8px;

}



.hero-service > span:last-child {

    font-size: 13px;

    line-height: 1.6;

    white-space: normal;

}





/* ---------- レスポンシブ (max-width: 900px) ---------- */

@media (max-width: 900px) {

    .hero-services {

        grid-template-columns: repeat(3, minmax(0, 1fr));

    }



}





/* ---------- レスポンシブ (max-width: 600px) ---------- */

@media (max-width: 600px) {

    .hero-services {

        grid-template-columns: repeat(2, minmax(0, 1fr));

    }



    .hero-service {

        padding: 12px 6px;

    }



    .hero-service > span:last-child {

        font-size: 11px;

    }



}





/* ---------- 15. 料金案内ラベル ---------- */

.hero-price-guide {

    position: absolute;

    left: 10%;

    bottom: 125px;

    transform: none;

    z-index: 10;

    display: flex;

    align-items: center;

    gap: 8px;

    padding: 8px 14px;

    background: rgba(247, 250, 241, 0.92);

    border-radius: 6px;

    color: #294b2b;

    font-size: 13px;

    font-weight: 700;

    letter-spacing: 0.04em;

    white-space: nowrap;

}



.hero-price-guide-arrow {

    color: #78a83b;

    font-size: 18px;

    animation: heroArrowMove 1.8s ease-in-out infinite;

}





/* ==================================================

   追加：タブレット・スマートフォンの不足分

   PC側の既存数値は変更していません。

================================================== */



@media (max-width: 768px) {

    /* 料金案内をメニューの上に収める */

    .hero-price-guide {

        left: 24px;

        bottom: auto;

        top: 510px;

        font-size: 12px;

        padding: 7px 10px;

    }



    /* アクセスの電話番号がはみ出ないようにする */

    .access-mobile-number {

        font-size: 24px;

        overflow-wrap: anywhere;

    }



    /* お問い合わせ見出し */

    .contact-page h1 {

        font-size: 32px;

    }

}



@media (max-width: 480px) {

    .hero-price-guide {

        left: 20px;

        top: 480px;

        font-size: 11px;

    }



    .access-mobile {

        padding: 16px 18px;

    }



    .access-mobile-number {

        font-size: 21px;

    }



    .contact-page h1 {

        font-size: 28px;

    }

}

/* 料金案内の矢印：元CSSに不足していたアニメーション定義 */

@keyframes heroArrowMove {

    0%, 100% {

        transform: translateY(-3px);

    }

    50% {

        transform: translateY(4px);

    }

}



@media (prefers-reduced-motion: reduce) {

    .hero-price-guide-arrow {

        animation: none;

    }

}



/* ヒーローの文字全体を上に移動 */

.hero-content-inner {

    transform: translateY(-35px);

}



@media (max-width: 600px) {

    .hero-content-inner {

        transform: translateY(-15px);

    }

}





/* ==========================================

   スマホ表示修正（PC表示は変更しない）

========================================== */

@media screen and (max-width: 767px) {



    /* メイン画像とカテゴリを縦に並べる */

    .hero {

        display: block;

        min-height: 0;

        overflow: visible;

    }



    /* メイン画像を横幅いっぱいに表示 */

    .hero-slider {

        width: 100%;

        height: auto;

        aspect-ratio: 16 / 9;

        min-height: 0;

        overflow: hidden;

    }



    .hero-slide > img {

        top: 0;

        left: 0;

        width: 100%;

        height: 100%;

        object-fit: contain;

        object-position: center;

        transform: none;

        -webkit-mask-image: none;

        mask-image: none;

    }



    .hero-slide.active > img {

        transform: scale(1.005);

    }



    /* スマホでは画像上の文字を非表示 */

    .hero-content,

    .hero-overlay {

        display: none;

    }



    /* 料金案内をカテゴリの上に配置 */

    .hero-price-guide {

        position: absolute;

        left: 16px;

        top: auto;

        bottom: 12px;

        font-size: 11px;

        padding: 5px 9px;

    }



    /* カテゴリを画像の下に3列×2行で表示 */

    .hero-services {

        position: relative;

        left: auto;

        bottom: auto;

        display: grid;

        grid-template-columns: repeat(3, minmax(0, 1fr));

        width: calc(100% - 32px);

        margin: 10px auto 0;

        transform: none;

        border-radius: 8px;

        overflow: hidden;

    }



    .hero-service {

        min-width: 0;

        min-height: 80px;

        padding: 10px 4px;

        gap: 6px;

        font-size: 11px;

        border-bottom: 1px solid rgba(41,75,43,.10);

    }



    .hero-service > span:last-child {

        font-size: 11px;

        line-height: 1.5;

        white-space: normal;

    }



    .hero-service-icon {

        font-size: 20px;

    }



    /* NEWSをコンパクトにする */

    .news {

        padding: 24px 0;

    }



    .news-list {

        margin-top: 18px;

        padding-right: 0;

    }



    /* 日付とタイトルを横並び */

    .news-item {

        display: grid;

        grid-template-columns: 85px minmax(0, 1fr);

        align-items: start;

        gap: 12px;

        padding: 16px 0;

    }



    .news-item time {

        grid-column: 1;

        grid-row: 1;

        white-space: nowrap;

        font-size: 11px;

        color: #6f7b6a;

    }



    .news-content {

        grid-column: 2;

        grid-row: 1;

        min-width: 0;

    }



    .news-title {

        margin: 0;

        font-size: 13px;

        font-weight: 600;

        line-height: 1.6;

        overflow-wrap: anywhere;

    }



    .news-body {

        margin: 4px 0 0;

        font-size: 12px;

        line-height: 1.6;

        overflow-wrap: anywhere;

    }

}











/* ========================================

   スマホ：固定ヘッダー＋右側メニュー

======================================== */

@media screen and (max-width: 800px) {



  :root {

    --mobile-header-height: 80px;

    --mobile-menu-width: min(78vw, 340px);

  }



  html {

    scroll-padding-top: var(--mobile-header-height);

  }



  body {

    padding-top: var(--mobile-header-height);

  }



  /* ヘッダーを上部固定 */

  .header {

    position: fixed !important;

    top: 0 !important;

    left: 0;

    right: 0;

    width: 100%;

    z-index: 99999;

    background: #ffffff;

  }



  .header-inner {

    position: relative;

    min-height: var(--mobile-header-height);

  }



  /* メニュー：右側のみに白背景 */

  .header .nav {

    display: none;

    position: fixed !important;

    top: var(--mobile-header-height) !important;

    left: auto !important;

    right: 0 !important;



    width: var(--mobile-menu-width);

    height: auto;

    max-height: calc(100dvh - var(--mobile-header-height));

    overflow-y: auto;



    padding: 18px 16px 24px;

    background: #ffffff;

    border-radius: 0 0 0 16px;

    box-shadow: -8px 12px 28px rgba(0, 0, 0, 0.12);

    z-index: 100000;

  }



  .header .nav.open {

    display: flex;

    flex-direction: column;

    align-items: stretch;

    gap: 0;

  }



  /* メニュー項目 */

  .header .nav a {

    display: block;

    padding: 17px 12px;

    margin: 0;

    color: #294b2b;

    font-size: 15px;

    font-weight: 700;

    border-bottom: 1px solid #e4ebe0;

  }



  /* お問い合わせボタン */

  .header .nav .nav-contact {

    margin-top: 18px;

    padding: 15px 12px;

    color: #ffffff;

    background: #294b2b;

    border-radius: 7px;

    border-bottom: none;

    text-align: center;

  }



}





/* ========================================

   お問い合わせフォーム：スマホの横はみ出し修正

======================================== */

@media screen and (max-width: 800px) {



  /* 入力欄の幅にpadding・borderを含める */

  .contact-form,

  .contact-form *,

  .contact-form *::before,

  .contact-form *::after {

    box-sizing: border-box;

  }



  /* フォーム全体 */

  .contact-form {

    width: 100%;

    max-width: 100%;

    min-width: 0;

  }



  /* 入力欄 */

  .contact-form input,

  .contact-form textarea,

  .contact-form select {

    display: block;

    width: 100%;

    max-width: 100%;

    min-width: 0;

    margin-left: 0;

    margin-right: 0;

  }



  /* フォーム内の各項目 */

  .contact-form .form-group,

  .contact-form .form-row,

  .contact-form .form-field {

    width: 100%;

    max-width: 100%;

    min-width: 0;

  }

}

/* HOME HERO - mobile visual: copy over the photograph */
@media screen and (max-width: 767px) {
  .hero { display: block; min-height: 0; overflow: visible; }
  .hero-slider {
    position: relative; width: 100%; height: 420px;
    min-height: 0; overflow: hidden; background: #f7faf1;
  }
  .hero-slider .hero-slide { position: absolute; inset: 0; width: 100%; height: 100%; }
  .hero-slider .hero-slide > img {
    position: absolute; inset: 0; display: block;
    width: 100%; height: 100%; object-fit: cover;
    object-position: center center; opacity: 1;
    transform: none; filter: brightness(1.03) saturate(.96);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 9%, #000 91%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 9%, #000 91%, transparent 100%);
  }
  .hero-slider .hero-slide.active > img { transform: none; }
  .hero-slider .hero-overlay {
    display: block; position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(to right,
      rgba(247,250,241,.96) 0%, rgba(247,250,241,.87) 28%,
      rgba(247,250,241,.52) 60%, rgba(247,250,241,.06) 100%);
  }
  .hero-slider .hero-content {
    display: block; position: absolute; inset: 0;
    width: 100%; height: 100%; margin: 0; padding: 0;
    background: transparent; opacity: 1; visibility: visible;
    z-index: 3; pointer-events: none;
  }
  .hero-slider .hero-content-inner {
    display: flex; flex-direction: column; align-items: flex-start;
    justify-content: center; width: 100%; height: 100%;
    margin: 0; padding: 18px 22px 70px;
    transform: none; box-sizing: border-box;
  }
  .hero-slider .hero-kicker {
    display: block; margin: 0 0 12px; font-size: 10px;
    letter-spacing: .15em; color: #669b35;
  }
  .hero-slider .hero-content h1 {
    display: block; max-width: 100%; margin: 0;
    font-size: clamp(22px, 5.5vw, 29px);
    line-height: 1.55; color: #294b2b;
    text-shadow: 0 1px 5px rgba(247,250,241,.65);
  }
  .hero-slider .hero-description {
    display: block; margin: 16px 0 0; font-size: 12px;
    line-height: 1.8; color: #294b2b;
  }
  .hero-slider .hero-price-guide {
    position: absolute; left: 20px; top: auto; bottom: 15px;
    z-index: 10; padding: 8px 12px;
  }
}
@media screen and (max-width: 380px) {
  .hero-slider { height: 390px; }
  .hero-slider .hero-content-inner { padding-left: 18px; padding-right: 18px; }
  .hero-slider .hero-content h1 { font-size: 21px; }
}


/* ヘッダーのお問い合わせボタン */

/* 通常時・クリック後 */
.header .nav .nav-contact,
.header .nav .nav-contact:visited,
.header .nav .nav-contact:focus,
.header .nav .nav-contact:active {
  background-color: #294b2b;
  color: #ffffff;
}

/* マウスを乗せたとき */
@media (hover: hover) {
  .header .nav .nav-contact:hover {
    background-color: #3d6938;
    color: #ffffff;
  }
}

/* キーボード操作時はフォーカスを見えるようにする */
.header .nav .nav-contact:focus-visible {
  outline: 3px solid #78a83b;
  outline-offset: 3px;
}

/* アクセス欄の紹介文 */
.access-lead {
  margin: 0 0 28px;
  line-height: 1.9;
  font-size: 15px;
  color: #fff;
}

@media (max-width: 768px) {
  .access-lead {
    font-size: 14px;
    line-height: 1.8;
  }
}
