@charset "utf-8";

@import url('https://www.apiservice.kr/fonts/NotoSansKR/NotoSansKR.css');

:root {
     --gs-primary-color: #17288a;
     --gs-black: #000;
     --gs-white: #fff;
     --gs-bright-grey: #e9edf0;
     --gs-aluminium: #a6a9b6;
     --gs-cute-sky-blue: #c0e2ff;
     --gs-middle-blue: #0481dd;

     --gs-max-width: 540px;
     --gs-min-width: 360px;
     --gs-header-max-width: 770px;
     --gs-header-height: 74px;
     --gs-header-lg-height: 148px;

     --gs-icon-search: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cdefs%3E%3Cfilter id='3mqq2kk4ca'%3E%3CfeFlood flood-color='%2317288A' flood-opacity='1' result='floodOut'/%3E%3CfeComposite operator='atop' in='floodOut' in2='SourceGraphic' result='compOut'/%3E%3CfeBlend in='compOut' in2='SourceGraphic'/%3E%3C/filter%3E%3C/defs%3E%3Cg filter='url(%233mqq2kk4ca)'%3E%3Cpath fill-rule='evenodd' d='m79.992 73.647-6.023 6.024-19.247-19.247C41.487 70.919 22.203 70.068 9.97 57.836c-13.167-13.168-13.167-34.517 0-47.685 13.168-13.167 34.518-13.167 47.685 0 12.058 12.058 13.039 30.959 3.014 44.173l19.323 19.323zM33.923 9.097C20.114 9.097 8.92 20.291 8.92 34.1s11.194 25.003 25.003 25.003S58.926 47.909 58.926 34.1 47.732 9.097 33.923 9.097z'/%3E%3C/g%3E%3C/svg%3E%0A");
     --gs-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%2317288a'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z'/%3E%3C/svg%3E");
     --gs-arrow-right-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%23ffffff'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z'/%3E%3C/svg%3E");
}

html,
body {
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
     -webkit-text-size-adjust: none;
}

html,
body,
div,
span,
applet,
object,
iframe,
p,
blockquote,
pre,
xmp,
a,
button,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
main,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video,
input,
textarea,
select,
svg {
     margin: 0;
     padding: 0;
     font: inherit;
     color: inherit;
     vertical-align: baseline;
     box-sizing: border-box;
}

*::before,
*::after {
     box-sizing: border-box;
}

h1,
h2,
h3,
h4,
h5,
h6 {
     margin: 0;
     padding: 0;
     vertical-align: baseline;
     box-sizing: border-box;
}

main,
header,
nav,
section,
footer,
menu,
article,
aside,
details,
figcaption,
figure,
hgroup {
     display: block;
}

address,
cite,
code,
em {
     font-style: inherit;
     font-weight: inherit;
}

fieldset {
     border: 0;
}

ol,
ul {
     list-style: none;
}

strong,
.strong {
     font-weight: 700;
}

strong.strong {
     font-weight: 900;
}

blockquote,
q {
     quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
     content: none;
}

legend {
     position: absolute;
     margin: -1px;
     width: 1px;
     height: 1px;
     overflow: hidden;
     clip: rect(0, 0, 0, 0);
}

table {
     border-collapse: collapse;
     border-spacing: 0;
     table-layout: fixed;
}

caption {
     position: absolute;
     margin: -1px;
     width: 1px;
     height: 1px;
     overflow: hidden;
     clip: rect(0, 0, 0, 0);
}

th,
td {
     line-height: 1.5;
     vertical-align: middle;
     word-break: break-all;
     text-overflow: ellipsis;
     word-wrap: break-word;
}

img {
     max-width: 100%;
     border: 0;
     vertical-align: middle;
}

button {
     cursor: pointer;
     vertical-align: middle;
     line-height: normal;
     border: 0;
     background: transparent;
     text-transform: none;
     overflow: visible;
     appearance: button;
     -webkit-appearance: button;
}

button[disabled] {
     cursor: not-allowed;
     opacity: 0.5;
}

a {
     color: inherit;
     text-decoration: none;
     -webkit-text-decoration-skip: objects;
}

