/* css/base.css */
/* ========================================
   GLOBAL STYLES & RESET - START
======================================== */

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

html {
    scroll-behavior: smooth;
    font-size: 16px; /* allowed */
}

body {
    font-family: "Noto Sans JP", sans-serif;
    color: #111827;
    line-height: 1.7;
    overflow-x: hidden;
    background: #ffffff;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease, opacity 0.25s ease;
}

ul {
    list-style: none;
}

button {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
}
.isHidden {
	display: none !important;
}
/* ========================================
   GLOBAL STYLES & RESET - END
======================================== */

/* ========================================
   HEADER SECTION - START
======================================== */

.siteHeader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #ffffff;
    z-index: 1100;
    box-shadow: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.06);
}

.headerContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
    height: 5.625rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.headerLogo {
    flex: 0 0 auto;
}

.logoLink {
    display: inline-block;
}

.logoName {
    font-size: 1.75rem;
    font-weight: 900;
    line-height: 1.868rem;
    letter-spacing: 0.065rem;
    margin-bottom: 0.25rem;
    background: linear-gradient(99deg, #0D2C6C 0%, #1F63E0 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.logoSubtitle {
    font-size: 0.75rem;
    font-weight: 400;
    color: rgba(15, 23, 42, 0.62);
    line-height: 1.1;
}

.headerNav {
    flex: 1 1 auto;
    display: flex;
    justify-content: center;
}

.navList {
    display: flex;
    align-items: center;
    gap: 2.25rem;
    list-style: none;
}

.navItem {
    position: relative;
}

/* parent link + arrow as separate controls */
.navLinkGroup {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.navLink,
.navParentLink {
    font-size: 0.9375rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.85);
    padding: 0.5rem 0;
    position: relative;
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: none;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
}

.navLink::after,
.navParentLink::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.5rem;
    width: 0;
    height: 0.1875rem;
    border-radius: 999rem;
    background: rgba(31, 99, 224, 0.9);
    transition: width 0.25s ease;
}

.navLink:hover,
.navLink.active,
.navParentLink:hover,
.navParentLink.active,
.navItemHasSubmenu.isOpen > .navLinkGroup > .navParentLink {
    color: rgba(13, 44, 108, 0.95);
}

.navLink:hover::after,
.navLink.active::after,
.navParentLink:hover::after,
.navParentLink.active::after,
.navItemHasSubmenu.isOpen > .navLinkGroup > .navParentLink::after {
    width: 100%;
}

/* dedicated arrow button */
.navSubmenuToggle {
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: none;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex: 0 0 auto;
}

.navArrow {
    width: 0.45rem;
    height: 0.45rem;
    border-right: 0.09375rem solid rgba(15, 23, 42, 0.55);
    border-bottom: 0.09375rem solid rgba(15, 23, 42, 0.55);
    transform: rotate(45deg) translateY(-0.08rem);
    transition: transform 0.25s ease, border-color 0.25s ease;
    flex: 0 0 auto;
    margin-left: 1vw;
}

.navItemHasSubmenu.isOpen .navArrow {
    transform: rotate(-135deg) translateY(-0.02rem);
    border-color: rgba(13, 44, 108, 0.95);
}

/* Desktop dropdown */
.subMenu {
    position: absolute;
    top: calc(100% + 1rem);
    left: 50%;
    transform: translateX(-50%);
    min-width: 10.5rem;
    background: #ffffff;
    border: 0.0625rem solid rgba(15, 23, 42, 0.08);
    border-radius: 0.75rem;
    box-shadow: 0 1rem 2.5rem rgba(2, 8, 23, 0.12);
    padding: 0.45rem 0;
    list-style: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    z-index: 1300;
}

.navItemHasSubmenu.isOpen .subMenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.subMenuItem + .subMenuItem {
    border-top: 0.0625rem solid rgba(15, 23, 42, 0.06);
}

.subMenuLink {
    display: block;
    padding: 0.7rem 1rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.74);
    transition: background 0.2s ease, color 0.2s ease;
    text-decoration: none;
}

.subMenuLink:hover {
    background: #EEF5FB;
    color: #0D2C6C;
}

.headerCta {
    flex: 0 0 auto;
}

.ctaButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.95rem 2.15rem;
    background: #0D2C6C;
    color: #ffffff;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 0.75rem;
    box-shadow: 0 0.625rem 1.375rem rgba(13, 44, 108, 0.22);
    text-decoration: none;
}

.ctaButton:hover {
    background: #1F63E0;
    transform: translateY(-0.125rem);
    box-shadow: 0 0.75rem 1.75rem rgba(13, 44, 108, 0.32);
}

.mobileMenuToggle {
    display: none;
    flex-direction: column;
    gap: 0.375rem;
    width: 1.875rem;
    height: 1.875rem;
    justify-content: center;
    align-items: center;
}

.menuBar {
    width: 100%;
    height: 0.1875rem;
    background: rgba(15, 23, 42, 0.9);
    border-radius: 0.125rem;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

/* ========================================
   HEADER SECTION - END
======================================== */
/* ========================================
   HERO SECTION - START
======================================== */

.heroSection {
    position: relative;
    width: 100%;

    height: 70vh;
    min-height: 43.75rem;
    max-height: 56.25rem;
    overflow: hidden;
}

.heroBackground {
    position: absolute;
    inset: 0;
}

.heroVideo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.heroOverlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.46) 0%,
            rgba(0, 0, 0, 0.20) 40%,
            rgba(0, 0, 0, 0.16) 100%
        );
}

.heroContent {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
}

.heroContainer {
    width: 100%;
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
}

.heroCopy {
    width: min(34rem, 92vw);
    color: #ffffff;
}

.heroLabel {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.9rem;
    border-radius: 999rem;
    /* background: rgba(15, 23, 42, 0.35); */
    /* backdrop-filter: blur(0.75rem); */
    -webkit-backdrop-filter: blur(0.75rem);
    font-size: 0.9375rem;
    font-weight: 500;
    letter-spacing: 0.06rem;
    margin-bottom: 1.15rem;
    color: #FFF;
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);

/* 見出し */
    font-family: "Noto Sans";
    font-size: 35px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

.heroLabelDot {
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 999rem;
    background: #FFD100;
    box-shadow: 0 0.5rem 1.25rem rgba(255, 209, 0, 0.35);
}

.heroTitle {
    font-size: clamp(2.5rem, 3.2vw, 3.35rem);
    font-weight: 900;
    line-height: 1.18;
    letter-spacing: 0.18rem;
    text-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.28);
    margin-bottom: 0.65rem;
}

.heroSubtitle {
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: 0.08rem;
    opacity: 0.96;
    margin-bottom: 1.25rem;
}

.heroDescription {
    font-size: 0.9375rem;
    font-weight: 400;
    line-height: 1.9;
    opacity: 0.95;
    margin-bottom: 2.25rem;
    text-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.22);
}

.heroButtons {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.heroCta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.95rem 1.55rem;
    font-size: 0.9375rem;
    font-weight: 700;
    border-radius: 0.75rem;
    min-width: 10.5rem;
    border: 0.0625rem solid transparent;
}

.heroCtaPrimary {
    background: #FFD100;
    color: rgba(15, 23, 42, 0.95);
    box-shadow: 0 0.75rem 1.6rem rgba(255, 209, 0, 0.26);
}

.heroCtaPrimary:hover {
    background: #ffe14d;
    transform: translateY(-0.125rem);
    box-shadow: 0 0.95rem 1.95rem rgba(255, 209, 0, 0.34);
}

.heroCtaGhost {
    background: rgba(15, 23, 42, 0.18);
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.42);
    backdrop-filter: blur(0.75rem);
    -webkit-backdrop-filter: blur(0.75rem);
    box-shadow: 0 0.75rem 1.6rem rgba(0, 0, 0, 0.18);
}

