/* 추석과 응모 기간에만 적용한다. 종료 후 기존 메인 스타일은 변경하지 않는다. */
.qmail-inline-domain { display:none; }
.season-home[hidden], .season-home [hidden], .season-event-status[hidden], .chuseok-entry[hidden], [data-season-ended][hidden] { display:none !important; }
.season-home { width:min(1060px,100%); color:#183a4a; }
.season-home *, .season-event-status * { box-sizing:border-box; }
html[data-q-season="chuseok"] body[data-q-home], html[data-q-season="closing"] body[data-q-home] {
  background:#f7f5ef; color:#183a4a; padding:28px 28px 0; justify-content:flex-start;
}
.season-masthead { display:flex; justify-content:space-between; align-items:center; min-height:54px; gap:20px; padding:0 60px 18px 0; }
.season-brand { display:flex; align-items:center; gap:12px; color:#24424c; text-decoration:none; font-size:17px; font-weight:700; }
.season-masthead > .season-heritage { display:flex; flex-wrap:wrap; justify-content:flex-end; column-gap:5px; color:#6b7d7b; font-size:11px; font-weight:400; line-height:1.4; letter-spacing:.04em; text-align:right; }
.season-heritage > span { white-space:nowrap; }
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .q-account-bar { width:36px; }
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .q-account-link { width:36px; height:36px; padding:4px; border-radius:11px; box-shadow:0 3px 8px #0002; }
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .q-account-symbol { width:26px; height:26px; transform:scale(.75); }
.season-welcome { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) 130px; gap:28px; align-items:center; padding:22px 32px; border:1px solid #c4dbe1; border-radius:24px; background:linear-gradient(116deg,#e3f0f4 0%,#cde4ef 74%,#bcdceb 100%); }
.season-welcome::before { content:""; position:absolute; z-index:-1; width:190px; height:190px; right:170px; top:-100px; border-radius:50%; background:radial-gradient(circle at 35% 32%,#fffbed,#fff2c5 70%); opacity:.85; }
.season-welcome::after { content:""; position:absolute; z-index:-1; width:80%; height:140px; bottom:-114px; left:-20px; border-radius:50%; transform:rotate(-5deg); background:#caa255; box-shadow:420px -5px 0 5px #bba576; }
.season-eyebrow { margin:0 0 7px; color:#547381; font-size:11px; font-weight:600; letter-spacing:.08em; }
.season-welcome h1 { max-width:580px; font-size:clamp(26px,3vw,36px); font-weight:700; line-height:1.35; letter-spacing:-.065em; word-break:keep-all; text-wrap:balance; }
.season-intro { max-width:420px; margin:9px 0; color:#527181; font-size:14px; line-height:1.5; word-break:keep-all; }
.season-signature { margin:0; font-size:12px; color:#35535d; letter-spacing:.01em; }
.season-signature strong { margin-left:6px; font-size:14px; font-weight:500; }
.season-portrait { width:130px; margin:0; transform:rotate(3deg); box-shadow:0 13px 32px #355c6526; border:4px solid #fffaf0; border-radius:5px; background:#fffaf0; }
.season-portrait img { display:block; width:100%; height:auto; border-radius:2px; }
.season-portrait figcaption { display:none; }
.season-actions { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; align-items:stretch; }
.season-card { padding:20px 26px; border:1px solid #e5e3d8; border-radius:20px; background:#fffefa; min-width:0; scroll-margin-top:16px; }
.season-kicker { font-size:10px; font-weight:700; letter-spacing:.1em; color:#9a751e; }
.season-card h2 { margin:0 0 8px; font-size:26px; line-height:1.3; letter-spacing:-.055em; font-weight:600; word-break:keep-all; }
.season-card p { font-size:12px; line-height:1.8; color:#78827d; word-break:keep-all; }
.season-signup { border-color:#c7d9ce; background:linear-gradient(135deg,#fefef8,#f1f6ed); }
.season-signup .season-kicker { color:#597a60; }
.season-home #qmailPromoBanner, .season-home #qmailPromoBanner.is-expanded { width:100%; padding:0; background:none; border:0; border-radius:0; box-shadow:none; }
.season-home .qmail-promo-head, .season-home .qmail-promo-content > p { display:none; }
.season-home .qmail-promo-content, .season-home .qmail-promo-banner.is-expanded .qmail-promo-content { max-height:none; padding:0; opacity:1; visibility:visible; transform:none; overflow:visible; }
.season-home .qmail-promo-actions { max-width:none; margin:0; }
.season-home .qmail-phone-field { height:46px; justify-content:center; gap:8px; padding:0 12px; border:1px solid #cbd9cd; border-radius:10px; background:#fff; }
.season-home .qmail-phone-field strong { flex:none; color:#294c3d; font-size:21px; font-variant-numeric:tabular-nums; }
.season-home .qmail-phone-field > span { margin:0; color:#b2bcb2; }
.season-home .qmail-phone-field input { width:10ch; flex:0 1 10ch; padding:0; color:#294c3d; font-size:21px; letter-spacing:.025em; font-variant-numeric:tabular-nums; }
.season-home .qmail-phone-field input::placeholder { color:#b0bbaf; }
.season-home .qmail-phone-field:focus-within { outline:2px solid #6b9275; outline-offset:2px; }
.season-home .qmail-phone-field button { display:none; }
.season-home .qmail-preview { margin-top:7px; height:25px; align-items:baseline; gap:0; }
.season-home .qmail-preview span { font-size:19px; color:#366c51; font-weight:600; }
.season-home .qmail-preview b { font-size:19px; color:#829578; margin-left:2px; }
.season-home .qmail-preview strong { font-size:21px; color:#366c51; line-height:1; margin-left:2px; }
.season-home .qmail-preview small { font-size:15px; color:#5d795e; }
.season-home .qmail-phone-error { color:#a42e23; font-size:11px; }
.season-home .qmail-policy-notice { color:#52704b; font-size:11px; }
.season-home .qmail-policy-notice.okq-required { color:#395e91; }
.season-button { display:flex; justify-content:center; align-items:center; gap:8px; min-height:44px; border:1px solid transparent; border-radius:10px; padding:9px 12px; text-decoration:none; font-size:13px; font-weight:600; line-height:1.5; cursor:pointer; }
.season-signup-submit { margin:8px 0 0; width:100%; color:#fff; background:#285a43; }
.season-signup-submit:hover { background:#1a4732; }
.season-home .season-help { text-align:center; color:#889382; font-size:10px; }
.season-event { display:flex; flex-direction:column; background:linear-gradient(145deg,#fffdf9,#fff4f6); }
.season-event .season-kicker { color:#c33b78; }
.season-event h2 { margin:9px 0 0; }
.season-event-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.season-event-badge { padding:4px 8px; border-radius:6px; background:#fce5ed; color:#b13e6b; font-size:9px; font-weight:500; }
.season-numbers { display:flex; gap:9px; margin:10px 0; }
.season-numbers span { display:flex; align-items:center; justify-content:center; flex:1; min-width:0; padding:5px 4px; border:1px solid #f0d9cf; border-radius:9px; background:#fff; color:#bd8058; font-size:28px; font-weight:500; letter-spacing:-.045em; }
.season-numbers span:nth-child(2) { color:#c4437e; border-color:#eecada; }
.season-numbers span:nth-child(3) { color:#927aa5; }
.season-event .season-event-period { margin-top:auto; margin-bottom:8px; font-size:11px; color:#9a7886; }
.season-event-cta { border-color:#ddb6c4; color:#b22e67; background:#fff; }
.season-event-cta:hover { background:#fff1f6; border-color:#c34c7c; }
.season-event .season-help { margin-top:10px; color:#a38790; }
.season-share-band { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 5px; border-bottom:1px solid #e4e3d7; }
.season-share-band h2 { margin:0 0 5px; color:#526858; font-size:14px; font-weight:500; }
.season-share-band p { color:#93998b; font-size:11px; }
.season-share-band a { display:inline-flex; align-items:center; min-height:42px; color:#866b29; text-decoration:none; font-size:12px; white-space:nowrap; font-weight:600; }
.season-smallprint { margin:15px auto 0; text-align:center; color:#979b91; font-size:10px; line-height:1.7; word-break:keep-all; }
.season-explore-title { margin:40px 0 0; text-align:center; color:#7d8a7f; font-size:11px; letter-spacing:.1em; font-weight:500; }
.season-home a:focus-visible, .season-home button:focus-visible { outline:3px solid #c7a957; outline-offset:4px; }
.season-event-status { width:min(610px,calc(100% - 32px)); margin:20px auto 8px; padding:12px 16px; border:1px solid #5b4a2a; border-radius:10px; color:#d9c894; background:#19170f; font-size:11px; line-height:1.8; text-align:center; }
.season-event-status a { color:#f1d185; white-space:nowrap; margin-left:8px; }
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] > .hero { margin-top:12px; margin-bottom:22px; }
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .roll-board,
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .chuseok-entry,
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] > #goldMemberShowcase,
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] > .divider { display:none !important; }
html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .search-container { margin-bottom:0; }
html[data-q-season="closing"] .season-welcome { grid-template-columns:1fr; padding:34px 40px; background:linear-gradient(110deg,#edf1e3,#f2e4c7); border-color:#e1d4b8; }
html[data-q-season="closing"] .season-welcome::before, html[data-q-season="closing"] .season-welcome::after { display:none; }
@media(max-width:680px) {
  html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] { padding:10px 12px 0; }
  html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .q-account-bar { top:6px; right:max(12px,env(safe-area-inset-right)); width:34px; }
  html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .q-account-link { width:34px; height:34px; padding:3px; border-radius:10px; }
  .season-masthead { min-height:40px; padding:0 48px 10px 0; gap:10px; }
  .season-brand { gap:7px; font-size:14px; white-space:nowrap; }
  .season-masthead > .season-heritage { display:flex; min-width:0; font-size:10px; line-height:1.3; letter-spacing:0; }
  .season-welcome { grid-template-columns:minmax(0,1fr) 65px; padding:13px 16px; gap:12px; border-radius:16px; }
  .season-eyebrow { margin-bottom:5px; font-size:9px; letter-spacing:0; }
  .season-welcome h1 { font-size:21px; line-height:1.3; letter-spacing:-.065em; text-wrap:initial; }
  .season-intro { margin:6px 0; font-size:11px; line-height:1.5; }
  .season-signature { font-size:10px; }
  .season-signature strong { font-size:11px; margin-left:3px; }
  .season-portrait { width:65px; border-width:3px; }
  .season-welcome::before { right:30px; top:-95px; width:160px; height:160px; }
  .season-actions { grid-template-columns:1fr; gap:10px; margin-top:10px; }
  .season-card { padding:13px 16px; border-radius:16px; }
  .season-card h2 { font-size:21px; margin-bottom:0; }
  .season-event h2 { font-size:20px; margin-top:7px; }
  .season-event h2 br { display:none; }
  .season-event-head { gap:5px; }
  .season-kicker { font-size:10px; letter-spacing:0; }
  .season-event-badge { padding:3px 6px; font-size:9px; }
  .season-numbers { margin:7px 0; gap:7px; }
  .season-numbers span { font-size:25px; line-height:1.2; padding:4px 3px; }
  .season-event .season-event-period { margin-bottom:6px; font-size:10px; line-height:1.5; }
  .season-button { font-size:12px; }
  .season-share-band { padding:21px 2px; gap:8px; }
  .season-share-band h2 { font-size:12px; }
  .season-share-band p { font-size:10px; }
  .season-share-band a { font-size:11px; }
  .season-smallprint { padding:0 10px; font-size:9px; }
  html[data-q-season="closing"] .season-welcome { padding:16px; }
}
@media(max-width:370px), (max-width:680px) and (max-height:640px) {
  .season-welcome { padding:11px 13px; grid-template-columns:minmax(0,1fr) 54px; gap:9px; }
  .season-portrait { width:54px; }
  .season-eyebrow { display:none; }
  .season-welcome h1 { font-size:20px; }
  .season-card { padding:11px 13px; }
  .season-card h2 { font-size:20px; }
  .season-event h2 { font-size:19px; }
  .season-actions { gap:8px; margin-top:8px; }
  .season-home .qmail-preview { height:23px; margin-top:5px; }
  .season-home .qmail-preview span, .season-home .qmail-preview b { font-size:18px; }
  .season-signup-submit { margin-top:5px; }
}
/* 짧은 화면에서도 버튼은 44px 이상을 유지하고 설명 여백부터 줄인다. */
@media(max-width:350px), (max-width:680px) and (max-height:600px) {
  .season-welcome { padding-top:8px; padding-bottom:8px; }
  .season-card { padding-top:9px; padding-bottom:9px; }
  .season-card h2 { font-size:19px; }
  .season-event h2 { font-size:18px; }
  .season-signup #seasonSignupSlot { margin-top:6px; }
  .season-home .qmail-phone-field { height:44px; }
  .season-numbers span { padding:3px; font-size:24px; }
}
@media(prefers-reduced-motion:reduce) { .season-home * { animation:none !important; transition:none !important; scroll-behavior:auto; } }

/* 응모 버튼까지 첫 화면에 배치하고 공유·다른 서비스는 그다음으로 이어진다. */
@media(max-width:600px) {
  .season-first-screen {
    --season-card-gap:16px;
    display:grid; grid-template-rows:calc(40px - var(--season-card-gap)) repeat(3,minmax(0,1fr));
    gap:var(--season-card-gap); height:calc(100svh - 10px); height:calc(100dvh - 10px); min-height:550px; padding-bottom:8px;
  }
  .season-masthead { margin-bottom:calc(-1 * var(--season-card-gap)); }
  .season-actions { display:contents; }
}
@media(min-width:601px) and (max-width:680px) {
  .season-first-screen { display:flex; flex-direction:column; min-height:calc(100svh - 10px); padding-bottom:8px; }
  .season-masthead, .season-welcome { flex-shrink:0; }
  .season-actions { flex:1; grid-template-rows:auto minmax(min-content,1fr); gap:16px; margin-top:16px; }
}
@media(max-width:370px), (max-width:680px) and (max-height:640px) {
  .season-first-screen { --season-card-gap:12px; }
}
@media(max-width:350px), (max-width:680px) and (max-height:600px) {
  .season-first-screen { --season-card-gap:10px; padding-bottom:4px; }
}
/* 펼친 폴더블과 작은 태블릿: 두 신청 카드를 나란히, 버튼은 같은 하단선에 둔다. */
@media(min-width:681px) and (max-width:1024px) {
  html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] { padding:12px 20px 0; }
  html:is([data-q-season="chuseok"],[data-q-season="closing"]) body[data-q-home] .q-account-bar { top:6px; right:20px; }
  .season-first-screen { display:flex; flex-direction:column; min-height:calc(100svh - 12px); padding-bottom:8px; }
  .season-masthead { flex-shrink:0; min-height:40px; padding:0 52px 10px 0; }
  .season-welcome { flex-shrink:0; grid-template-columns:minmax(0,1fr) 90px; gap:22px; padding:14px 22px; }
  .season-welcome h1 { font-size:28px; }
  .season-portrait { width:90px; }
  .season-eyebrow { margin-bottom:5px; font-size:10px; }
  .season-intro { margin:7px 0; font-size:12px; }
  .season-signature { font-size:10px; }
  .season-signature strong { font-size:12px; }
  .season-actions { flex:1; gap:18px; margin-top:18px; }
  .season-card { padding:16px 20px; }
  .season-card h2 { font-size:23px; }
  .season-signup { display:flex; flex-direction:column; }
  .season-signup-submit { margin-top:auto; }
  .season-home .qmail-preview { margin-bottom:8px; }
  .season-event h2 { margin-top:8px; }
  .season-numbers { margin:9px 0; }
  html[data-q-season="closing"] .season-welcome { padding:18px 22px; }
}

/* 명함 위에서 번호를 입력한다. 추석 종료 시 기존 가입 폼으로 복귀한다. */
.season-signup {
  position:relative; isolation:isolate; display:flex; flex-direction:column;
  border:1px solid #ccd9ce; border-radius:16px; padding:14px 20px 12px;
  color:#294f4b; background:radial-gradient(ellipse at 100% 0%,#fff1c955,transparent 66%),linear-gradient(125deg,#fffdf4,#edf4ec 74%,#deebe5);
  box-shadow:0 5px 14px #36584b0b,inset 0 1px 0 #fff9;
}
.season-signup::before { content:""; position:absolute; z-index:-1; pointer-events:none; inset:6px; border:1px solid #c5ac7040; border-radius:10px; }
.season-signup h2 { max-width:100%; margin:0; color:#61786a; font-size:13px; font-weight:500; letter-spacing:-.025em; line-height:1.4; }
.season-signup .season-card-person { display:flex; align-items:baseline; gap:9px; margin:9px 0 3px; color:#254a49; font-size:24px; line-height:1.2; }
.season-card-person > span { letter-spacing:.19em; font-weight:500; }
.season-card-person small { color:#77877b; font-size:9px; letter-spacing:0; font-weight:400; }
.season-signup #seasonSignupSlot { margin:0; }
.season-signup .qmail-phone-field { height:44px; padding:0; gap:0; justify-content:flex-start; background:transparent; border:0; border-radius:0; }
.season-signup .qmail-phone-field > strong { color:#35584a; font-size:23px; font-weight:500; letter-spacing:0; }
.season-signup .qmail-phone-field > span:not(.qmail-inline-domain) { display:none; }
.season-signup .qmail-phone-field input { width:8.45ch; flex:0 1 8.45ch; min-width:0; height:38px; padding:0 2px; border:0; border-bottom:1px solid #9aaa82; border-radius:3px 3px 0 0; background:#fffdf1b3; color:#315e4d; font-family:inherit; font-size:23px; font-weight:500; letter-spacing:0; caret-color:#315e4d; text-align:center; }
.season-signup .qmail-phone-field input::placeholder { opacity:1; color:#869882; }
.season-signup .qmail-phone-field:focus-within { outline:none; }
.season-signup .qmail-phone-field input:focus { outline:2px solid #859f7a; outline-offset:-2px; background:#fffdf1; }
.season-signup .qmail-phone-field > .qmail-inline-domain { display:inline-flex; align-items:baseline; flex:none; gap:0; margin:0; color:#879575; font-size:21px; font-weight:700; }
.qmail-inline-domain b { font-family:'Outfit',sans-serif; font-size:27px; font-weight:700; line-height:1; color:#a08542; margin-left:2px; }
.qmail-inline-domain small { font-size:17px; font-weight:400; letter-spacing:0; color:#647e6d; }
.season-signup .qmail-preview { position:absolute; width:1px; height:1px; padding:0; margin:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.season-signup .qmail-phone-error { color:#a34132; font-size:10px; line-height:1.4; margin-top:4px; }
.season-signup .qmail-policy-notice { color:#56704c; font-size:10px; line-height:1.4; margin-top:4px; }
.season-signup .qmail-policy-notice.okq-required { color:#406985; }
.season-signup .season-signup-submit { margin:auto 0 0; min-height:44px; color:#31594b; border:1px solid #becdb4; border-radius:8px; background:linear-gradient(112deg,#dbe7d1,#edf1d9 57%,#dce8d8); box-shadow:inset 0 1px #fff9; font-weight:700; }
.season-signup .season-signup-submit:hover { background:#d4e2c8; }
.season-home { --season-pair-height:216px; }
.season-welcome, .season-signup { height:var(--season-pair-height); min-height:min-content; }
.season-signup { align-self:start; }
@media(min-width:681px) {
  .season-signup { padding:16px 22px 14px; }
  .season-signup h2 { font-size:15px; }
  .season-signup .season-card-person { margin-top:13px; font-size:27px; }
  .season-signup .season-signup-submit { margin-top:auto; }
  .season-signup #seasonSignupSlot { margin-bottom:6px; }
}
@media(min-width:681px) and (max-width:1024px) {
  .season-home { --season-pair-height:182px; }
  .season-signup { padding:12px 20px 10px; }
  .season-signup h2 { font-size:13px; }
  .season-signup .season-card-person { margin:8px 0 3px; font-size:24px; }
  .season-signup #seasonSignupSlot { margin-bottom:0; }
}
@media(max-width:680px) {
  .season-home { --season-pair-height:186px; }
  .season-signup { padding:12px 18px 10px; }
  .season-signup h2 { font-size:13px; }
  .season-signup .season-card-person { margin-top:8px; font-size:24px; }
}
@media(max-width:370px), (max-width:680px) and (max-height:640px) {
  .season-home { --season-pair-height:174px; }
  .season-signup { padding:10px 14px 8px; }
  .season-signup .season-card-person { margin:6px 0 3px; font-size:23px; }
  .season-signup .season-signup-submit { margin-top:auto; }
  .season-signup .qmail-phone-field > strong, .season-signup .qmail-phone-field input { font-size:21px; }
  .season-signup .qmail-phone-field > .qmail-inline-domain { font-size:19px; }
  .qmail-inline-domain b { font-size:25px; }
  .qmail-inline-domain small { font-size:16px; }
}
@media(max-width:350px), (max-width:680px) and (max-height:600px) {
  .season-home { --season-pair-height:140px; }
  .season-signup { padding:5px 13px; }
  .season-signup h2 { font-size:12px; }
  .season-signup .season-card-person { margin:2px 0 0; font-size:19px; line-height:1; }
}

/* 번호와 안내를 같은 열에 배치해 접두 번호와 도메인을 침범하지 않는다. */
.season-signup .qmail-number-form {
  display:grid; grid-template-columns:max-content minmax(0,8.45ch) max-content;
  grid-template-rows:40px minmax(16px,auto); column-gap:7px; row-gap:1px;
  justify-content:start; align-items:center; font-size:23px;
}
.season-signup .qmail-phone-field { display:contents; }
.season-signup .qmail-phone-field > strong { grid-area:1 / 1; }
.season-signup .qmail-phone-field input { grid-area:1 / 2; width:100%; }
.season-signup .qmail-phone-field > .qmail-inline-domain { grid-area:1 / 3; }
.season-signup .qmail-policy-notice, .season-signup .qmail-policy-notice:empty {
  grid-area:2 / 2 / auto / 4; align-self:start; text-align:left;
  display:block; min-width:0; min-height:16px; margin:0; font-size:10px; line-height:16px;
}
.season-signup .qmail-policy-notice[data-state="idle"],
.season-signup .qmail-policy-notice[data-state="checking"] { color:#738274; font-weight:400; }
.season-signup .qmail-policy-notice[data-state="registered"] { color:#315e4d; }
.season-signup .qmail-policy-notice[data-state="error"],
.season-signup .qmail-policy-notice[data-state="invalid"] { color:#a34132; }
.season-signup-submit:disabled { opacity:.65; cursor:wait; }
@media(min-width:681px) and (max-width:1024px) {
  .season-signup .season-card-person { margin-top:7px; }
}
@media(max-width:370px), (max-width:680px) and (max-height:640px) {
  .season-signup .season-card-person { margin-top:4px; }
  .season-signup .qmail-number-form { font-size:21px; }
}
@media(max-width:350px), (max-width:680px) and (max-height:600px) {
  .season-signup .season-card-person { margin-top:2px; }
  .season-signup .qmail-number-form { grid-template-rows:32px minmax(14px,auto); }
  .season-signup .qmail-phone-field input { height:28px; }
  .season-signup .qmail-policy-notice, .season-signup .qmail-policy-notice:empty { min-height:14px; font-size:9px; line-height:14px; }
  .season-signup .season-signup-submit { min-height:40px; }
}

/* 일반 스마트폰은 인사·명함·이벤트에 화면 높이를 같은 비율로 나눈다. */
@media(max-width:600px) {
  .season-first-screen > .season-welcome,
  .season-actions > .season-signup,
  .season-actions > .season-event { height:auto; min-height:0; align-self:stretch; }
  .season-signup, .season-event { justify-content:space-between; }
  .season-signup > *, .season-event > * { flex-shrink:0; }
  .season-signup .season-signup-submit { margin:0; min-height:44px; }
  .season-event .season-event-period { margin-top:0; }
}
@media(max-width:370px), (max-width:680px) and (max-height:640px) {
  .season-event { padding-top:9px; padding-bottom:9px; }
  .season-numbers { margin:5px 0; }
}
@media(max-width:350px), (max-width:680px) and (max-height:600px) {
  .season-event { padding-top:6px; padding-bottom:6px; }
  .season-event-head { line-height:1.4; }
  .season-event-badge { font-size:8px; padding:2px 5px; }
  .season-event h2 { margin-top:4px; font-size:17px; line-height:1.2; }
  .season-numbers { margin:3px 0; }
  .season-numbers span { font-size:20px; line-height:1.2; padding:1px 3px; }
  .season-event .season-event-period { font-size:9px; line-height:12px; margin-bottom:3px; }
}

/* 가입과 응모를 번갈아 안내한다. 글자·버튼 크기는 유지한다. */
.season-actions :is(.season-signup-submit,.season-event-cta) {
  position:relative;
}
.season-actions .season-signup-submit { --season-cta-glow:61,122,88; }
.season-actions .season-event-cta { --season-cta-glow:193,52,112; }
.season-actions :is(.season-signup-submit,.season-event-cta)::after {
  content:"";
  position:absolute;
  inset:-1px;
  border:2px solid rgba(var(--season-cta-glow),.8);
  border-radius:inherit;
  box-shadow:0 0 0 3px rgba(var(--season-cta-glow),.13),0 0 14px rgba(var(--season-cta-glow),.28),inset 0 0 12px rgba(var(--season-cta-glow),.12);
  pointer-events:none;
  opacity:0;
  animation:season-cta-invite 4.4s ease-in-out infinite;
}
.season-actions .season-event-cta::after { animation-delay:2.2s; }
@keyframes season-cta-invite {
  0%,45%,100% { opacity:0; }
  12%,30% { opacity:1; }
}
/* 입력·키보드 조작에 집중하는 동안에는 점멸을 멈춘다. */
.season-actions:has(input:focus) :is(.season-signup-submit,.season-event-cta)::after,
.season-actions:has(.season-button:focus-visible) :is(.season-signup-submit,.season-event-cta)::after,
.season-actions .season-signup-submit:disabled::after {
  animation:none;
  opacity:0;
}
@media(prefers-reduced-motion:reduce) {
  .season-actions :is(.season-signup-submit,.season-event-cta)::after { animation:none; opacity:0; }
}

/* 상단 브랜드를 카드의 내부 글자선에 맞춘다. */
.season-masthead { padding-left:33px; }
@media(min-width:681px) and (max-width:1024px) { .season-masthead { padding-left:23px; } }
@media(max-width:680px) { .season-masthead { padding-left:17px; } }
@media(max-width:370px), (max-width:680px) and (max-height:640px) { .season-masthead { padding-left:14px; } }

/* 평상시 주소를 한 덩어리로 읽고, 입력할 때만 입력 영역을 드러낸다. */
.qmail-address-example { display:none; }
.season-signup .qmail-address-example { grid-area:1 / 1 / 2 / 4; z-index:1; cursor:text; white-space:nowrap; font:inherit; color:#35584a; }
.season-signup .qmail-address-example span { font-weight:700; }
.season-signup .qmail-address-example b { font-size:1.1em; font-weight:700; color:#a08542; }
.season-signup .qmail-number-form:not(:focus-within):has(input:placeholder-shown) .qmail-address-example { display:block; }
.season-signup .qmail-number-form:not(:focus-within):has(input:placeholder-shown) .qmail-phone-field > :is(strong,input,.qmail-inline-domain) { opacity:0; }
.season-signup .qmail-number-form { grid-template-columns:max-content minmax(0,8ch) max-content; column-gap:0; font-family:'Outfit','Noto Sans KR',sans-serif; font-variant-numeric:tabular-nums; font-weight:500; letter-spacing:0; }
.season-signup .qmail-phone-field > strong,
.season-signup .qmail-phone-field input { font:inherit; font-variant-numeric:tabular-nums; letter-spacing:0; color:#35584a; }
.season-signup .qmail-phone-field input { padding:0; background:transparent; border-bottom-color:transparent; text-align:left; }
.season-signup .qmail-phone-field input::placeholder { color:#35584a; }
.season-signup .qmail-phone-field > .qmail-inline-domain { font-size:1em; color:#35584a; }
.season-signup .qmail-inline-domain b { margin-left:0; font-size:1.1em; }
.season-signup .qmail-inline-domain small { font-size:1em; color:#35584a; }
.season-signup .qmail-number-form:has(input:focus) { column-gap:4px; }
.season-signup .qmail-phone-field input:focus { background:#fffdf1; border-bottom-color:#9aaa82; outline:2px solid #859f7a; outline-offset:-2px; }

/* 기종이 아닌 실제 표시 높이를 사용하며, 안전 영역은 카드 바깥에 확보한다. */
@media(max-width:600px) {
  .season-first-screen {
    height:calc(var(--season-viewport-height,100svh) - 10px);
    min-height:0;
    padding-bottom:max(8px,env(safe-area-inset-bottom,0px));
    --season-card-gap:clamp(8px,calc(var(--season-viewport-height,100svh) * .02),16px);
  }
  .season-first-screen[data-viewport-density="compact"] { --season-card-gap:12px; }
  .season-first-screen[data-viewport-density="tight"] { --season-card-gap:8px; }
  .season-first-screen:is([data-viewport-density="compact"],[data-viewport-density="tight"]) .season-welcome { padding:10px 13px; grid-template-columns:minmax(0,1fr) 54px; gap:9px; }
  .season-first-screen:is([data-viewport-density="compact"],[data-viewport-density="tight"]) .season-masthead { padding-left:14px; }
  .season-first-screen:is([data-viewport-density="compact"],[data-viewport-density="tight"]) .season-portrait { width:54px; }
  .season-first-screen:is([data-viewport-density="compact"],[data-viewport-density="tight"]) .season-eyebrow { display:none; }
  .season-first-screen:is([data-viewport-density="compact"],[data-viewport-density="tight"]) .season-card { padding:9px 13px; }
  .season-first-screen:is([data-viewport-density="compact"],[data-viewport-density="tight"]) .season-numbers { margin:4px 0; }
  .season-first-screen[data-viewport-density="tight"] .season-welcome { padding-block:7px; }
  .season-first-screen[data-viewport-density="tight"] .season-welcome h1 { font-size:19px; }
  .season-first-screen[data-viewport-density="tight"] .season-intro { margin:4px 0; }
  .season-first-screen[data-viewport-density="tight"] .season-card { padding:6px 13px; }
  .season-first-screen[data-viewport-density="tight"] .season-event h2 { margin-top:3px; font-size:17px; line-height:1.2; }
  .season-first-screen[data-viewport-density="tight"] .season-event-head { line-height:1.4; }
  .season-first-screen[data-viewport-density="tight"] .season-numbers { margin:3px 0; }
  .season-first-screen[data-viewport-density="tight"] .season-numbers span { padding:1px 3px; font-size:20px; line-height:1.2; }
  .season-first-screen[data-viewport-density="tight"] .season-event-period { margin-bottom:3px; font-size:9px; line-height:12px; }
  .season-first-screen[data-viewport-density="tight"] .season-card-person { margin:2px 0; font-size:20px; }
  .season-first-screen[data-viewport-density="tight"] .qmail-number-form { grid-template-rows:32px minmax(14px,auto); font-size:20px; }
  .season-first-screen[data-viewport-density="tight"] .qmail-phone-field input { height:30px; }
  .season-first-screen[data-viewport-density="tight"] .season-signup h2 { font-size:12px; }
}