a:active,
a:hover {
     outline: 0;
}

video {
     display: block;
     width: 100%;
}

label {
     vertical-align: middle;
}

input,
textarea {
     vertical-align: middle;
     line-height: normal;
     border-radius: 0;
     background-color: var(--gs-white);
     -webkit-touch-callout: default !important;
     user-select: text !important;
     -webkit-user-select: text !important;
}

input[type="text"],
input[type="password"],
input[type="number"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="time"],
input[type="file"],
input[type="date"],
textarea {
     padding: 0 10px;
     border: 1px solid #ddd;
     -webkit-appearance: none;
     appearance: none;
}

input[type="password"] {
     font-family: sans-serif !important;
}

input[type="checkbox"],
input[type="radio"] {
     width: auto;
     border: none;
}

input[type="button"],
input[type="reset"],
input[type="submit"] {
     cursor: pointer;
     appearance: button;
     -webkit-appearance: button;
}

input[type="file"]::file-selector-button {
     cursor: pointer;
}

input:-webkit-autofill {
     -webkit-box-shadow: 0 0 0px 1000px var(--gs-white) inset;
}

input::-webkit-input-placeholder {
     color: #999 !important;
}

input:-moz-placeholder {
     color: #999 !important;
     opacity: 1 !important;
}

input::-moz-placeholder {
     color: #999 !important;
     opacity: 1 !important;
}

input:-ms-input-placeholder {
     color: #999 !important;
}

textarea {
     padding: 10px;
     width: 100%;
     height: auto;
     line-height: 1.8;
     resize: none;
}

textarea::-webkit-input-placeholder {
     color: #999 !important;
}

textarea:-moz-placeholder {
     color: #999 !important;
     opacity: 1 !important;
}

textarea::-moz-placeholder {
     color: #999 !important;
     opacity: 1 !important;
}

textarea:-ms-input-placeholder {
     color: #999 !important;
}

input[type="text"][readonly],
input[type="password"][readonly],
input[type="email"][readonly],
input[type="tel"][readonly],
input[type="search"][readonly],
input[type="text"][disabled],
input[type="password"][disabled],
input[type="email"][disabled],
input[type="tel"][disabled],
input[type="search"][disabled],
textarea[readonly],
textarea[disabled],
select[disabled] {
     color: #666;
     background: #eaeaea;
     border-color: #c0c0c0;
}

input[readonly],
textarea[readonly] {
     cursor: default;
}

input[disabled],
textarea[disabled],
select[disabled] {
     cursor: not-allowed;
}