.heroCtaGhost:hover {
    background: rgba(15, 23, 42, 0.28);
    transform: translateY(-0.125rem);
    box-shadow: 0 0.95rem 1.95rem rgba(0, 0, 0, 0.24);
}
.heroTitle{
    display:flex;
    align-items:center;
    gap:0.75rem;
}

.heroTitleText{
    height:auto;
    width:auto;
    max-width:28rem;
}

.heroTitleIcon{
    height: 6rem;
    width:auto;
}
/* ========================================
   HERO SECTION - END
======================================== */
.mobileMenuToggle {
    display: none;
}

/* ========================================
   MESSAGE SECTION - START (REPLACE THIS BLOCK)
======================================== */

.messageSection {
    position: relative;
    padding: 7.25rem 0 6.5rem;
    background: url("../assets/img/SectionOmoi.png") center / cover no-repeat;
    overflow: hidden;
}

/* remove the extra “silhouette band” we previously added */
.messageSection::after {
    content: none;
}

.messageContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
    position: relative;
    z-index: 2;
}

.messageTitleWrapper {
    text-align: center;
    margin-bottom: 4.25rem;
}

.messageLabel {
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.22rem;
    color: rgba(255, 255, 255, 0.70);
    margin-bottom: 1rem;
}

.messageTitle {
    font-size: 2rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.25;
    margin-bottom: 1rem;
}

.messageSubtitle {
    font-size: 1.0625rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.7;
}

.messageGrid {
    display: flex;
    grid-template-columns: 39rem 1fr;
    gap: 2rem;
    align-items: stretch;
    justify-content: space-evenly;
    /* align-content: space-around; */
    justify-items: center;
    flex-direction: row;
    flex-wrap: nowrap;
}

/* portrait: single card only (no extra layered background) */
.messagePhotoCard {
    border-radius: 1rem;
    /* background: #ffffff; */
    /* box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.24); */
    overflow: hidden;
}

.candidatePhoto {
    width: 33vw;
    margin: 0;
    display: block;
    border-radius: 6%;
}

/* glass card */
.messageTextCard {
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.12);
    border: 0.0625rem solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(0.9rem);
    -webkit-backdrop-filter: blur(0.9rem);
    box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.18);
    color: #ffffff;

    /* center/streched like reference */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.messageTextInner {
    width: 100%;
    max-width: 49rem;
    padding: 1rem 3.25rem;
}

.messageHeading {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.45;
    margin-bottom: 1.5rem;
}

.messageParagraph {
    font-size: 0.75rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.9;
    margin-bottom: 1.25rem;
}

/* button centered */
.messageCtaWrapper {
    margin-top: 2.25rem;
    display: flex;
    justify-content: center;
}

.messageCtaButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1.05rem 3.4rem;
    background: #FFD100;
    color: rgba(15, 23, 42, 0.95);
    font-size: 0.8rem;
    font-weight: 700;
    border-radius: 0.75rem;
    box-shadow: 0 0.75rem 1.6rem rgba(255, 209, 0, 0.22);
}

.messageCtaButton:hover {
    background: #ffe14d;
    transform: translateY(-0.125rem);
    box-shadow: 0 0.95rem 1.95rem rgba(255, 209, 0, 0.32);
}

/* ========================================
   MESSAGE SECTION - END (REPLACE THIS BLOCK)
======================================== */


/* ========================================
   POLICY SECTION - START
======================================== */

.policySection {
    background: rgba(31, 99, 224, 0.08);
    padding: 7rem 0 7.5rem;
    overflow: hidden;
}

.policyContainer {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
}

.policyTitleWrapper {
    text-align: center;
    margin-bottom: 4.5rem;
}

.policyLabel {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #1f63e0;
    letter-spacing: 0.18rem;
    margin-bottom: 0.875rem;
    text-transform: uppercase;
}

.policyMainTitle {
    font-size: 2.625rem;
    font-weight: 700;
    color: #0F172A;
    margin-bottom: 1rem;
    line-height: 1.25;
}

.policySubtitle {
    font-size: 0.95rem;
    font-weight: 400;
    color: rgba(15, 23, 42, 0.65);
    line-height: 1.8;
}

.policyGrid {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.policyCard {
    display: grid;
    grid-template-columns: 54% 46%;
    align-items: center;
    position: relative;
}

.policyImageWrapper {
    width: 45vw;
    position: relative;
    z-index: 1;
    border-radius: 14px;
    overflow: hidden;
    /* box-shadow: 0 18px 40px rgba(2, 8, 23, 0.10); */
    /* background: #d9d9d9; */
}

.policyImage {
    display: block;
    width: 45vw;
    height: 27vw;
    min-height: 320px;
    max-height: 430px;
    object-fit: cover;
    object-position: center;
    transform: scale(1.01);
    box-shadow: 0 18px 40px rgba(2, 8, 23, 0.10);
    transition: transform 0.35s ease;
}

.policyCard:hover .policyImage {
    transform: scale(1.05);
}

.policyContent {
    position: relative;
    z-index: 2;
    background: transparent;
    border-radius: 14px;
    padding: 2.25rem 2.5rem;
    margin-left: -1rem;
    width: calc(100% + 1rem);
}

.policyCardLabel {
    font-size: 0.75rem;
    font-weight: 700;
    color: #FC0B0BD9;
    letter-spacing: 0.14rem;
    margin-bottom: 0.9rem;
    text-transform: uppercase;
}

.policyCardTitle {
    font-size: 1.7rem;
    font-weight: 700;
    color: #0F172A;
    margin-bottom: 1rem;
    line-height: 1.3;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.policyCardTitle span {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.15em;
}

.policyCardTitle img {
    width: 2.2rem;
    height: auto;
    margin-top: -1vw;
    display: block;
}

.policyCardDescription {
    font-size: 0.7rem;
    font-weight: 400;
    color: rgba(15, 23, 42, 0.68);
    line-height: 1.9;
    margin-bottom: 1.35rem;
    max-width: 31rem;
}

.policyMoreButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 0.78rem 2.05rem;
    border-radius: 999rem;
    background: rgba(243, 31, 31, 0.85);
    color: #ffffff;
    font-size: 0.6rem;
    font-weight: 700;
    box-shadow: 0 0.95rem 1.7rem rgba(2, 8, 23, 0.14);
}

.policyMoreButton::after {
    content: "›";
    font-size: 1.05rem;
    line-height: 1;
    transform: translateY(-0.02rem);
    opacity: 0.95;
}

.policyMoreButton:hover {
    background: #111c33;
    transform: translateY(-0.125rem);
    box-shadow: 0 1.15rem 2.1rem rgba(2, 8, 23, 0.18);
}

/* alternating layout */
.policyCard02,
.policyCard04 {
    grid-template-columns: 46% 54%;
    margin-top: -1.5rem;
}

.policyCard02 .policyImageWrapper,
.policyCard04 .policyImageWrapper {
    order: 2;
}

.policyCard02 .policyContent,
.policyCard04 .policyContent {
    order: 1;
    margin-left: 0;
    margin-right: -6.5rem;
    text-align: left;
}

.policyCard03 {
    margin-top: -1.5rem;
}

.policyCard04 {
    margin-top: -1.5rem;
}

/* color variations */
.policyCard02 .policyCardLabel {
    color: #29D0C8;
}

.policyCard02 .policyMoreButton {
    background: #29D0C8;
}

.policyCard03 .policyCardLabel {
    color: #033BCB;
}

.policyCard03 .policyMoreButton {
    background: #033BCB;
}

.policyCard04 .policyCardLabel {
    color: #E0801FD9;
}

.policyCard04 .policyMoreButton {
    background: #FFA629;
}

/* layer order for overlaps */
.policyCard01 {
    z-index: 1;
}

.policyCard02 {
    z-index: 2;
}

.policyCard03 {
    z-index: 3;
}

.policyCard04 {
    z-index: 4;
}

/* ========================================
   POLICY SECTION - END
======================================== */

/* ========================================
   REPORT SECTION - START
======================================== */

.reportSection {
    background: #ffffff;
    padding: 7.5rem 0;
    position: relative;
}

.reportContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
}

