/* =========================================================
   DENTAL TECH
========================================================= */

.dental-tech-main {
    background: #fff;
    color: #303a35;
}

.dental-tech-main *,
.dental-tech-main *::before,
.dental-tech-main *::after {
    box-sizing: border-box;
}

.dental-tech-main .container {
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
}

.dental-tech-main .tech-section {
    padding: 70px 0;
}

.dental-tech-main .tech-section--gray {
    background: #f5f7f5;
}


/* =========================================================
   BREADCRUMB
========================================================= */

.dental-tech-main .breadcrumb {
    border-bottom: 1px solid #e1e6e3;
    background: #fff;
}

.dental-tech-main .breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0;
    padding: 14px 0;
    list-style: none;
    color: #818a85;
    font-size: 11px;
}

.dental-tech-main .breadcrumb li:not(:last-child)::after {
    content: "/";
    margin-left: 7px;
    color: #b2b9b5;
}

.dental-tech-main .breadcrumb a {
    color: #66736c;
    text-decoration: none;
}


/* =========================================================
   COMMON
========================================================= */

.dental-tech-main .section-en {
    margin: 0 0 10px;
    color: #718a7c;
    font-family: Arial, sans-serif;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .22em;
}

.dental-tech-main .section-heading {
    width: 100%;
    margin-bottom: 45px;
}

.dental-tech-main .section-heading h2,
.dental-tech-main .tech-lab h2,
.dental-tech-main .tech-image-text h2,
.dental-tech-main .tech-custom h2,
.dental-tech-main .tech-risk h2,
.dental-tech-main .tech-reservation h2 {
    margin: 0;
    color: #29372f;
    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: .025em;
}

.dental-tech-main .section-heading__lead {
    width: 100%;
    margin: 18px 0 0;
    color: #5d6962;
    font-size: 15px;
    line-height: 2;
}

.tech-text {
    width: 100%;
}

.tech-text p {
    width: 100%;
    margin: 0 0 18px;
    color: #5c6861;
    font-size: 15px;
    line-height: 2.1;
}


/* =========================================================
   LEADER
========================================================= */

.tech-leader {
    padding: 65px 0 75px;
    background: #fff;
}

.tech-leader__grid {
    display: grid;
    grid-template-columns: minmax(380px, .85fr) minmax(0, 1.15fr);
    gap: 75px;
    align-items: center;
}


/* PHOTO */

.tech-leader__photo {
    position: relative;
    padding: 0 0 25px 25px;
}

.tech-leader__photo-frame {
    position: relative;
}

.tech-leader__photo-frame::before {
    content: "";
    position: absolute;
    top: 25px;
    left: -25px;
    width: 100%;
    height: 100%;
    background: #e8eeea;
}

.tech-leader__photo img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}


/* PROFILE */

.tech-leader__profile {
    min-width: 0;
}

.tech-leader__position {
    margin: 0 0 15px;
    color: #51645a;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.8;
}

.tech-leader__profile h2 {
    margin: 0;
    color: #29372f;
    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;
    font-size: 38px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: .08em;
}

.tech-leader__name-en {
    margin: 7px 0 30px;
    color: #87938d;
    font-family: Arial, sans-serif;
    font-size: 11px;
    letter-spacing: .18em;
}

.tech-leader__message {
    width: 100%;
    padding-top: 27px;
    border-top: 1px solid #d9dfdb;
}

.tech-leader__message p {
    width: 100%;
    margin: 0 0 17px;
    color: #5b6760;
    font-size: 15px;
    line-height: 2.1;
}

.tech-leader__message p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   INTRO
========================================================= */

.tech-intro {
    padding: 70px 0;
    background: #f5f7f5;
}

.tech-intro__catch {
    width: 100%;
    padding: 43px 48px;
    border-left: 4px solid #456c5b;
    background: #fff;
}

.tech-intro__catch p {
    width: 100%;
    margin: 0;
    color: #33483d;
    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;
    font-size: 23px;
    line-height: 1.9;
}