select {
     padding: 0 45px 0 25px;
     width: 100%;
     height: 48px;
     font-size: 18px;
     font-weight: 700;
     color: var(--gs-primary-color);
     border: 1px solid var(--gs-white);
     border-radius: 6px;
     background: var(--gs-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%2317288a'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M7 10l5 5 5-5H7z'/%3E%3C/svg%3E") no-repeat calc(100% - 10px) center / 32px;
     -webkit-appearance: none;
     -moz-appearance: none;
     appearance: none;
}

select.center {
     text-align: center;
     text-align-last: center;
}

select:focus-visible {
     outline-color: var(--gs-primary-color);
     background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%2317288a'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M7 14l5-5 5 5H7z'/%3E%3C/svg%3E");
}

select::-ms-expand {
     display: none;
}

select[disabled] {
     color: #999;
}

::selection {
     color: var(--gs-black);
     background: rgba(255, 238, 51, 0.99);
}

a,
button,
label,
input,
select,
textarea {
     -webkit-tap-highlight-color: transparent;
}

a,
button {
     touch-action: manipulation;
}

:focus-visible {
     border-radius: 2px;
     outline: 2px solid var(--gs-black);
     outline-offset: 2px;
     transition: none !important;
}

::-webkit-scrollbar {
     width: 12px;
     height: 12px;
}

::-webkit-scrollbar-thumb {
     border: 2px solid rgba(0, 0, 0, 0);
     border-radius: 10px;
     background-color: #a6a6a6;
     background-clip: padding-box;
}

::-webkit-scrollbar-thumb:hover {
     background-color: #808080;
}

body {
     font-family: "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", Arial, sans-serif;
     font-weight: 400;
     font-size: 16px;
     color: var(--gs-black);
     background: var(--gs-bright-grey);
     word-break: keep-all;
     overflow-wrap: break-word;
}

body.hidden {
     overflow: hidden;
}

body.hidden .scroll-btn {
     display: none;
}

.skipnavigation {
     display: flex;
     justify-content: center;
     position: fixed;
     top: -100px;
     left: 0;
     padding: 8px 5px;
     min-width: 200px;
     font-size: 16px;
     color: var(--gs-white);
     text-align: center;
     background: #0f3e8e;
     z-index: 1000000;
     transition: top 0.3s;
}

.skipnavigation span {
     position: relative;
     padding-bottom: 3px;
}

.skipnavigation span::after {
     content: "";
     display: block;
     position: absolute;
     bottom: 0;
     left: 0;
     width: 100%;
     height: 1px;
     background: var(--gs-white);
}

.skipnavigation:focus-visible {
     top: 5px;
     left: 5px;
     box-shadow: 0 0 0 3px #222;
}

.sr-only {
     position: absolute !important;
     margin: -1px !important;
     padding: 0 !important;
     width: 1px !important;
     height: 1px !important;
     overflow: hidden !important;
     clip: rect(0, 0, 0, 0);
     white-space: nowrap !important;
     border: 0 !important;
}

#header {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     background-color: var(--gs-white);
     box-shadow: #eee 0px 1px 0px;
     z-index: 950;
}

#header>div {
     position: relative;
     margin: 0 auto;
     max-width: var(--gs-header-max-width);
     min-width: var(--gs-min-width);
     color: var(--gs-primary-color);
}

#header.base>div {
     display: flex;
     justify-content: center;
     align-items: center;
     flex-direction: column;
     padding: 15px;
     height: var(--gs-header-lg-height);
}

#header.base .home-link {
     display: flex;
     padding: 10px;
     max-width: 245px;
}

#header.base .search-link {
     position: absolute;
     top: 20px;
     right: 20px;
     width: 35px;
     height: 35px;
     background: var(--gs-icon-search) no-repeat center / 30px;
}

#header.base.title>div {
     justify-content: flex-end;
}

#header.base.title .home-link {
     position: absolute;
     top: 5px;
     left: 5px;
     max-width: 150px;
}

#header.base.title h1 {
     padding: 1px 5px;
     margin-bottom: 5px;
     font-size: 35px;
     font-weight: 900;
     line-height: 1.2;
     letter-spacing: -2px;
     background: linear-gradient(var(--gs-cute-sky-blue), var(--gs-cute-sky-blue)) no-repeat bottom left / 100% 8px;
}

#header.base.title p {
     font-size: 14px;
     font-weight: 500;
}

#header.depth>div {
     display: flex;
     justify-content: center;
     align-items: center;
     height: var(--gs-header-height);
}

#header.depth h1 {
     font-size: 26px;
}

#header.depth .back-btn {
     position: absolute;
     top: 0;
     left: 0;
     width: 40px;
     height: 100%;
     background: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='86'%3E%3Cpath fill-rule='evenodd' fill='%2317288A' d='m49.219 80.278-5.79 5.72L.002 43.1l.049-.049-.049-.048L43.429.105l5.79 5.72-37.685 37.226 37.685 37.227z'/%3E%3C/svg%3E%0A") no-repeat center / 20px;
}

#header.depth .back-btn:focus-visible {
     outline-offset: -2px;
}

#wrap {
     margin: 0 auto;
     max-width: var(--gs-max-width);
     min-width: var(--gs-min-width);
}

#container {
     padding: var(--gs-header-height) 15px 150px;
}

body:has(#header.base) #container {
     padding-top: var(--gs-header-lg-height);
}

#content {
     padding-top: 20px;
}


.gs-btn {
     display: flex;
     justify-content: center;
     align-items: center;
     padding: 10px;
     width: 100%;
     height: 44px;
     font-size: 18px;
     font-weight: 500;
     color: var(--gs-white);
     letter-spacing: -1px;
     background-color: var(--gs-primary-color);
}