/* Report Title Area */
.reportTitleWrapper {
    text-align: center;
    margin-bottom: 3rem;
}

.reportLabel {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1F63E0;
    letter-spacing: 0.1875rem;
    margin-bottom: 1rem;
    text-transform: uppercase;
}

.reportMainTitle {
    font-size: 2.625rem;
    font-weight: 700;
    color: #0F172A;
    margin-bottom: 1.25rem;
    line-height: 1.3;
}

.reportSubtitle {
    font-size: 1.125rem;
    font-weight: 400;
    color: rgba(15, 23, 42, 0.7);
    line-height: 1.6;
}

/* Tab Buttons */
.reportTabsWrapper {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 3.75rem;
    flex-wrap: wrap;
}

.reportTabButton {
    display: inline-flex;
    padding: 0.75rem 2rem;
    justify-content: center;
    align-items: center;
    border-radius: 999px;
    border: 0.0625rem solid #0D2C6C;
    background: #ffffff;
    color: #0D2C6C;
    font-size: 0.9375rem;
    font-weight: 500;
    transition: all 0.3s ease;
    cursor: pointer;
    box-shadow: 0 0.25rem 0.75rem rgba(13, 44, 108, 0.08);
}

.reportTabButton:hover {
    transform: translateY(-0.125rem);
    box-shadow: 0 0.5rem 1rem rgba(13, 44, 108, 0.15);
}

.reportTabButton.active {
    background: #0D2C6C;
    color: #ffffff;
    box-shadow: 0 0.875rem 1.625rem 0 rgba(13, 44, 108, 0.20);
}

/* Report List */
.reportList {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 56.25rem;
    margin: 0 auto 3.75rem;
}

.reportItem {
    display: grid;
    grid-template-columns: 7.5rem 7.5rem 1fr;
    gap: 1.5rem;
    align-items: center;
    padding: 1.875rem 2rem;
    border-bottom: 0.0625rem solid rgba(15, 23, 42, 0.1);
    transition: all 0.3s ease;
    cursor: pointer;
    border-radius: 14px;
    border: var(--stroke-weight-1, 1px) solid var(--color-grey-9195, rgba(226, 232, 240, 0.95));
    background: var(--color-white-solid, #FFF);
    box-shadow: 0 4px 14px 0 rgba(2, 8, 23, 0.08);
    margin-bottom: 1rem;
}

.reportItem:hover {
    background: rgba(31, 99, 224, 0.03);
    transform: translateX(0.5rem);
}

.reportItem.hidden {
    display: none;
}

.reportDate {
    font-size: 0.9375rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.6);
}

.reportCategory {
    display: inline-flex;
    padding: 0.55rem 0.1rem;
    justify-content: center;
    align-items: center;
    border-radius: 16.375rem;
    background: rgba(31, 99, 224, 0.10);
    color: #0D2C6C;
    font-size: 0.75rem;
    font-weight: 700;
    width: 6rem;
}

.reportTitle {
    font-size: 1.0625rem;
    font-weight: 500;
    color: #0F172A;
    line-height: 1.6;
}

/* View All Link */
.reportViewAllWrapper {
    text-align: center;
}

.reportViewAllLink {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #0D2C6C;
    transition: all 0.3s ease;
    border-radius: 23px;
    border: var(--stroke-weight-1, 1px) solid var(--color-azure-5022, rgba(31, 99, 224, 0.22));
    background: var(--color-white-solid, #FFF);
    box-shadow: 0 4px 14px 0 rgba(2, 8, 23, 0.08);
    padding: 1vw 3vw;
}

.reportViewAllLink::after {
    content: '→';
    transition: transform 0.3s ease;
}

.reportViewAllLink:hover {
    color: #1F63E0;
}

.reportViewAllLink:hover::after {
    transform: translateX(0.25rem);
}

/* ========================================
   REPORT SECTION - END
======================================== */


/* ========================================
   NEWS SECTION - START
======================================== */

.newsSection {
    background: #F8FAFC;
    padding: 7.5rem 0;
    position: relative;
}

.newsContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
}

/* News Title Area */
.newsTitleWrapper {
    text-align: center;
    margin-bottom: 3rem;
}

.newsLabel {
    font-size: 0.875rem;
    font-weight: 500;
    color: #1F63E0;
    letter-spacing: 0.1875rem;
    margin-bottom: 1rem;
    text-transform: uppercase;
}

.newsMainTitle {
    font-size: 2.625rem;
    font-weight: 700;
    color: #0F172A;
    margin-bottom: 1.25rem;
    line-height: 1.3;
}

.newsSubtitle {
    font-size: 1.125rem;
    font-weight: 400;
    color: rgba(15, 23, 42, 0.7);
    line-height: 1.6;
}

/* Tab Buttons */
.newsTabsWrapper {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 3.75rem;
    flex-wrap: wrap;
}

.newsTabButton {
    display: inline-flex;
    padding: 0.75rem 2rem;
    justify-content: center;
    align-items: center;
    border-radius: 999px;
    border: 0.0625rem solid #0D2C6C;
    background: #ffffff;
    color: #0D2C6C;
    font-size: 0.9375rem;
    font-weight: 500;
    transition: all 0.3s ease;
    cursor: pointer;
    box-shadow: 0 0.25rem 0.75rem rgba(13, 44, 108, 0.08);
}

.newsTabButton:hover {
    transform: translateY(-0.125rem);
    box-shadow: 0 0.5rem 1rem rgba(13, 44, 108, 0.15);
}

.newsTabButton.active {
    background: #0D2C6C;
    color: #ffffff;
    box-shadow: 0 0.875rem 1.625rem 0 rgba(13, 44, 108, 0.20);
}

/* News Grid */
.newsGrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-bottom: 3.75rem;
}

/* News Card */
.newsCard {
    background: #ffffff;
    border-radius: 0.75rem;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.06);
}

.newsCard:hover {
    transform: translateY(-0.5rem);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.12);
}

.newsCard.hidden {
    display: none;
}

.newsImageWrapper {
    width: 100%;
    height: 15rem;
    overflow: hidden;
    position: relative;
}

.newsImage {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.5s ease;
}

.newsCard:hover .newsImage {
    transform: scale(1.05);
}

.newsContent {
    padding: 1.75rem;
}

.newsMeta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.875rem;
}

.newsDate {
    font-size: 0.875rem;
    font-weight: 400;
    color: rgba(15, 23, 42, 0.6);
}

.newsCategory {
    display: inline-flex;
    padding: 0.25rem 0.625rem;
    justify-content: center;
    align-items: center;
    border-radius: 0.25rem;
    background: #1F63E0;
    color: #ffffff;
    font-size: 0.6875rem;
    font-weight: 500;
}