.tech-intro__catch strong {
    color: #315f4d;
    font-weight: 600;
}

.tech-intro__text {
    width: 100%;
    margin-top: 35px;
}

.tech-intro__text p {
    width: 100%;
    margin: 0 0 17px;
    color: #5e6963;
    font-size: 15px;
    line-height: 2.1;
}


/* =========================================================
   DENTAL LAB
========================================================= */

.tech-lab {
    padding: 70px 0;
    background: #35584a;
}

.tech-lab__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(400px, .95fr);
    gap: 65px;
    align-items: center;
}

.tech-lab .section-en {
    color: #b5cec2;
}

.dental-tech-main .tech-lab h2 {
    margin-bottom: 25px;
    color: #fff;
}

.tech-lab__content > p:not(.section-en) {
    width: 100%;
    margin: 0 0 17px;
    color: #e3ebe7;
    font-size: 15px;
    line-height: 2.1;
}

.tech-lab__content > p:last-child {
    margin-bottom: 0;
}

.tech-lab__image img {
    display: block;
    width: 100%;
    height: 500px;
    object-fit: cover;
}


/* =========================================================
   NUMBER TITLE
========================================================= */

.tech-number-title {
    display: flex;
    align-items: flex-start;
    gap: 25px;
    margin-bottom: 35px;
}

.tech-number-title__number {
    flex: 0 0 auto;
    color: #bdc9c2;
    font-size: 62px;
    line-height: 1;
}

.tech-number-title h2 {
    margin: 0;
    color: #2f4037;
    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;
    font-size: 30px;
    font-weight: 500;
    line-height: 1.5;
}


/* =========================================================
   FRAME
========================================================= */

.frame-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 35px;
    margin-top: 45px;
}

.frame-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #dde3df;
}

.frame-card__image img {
    display: block;
    width: 100%;
    height: 330px;
    object-fit: cover;
}

.frame-card__body {
    padding: 30px;
}

.frame-card__en {
    margin: 0 0 8px;
    color: #82958a;
    font-family: Arial, sans-serif;
    font-size: 9px;
    line-height: 1.4;
    letter-spacing: .18em;
}

.frame-card h3 {
    margin: 0 0 15px;
    color: #33483c;
    font-size: 20px;
    line-height: 1.6;
}

.frame-card__body > p:not(.frame-card__en) {
    width: 100%;
    margin: 0;
    color: #606c65;
    font-size: 14px;
    line-height: 2;
}


/* =========================================================
   IMAGE + TEXT
========================================================= */

.tech-image-text {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr);
    gap: 65px;
    align-items: center;
}

.tech-image-text__content {
    min-width: 0;
}

.tech-image-text__content h2 {
    margin-bottom: 25px !important;
}

.tech-image-text__content > p:not(.section-en) {
    width: 100%;
    margin: 0 0 17px;
    color: #606c65;
    font-size: 15px;
    line-height: 2.1;
}

.tech-image-text__image img {
    display: block;
    width: 100%;
    /*height: 470px;
    object-fit: cover;*/
}

.tech-image-text--reverse .tech-image-text__content {
    order: 2;
}

.tech-image-text--reverse .tech-image-text__image {
    order: 1;
}

.tech-link a {
    display: inline-block;
    padding-bottom: 4px;
    border-bottom: 1px solid currentColor;
    color: #416a58;
    font-weight: 600;
    text-decoration: none;
}


/* =========================================================
   PROSTHETIC TYPE
========================================================= */

.prosthetic-type {
    display: grid;
    grid-template-columns: minmax(430px, 1fr) minmax(0, 1fr);
    gap: 60px;
    align-items: center;
    margin-top: 70px;
    padding-top: 70px;
    border-top: 1px solid #d9dfdb;
}