.is-desktop .gs-btn {
     transition: box-shadow 0.3s ease-in-out;
}

.is-desktop .gs-btn:hover {
     box-shadow:
          inset 0px 0px 0px 2px var(--gs-white),
          0px 0px 0px 3px var(--gs-primary-color);
}

.election-round-list {
     display: flex;
     flex-direction: column;
     align-items: center;
     flex-wrap: wrap;
     gap: 20px;
}

.election-round-list section {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 10px;
     padding: 20px 30px 25px;
     width: 100%;
     border-radius: 10px;
     background-color: var(--gs-white);
}

.election-round-list .round {
     font-size: 30px;
     font-weight: 900;
}

.election-round-list .round strong {
     position: relative;
     display: inline-flex;
     justify-content: center;
     align-items: center;
     width: 105px;
     height: 75px;
     font-weight: 900;
     color: var(--gs-white);
     letter-spacing: -2px;
     overflow: hidden;
}

.election-round-list .round strong::after {
     content: "";
     position: absolute;
     top: 15px;
     left: 50%;
     width: 80px;
     height: 65px;
     border-radius: 10px;
     transform: rotate(-45deg) translateX(-50%);
     transform-origin: center left;
     background-color: var(--gs-primary-color);
     z-index: 1;
}

.election-round-list .round strong span {
     position: relative;
     transform: translate(2px, 2px);
     z-index: 3;
}

.election-round-list .round strong+span {
     position: relative;
     top: 3px;
}

.election-round-list .view-btn {
     margin-top: 15px;
     max-width: 200px;
}

.election-round-list table {
     width: 100%;
}

.election-round-list th,
.election-round-list td {
     padding: 3px 5px;
     height: 30px;
     text-align: center;
     letter-spacing: -1px;
     line-height: 1.2;
}

.election-round-list tr:nth-of-type(odd) {
     background-color: var(--gs-bright-grey);
}

.election-round-list th {
     font-weight: 700;
     color: var(--gs-primary-color);
     text-align: left;
}

.election-round-list td:last-child {
     text-align: right;
}

.election-round-list section.end {
     color: var(--gs-aluminium);
}

.election-round-list section.end .round strong::after,
.election-round-list section.end .view-btn {
     background-color: var(--gs-aluminium);
}

.election-round-list section.end th {
     font-weight: 400;
     color: var(--gs-aluminium);
}

.is-desktop .election-round-list section.end .view-btn:hover {
     box-shadow:
          inset 0px 0px 0px 2px var(--gs-white),
          0px 0px 0px 3px var(--gs-aluminium);
}

.election-candidate-list section {
     margin-top: 20px;
     padding: 15px;
     border-radius: 10px;
     background-color: var(--gs-white);
}

.election-candidate-list header {
     display: flex;
     justify-content: space-between;
     gap: 5px 15px;
     padding: 15px;
     color: var(--gs-white);
     background-color: var(--gs-primary-color);
}

.election-candidate-list header h3 {
     line-height: 1.2;
}

.election-candidate-list .schedule {
     flex-shrink: 0;
     display: flex;
     gap: 15px;
     font-size: 15px;
}

.election-candidate-list .list>div {
     margin-top: 10px;
}

.election-candidate-list .list .part {
     margin: 12px 0 8px;
     color: var(--gs-primary-color);
}

.election-candidate-list ul {
     display: flex;
     flex-wrap: wrap;
     gap: 8px;
}

.election-candidate-list li a {
     display: flex;
     justify-content: center;
     align-items: center;
     padding: 5px 10px 5px 15px;
     min-width: 85px;
     min-height: 45px;
     color: var(--gs-primary-color);
     letter-spacing: -1px;
     border: 1px solid var(--gs-primary-color);
     background-color: var(--gs-bright-grey);
     transition: 0.25s;
}

.election-candidate-list li span {
     display: flex;
     align-items: center;
}

.election-candidate-list li span::after {
     transition: 0.25s;
}