.newsTitle {
    font-size: 1.125rem;
    font-weight: 600;
    color: #0F172A;
    line-height: 1.6;
    margin-bottom: 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.newsExcerpt {
    font-size: 0.875rem;
    font-weight: 400;
    color: rgba(15, 23, 42, 0.7);
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* View All Link */
.newsViewAllWrapper {
    text-align: center;
}

.newsViewAllLink {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #0D2C6C;
    transition: all 0.3s ease;
    background: var(--color-white-solid, #FFF);
    box-shadow: 0 4px 14px 0 rgba(2, 8, 23, 0.08);
    padding: 1vw 3vw;
    border-radius: 23px;
}

.newsViewAllLink::after {
    content: '→';
    transition: transform 0.3s ease;
}

.newsViewAllLink:hover {
    color: #1F63E0;
}

.newsViewAllLink:hover::after {
    transform: translateX(0.25rem);
}

/* ========================================
   NEWS SECTION - END
======================================== */
/* ========================================
   CONTACT CTA SECTION - START
======================================== */

.contactCtaSection {
    position: relative;
    padding: 5.75rem 0;
    background: linear-gradient(99deg, #0D2C6C 0%, #1F63E0 100%);
    overflow: hidden;
}

/* subtle geometric/skyline mood */
.contactCtaSection::before {
    content: "";
    position: absolute;
    inset: -8vh -6vw -8vh -6vw;
    background:
        radial-gradient(120vh 70vh at 18% 25%, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.00) 60%),
        radial-gradient(110vh 75vh at 82% 20%, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.00) 58%),
        linear-gradient(180deg, rgba(0, 0, 0, 0.00) 0%, rgba(0, 0, 0, 0.12) 100%),
        repeating-linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.18) 0%,
            rgba(0, 0, 0, 0.18) 2%,
            rgba(0, 0, 0, 0.00) 2%,
            rgba(0, 0, 0, 0.00) 8%
        );
    opacity: 0.32;
    pointer-events: none;
}

/* big upward arrow hint (very subtle) */
.contactCtaSection::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 6%;
    width: 32vw;
    height: 32vw;
    max-width: 26rem;
    max-height: 26rem;
    transform: translateX(-50%) rotate(0deg);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.00) 65%);
    clip-path: polygon(50% 0%, 70% 20%, 58% 20%, 58% 100%, 42% 100%, 42% 20%, 30% 20%);
    opacity: 0.18;
    pointer-events: none;
}

.contactCtaContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
}

.contactCtaCard {
    width: min(70rem, 100%);
    border-radius: 1rem;
    padding: 3.5rem 4rem;
    background: rgba(255, 255, 255, 0.12);
    border: 0.0625rem solid rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(0.9rem);
    -webkit-backdrop-filter: blur(0.9rem);
    box-shadow: 0 1.25rem 3rem rgba(2, 8, 23, 0.22);
    text-align: center;
}

.contactCtaTitle {
    font-size: 2rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.35;
    margin-bottom: 0.75rem;
    letter-spacing: 0.04rem;
}

.contactCtaSubtitle {
    font-size: 0.9375rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.8;
    margin: 0 auto 1.75rem;
    max-width: 46rem;
}

.contactCtaButtons {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.contactCtaButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.95rem;
    padding: 0 1.35rem;
    border-radius: 0.75rem;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.02rem;
    min-width: 12rem;
}

.contactCtaButtonPrimary {
    background: #FFD100;
    color: rgba(15, 23, 42, 0.95);
    box-shadow: 0 0.95rem 1.75rem rgba(255, 209, 0, 0.22);
}

.contactCtaButtonPrimary:hover {
    background: #ffe14d;
    transform: translateY(-0.125rem);
    box-shadow: 0 1.15rem 2.1rem rgba(255, 209, 0, 0.30);
}

.contactCtaButtonSecondary {
    background: rgba(15, 23, 42, 0.16);
    color: #ffffff;
    border: 0.0625rem solid rgba(255, 255, 255, 0.44);
    backdrop-filter: blur(0.75rem);
    -webkit-backdrop-filter: blur(0.75rem);
    box-shadow: 0 0.95rem 1.75rem rgba(0, 0, 0, 0.16);
}

.contactCtaButtonSecondary:hover {
    background: rgba(15, 23, 42, 0.26);
    transform: translateY(-0.125rem);
    box-shadow: 0 1.15rem 2.1rem rgba(0, 0, 0, 0.22);
}

/* ========================================
   CONTACT CTA SECTION - END
======================================== */


/* ========================================
   FOOTER SECTION - START
======================================== */

.siteFooter {
    background: #061B3D;
    color: rgba(255, 255, 255, 0.88);
    position: relative;
}

.footerContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 3.75rem 2.5rem 2.25rem;
}

.footerGrid {
    display: grid;
    grid-template-columns: 1.1fr 0.95fr 1.3fr;
    gap: 3.25rem;
    align-items: start;
}

.footerHeading {
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.03rem;
    color: rgba(255, 255, 255, 0.92);
    margin-bottom: 1rem;
}

.footerList {
    display: grid;
    gap: 0.75rem;
}

.footerLink {
    font-size: 0.875rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
}

.footerLink:hover {
    color: #ffffff;
    opacity: 0.98;
    transform: translateY(-0.06rem);
}

.footerOfficeName {
    font-size: 0.9375rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.92);
    margin-bottom: 0.75rem;
}

.footerOfficeText {
    font-size: 0.875rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.8;
}

.footerBottom {
    margin-top: 2.75rem;
    padding-top: 1.75rem;
    border-top: 0.0625rem solid rgba(255, 255, 255, 0.10);
    text-align: center;
}

.footerCopyright {
    font-size: 0.8125rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.60);
    letter-spacing: 0.02rem;
}

/* ========================================
   FOOTER SECTION - END
======================================== */

/* ========================================
   POLICY PAGE HERO - START
======================================== */

.policyPageHero {
    position: relative;
    width: 100%;
    min-height: 25rem;
    padding: 6.25rem 0 5.25rem;
    background: linear-gradient(99deg, #0D2C6C 0%, #1F63E0 100%);
    overflow: hidden;
    display: flex;
    align-content: center;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.policyPageHero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("../assets/img/SectionOmoi.png") center / cover no-repeat;
    opacity: 0.35;
    pointer-events: none;
}

.policyPageHeroInner {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
    text-align: center;
    position: relative;
    z-index: 2;
}

.policyPageHeroLabel {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22rem;
    color: rgba(255, 255, 255, 0.72);
    margin-bottom: 0.85rem;
}

.policyPageHeroTitle {
    font-size: 2.75rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.2;
    margin-bottom: 0.9rem;
}

.policyPageHeroSubtitle {
    font-size: 0.9375rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.82);
    line-height: 1.8;
}

/* ========================================
   POLICY PAGE HERO - END
======================================== */


/* ========================================
   BREADCRUMB BAR - START
======================================== */

.breadcrumbBar {
    width: 100vw;
    background: #EEF5FB;
    height: 5.25rem;
    display: flex;
    align-items: center;
}

.breadcrumbContainer {
    width: 100%;
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
}

.breadcrumbList {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    list-style: none;
}

.breadcrumbLink,
.breadcrumbCurrent {
    font-size: 0.8125rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.70);
}

.breadcrumbLink:hover {
    color: rgba(15, 23, 42, 0.92);
    transform: translateY(-0.06rem);
}

.breadcrumbSeparator {
    font-size: 0.8125rem;
    color: rgba(15, 23, 42, 0.45);
}

/* ========================================
   BREADCRUMB BAR - END
======================================== */


/* ========================================
   KIYOTA FUTURE SECTION - START
======================================== */

.kiyotaFutureSection {
    background: rgba(243, 31, 31, 0.37);
    padding: 5.75rem 0 6.75rem;
    position: relative;
    overflow: hidden;
}

.kiyotaFutureContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
}

.kiyotaFutureBigTitle {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 6.25rem;
    font-style: normal;
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: 0.02rem;
    color: rgba(243, 31, 31, 0.37);
    text-transform: uppercase;
    margin-bottom: 2.25rem;
}

.kiyotaFutureLayout {
    position: relative;
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 2.5rem;
    align-items: start;
}

.kiyotaFutureImageWrap {
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1.25rem 3rem rgba(2, 8, 23, 0.14);
    background: rgba(255, 255, 255, 0.35);
}

.kiyotaFutureImageWrap::before {
    content: "";
    display: block;
    padding-top: 62%;
}