.prosthetic-type__images {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

/* 画像は切り取らず、元の比率のまま全体を表示する */
.prosthetic-type__images img {
    display: block;
    width: 100%;
    height: auto;
}

.prosthetic-type__content {
    min-width: 0;
}

.prosthetic-type__type {
    margin: 0 0 8px;
    color: #789083;
    font-family: Arial, sans-serif;
    font-size: 10px;
    letter-spacing: .2em;
}

.prosthetic-type__content h3 {
    margin: 0 0 20px;
    color: #304239;
    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;
    font-size: 25px;
    font-weight: 500;
    line-height: 1.6;
}

.prosthetic-type__content > p:not(.prosthetic-type__type) {
    width: 100%;
    margin: 0 0 16px;
    color: #5e6b64;
    font-size: 14px;
    line-height: 2.05;
}

.prosthetic-type__content > p:last-child {
    margin-bottom: 0;
}

.prosthetic-type--reverse .prosthetic-type__images {
    order: 2;
}

.prosthetic-type--reverse .prosthetic-type__content {
    order: 1;
}


/* =========================================================
   CUSTOM MADE
========================================================= */

.tech-custom {
    padding: 70px 0;
    background: #315c4c;
}

.tech-custom__inner {
    width: 100%;
}

.tech-custom .section-en {
    color: #b7d0c4;
}

.dental-tech-main .tech-custom h2 {
    margin-bottom: 27px;
    color: #fff;
}

.tech-custom__inner > p:not(.section-en) {
    width: 100%;
    margin: 0 0 17px;
    color: #e3ede8;
    font-size: 15px;
    line-height: 2.1;
}


/* =========================================================
   IMPORTANT
========================================================= */

.tech-important {
    width: 100%;
    padding: 40px 45px;
    background: #f5f7f5;
}

.tech-important p {
    width: 100%;
    margin: 0 0 17px;
    color: #5c6861;
    font-size: 15px;
    line-height: 2.1;
}

.tech-important p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   TEAM FLOW
========================================================= */

.tech-flow {
    width: 100%;
    border-top: 1px solid #d8dfdb;
}

.tech-flow__item {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 20px;
    padding: 31px 0;
    border-bottom: 1px solid #d8dfdb;
}

.tech-flow__item > span {
    color: #789083;
    font-size: 32px;
    line-height: 1.3;
}

.tech-flow__item h3 {
    margin: 0 0 9px;
    color: #33463b;
    font-size: 18px;
    line-height: 1.6;
}

.tech-flow__item p {
    width: 100%;
    margin: 0;
    color: #647068;
    font-size: 14px;
    line-height: 2;
}


/* =========================================================
   RISK
========================================================= */

.tech-risk {
    padding: 50px 0;
    background: #eef1ef;
}

.tech-risk__inner {
    width: 100%;
}

.dental-tech-main .tech-risk h2 {
    margin-bottom: 22px;
    font-size: 25px;
}

.tech-risk__inner > p:not(.section-en) {
    width: 100%;
    margin: 0 0 14px;
    color: #626e67;
    font-size: 13px;
    line-height: 2;
}


/* =========================================================
   RESERVATION
========================================================= */

.tech-reservation {
    padding: 65px 0;
    background: #fff;
}

.tech-reservation__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 580px;
    gap: 55px;
    align-items: center;
}

.tech-reservation__content {
    min-width: 0;
}

.tech-reservation__content h2 {
    margin-bottom: 20px !important;
}

.tech-reservation__content > p:not(.section-en) {
    width: 100%;
    margin: 0 0 15px;
    color: #5e6b64;
    font-size: 14px;
    line-height: 2;
}

.tech-reservation__frame {
    width: 100%;
}