.election-candidate-list li span::after {
     content: "";
     width: 20px;
     height: 20px;
     background: var(--gs-arrow-right) no-repeat center calc(50% + 1px) / 20px;
}

.is-desktop .election-candidate-list li a:hover {
     color: var(--gs-white);
     background-color: var(--gs-primary-color);
}

.is-desktop .election-candidate-list li a:hover span::after {
     background-image: var(--gs-arrow-right-white);
}

.election-icon {
     padding-left: 25px;
     background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='34'%3E%3Cpath fill-rule='evenodd' fill='%2317288A' d='m28.039 1.491 16.003 15.567a3.468 3.468 0 0 1 .003 5.001L31.772 33.998l-.151-.01H7.636l-.245-.104-6.326-6.154a3.468 3.468 0 0 1-.003-5.001L22.898 1.488c1.419-1.38 3.721-1.379 5.141.003z'/%3E%3C/svg%3E") no-repeat left 5px / 20px;
}

.candidate-figure .pic {
     margin: 0 auto 30px;
     width: 250px;
     /* height: 250px; */
     border-radius: 8px;
     box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
     overflow: hidden;
}

.candidate-figure .pic img {
     width: 100% !important;
     max-width: 100% !important;
     height: 100% !important;
     object-fit: contain;
}

.candidate-figure .pic:not(:has(img)) {
     width: 200px;
     height: 200px;
     border-radius: 50%;
     background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' width='256' height='256' viewBox='0 0 256 256' xml:space='preserve'%3E%3Cg style='stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: none; fill-rule: nonzero; opacity: 1;' transform='translate(1.4065934065934016 1.4065934065934016) scale(2.81 2.81)'%3E%3Cpath d='M 45 88 c -11.049 0 -21.18 -2.003 -29.021 -8.634 C 6.212 71.105 0 58.764 0 45 C 0 20.187 20.187 0 45 0 c 24.813 0 45 20.187 45 45 c 0 13.765 -6.212 26.105 -15.979 34.366 C 66.181 85.998 56.049 88 45 88 z' style='stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(200,209,230); fill-rule: nonzero; opacity: 1;' transform=' matrix(1 0 0 1 0 0) ' stroke-linecap='round'/%3E%3Cpath d='M 45 60.71 c -11.479 0 -20.818 -9.339 -20.818 -20.817 c 0 -11.479 9.339 -20.818 20.818 -20.818 c 11.479 0 20.817 9.339 20.817 20.818 C 65.817 51.371 56.479 60.71 45 60.71 z' style='stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(247,247,247); fill-rule: nonzero; opacity: 1;' transform=' matrix(1 0 0 1 0 0) ' stroke-linecap='round'/%3E%3Cpath d='M 45 90 c -10.613 0 -20.922 -3.773 -29.028 -10.625 c -0.648 -0.548 -0.88 -1.444 -0.579 -2.237 C 20.034 64.919 31.933 56.71 45 56.71 s 24.966 8.209 29.607 20.428 c 0.301 0.793 0.069 1.689 -0.579 2.237 C 65.922 86.227 55.613 90 45 90 z' style='stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(247,247,247); fill-rule: nonzero; opacity: 1;' transform=' matrix(1 0 0 1 0 0) ' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / 100%;
}

.candidate-profile-list {
     /* margin-top: 30px; */
     padding: 20px;
     font-size: 18px;
     font-weight: 500;
     word-break: break-all;
     border-radius: 10px;
     background-color: var(--gs-white);
}

.candidate-profile-list>div {
     display: flex;
     gap: 0px 15px;
     align-items: center;
}

.candidate-profile-list>div.column {
     flex-direction: column;
     align-items: flex-start;
}

.candidate-profile-list>div~div {
     margin-top: 15px;
}

.candidate-profile-list h3 {
     font-weight: 500;

}

.candidate-profile-list li {
     margin: 6px 0 6px 10px;
}

.candidate-profile-list li.bullet {
     display: flex;
     gap: 0 5px;
     font-size: 16px;
}

.candidate-profile-list li.bullet::before {
     content: "—";
     flex-shrink: 1;
}