.kiyotaFutureImage {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.kiyotaFutureCard {
    position: relative;

    /* overlap the image + sit half-image lower */
    margin-top: 7.5rem;
    margin-left: -6rem;

    border-radius: 1.25rem;
    background: rgba(255, 255, 255, 0.68);
    border: 0.0625rem solid rgba(255, 255, 255, 0.55);
    box-shadow: 0 1.5rem 3.5rem rgba(2, 8, 23, 0.12);

    backdrop-filter: blur(0.9rem);
    -webkit-backdrop-filter: blur(0.9rem);
}

.kiyotaFutureCardInner {
    padding: 2.75rem 3rem;
}

.kiyotaFutureCardLabel {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14rem;
    color: rgba(243, 31, 31, 0.85);
    text-transform: uppercase;
    margin-bottom: 0.9rem;
}

.kiyotaFutureCardTitle {
    font-size: 1.75rem;
    font-weight: 700;
    color: rgba(15, 23, 42, 0.92);
    line-height: 1.35;
    margin-bottom: 1.5rem;
}

.kiyotaFutureList {
    display: grid;
    gap: 1.25rem;
}

.kiyotaFutureListItem {
    display: grid;
    grid-template-columns: 1.125rem 1fr;
    gap: 0.9rem;
    align-items: start;
}

.kiyotaDot {
    width: 1.125rem;
    height: 1.125rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translateY(0.18rem);
}

.kiyotaDot svg {
    width: 1.125rem;
    height: 1.125rem;
    display: block;
}

.kiyotaFutureListText {
    font-size: 0.9375rem;
    font-weight: 500;
    line-height: 1.9;
    color: rgba(15, 23, 42, 0.72);
}

/* ========================================
   KIYOTA FUTURE SECTION - END
======================================== */

/* ========================================
   CHILDREN & FAMILY SUPPORT - START
======================================== */

.childrenSupportSection {
    background: rgba(75, 216, 209, 0.04);
    padding: 5.75rem 0 6.75rem;
    position: relative;
    overflow: hidden;
}

.childrenSupportContainer {
    max-width: 100vw;
    margin: 0 auto;
    /* padding: 0 2.5rem; */
}

.childrenSupportBigTitle {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 5.25rem;
    font-style: normal;
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: 0.02rem;
    color: rgba(75, 216, 209, 0.36);
    text-transform: uppercase;
    margin-bottom: 2.25rem;
    margin-right: 5rem;
    text-align: right;
}

.childrenSupportLayout {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 2.5rem;
    align-items: start;
    margin-left: 3rem;
}

/* image in the back-right */
.childrenSupportImageWrap {
    position: relative;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1.25rem 3rem rgba(2, 8, 23, 0.14);
    background: rgba(255, 255, 255, 0.35);
    z-index: 1;
}

.childrenSupportImageWrap::before {
    content: "";
    display: block;
    padding-top: 62%;
}

.childrenSupportImage {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* left card: lower than image and overlaps half-height */
.childrenSupportCard {
    position: relative;
    z-index: 2;
    margin-top: 9.5rem;
    margin-right: -9rem;
    border-radius: 1.25rem;
    background: rgba(255, 255, 255, 0.68);
    border: 0.0625rem solid rgba(255, 255, 255, 0.55);
    box-shadow: 0 1.5rem 3.5rem rgba(2, 8, 23, 0.12);
    backdrop-filter: blur(0.9rem);
    -webkit-backdrop-filter: blur(0.9rem);
    min-width: 46vw;
    margin-left: 3vw;
}

.childrenSupportCardInner {
    padding: 6.75rem 5rem;
}

.childrenSupportCardLabel {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14rem;
    color: rgba(41, 208, 200, 0.95);
    text-transform: uppercase;
    margin-bottom: 0.9rem;
}

.childrenSupportCardTitle {
    font-size: 1.75rem;
    font-weight: 700;
    color: rgba(15, 23, 42, 0.92);
    line-height: 1.35;
margin-bottom: 4.5rem;
    display: flex;
    align-items: flex-end;
    align-content: stretch;
    flex-direction: row;
    flex-wrap: nowrap;
}

.childrenSupportList {
    display: grid;
    gap: 1.25rem;
}

.childrenSupportListItem {
    display: grid;
    grid-template-columns: 1.125rem 1fr;
    gap: 0.9rem;
    align-items: start;
}

.childrenSupportDot {
    width: 1.125rem;
    height: 1.125rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translateY(0.18rem);
    margin-bottom: 3vw;
    align-items: center;
}

.childrenSupportDot svg {
    width: 1.125rem;
    height: 1.125rem;
    display: block;
}

.childrenSupportListText {
    font-size: 0.7rem;
    font-weight: 500;
    line-height: 1.9;
    color: rgba(15, 23, 42, 0.72);
}

/* ========================================
   CHILDREN & FAMILY SUPPORT - END
======================================== */
/* ========================================
   ECONOMIC GROWTH - CHANGES ONLY (BASE)
   (reuses kiyotaFutureSection styles)
======================================== */

.economicGrowthSection {
    background: #EEF5FB;
}

.economicGrowthBigTitle {
    color: rgba(3, 59, 203, 0.22);
}

/* keep same overlap behavior as kiyota, but tune if needed */
.economicGrowthCard {
    background: rgba(255, 255, 255, 0.70);
}

.economicGrowthDot svg {
    width: 1.125rem;
    height: 1.125rem;
}
/* ========================================
   SNOW SOLUTIONS - CHANGES ONLY (BASE)
   (reuses childrenSupportSection styles)
======================================== */

.snowSolutionsSection {
    background: rgba(255, 166, 41, 0.09);
}

.snowSolutionsBigTitle {
    color: rgba(255, 166, 41, 0.35);
    margin-left: 3rem;
}

.snowSolutionsDot svg {
    width: 1.125rem;
    height: 1.125rem;
}
/* ========================================
   FEATURE (shared) - START
   (for KIYOTA / ECONOMIC and any other "image-left" sections)
======================================== */

.featureSection {
    width: 100%;
    position: relative;
    overflow: hidden;
}

.featureContainer {
    max-width: 100vw;
    margin: 0;
    /* padding: 0 2.5rem; */
    padding-top: 6.5rem;
    padding-bottom: 7.5rem;
}

.featureBigTitle {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 5.25rem; /* 100px */
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.02em;
    margin-bottom: 2.75rem;
    margin-left: 3rem;
}

.featureLayout {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    align-items: start;
    position: relative;
}

.featureImageWrap {
    width: min(58vw, 56.25rem);
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 1.25rem 3.75rem rgba(2, 8, 23, 0.14);
    position: relative;
    z-index: 1;
    margin-left: -2vw;
}

.featureImage {
    width: 100%;
    height: auto;
    display: block;
}

.featureCard {
    width: min(50vw, 46.875rem);
    background: rgba(255, 255, 255, 0.62);
    border-radius: 1.5rem;
    box-shadow: 0 1.5rem 4rem rgba(2, 8, 23, 0.16);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 0.0625rem solid rgba(255, 255, 255, 0.6);
    position: relative;
    z-index: 2;
}

.featureCardInner {
    padding: 6.75rem 5rem;
}

.featureCardLabel {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
}

.featureCardTitle {
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1.35;
    color: #0F172A;
    display: flex;
    margin-bottom: 3.5rem;
    flex-direction: row;
    align-items: flex-end;
}

.featureList {
    display: grid;
    gap: 1.5rem;
}

.featureListItem {
    display: grid;
    grid-template-columns: 1.125rem 1fr;
    gap: 0.875rem;
    margin-bottom: 3vw;
    align-items: center;
}

.featureDot {
    display: inline-flex;
    width: 1.125rem;
    height: 1.125rem;
    /* line-height: 6vw; */
    transform: translateY(0.125rem);
}

.featureListText {
    font-size: 0.7rem;
    font-weight: 500;
    /* line-height: 5.9; */
    color: rgba(15, 23, 42, 0.78);
}

/* --- IMAGE LEFT (mirror of children section overlap) --- */
.featureLayoutImageLeft .featureImageWrap {
    grid-column: 1 / 2;
    justify-self: start;
}

.featureLayoutImageLeft .featureCard {
    grid-column: 2 / 3;
    justify-self: end;
    margin-top: 9.5rem;               /* card lower than image */
    transform: translateX(-22%);      /* overlaps into image */
}

/* ========================================
   KIYOTA - START
======================================== */

.kiyotaSection {
    background: rgba(243, 31, 31, 0.1);
}

.kiyotaBigTitle {
    color: rgba(243, 31, 31, 0.27);
}

.kiyotaLabel {
    color: rgba(243, 31, 31, 0.85);
}

/* ========================================
   KIYOTA - END
======================================== */


/* ========================================
   ECONOMIC - START
======================================== */

.economicSection {
    background: #EEF5FB;
}

.economicBigTitle {
    color: rgba(3, 59, 203, 0.22);
}

.economicLabel {
    color: rgba(3, 59, 203, 0.75);
}

/* ========================================
   ECONOMIC - END
======================================== */

/* ========================================
   FEATURE (shared) - END
======================================== */
/* ========================================
   ACCESS PAGE - START
======================================== */

.accessSection {
    background: #ffffff;
    padding: 3rem 0 5.5rem;
}

.accessContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
}

/* Top photo */
.accessHeroPhotoWrap {
    border-radius: 1.25rem;
    overflow: hidden;
    background: #ffffff;
    margin-bottom: 2.5rem;
}

.accessHeroPhoto {
    width: 100%;
    height: 20rem;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Info */
.accessInfoSection {
    margin-bottom: 2.5rem;
}

.accessInfoTitle {
    font-size: 2rem;
    font-weight: 800;
    color: #0F172A;
    line-height: 1.35;
    margin-bottom: 1rem;
}

.accessInfoDivider {
    width: 100%;
    height: 0.125rem;
    background: rgba(31, 99, 224, 0.75);
    margin-bottom: 0.25rem;
}

.accessInfoList {
    display: grid;
    gap: 0;
}

.accessInfoRow {
    display: grid;
    grid-template-columns: 5rem 1fr;
    gap: 3rem;
    padding: 1.35rem 0;
    border-bottom: 0.0625rem solid rgba(15, 23, 42, 0.10);
}

.accessInfoRow dt {
    font-size: 0.875rem;
    font-weight: 800;
    color: rgba(31, 99, 224, 0.78);
    letter-spacing: 0.04rem;
    line-height: 1.8;
}

.accessInfoRow dd {
    font-size: 0.9375rem;
    font-weight: 600;
    color: rgba(15, 23, 42, 0.72);
    line-height: 2;
}

.accessInfoRow dd a {
    color: rgba(15, 23, 42, 0.72);
    text-decoration: underline;
    text-underline-offset: 0.18rem;
}

.accessInfoRow dd a:hover {
    color: rgba(15, 23, 42, 0.92);
}

/* Map */
.accessMapWrap {
    border-radius: 1.5rem;
    overflow: hidden;
    background: #F7F7F7;
}

.accessMapWrap iframe {
    width: 100%;
    height: 27rem;
    display: block;
}

/* ========================================
   ACCESS PAGE - END
======================================== */
/* ========================================
   CONTACT PAGE MAIN - START
======================================== */

.contactPageMain {
  background: #ffffff;
  padding: 5.5rem 0 7rem;
}

.contactPageContainer {
  max-width: 62.5rem;
  margin: 0 auto;
  padding: 0 2.5rem;
}

.contactPageLead {
  text-align: center;
  font-size: 0.9375rem;
  font-weight: 500;
  color: rgba(15, 23, 42, 0.72);
  line-height: 1.9;
  margin-bottom: 3.25rem;
}

.contactForm {
  display: flex;
  flex-direction: column;
  gap: 2.25rem;
}

.formRow {
  display: grid;
  grid-template-columns: 12.5rem 1fr;
  gap: 1.75rem;
  align-items: start;
}

.formLabel {
  font-size: 0.9375rem;
  font-weight: 700;
  color: rgba(15, 23, 42, 0.92);
  line-height: 1.6;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.5rem;
}

.reqBadge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 1.1875rem;
  padding: 0 0.5rem;
  border-radius: 0.25rem;
  background: #F31F1F;
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}

.formField { width: 100%; }

.formInput,
.formTextarea {
  width: 100%;
  border-radius: 0.375rem;
  border: 0.0625rem solid rgba(15, 23, 42, 0.12);
  background: #F7FAFC;
  padding: 0.95rem 1.1rem;
  font-size: 0.9375rem;
  color: rgba(15, 23, 42, 0.86);
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.formTextarea {
  resize: vertical;
  min-height: 13.5rem;
  line-height: 1.8;
}

.formInput:focus,
.formTextarea:focus {
  border-color: rgba(31, 99, 224, 0.55);
  box-shadow: 0 0 0 0.25rem rgba(31, 99, 224, 0.14);
  background: #ffffff;
}

.formHelp {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  color: rgba(15, 23, 42, 0.58);
}

.formError {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #F31F1F;
  min-height: 1.2em;
}

.isInvalid .formInput,
.isInvalid .formTextarea {
  border-color: rgba(243, 31, 31, 0.65);
  box-shadow: 0 0 0 0.25rem rgba(243, 31, 31, 0.12);
  background: rgba(243, 31, 31, 0.04);
}

/* Privacy block */
.privacyBlock {
  border-radius: 0.5rem;
  border: 0.0625rem solid rgba(15, 23, 42, 0.12);
  background: rgba(238, 245, 251, 0.55);
  padding: 1.25rem 1.25rem 1.1rem;
}

.privacyHeader {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.privacyTitle {
  font-size: 0.9375rem;
  font-weight: 800;
  color: rgba(15, 23, 42, 0.92);
}

.privacyScroll {
  background: #ffffff;
  border: 0.0625rem solid rgba(15, 23, 42, 0.10);
  border-radius: 0.375rem;
  padding: 1rem 1.15rem;
  max-height: 16.5rem;
  overflow: auto;
  line-height: 1.75;
  color: rgba(15, 23, 42, 0.78);
}

.privacyDocTitle {
  font-size: 0.9375rem;
  font-weight: 800;
  color: rgba(15, 23, 42, 0.92);
  margin-bottom: 0.75rem;
}

.privacyScroll h5 {
  font-size: 0.875rem;
  font-weight: 800;
  margin: 1rem 0 0.35rem;
  color: rgba(15, 23, 42, 0.90);
}

.privacyScroll ul,
.privacyScroll ol {
  padding-left: 1.25rem;
  margin: 0.5rem 0;
}

.privacyAgree {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.95rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: rgba(15, 23, 42, 0.84);
}

.privacyAgree input {
  width: 1.125rem;
  height: 1.125rem;
}

.formActions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.5rem;
}

.contactSubmitButton {
  width: 18.75rem;
  height: 3.125rem;
  border-radius: 0.625rem;
  border: none;
  background: #1F63E0;
  color: #ffffff;
  font-size: 0.9375rem;
  font-weight: 800;
  box-shadow: 0 0.75rem 1.5rem rgba(31, 99, 224, 0.22);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.contactSubmitButton:hover {
  background: #1a57c7;
  transform: translateY(-0.08rem);
  box-shadow: 0 1rem 2rem rgba(31, 99, 224, 0.28);
}

.contactSubmitButton:active {
  transform: translateY(0);
}

.formNote {
  font-size: 0.75rem;
  color: rgba(15, 23, 42, 0.58);
}

.formSuccess {
  font-size: 0.875rem;
  font-weight: 700;
  color: rgba(16, 185, 129, 0.95);
  min-height: 1.2em;
}

/* ========================================
   CONTACT PAGE MAIN - END
======================================== */
/* ========================================
   REPORT ARCHIVE SECTION - START
   reports page only / new parts only
======================================== */

.reportArchiveMain {
    background: #ffffff;
}

.reportArchiveSection {
    padding: 5rem 0 7.5rem;
}

.reportArchiveContainer {
    max-width: 87.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
}

/* Filter tabs */
.reportFilterTabs {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 3.75rem;
}

.reportFilterTab {
    min-width: 7rem;
    height: 3rem;
    padding: 0 1.5rem;
    border: 0.0625rem solid rgba(15, 23, 42, 0.14);
    background: #F8FBFD;
    color: rgba(15, 23, 42, 0.40);
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1;
    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
    cursor: pointer;
}

.reportFilterTab:first-child {
    border-radius: 0.75rem 0 0 0.75rem;
}

.reportFilterTab:last-child {
    border-radius: 0 0.75rem 0.75rem 0;
}

.reportFilterTab + .reportFilterTab {
    margin-left: -0.0625rem;
}

.reportFilterTab.isActive,
.reportFilterTab[aria-selected="true"] {
    background: #4A73C9;
    color: #ffffff;
    border-color: #4A73C9;
    box-shadow: 0 0.75rem 1.5rem rgba(74, 115, 201, 0.16);
}

.reportFilterTab:hover:not(.isActive):not([aria-selected="true"]) {
    background: #EEF5FB;
    color: rgba(15, 23, 42, 0.64);
}

/* Archive list */
.reportArchiveList {
    max-width: 49rem;
    margin: 0 auto;
}

.reportArchiveItem {
    border-bottom: 0.0625rem solid rgba(15, 23, 42, 0.14);
}

.reportArchiveItem.isHidden {
    display: none;
}

.reportArchiveLink {
    min-height: 4.75rem;
    display: grid;
    grid-template-columns: 6rem 6.75rem 1fr;
    align-items: center;
    gap: 1.5rem;
    padding: 1.35rem 0;
}

.reportArchiveDate {
    font-size: 0.9375rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.38);
    white-space: nowrap;
}

.reportArchiveTag {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-width: 3.5rem;
    height: 1.75rem;
    padding: 0 0.7rem;
    border-radius: 0.25rem;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    margin-left: 2rem;
    text-align: center;
    flex-direction: column;
    justify-content: center;
    align-content: center;
    flex-wrap: wrap;
}

.tagPlenary,
.tagStanding,
.tagSpecial {
    background: #DDE8FB;
    color: #4A73C9;
}

.reportArchiveTitle {
    font-size: 0.9375rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.82);
    line-height: 1.8;
    transition: color 0.25s ease;
    margin-left: 5rem;
}

.reportArchiveLink:hover .reportArchiveTitle {
    color: #1F63E0;
}

/* Pagination */
.reportPagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.45rem;
    margin-top: 2.5rem;
}