.tech-reservation__frame iframe {
    display: block;
    width: 100%;
    height: 210px;
    border: 0;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 960px) {

    .tech-leader__grid,
    .tech-lab__grid,
    .tech-image-text,
    .prosthetic-type {
        gap: 40px;
    }

    .tech-reservation__grid {
        grid-template-columns: 1fr;
    }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .dental-tech-main .container {
        width: calc(100% - 36px);
    }

    .dental-tech-main .tech-section {
        padding: 50px 0;
    }

    .dental-tech-main .section-heading h2,
    .dental-tech-main .tech-lab h2,
    .dental-tech-main .tech-image-text h2,
    .dental-tech-main .tech-custom h2,
    .dental-tech-main .tech-risk h2,
    .dental-tech-main .tech-reservation h2 {
        font-size: 24px;
        line-height: 1.6;
    }


    /* LEADER */

    .tech-leader {
        padding: 40px 0 50px;
    }

    .tech-leader__grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .tech-leader__photo {
        width: calc(100% - 15px);
        margin-left: 15px;
        padding: 0 0 15px 15px;
    }

    .tech-leader__photo-frame::before {
        top: 15px;
        left: -15px;
    }

    .tech-leader__profile h2 {
        font-size: 30px;
    }

    .tech-leader__message p {
        font-size: 14px;
        line-height: 2;
    }


    /* INTRO */

    .tech-intro {
        padding: 50px 0;
    }

    .tech-intro__catch {
        padding: 30px 24px;
    }

    .tech-intro__catch p {
        font-size: 19px;
        line-height: 1.9;
    }

    .tech-intro__text p {
        font-size: 14px;
        line-height: 2;
    }


    /* LAB */

    .tech-lab {
        padding: 50px 0;
    }

    .tech-lab__grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .tech-lab__image {
        order: -1;
    }

    .tech-lab__image img {
        height: auto;
        aspect-ratio: 4 / 3;
    }


    /* NUMBER TITLE */

    .tech-number-title {
        gap: 15px;
    }

    .tech-number-title__number {
        font-size: 43px;
    }

    .tech-number-title h2 {
        font-size: 23px;
    }


    /* FRAME */

    .frame-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .frame-card__image img {
        height: auto;
        aspect-ratio: 3 / 2;
    }

    .frame-card__body {
        padding: 25px 20px;
    }


    /* IMAGE TEXT */

    .tech-image-text {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .tech-image-text__image {
        order: -1;
    }

    .tech-image-text--reverse .tech-image-text__content,
    .tech-image-text--reverse .tech-image-text__image {
        order: initial;
    }

    /* 画像の元の比率のまま表示（4:3に引き伸ばさない） */
    .tech-image-text__image img {
        height: auto;
    }


    /* PROSTHETIC */

    .prosthetic-type {
        grid-template-columns: 1fr;
        gap: 30px;
        margin-top: 50px;
        padding-top: 50px;
    }

    .prosthetic-type__images {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .prosthetic-type__images img {
        height: auto;
    }

    .prosthetic-type--reverse .prosthetic-type__images,
    .prosthetic-type--reverse .prosthetic-type__content {
        order: initial;
    }


    /* CUSTOM */

    .tech-custom {
        padding: 50px 0;
    }


    /* IMPORTANT */

    .tech-important {
        padding: 28px 22px;
    }


    /* FLOW */

    .tech-flow__item {
        grid-template-columns: 60px minmax(0, 1fr);
        gap: 10px;
        padding: 25px 0;
    }

    .tech-flow__item > span {
        font-size: 27px;
    }


    /* RISK */

    .tech-risk {
        padding: 45px 0;
    }


    /* RESERVATION */

    .tech-reservation {
        padding: 50px 0;
    }

    .tech-reservation__grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .tech-reservation__frame iframe {
        height: 230px;
    }

}

/* =========================================================
   TECHNICIAN TEAM
========================================================= */

.tech-team {
    position: relative;

    padding: 90px 0 100px;

    background: #1f2422;
    color: #ffffff;

    overflow: hidden;
}

.tech-team::before {
    content: "TECHNICIANS";

    position: absolute;
    right: -20px;
    bottom: -30px;

    color: rgba(255, 255, 255, 0.035);

    font-family: "Times New Roman", serif;
    font-size: clamp(80px, 12vw, 190px);
    line-height: 1;
    letter-spacing: 0.04em;
    white-space: nowrap;

    pointer-events: none;
}

.tech-team .container {
    position: relative;
}

.tech-team__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "en en"
        "title lead";
    align-items: end;
    column-gap: 60px;

    margin-bottom: 50px;
}

.tech-team .tech-team__en {
    grid-area: en;

    display: flex;
    align-items: center;
    gap: 14px;

    margin: 0 0 16px;

    color: #c9ad7a;

    font-family: "Times New Roman", serif;
    font-size: 12px;
    line-height: 1;
    letter-spacing: 0.3em;
}

.tech-team .tech-team__en::after {
    content: "";

    width: 40px;
    height: 1px;

    background: #c9ad7a;
}

.tech-team .tech-team__head h2 {
    grid-area: title;

    margin: 0;

    color: #ffffff;

    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 32px;
    line-height: 1.55;
    font-weight: 500;
    letter-spacing: 0.04em;
}

.tech-team__nowrap {
    white-space: nowrap;
}

.tech-team .tech-team__lead {
    grid-area: lead;

    margin: 0;

    color: rgba(255, 255, 255, 0.75);

    font-size: 15px;
    line-height: 2;
}

.tech-team__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.tech-team-card {
    position: relative;

    overflow: hidden;

    background: #2a302d;
}

.tech-team-card__photo {
    position: relative;

    overflow: hidden;
}

.tech-team-card__photo img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: 50% 15%;

    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.tech-team-card:hover .tech-team-card__photo img {
    transform: scale(1.04);
}

.tech-team-card__body {
    position: relative;

    padding: 22px 26px 24px;

    border-top: 2px solid #c9ad7a;
}

.tech-team .tech-team-card__role {
    margin: 0 0 10px;

    color: #c9ad7a;

    font-family: "Times New Roman", serif;
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.26em;
}

.tech-team .tech-team-card__body h3 {
    margin: 0;

    color: #ffffff;

    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 28px;
    line-height: 1.3;
    font-weight: 500;
    letter-spacing: 0.12em;
}

.tech-team .tech-team-card__en {
    margin: 6px 0 0;

    color: rgba(255, 255, 255, 0.6);

    font-family: "Times New Roman", serif;
    font-size: 11px;
    line-height: 1;
    letter-spacing: 0.24em;
}

.tech-team .tech-team-card__position {
    position: absolute;
    right: 26px;
    bottom: 26px;

    margin: 0;
    padding: 4px 10px;

    border: 1px solid rgba(201, 173, 122, 0.6);

    color: #e8dcc4;

    font-size: 11px;
    line-height: 1.6;
    letter-spacing: 0.08em;
}

@media (max-width: 900px) {

    .tech-team__head {
        grid-template-columns: 1fr;
        grid-template-areas:
            "en"
            "title"
            "lead";
        row-gap: 14px;
    }

    .tech-team .tech-team__en {
        margin-bottom: 0;
    }

    .tech-team__grid {
        gap: 16px;
    }

    .tech-team-card__body {
        padding: 16px 16px 18px;
    }

    .tech-team .tech-team-card__body h3 {
        font-size: 22px;
    }

    .tech-team .tech-team-card__position {
        display: none;
    }

}

@media (max-width: 767px) {

    .tech-team {
        padding: 60px 0 70px;
    }

    .tech-team__head {
        margin-bottom: 32px;
    }

    .tech-team .tech-team__head h2 {
        font-size: 24px;
    }

    .tech-team .tech-team__lead {
        font-size: 14px;
    }

    .tech-team__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .tech-team-card:first-child {
        grid-column: 1 / -1;
    }

    .tech-team-card:first-child .tech-team-card__photo img {
        aspect-ratio: 4 / 3;
        object-position: 50% 12%;
    }

    .tech-team .tech-team-card__body h3 {
        font-size: 20px;
    }

    .tech-team .tech-team-card__role {
        font-size: 9px;
        letter-spacing: 0.12em;
        white-space: nowrap;
    }

}