.candidate-video {
     position: relative;
     margin-top: 30px;
     padding-bottom: 56.25%;
     height: 0;
     border-radius: 10px;
     overflow: hidden;
}

.candidate-video iframe {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
}

.candidate-video figcaption {
     margin-top: 10px;
}

.candidate-video figcaption h3 {
     font-weight: 500;
     text-align: center;
     line-height: 1.3;
}

.search-area .search-field {
     position: relative;
     padding: 5px 55px 5px 5px;
     height: 55px;
     border-radius: 10px;
     background-color: var(--gs-white);
     overflow: hidden;
}

.search-area .search-field input {
     width: 100%;
     height: 100%;
     font-size: 20px;
     border: none;
}

.search-area .search-field input:focus-visible {
     outline-offset: -2px;
     outline-color: var(--gs-primary-color);
}

.search-area .search-field button {
     position: absolute;
     top: 50%;
     right: 12px;
     width: 40px;
     height: 40px;
     background: var(--gs-icon-search) no-repeat center / 28px;
     transform: translateY(-50%);
}

.search-area-results .result-desc {
     padding: 25px 15px;
     font-size: 18px;
     text-align: center;
     border-bottom: 1px solid #a6b2bb;
}

.search-area-results .result-desc strong {
     font-size: 20px;
     font-weight: 700;
     color: var(--gs-middle-blue);
}

.search-area-results .result-desc.no {
     display: flex;
     justify-content: center;
     align-items: center;
     min-height: 150px;
     border-bottom: 0;
}

.search-results-list li {
     display: flex;
     align-items: center;
     gap: 10px 20px;
     margin: 20px 0;
     padding: 15px 25px;
     min-height: 70px;
     color: var(--gs-white);
     border-radius: 8px;
     background-color: var(--gs-primary-color);
}

.search-results-list .name {
     width: 100%;
     max-width: 80px;
     font-size: 20px;
     font-weight: 400;
     line-height: 1.2;
     letter-spacing: -1.5px;
}

.search-results-list .category {
     display: flex;
     gap: 0 5px;
     flex-wrap: wrap;
     line-height: 1.3;
}

.search-results-list .category span {
     display: flex;
     gap: 5px;
}

.search-results-list .category span::after {
     content: ">";
     flex-shrink: 0;
}

.search-results-list .category span:last-child::after {
     content: none;
}

.search-results-list .view-btns {
     display: flex;
     gap: 8px;
     flex-wrap: wrap;
     margin-top: 10px;
}

.search-results-list .view-btns a {
     display: flex;
     justify-content: center;
     align-items: center;
     padding: 3px 10px;
     min-width: 85px;
     font-size: 15px;
     color: var(--gs-primary-color);
     background-color: var(--gs-white);
     border-radius: 3px;
     transition: 0.25s;
}

.search-results-list .view-btns a:focus-visible {
     outline-color: var(--gs-white);
}

.is-desktop .search-results-list .view-btns a:hover {
     outline: 3px solid #7bb81b;
}

.scroll-btn {
     display: block;
     position: fixed;
     right: 15px;
     width: 40px;
     height: 40px;
     background: var(--gs-primary-color);
     border-radius: 20px;
     z-index: 10;
     transition: height 0.2s;
}

.scroll-btn:focus-visible {
     outline-color: var(--gs-black);
}

.scroll-top-btn {
     bottom: 70px;
     visibility: hidden;
     opacity: 0;
}

.scroll-bottom-btn {
     bottom: 20px;
     transform: rotate(-180deg);
}

.scroll-btn .icon,
.scroll-btn::before,
.scroll-btn::after {
     content: "";
     display: block;
     position: absolute;
     top: 14px;
     left: 50%;
     width: 15px;
     height: 2px;
     background-color: var(--gs-white);
     transform-origin: left 50%;
}

.scroll-btn .icon {
     bottom: auto;
     margin-left: -1px;
     width: 2px;
     height: 0;
     transition: all 0.2s linear;
}

.scroll-btn::before,
.scroll-btn::after {
     transition: top 0.4s;
}