.reportPaginationButton {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    border: 0.0625rem solid rgba(15, 23, 42, 0.14);
    background: #ffffff;
    color: rgba(15, 23, 42, 0.42);
    font-size: 0.9375rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
    cursor: pointer;
}

.reportPaginationButton:hover:not(.isActive):not(:disabled) {
    background: #EEF5FB;
    color: rgba(15, 23, 42, 0.70);
}

.reportPaginationButton.isActive {
    background: #4A73C9;
    border-color: #4A73C9;
    color: #ffffff;
    box-shadow: 0 0.75rem 1.5rem rgba(74, 115, 201, 0.16);
}

.reportPaginationButton:disabled {
    opacity: 0.45;
    cursor: default;
}

/* ========================================
   REPORT ARCHIVE SECTION - END
======================================== */
/* ========================================
   SINGLE REPORT PAGE - START
======================================== */

.singleReportPage {
    background: #ffffff;
    padding: 2.5rem 0 0;
}

.singleReportContainer {
    max-width: 96.5rem;
    margin: 0 auto;
    padding: 0 2.5rem;
}

.singleReportArticle {
    max-width: 76rem;
    margin: 0 auto;
}

.singleReportMeta {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.singleReportTag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 1.75rem;
    padding: 0 0.7rem;
    border-radius: 0.25rem;
    background: #DDE8FB;
    color: #4A73C9;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1;
}