.scroll-btn::before {
     transform: rotate(135deg);
}

.scroll-btn::after {
     transform: rotate(45deg);
}

.is-desktop .scroll-btn:hover,
.is-desktop .scroll-btn:focus {
     height: 45px;
}

.is-desktop .scroll-btn:hover::before,
.is-desktop .scroll-btn:hover::after,
.is-desktop .scroll-btn:focus::before,
.is-desktop .scroll-btn:focus::after {
     top: 8px;
}

.is-desktop .scroll-btn:hover .icon,
.is-desktop .scroll-btn:focus .icon {
     top: auto;
     bottom: 8px;
     height: 26px;
}

@media all and (max-width: 540px) {
     .election-round-list section {
          padding-left: 15px;
          padding-right: 15px;
     }
}

@media all and (max-width: 480px) {
     .election-candidate-list header {
          flex-direction: column;
     }

     .search-results-list li {
          align-items: flex-start;
          flex-direction: column;
     }

     .search-results-list .name {
          max-width: 100%;
     }
}

@media all and (max-width: 420px) {

     .election-round-list th,
     .election-round-list td {
          font-size: 14px;
     }
}

@media all and (max-width: 400px) {
     body:has(#header.base:not(.title)) #container {
          padding-top: 120px;
     }

     #header.base:not(.title)>div {
          height: 120px;
     }

     #header.base .home-link {
          padding: 5px;
          max-width: 200px;
     }

     #header.base .search-link {
          top: 10px;
          right: 10px;
          width: 32px;
          height: 32px;
          background-size: 25px;
     }

     #header.base.title h1 {
          font-size: 30px;
     }

     #header.base.title .home-link {
          max-width: 130px;
     }
}