.singleReportDate {
    font-size: 0.9375rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.38);
}

.singleReportEyecatchWrap {
    border-radius: 1rem;
    overflow: hidden;
    background: #f5f5f5;
    margin-bottom: 2rem;
}

.singleReportEyecatch {
    width: 100%;
    height: 25rem;
    object-fit: COVER;
    display: block;
}

.singleReportContent {
    font-size: 1rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.72);
    line-height: 1.9;
}

.singleReportContent p {
    margin-bottom: 2rem;
}

.singleReportPdfWrap {
    display: flex;
    justify-content: center;
    margin-bottom: 3.5rem;
    align-items: center;
    flex-direction: column;
}

.singleReportPdfLink {
    display: flex;
    width: auto;
    flex-direction: column;
   align-items: center;
}

.singleReportPdfImage {
    width: min(22rem, 100%);
    height: auto;
    display: block;
    box-shadow: 0 0.75rem 2rem rgba(2, 8, 23, 0.10);
}

/* Share */
.singleReportShareArea {
    border-top: 0.0625rem solid rgba(15, 23, 42, 0.10);
    border-bottom: 0.0625rem solid rgba(15, 23, 42, 0.10);
    padding: 1.75rem 0;
    margin-bottom: 2rem;
}

.singleReportShareInner {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.singleReportShareLabel {
    font-size: 1rem;
    font-weight: 700;
    color: rgba(15, 23, 42, 0.62);
}

.singleReportShareLinks {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.shareButton {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-weight: 800;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.shareButton:hover {
    transform: translateY(-0.08rem);
    opacity: 0.88;
}

.shareFacebook {
    color: #1877F2;
    background: transparent;
    font-size: 2.1rem;
}

.shareX {
    color: #111111;
    background: transparent;
    font-size: 1.9rem;
}

.shareInstagram {
    color: #111111;
    background: transparent;
    font-size: 1.6rem;
}

.shareLine {
    width: auto;
    min-width: 2.3rem;
    padding: 0 0.5rem;
    background: #06C755;
    color: #ffffff;
    font-size: 0.625rem;
    font-weight: 900;
}

/* Pager */
.singleReportPager {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 3.5rem;
}

.singleReportPagerPrev,
.singleReportPagerNext {
    color: #8EA7E0;
    font-size: 1rem;
    font-weight: 700;
}

.singleReportPagerPrev:hover,
.singleReportPagerNext:hover {
    color: #4A73C9;
}

/* Bottom widgets */
.singleReportBottomWidgets {
    background: #EEF5FB;
    display: grid;
    grid-template-columns: 1fr 1.75fr 1fr;
    gap: 2rem;
    padding: 3rem 2.5rem 4rem;
    margin-top: 0;
    justify-items: center;
}

.singleReportWidgetTitle {
    font-size: 1.5rem;
    font-weight: 800;
    color: #0F172A;
    margin-bottom: 1rem;
}

.singleReportWidget::before {
    content: "";
    display: block;
    width: 100%;
    height: 0.1875rem;
    background: #4A73C9;
    margin-bottom: 1rem;
}

.singleReportWidgetList {
    list-style: none;
    display: grid;
    gap: 0;
}

.singleReportWidgetList li {
    border-bottom: 0.0625rem solid rgba(15, 23, 42, 0.08);
}

.singleReportWidgetList a {
    display: block;
    padding: 1rem 0;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.8;
    color: rgba(15, 23, 42, 0.72);
}

.singleReportWidgetList a:hover {
    color: #1F63E0;
}

/* ========================================
   SINGLE REPORT PAGE - END
======================================== */
/* ========================================
   NEWS ARCHIVE PAGE
======================================== */
.newsArchiveCard.isHidden{
    display:none;
}   
.newsArchivePage {
  background: #f8f8f8;
  min-height: 100vh;
}

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

.newsArchiveBreadcrumb {
  background: #e8edf1;
  padding: 12px 0;
  padding-left: 5vw;
}

.newsArchiveBreadcrumb__nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5em;
  font-size: 12px;
  line-height: 1.6;
  color: #7e8794;
}

.newsArchiveBreadcrumb__nav a {
  color: #7e8794;
  text-decoration: none;
}

.newsArchiveBreadcrumb__nav a:hover {
  opacity: 0.7;
}

/* ========================================
   MAIN ARCHIVE AREA
======================================== */

.newsArchive {
  padding: 56px 0 130px;
}

.newsArchive__inner {
  max-width: 88vw;
  margin: 0 auto;
}

/* ========================================
   TABS
======================================== */

.newsArchive__tabArea {
  display: flex;
  justify-content: center;
  margin-bottom: 52px;
}

.newsArchive__tabs {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid #cfd6dd;
  border-radius: 8px;
  overflow: hidden;
  background: #f7f9fb;
}

.newsArchive__tab {
  min-width: 110px;
  height: 48px;
  padding: 0 24px;
  border: none;
  border-right: 1px solid #cfd6dd;
  background: transparent;
  color: #8c939c;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.newsArchive__tab:last-child {
  border-right: none;
}

.newsArchive__tab:hover {
  background: #eef3fb;
}

.newsArchive__tab.is-active {
  background: #4d73bf;
  color: #fff;
}

/* ========================================
   GRID
======================================== */

.newsArchive__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px 20px;
}

/* ========================================
   CARD
======================================== */

.newsArchiveCard {
  background: #fff;
  border: 1px solid #dddddd;
  border-radius: 10px;
  overflow: hidden;
}

.newsArchiveCard.is-hidden {
  display: none;
}

.newsArchiveCard__link {
  display: block;
  color: inherit;
  text-decoration: none;
  height: 100%;
}

.newsArchiveCard__image {
  width: 100%;
  aspect-ratio: 314 / 150;
  background: #d9d9d9;
  overflow: hidden;
}

.newsArchiveCard__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.newsArchiveCard__content {
  padding: 13px 22px 16px;
  background: #fff;
}

.newsArchiveCard__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.newsArchiveCard__date {
  font-size: 13px;
  line-height: 1;
  color: #999999;
}

.newsArchiveCard__category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 50px;
  height: 20px;
  padding: 0 8px;
  border-radius: 3px;
  background: #dce8ff;
  color: #4d73bf;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.newsArchiveCard__title {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  color: #111111;
}

.newsArchiveCard__text {
  margin: 0;
  font-size: 12px;
  line-height: 1.6;
  color: #9a9a9a;
}

/* ========================================
   PAGINATION
======================================== */

.newsArchivePagination {
  margin-top: 52px;
}

.newsArchivePagination.is-hidden {
  display: none;
}

.newsArchivePagination__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.newsArchivePagination__item,
.newsArchivePagination__button {
  min-width: 30px;
  height: 30px;
  padding: 0 10px;
  border: 1px solid #d7d7d7;
  border-radius: 5px;
  background: #fff;
  color: #8d8d8d;
  font-size: 13px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.newsArchivePagination__button {
  appearance: none;
}

.newsArchivePagination__item:hover,
.newsArchivePagination__button:hover {
  background: #eef3fb;
}

.newsArchivePagination__item.is-active,
.newsArchivePagination__button.is-active {
  background: #4d73bf;
  border-color: #4d73bf;
  color: #fff;
}

.newsArchivePagination__item--dots {
  cursor: default;
  pointer-events: none;
}

.newsArchivePagination__button[disabled] {
  opacity: 0.45;
  cursor: default;
  pointer-events: none;
}

/* ========================================
   EMPTY MESSAGE
======================================== */

.newsArchive__empty {
  display: none;
  text-align: center;
  font-size: 14px;
  color: #888888;
  padding: 40px 0 10px;
}

.newsArchive__empty.is-visible {
  display: block;
}

/* ========================================
   SINGLE NEWS PAGE
======================================== */
.newsSingleContainer{
max-width:900px;
margin:0 auto;
padding:40px 20px;
}

.newsSingleBreadcrumb{
font-size:14px;
color:#8a8a8a;
margin-bottom:30px;
}

.newsSingleMeta{
display:flex;
align-items:center;
gap:20px;
margin-bottom:15px;
}

.newsSingleCategory{
background:#e6eefc;
color:#2f5ea8;
font-size:13px;
padding:4px 10px;
border-radius:4px;
}

.newsSingleDate{
font-size:14px;
color:#8a8a8a;
}

.newsSingleHero img{width:100%;border-radius:10px;display:block;margin-bottom:30px;height: 35vw;object-fit: cover;}

.newsSingleContent{
line-height:1.9;
font-size:16px;
}

.newsSingleContent p{
margin-bottom:20px;
}

.newsSingleHeading{
background:#2f5ea8;
color:white;
padding:12px 16px;
border-radius:6px;
margin:30px 0 20px;
font-size:18px;
}

.newsSingleImage img{
width:100%;
border-radius:10px;
margin:30px 0;
}

.newsRelated{
background:#eef3f9;
padding:60px 0;
margin-top:60px;
}

.newsRelatedContainer{
max-width:1100px;
margin:0 auto;
padding:0 20px;
}

.newsRelatedTitle{
font-size:18px;
margin-bottom:30px;
position:relative;
}

.newsRelatedTitle:after{
content:"";
display:block;
height:3px;
background:#2f5ea8;
width:100%;
margin-top:10px;
}

.newsRelatedGrid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
}

.newsRelatedCard{
background:white;
border-radius:10px;
overflow:hidden;
}

.newsRelatedImage{
height:150px;
background:#ddd;
}

.newsRelatedContent{
padding:16px;
}

.newsRelatedMeta{
display:flex;
gap:10px;
font-size:12px;
margin-bottom:6px;
}

.newsRelatedCategory{
background:#e6eefc;
padding:2px 8px;
border-radius:4px;
}

.newsRelatedHeading{
font-size:14px;
margin-bottom:6px;
}

.newsRelatedExcerpt{
font-size:12px;
color:#777;
}
/* ========================================
   PRIVACY PAGE - START
======================================== */

.privacyPageMain {
	padding: 6rem 0 10rem;
	background: #f8f8f8;
}

.privacyPageContainer {
	width: min(90%, 110rem);
	margin: 0 auto;
}

.privacyPageCard {
	background: #ffffff;
	border-radius: 2rem;
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.06);
	padding: 5rem;
}

.privacyDocTitle {
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.5;
	color: #111111;
	margin: 0 0 3.2rem;
}

.privacyPageCard h3 {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.6;
	color: #111111;
	margin: 4rem 0 1.6rem;
	padding-bottom: 1rem;
	border-bottom: 0.1rem solid #e5e5e5;
}

.privacyPageCard p,
.privacyPageCard li {
	font-size: 1.6rem;
	line-height: 2;
	color: #333333;
}

.privacyPageCard p {
	margin: 0 0 1.6rem;
}

.privacyPageCard ul,
.privacyPageCard ol {
	margin: 1.6rem 0 2.4rem 2.4rem;
	padding: 0;
}

.privacyPageCard li + li {
	margin-top: 0.8rem;
}

/* ========================================
   PRIVACY PAGE - END
======================================== */