/* Msg Box */
.app-bridge-message-box { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 999; word-break: keep-all; }
.app-bridge-message-box > div { position: absolute; top: 50%; left: 50%; width: 300px; font-size: 16px; font-weight: normal; color: #333; text-align: center; line-height: 1.5; border-radius: 10px; background-color: #fff; overflow: hidden; transform: translate(-50%, -50%); box-shadow: 6px 8px 40px 0 rgba(0, 0, 0, 0.2); }
.app-bridge-message-box .top { padding: 15px 10px 10px; font-size: 21px; letter-spacing: -1px; text-align: center; border-bottom: 1px solid #e2e2e2; background: #fff; }
.app-bridge-message-box .top .title { font-weight: bold; }
.app-bridge-message-box .middle { padding: 30px 20px 25px; letter-spacing: -1px; background: #fff; }
.app-bridge-message-box .middle .desc { font-size: 18px; letter-spacing: -1.5px; }
.app-bridge-message-box .middle .btns { margin-top: 15px; }
.app-bridge-message-box .middle .btns a { display: block; margin-top: 10px; padding:0 10px; height: 48px; line-height: 48px; font-size: 16px; color: #fff; text-align: center; background: var(--gs-primary-color); border-radius: 4px; }
.app-bridge-message-box .middle .desc + .enter { margin-top: 15px; }
.app-bridge-message-box .middle .enter { margin-bottom: 20px; }
.app-bridge-message-box .middle .enter:last-child { margin-bottom: 0; }
.app-bridge-message-box .middle .enter input, .app-bridge-message-box .middle .enter select { display: block; margin: 10px 0 0; padding: 0 10px; width: 100%; height: 48px; border: 1px solid #dbdbdb; border-radius: 6px }
.app-bridge-message-box .middle .enter .btn { display: block; margin-top: 10px; width: 100%; height: 48px; line-height: 48px; color: #fff; background: #888; border-radius: 6px; }
.app-bridge-message-box .middle + .bottom .btns { padding-top: 10px; }
.app-bridge-message-box .bottom .btns { display: flex; padding: 20px 15px; background: #fff; }
.app-bridge-message-box .bottom .btns a { display: block; margin: 0 5px; padding: 0 10px; width: 100%; height: 48px; line-height: 48px; font-size: 16px; color: #222; text-align: center; border-radius: 6px; background: #dbdbdb; overflow: hidden; }
.app-bridge-message-box .bottom .btns a.submit { font-weight: 500; color: #fff; background: var(--gs-primary-color); }
.app-bridge-message-box .app-txt { margin-top: 5px; font-size: 14px; color: #777; text-align: left; }
.app-bridge-message-box .symbol { position: relative; padding-left: 10px; }
.app-bridge-message-box .symbol::before { content: "*"; position: absolute; top: 2px; left: 0; }
.app-bridge-message-box input[readonly], .app-bridge-message-box select[disabled] { background: #f5f5f5; }
.app-bridge-message-box .middle .enter.check { margin-top: 10px; text-align: left; font-size: 15px; }
.app-bridge-message-box .middle .enter.check input[type="checkbox"] { cursor: pointer; display: inline-block; margin: 0; width: 26px; height: 26px; }
.app-bridge-message-box .middle .enter.check label { cursor: pointer; padding-left: 10px; }

/*** CUSTOM ***/

/* 20250804 add, more btn */
.cc-btn {
    display: block;
    margin: 60px auto 0;
    font-weight: 400;
    text-align: center;
}
.cc-more-btn {
    width: 125px;
    height: 44px;
    line-height: 42px;
    font-size: 16px;
    color: #666;
    border: 1px solid #ccc;
    background: #fff;
    border-radius: 22px;
}

.cc-more-btn > span {
    display: inline-block;
    position: relative;
    padding: 0 10px;
}

.cc-more-btn em {
    display: inline-block;
    transition: all 0.3s ease-out;
}

.cc-more-btn > span:before, .cc-more-btn > span:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    opacity: 0;
}

.cc-more-btn > span:before {
    right: 50%;
    margin-top: -4px;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--gs-primary-color, #40a3ff);
    border-bottom: 2px solid var(--gs-primary-color, #40a3ff);
    transform: rotate(-45deg);
    transition: all, 0.3s, cubic-bezier(0.55, 0, 0.1, 1) 1s ease-in-out;
}

.cc-more-btn > span:after {
    right: 100%;
    width: 50%;
    height: 2px;
    background-color: var(--gs-primary-color, #40a3ff);
    transition: all, 0.4s, 0.1s cubic-bezier(0.55, 0, 0.1, 1) 1s ease-in-out;
}

.is-desktop .cc-more-btn:hover {
    box-shadow: 0px 0px 0px 2px var(--gs-primary-color, #40a3ff);
}

.is-desktop .cc-more-btn:hover em {
    opacity: 0;
    transform: translateX(100%);
}

.is-desktop .cc-more-btn:hover > span:before {
    right: 15px;
    opacity: 1;
}

.is-desktop .cc-more-btn:hover > span:after {
    right: 16px;
    opacity: 1;
}

.cc-more-btn.vertical {
    overflow: hidden;
}

.cc-more-btn.vertical > span:before {
    top: 20%;
    right: 43% !important;
    width: 10px;
    height: 10px;
    border-right: 0 none;
    border-left: 2px solid var(--gs-primary-color, #40a3ff);
    border-bottom: 2px solid var(--gs-primary-color, #40a3ff);
}

.cc-more-btn.vertical > span:after {
    top: -40%;
    right: 50% !important;
    width: 2px;
    height: 50%;
}

.is-desktop .cc-more-btn.vertical:hover em {
    transform: translateY(100%);
}

.is-desktop .cc-more-btn.vertical:hover > span:before {
    top: 60%;
    opacity: 1;
}

.is-desktop .cc-more-btn.vertical:hover > span:after {
    top: 25%;
    opacity: 1;
}
.swal-title {
     background-color: var(--gs-white);
     box-shadow: #eee 0px 1px 0px;
     border-radius: inherit;
     padding-bottom: inherit;
}
.swal-scrollable
{
     max-height: 70vh !important;
     overflow-y: auto !important;
     scrollbar-width: none !important; /* Firefox */
     -ms-overflow-style: none !important; /* IE */
}
.swal-scrollable::-webkit-scrollbar {
     display: none; /* Chrome, Safari */
}