:root {
  --ink:#432f27; --muted:#7a6558; --paper:#fffaf4; --white:#fff; --line:#eaddce;
  --red:#b7462e; --red-dark:#9e3822; --sky:#ffead7; --yellow:#f2bd6b; --green:#4c7250;
  --shadow:0 14px 42px rgba(67,47,39,.10); --radius:0px; --max:1180px;
}

*{box-sizing:border-box}
 html{scroll-behavior:smooth}
 body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP",sans-serif;font-size:16px;line-height:1.75}
 body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.36;background-image:radial-gradient(#e5d8c8 .7px,transparent .7px);background-size:20px 20px;z-index:-1}
 a{color:inherit;text-decoration:none}
 button,input,select,textarea{font:inherit}
 button{cursor:pointer}
.skip-link{position:fixed;left:12px;top:-100px;background:var(--ink);color:white;padding:10px 16px;z-index:100}
.skip-link:focus{top:12px}
.site-header{height:82px;padding:0 clamp(18px,2.4vw,48px);display:flex;align-items:center;justify-content:flex-start;gap:clamp(16px,1.8vw,34px);border-bottom:1px solid var(--line);background:rgba(255,250,244,.96);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50}
.brand{display:flex;align-items:center;gap:11px;flex:0 0 auto;font-family:"Space Grotesk",sans-serif;letter-spacing:.22em;font-weight:700}
.brand b{font-family:"Noto Sans JP";letter-spacing:.02em;font-size:.88rem;border-left:1px solid var(--line);padding-left:16px}
.brand-mark{width:27px;height:17px;display:inline-grid;place-items:center;border-left:3px solid var(--ink);border-right:3px solid var(--ink);transform:skew(-10deg)}
.brand-mark i{display:block;width:8px;height:8px;background:var(--red);clip-path:polygon(0 0,100% 50%,0 100%)}
nav{display:flex;align-items:center;gap:clamp(18px,1.6vw,30px);font-weight:700;font-size:.9rem}
nav a:not(.header-cta){padding:28px 0;border-bottom:2px solid transparent}
nav a:hover{border-bottom-color:var(--red)}
.header-cta{color:white;background:var(--red);padding:14px 20px;box-shadow:5px 5px 0 var(--ink)}
.menu-button{display:none;background:none;border:0;padding:10px}
.menu-button span{display:block;width:24px;height:2px;background:var(--ink);margin:6px}
.section{max-width:var(--max);margin:0 auto;padding:96px 24px}
.section-tight{padding-top:48px;padding-bottom:56px}
.eyebrow{display:flex;align-items:center;gap:12px;font-family:"Space Grotesk";font-size:.76rem;letter-spacing:.18em;font-weight:700}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--red)}
h1,h2,h3,p{margin-top:0}
h1,h2{letter-spacing:-.045em;line-height:1.24}
h1{font-size:clamp(2.55rem,6.2vw,5.4rem);margin:24px 0 28px;font-weight:800}
h2{font-size:clamp(2rem,4vw,3.65rem);margin:18px 0 22px;font-weight:800}
h3{line-height:1.42}
.accent{color:var(--red)}
.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.hero-copy>p{font-size:1.08rem;color:#7a6558;font-weight:500;max-width:620px}
.hero-meta{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0}
.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:white;border-radius:4px;padding:7px 13px;font-size:.78rem;font-weight:700}
.pill::before{content:"✓";color:var(--red)}
.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 23px;border:1px solid var(--ink);font-weight:800}
.primary{background:var(--ink);color:white;box-shadow:6px 6px 0 var(--red)}
.primary:hover{background:#243246;transform:translateY(-1px)}
.secondary{background:white}
.secondary:hover{background:#eef1f2}
.hero-visual{position:relative;min-height:480px}
.action-board{position:absolute;inset:30px 0 40px 32px;background:var(--ink);color:white;padding:48px;box-shadow:16px 16px 0 var(--red)}
.board-kicker{font-family:"Space Grotesk";letter-spacing:.18em;color:#edd9c7;font-size:.72rem}
.board-item{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:16px;padding:25px 0;border-bottom:1px solid #735343}
.board-item:last-child{border-bottom:0}
.board-no{font-family:"Space Grotesk";color:var(--red);font-size:.76rem}
.board-item strong{font-size:1.17rem}
.board-item small{display:block;color:#edd9c7}
.board-icon{font-size:1.5rem}
.three-actions{background:var(--ink);color:white}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:38px}
.section-head p{color:#b9c0c8;max-width:450px}
.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#735343;border:1px solid #735343}
.action-card{background:var(--ink);padding:36px;min-height:280px;display:flex;flex-direction:column;position:relative;transition:.2s}
.action-card:hover{background:#5c4033}
.action-card .num{font-family:"Space Grotesk";color:var(--red);font-size:.8rem}
.action-card h3{font-size:1.65rem;margin:auto 0 12px}
.action-card p{color:#edd9c7;margin:0}
.action-card b{position:absolute;right:28px;top:28px;color:var(--red);font-size:1.4rem}
.companies-preview{background:#fff}
.company-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.company-card{border:1px solid var(--line);background:var(--white);display:flex;flex-direction:column;min-height:340px;transition:.2s}
.company-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#bdc5c9}
.company-top{height:88px;padding:22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.company-logo{width:50px;height:50px;display:grid;place-items:center;background:var(--ink);color:white;font-family:"Space Grotesk";font-size:1.1rem;font-weight:700}
.company-index{font:600 .75rem "Space Grotesk";color:#8b949d}
.company-body{padding:24px;display:flex;flex-direction:column;flex:1}
.company-body h3{font-size:1.23rem;margin:0 0 8px}
.meta{font-size:.82rem;color:var(--muted)}
.company-quote{font-weight:600;margin:18px 0}
.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.tag{padding:5px 9px;border:1px solid var(--ink);font-size:.7rem;font-weight:700}
.tag.inquiry{background:var(--sky)}
.tag.internship{background:#fde4df}
.tag.career_event{background:#fff2b6}
.text-link{display:inline-flex;gap:9px;border-bottom:1px solid var(--ink);font-weight:800;padding-bottom:3px}
.direct-note{display:grid;grid-template-columns:auto 1fr;gap:20px;background:#f2f4f4;border-left:5px solid var(--red);padding:24px;margin-top:46px}
.direct-note strong{font-size:1.03rem}
.direct-note p{margin:4px 0 0;color:var(--muted)}
.page-hero{background:var(--ink);color:white;padding:70px max(24px,calc((100vw - var(--max))/2));position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;width:280px;height:280px;border:55px solid var(--red);border-radius:50%;right:-80px;top:-120px;opacity:.95}
.page-hero h1{font-size:clamp(2.3rem,5vw,4.6rem);margin-bottom:14px;position:relative;z-index:1}
.page-hero p{color:#edd9c7;max-width:700px;margin:0;position:relative;z-index:1}
.search-layout{display:grid;grid-template-columns:260px 1fr;gap:42px}
.filter-panel{align-self:start;position:sticky;top:108px}
.filter-group{border-top:1px solid var(--line);padding:20px 0}
.filter-group h3{font-size:.86rem;margin:0 0 12px}
.filter-group label{display:flex;align-items:center;gap:9px;font-size:.88rem;margin:9px 0;cursor:pointer}
.filter-group input{accent-color:var(--red);width:17px;height:17px}
.search-box{position:relative;margin-bottom:24px}
.search-box input{width:100%;min-height:58px;border:1px solid #bfc6ca;padding:12px 48px 12px 18px;background:white}
.search-box span{position:absolute;right:18px;top:16px;font-size:1.2rem}
.results-bar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--ink);padding-bottom:12px;margin-bottom:22px}
.results-bar strong{font:700 1.5rem "Space Grotesk"}
.empty{grid-column:1/-1;padding:60px 20px;text-align:center;border:1px dashed #aeb6bb;background:#fff}
.detail-hero{padding-bottom:44px}
.detail-company{display:flex;align-items:center;gap:24px}
.detail-logo{width:92px;height:92px;display:grid;place-items:center;background:white;color:var(--ink);font:700 1.7rem "Space Grotesk"}
.detail-hero h1{font-size:clamp(2rem,5vw,4.4rem)}
.detail-grid{display:grid;grid-template-columns:1fr 330px;gap:60px}
.detail-grid h2{font-size:1.8rem;margin-top:52px;padding-bottom:12px;border-bottom:1px solid var(--ink)}
.detail-grid h2:first-child{margin-top:0}
.info-list{display:grid;grid-template-columns:150px 1fr;border-top:1px solid var(--line)}
.info-list dt,.info-list dd{margin:0;padding:14px 0;border-bottom:1px solid var(--line)}
.info-list dt{color:var(--muted);font-size:.84rem}
.side-card{background:white;border:1px solid var(--line);padding:25px;position:sticky;top:108px}
.side-card h3{margin-bottom:12px}
.side-card .primary,.side-card .secondary{width:100%;margin-top:12px}
.intern-card{border:1px solid var(--line);background:white;padding:24px;margin:16px 0}
.intern-card .status{color:var(--green);font-weight:800;font-size:.78rem}
.intern-card h3{font-size:1.3rem;margin:8px 0}
.job-header{display:flex;gap:20px;align-items:center}
.job-header .company-logo{flex:none}
.job-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:30px 0}
.job-cell{background:white;padding:18px}
.job-cell dt{font-size:.76rem;color:var(--muted);margin-bottom:5px}
.job-cell dd{margin:0;font-weight:600}
.application-panel{background:var(--ink);color:white;padding:36px;margin-top:44px}
.application-panel p{color:#edd9c7}
.application-panel .primary{background:var(--red);box-shadow:6px 6px 0 white;border-color:var(--red)}
.form-wrap{max-width:800px}
.form-section{background:white;border:1px solid var(--line);padding:34px;margin:22px 0}
.form-section h2{font-size:1.35rem;border-bottom:1px solid var(--line);padding-bottom:14px}
.field{margin:18px 0}
.field label,.field legend{display:block;font-weight:700;font-size:.88rem;margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;border:1px solid #b8c0c5;background:#fff;padding:12px 14px;min-height:48px}
.field textarea{min-height:130px;resize:vertical}
.field small{display:block;color:var(--muted);margin-top:5px}
.required{color:var(--red);font-size:.72rem;margin-left:6px}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.check-option{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:12px}
.check-option input{width:18px;height:18px;accent-color:var(--red)}
.notice{background:#fff8da;border-left:4px solid var(--yellow);padding:18px;margin:22px 0}
.success{background:#e7f4ee;border:1px solid #a4cfba;color:#13543b;padding:18px}
.about-flow{display:grid;grid-template-columns:repeat(5,1fr);margin:35px 0}
.flow-step{padding:20px 15px;border-top:3px solid var(--ink);position:relative}
.flow-step:not(:last-child)::after{content:"";position:absolute;width:10px;height:10px;border-top:2px solid var(--red);border-right:2px solid var(--red);right:8px;top:26px;transform:rotate(45deg)}
.flow-step b{font:700 .72rem "Space Grotesk";color:var(--red)}
.flow-step span{display:block;font-weight:700;margin-top:7px}
.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:680px}
.admin-nav{background:var(--ink);color:white;padding:30px 24px}
.admin-nav h2{font:600 1.1rem "Space Grotesk";letter-spacing:.12em}
.admin-nav a{display:block;color:#edd9c7;padding:13px 0;border-bottom:1px solid #735343}
.admin-nav a.active{color:white;border-color:var(--red)}
.admin-main{padding:46px;overflow:auto}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}
.stat{background:white;border:1px solid var(--line);padding:18px}
.stat b{display:block;font:700 2rem "Space Grotesk"}
.stat small{color:var(--muted)}
table{width:100%;border-collapse:collapse;background:white;min-width:720px}
th,td{text-align:left;padding:14px;border-bottom:1px solid var(--line);font-size:.84rem}
th{background:#f0f2f2;color:var(--muted)}
.status-badge{display:inline-block;border-radius:20px;background:#e6f3ed;color:var(--green);padding:3px 9px;font-weight:700}
.status-badge.pending{background:#fff4c6;color:#795e00}
.admin-actions button{border:0;background:none;text-decoration:underline;font-size:.78rem}
.toast{position:fixed;right:22px;bottom:22px;background:var(--ink);color:white;padding:14px 20px;transform:translateY(120px);opacity:0;transition:.25s;z-index:100;box-shadow:var(--shadow)}
.toast.show{transform:none;opacity:1}
.loading{min-height:60vh;display:grid;place-items:center}
.loading::after{content:"";width:40px;height:40px;border:3px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}
}

@media(max-width:900px){.site-header{height:70px;padding:0 20px}
.brand b{display:none}
.menu-button{display:block}
nav{display:none;position:absolute;top:70px;left:0;right:0;background:white;padding:18px 24px;border-bottom:1px solid var(--line);align-items:stretch;flex-direction:column;gap:4px}
nav.open{display:flex}
nav a:not(.header-cta){padding:12px 0}
.header-cta{text-align:center;margin-top:6px}
.hero{grid-template-columns:1fr;padding-top:60px;gap:20px}
.hero-visual{min-height:430px}
.section{padding:72px 20px}
.action-grid,.company-grid{grid-template-columns:1fr 1fr}
.search-layout{grid-template-columns:1fr}
.filter-panel{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.detail-grid{grid-template-columns:1fr}
.side-card{position:static}
.admin-shell{grid-template-columns:1fr}
.admin-nav{display:flex;gap:20px;align-items:center;overflow:auto}
.admin-nav h2{margin:0}
.admin-nav a{white-space:nowrap}
.stat-grid{grid-template-columns:1fr 1fr}
.about-flow{grid-template-columns:1fr 1fr}
.job-grid{grid-template-columns:1fr}
}

@media(max-width:620px){h1{font-size:2.55rem}
.page-hero{padding-top:36px;padding-bottom:46px}
.page-hero h1{margin-top:16px}
.section{padding:48px 20px}
.section-tight{padding-top:32px;padding-bottom:42px}
.hero{min-height:auto;padding-bottom:60px}
.hero-visual{min-height:360px}
.action-board{inset:10px 8px 30px 0;padding:26px}
.board-item{grid-template-columns:32px 1fr auto;padding:18px 0}
.section-head{display:block}
.action-grid,.company-grid{grid-template-columns:1fr}
.action-card{min-height:230px}
.filter-panel{grid-template-columns:1fr 1fr}
.detail-company{align-items:flex-start}
.detail-logo{width:70px;height:70px}
.detail-grid{gap:25px}
.info-list{grid-template-columns:110px 1fr}
.form-section{padding:22px 18px}
.check-grid{grid-template-columns:1fr}
.about-flow{grid-template-columns:1fr}
.flow-step:not(:last-child)::after{display:none}
.admin-main{padding:28px 18px}
.stat-grid{grid-template-columns:1fr 1fr}
.site-footer{padding:55px 20px 25px}
.footer-links{grid-template-columns:1fr 1fr}
}

.site-footer{max-width:var(--max);margin:0 auto;padding:72px 24px 32px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:30px}
.footer-brand{margin-bottom:15px}
.site-footer p{font-weight:700}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-content:start}
.footer-links a{font-size:.88rem;text-decoration:underline;text-underline-offset:4px}
.site-footer small{grid-column:1/-1;color:var(--muted);display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px}


/* Official Winttle wordmark */
.brand{gap:14px;letter-spacing:normal}

.brand-logo{display:block;width:142px;height:auto}

.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.auth-card{max-width:460px;margin:48px auto;background:white;border:1px solid var(--line);padding:34px;box-shadow:var(--shadow)}

.auth-error{color:#a5241a;font-weight:700;margin-top:14px}

.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}

.admin-toolbar button{border:1px solid var(--line);background:white;padding:8px 13px}

.admin-message{min-width:260px;white-space:pre-wrap;word-break:break-word}

[data-admin-status]{min-width:120px;border:1px solid #b8c0c5;background:white;padding:8px}

button:disabled{cursor:wait;opacity:.62}

@media(max-width:620px){.brand-logo{width:126px}
}


/* Images, readable category labels, and complete card surfaces. */
[hidden]{display:none!important}

.tag{color:var(--ink);display:inline-flex;align-items:center;line-height:1.5;white-space:nowrap;flex-shrink:0}

.page-hero::after{pointer-events:none;z-index:0}

.detail-company{position:relative;z-index:1;min-width:0}

.detail-company>div{min-width:0}

.detail-company h1{overflow-wrap:anywhere}

.detail-logo,.company-logo{flex-shrink:0;overflow:hidden;background:white;border:1px solid var(--line)}

.detail-logo img,.company-logo img{width:100%;height:100%;display:block;object-fit:contain}

.detail-logo{width:92px;height:92px}

.company-card{overflow:hidden;min-width:0}

.company-photo{position:relative;aspect-ratio:16/10;overflow:hidden;background:#e6e9e7}

.company-photo>img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .25s}

.company-card:hover .company-photo>img{transform:scale(1.03)}

.sample-photo-label{position:absolute;bottom:10px;right:10px;background:rgba(67,47,39,.86);color:white;font-size:.65rem;padding:3px 8px}

.company-top{height:80px;padding:16px 22px}

.company-body h3{overflow-wrap:anywhere}

.detail-photo{margin:0 0 30px;background:white;border:1px solid var(--line)}

.detail-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}

.detail-photo figcaption{padding:8px 14px;color:var(--muted);font-size:.75rem}

.detail-grid{grid-template-columns:minmax(0,1fr) 330px}

.detail-grid article{min-width:0}

.detail-grid .intern-card{display:block;width:100%;padding:24px;background:var(--white);color:var(--ink);overflow-wrap:anywhere}

.career-event-panel{margin-top:34px;padding:28px;background:var(--white);border:1px solid var(--line)}

.career-event-panel h2{margin-top:0}

.career-event-panel h3{font-size:1.35rem;margin-bottom:24px}

.career-event-panel h4{font-size:.9rem;margin:18px 0 6px}

.career-event-copy p{white-space:pre-wrap}

.intern-card:hover{border-color:var(--ink);box-shadow:var(--shadow)}

.intern-card .meta{margin-bottom:18px}

.image-upload-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}

.image-upload{min-width:0}

.image-upload input[type=file]{font-size:.8rem;padding:10px;width:100%;min-width:0}

.image-preview{height:180px;display:grid;place-items:center;background:#f3f5f4;border:1px dashed #adb7bc;overflow:hidden;color:var(--muted);font-size:.8rem}

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

.image-preview.icon img{object-fit:contain;padding:14px}

.conditional-fields{margin:28px 0 0;padding:22px 0 0;border:0;border-top:2px solid var(--line);min-width:0}

.conditional-fields>legend{font-size:1.1rem;font-weight:800;padding-right:12px}

.choice-field{border:0;padding:0;min-width:0;margin:22px 0}

.choice-field legend{font-size:.88rem;font-weight:700;margin-bottom:12px}

.check-option{align-items:flex-start;cursor:pointer;font-size:.86rem}

.check-option input[type=checkbox]{flex:0 0 18px;margin-top:5px}

.choice-details{border:1px solid var(--line);margin:18px 0;padding:14px 18px;background:#fffaf4}

.choice-details summary{font-weight:700;cursor:pointer}

.choice-details[open] summary{margin-bottom:14px}

.topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

.topic-grid .check-option{padding:9px;font-size:.8rem}

.inquiry-private{margin-top:28px;border-top:1px solid var(--line);padding-top:20px}

.inquiry-private h3{font-size:.95rem}

.submission-review{margin-top:10px;max-width:440px}

.submission-review summary{cursor:pointer;font-weight:700}

.submission-images{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0}

.submission-image{width:200px;height:120px;object-fit:cover;border:1px solid var(--line)}

.submission-image.icon{width:80px;height:80px;object-fit:contain}

.submission-review dt{font-weight:700;margin-top:10px}

.submission-review dd{margin:2px 0;white-space:pre-wrap;overflow-wrap:anywhere}

@media(max-width:1100px) and (min-width:901px){.search-layout .company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:900px){.detail-grid{grid-template-columns:minmax(0,1fr)}
}

@media(max-width:620px){.detail-company{gap:16px;align-items:flex-start}
.detail-logo{width:64px;height:64px}
.detail-hero h1{font-size:1.85rem}
.image-upload-grid{grid-template-columns:minmax(0,1fr)}
.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice-details{padding:12px}
.detail-grid .intern-card{padding:20px}
.tag{font-size:.7rem}
}


/* Keep the earlier layout with restrained warm accents. */
.hero h1 { font-size: clamp(2.3rem, 5.2vw, 4.6rem); }
.page-hero::after { display: none; }
.detail-hero .meta { color: #edd9c7; }
.hero-copy, .board-item > span, .job-cell, .form-wrap { min-width: 0; }
.board-no, .action-card .num, .action-card b { color: #f2bd6b; }
.info-list { grid-template-columns: 150px minmax(0, 1fr); }
.job-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.info-list dd, .job-cell dd, .side-card, .check-option { overflow-wrap: anywhere; }
p { overflow-wrap: anywhere; }
:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
@media (max-width: 900px) {
  .job-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 620px) {
  .hero h1 { font-size: clamp(1.95rem, 8.5vw, 2.3rem); }
  h1 { font-size: clamp(2.1rem, 8.8vw, 2.55rem); }
  .board-item { gap: 10px; }
  .board-item strong { font-size: 1rem; }
  .board-item small { font-size: .7rem; }
  .info-list { grid-template-columns: 95px minmax(0, 1fr); }
  .filter-panel { grid-template-columns: minmax(0, 1fr); }
  .site-footer small { display: block; }
  .site-footer small span { display: block; margin-top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Illustrated home: styles are scoped to the new hero and restored story. */
.illustrated-hero{max-width:1440px;display:grid;grid-template-columns:1fr 1fr;gap:56px;padding-top:54px;padding-bottom:64px;align-items:start}
.illustrated-intro{min-width:0}.illustrated-hero h1{font-size:clamp(2.5rem,4.4vw,4.4rem);line-height:1.35;margin:20px 0}.illustrated-lead{color:var(--muted);margin-bottom:25px}.illustrated-intro .primary{gap:28px}.connection-art{display:block;width:100%;height:auto;margin-top:14px}.illustration-note{margin:0;text-align:center;font-size:.82rem;font-weight:700;letter-spacing:.12em;color:var(--muted)}
.hero-photo-cards{display:grid;gap:20px;padding:8px 8px 8px 0;min-width:0}.hero-photo-card{display:grid;grid-template-columns:42% 58%;border:1px solid var(--ink);border-radius:22px;overflow:hidden;background:#f5d49f;box-shadow:6px 6px 0 #e5c49d;transition:transform .2s}.hero-photo-card.internship{background:#e5ece2;box-shadow:6px 6px 0 #c7d3c0}.hero-photo-card.career_event{background:#f6e6d8;box-shadow:6px 6px 0 #dbc4b1}.hero-photo-card:hover{transform:translateY(-3px)}.hero-card-photo{position:relative;min-height:216px}.hero-card-photo img{width:100%;height:100%;position:absolute;object-fit:cover}.hero-card-copy{padding:22px 24px;min-width:0}.hero-card-category{display:inline-block;background:var(--paper);border:1px solid var(--ink);padding:2px 12px;border-radius:30px;font-size:.72rem;font-weight:700}.hero-card-copy h2{font-size:clamp(1.15rem,1.65vw,1.6rem);line-height:1.5;margin:12px 0 8px;letter-spacing:-.03em}.hero-card-copy p{font-size:.78rem;margin:0 0 12px}.hero-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font:600 .62rem "Space Grotesk",sans-serif;letter-spacing:.08em}.hero-card-arrow{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--ink);border-radius:50%;background:var(--paper);font-size:1.2rem;flex-shrink:0}
.home-story-band{background:var(--red)}.section-wave{display:block;width:100%;height:80px;color:var(--red);background:var(--paper)}.wave-bottom .section-wave{color:var(--paper);background:var(--red)}.home-story{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-top:60px;padding-bottom:60px}.story-photo{position:relative;height:420px;overflow:hidden;border-radius:32px 110px 32px 32px}.story-photo>img{display:block;width:100%;height:100%;object-fit:cover;object-position:65% center}.story-photo-mark{position:absolute;left:26px;bottom:26px;color:white;font:600 1.8rem "Space Grotesk",sans-serif;line-height:1.2;letter-spacing:.06em;text-shadow:0 2px 10px #0006}.home-story-band .story-copy h2{font-size:clamp(1.8rem,3vw,2.45rem);color:white}.home-story-band .story-copy strong{color:white}.home-story-band .story-copy .eyebrow{color:#ffe7bf}.home-story-band .story-copy .eyebrow::before{background:#ffe7bf}.story-copy p{color:#fff1e3;font-size:.9rem;line-height:2.1}.home-story-band .text-link{color:white;border-color:#f7bca0}
@media(max-width:1100px){.illustrated-hero{gap:30px}.hero-card-copy{padding:18px}.hero-card-photo{min-height:200px}.home-story{gap:40px}}
@media(max-width:800px){.illustrated-hero{grid-template-columns:1fr;padding-top:38px;gap:32px;max-width:660px}.illustrated-hero h1{font-size:clamp(2.1rem,6.5vw,3.5rem)}.connection-art{max-width:550px;margin:18px auto 0}.hero-card-copy h2{font-size:1.4rem}.home-story{grid-template-columns:1fr;gap:32px}.story-photo{height:400px}.home-story-band .story-copy h2{font-size:2rem}}
@media(max-width:480px){.illustrated-hero{padding-inline:20px}.hero-photo-card{grid-template-columns:36% 64%;border-radius:16px}.hero-card-copy{padding:15px 12px}.hero-card-copy h2{font-size:1.05rem}.hero-card-copy p{font-size:.74rem}.hero-card-footer{font-size:.52rem;letter-spacing:0}.hero-card-photo{min-height:220px}.hero-card-photo .sample-photo-label{font-size:.55rem;right:4px;bottom:6px;padding:3px 5px}.section-wave{height:40px}.home-story{padding-top:40px;padding-bottom:40px}.story-photo{height:300px;border-radius:24px 74px 24px 24px}.story-photo-mark{font-size:1.4rem;left:20px;bottom:22px}.home-story-band .story-copy h2{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){.hero-photo-card{transition:none}}

/* Overlay the introduction on the generated hero photograph. */
.illustrated-hero{grid-template-columns:1.1fr 1fr;gap:32px;align-items:stretch}
.photo-overlay-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:720px;overflow:hidden;border-radius:24px;background:var(--ink)}
.generated-hero-photo{position:absolute;inset:0;margin:0;z-index:-2}
.generated-hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:48% center}
.generated-hero-photo figcaption{position:absolute;right:16px;top:16px;color:white;background:#432f27cc;font-size:.65rem;padding:4px 9px;border-radius:4px}
.photo-overlay-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(35,24,19,0) 18%,rgba(35,24,19,.25) 36%,rgba(35,24,19,.86) 70%,rgba(35,24,19,.95) 100%)}
.hero-overlay-copy{width:100%;padding:42px;color:#fffaf4}
.hero-overlay-copy .eyebrow{color:#fff1df;font-size:.68rem;letter-spacing:.13em}
.hero-overlay-copy .eyebrow::before{background:#f2bd6b}
.illustrated-hero .hero-overlay-copy h1{font-size:clamp(2.1rem,3.6vw,3.65rem);line-height:1.38;margin:18px 0}
.hero-overlay-copy .accent{color:#f5c98a}
.hero-overlay-copy .illustrated-lead{color:#fffaf4;font-size:.95rem;line-height:1.9;text-shadow:0 1px 5px #0008}
.hero-overlay-copy .primary{background:var(--red);border-color:#f9d9c5;box-shadow:4px 4px 0 #fff4df;gap:24px}
.hero-overlay-copy .primary:hover{background:var(--red-dark)}
.hero-overlay-copy .illustration-note{color:#f8e7d6;text-align:left;margin:24px 0 0;font-size:.72rem}
@media(max-width:1100px){.hero-overlay-copy{padding:28px}.photo-overlay-hero{min-height:690px}.hero-overlay-copy .illustrated-lead{font-size:.85rem}}
@media(max-width:800px){.illustrated-hero{grid-template-columns:1fr;gap:28px}.photo-overlay-hero{min-height:610px}.generated-hero-photo img{object-position:center center}.hero-overlay-copy{padding:32px}.illustrated-hero .hero-overlay-copy h1{font-size:clamp(2.1rem,6.5vw,3.2rem)}}
@media(max-width:480px){.photo-overlay-hero{min-height:590px;border-radius:18px}.hero-overlay-copy{padding:26px 20px}.illustrated-hero .hero-overlay-copy h1{font-size:clamp(1.8rem,7.8vw,2.4rem)}.hero-overlay-copy .eyebrow{font-size:.58rem;letter-spacing:.06em;gap:8px}.hero-overlay-copy .illustrated-lead{font-size:.8rem}.hero-overlay-copy .illustration-note{font-size:.65rem;letter-spacing:.08em}.generated-hero-photo img{object-position:44% center}}

/* Crisp navy, vivid orange and white across the portal. */
:root{
  --ink:#17283b;--muted:#536171;--paper:#fafbfc;--line:#dce1e7;
  --red:#c4411c;--red-dark:#a93214;--sky:#fff2c6;--yellow:#ffc83d;--green:#21714f;
  --coral:#ff7847;--peach:#f0f3f6;--mint:#e3eee8;
  --shadow:0 12px 32px rgba(23,40,59,.09);
}
body::before{opacity:.08}
.site-header{background:rgba(255,255,255,.97)}
.header-cta{background:var(--ink);box-shadow:4px 4px 0 var(--coral)}
.primary{background:var(--ink);border-color:var(--ink);box-shadow:5px 5px 0 var(--coral)}
.primary:hover{background:#29435f}
.secondary:hover{background:#edf1f5}
.three-actions{background:#eef1f5;color:var(--ink)}
.section-head p{color:var(--muted)}
.action-grid{background:#ccd4de;border-color:#ccd4de}
.action-card,.action-card:nth-child(2),.action-card:nth-child(3){background:white;color:var(--ink)}
.action-card:hover{background:#fff3de}
.action-card p{color:var(--muted)}
.action-card .num,.action-card b{color:var(--red)}
.hero-photo-card{background:#ffc83d;border-color:var(--ink);box-shadow:6px 6px 0 var(--ink)}
.hero-photo-card.internship{background:var(--ink);color:white;border-color:var(--ink);box-shadow:6px 6px 0 #95a5b6}
.hero-photo-card.career_event{background:var(--coral);border-color:var(--ink);box-shadow:6px 6px 0 var(--ink)}
.hero-card-category,.hero-card-arrow{background:white;color:var(--ink);border-color:var(--ink)}
.hero-photo-card.internship .hero-card-copy p{color:#edf2f8}
.home-story-band{background:var(--coral)}
.section-wave{color:var(--coral);background:var(--paper)}
.wave-bottom .section-wave{color:var(--paper);background:var(--coral)}
.home-story-band .story-copy h2,.home-story-band .story-copy strong{color:var(--ink)}
.home-story-band .story-copy p{color:#17283b}
.home-story-band .story-copy .eyebrow{color:var(--ink)}
.home-story-band .story-copy .eyebrow::before{background:var(--ink)}
.home-story-band .text-link{color:var(--ink);border-color:var(--ink)}
.page-hero{background:#eef1f5;color:var(--ink)}
.page-hero p,.detail-hero .meta{color:var(--muted)}
.application-panel{background:#eef1f5;color:var(--ink)}
.application-panel p{color:var(--muted)}
.application-panel .primary{background:var(--ink);border-color:var(--ink);box-shadow:5px 5px 0 var(--coral)}
.direct-note{background:#f0f3f6}
.admin-nav{background:#eef1f5;color:var(--ink)}
.admin-nav a{color:var(--muted);border-color:#ccd4de}
.admin-nav a.active{color:var(--red)}
th{background:#edf1f5}
.tag.inquiry{background:#fff0b4}.tag.internship{background:#ffe0d2}.tag.career_event{background:#e7edf5}
.photo-overlay-hero::before{background:linear-gradient(180deg,rgba(14,27,42,0) 22%,rgba(14,27,42,.12) 38%,rgba(14,27,42,.73) 72%,rgba(14,27,42,.84) 100%)}
.hero-overlay-copy .accent{color:#ffc83d}
.hero-overlay-copy .primary{background:#fff;color:var(--ink);border-color:#fff;box-shadow:4px 4px 0 var(--coral)}
.hero-overlay-copy .primary:hover{background:#fff0d5}

/* Compact the opening view while retaining the photo and action links. */
.illustrated-hero{padding-top:32px;padding-bottom:36px}
.photo-overlay-hero{min-height:540px}
.hero-overlay-copy{padding:30px}
.illustrated-hero .hero-overlay-copy h1{font-size:clamp(2rem,3.3vw,3.25rem);line-height:1.3;margin:14px 0}
.hero-overlay-copy .illustrated-lead{margin-bottom:18px;font-size:.86rem}
.hero-overlay-copy .illustration-note{margin-top:18px}
.hero-photo-cards{gap:14px;padding-top:4px;padding-bottom:6px}
.hero-card-photo{min-height:166px}
.hero-card-copy{padding:14px 18px}
.hero-card-copy h2{font-size:clamp(1.05rem,1.45vw,1.3rem);line-height:1.4;margin:8px 0 6px}
.hero-card-copy p{font-size:.72rem;line-height:1.5;margin-bottom:8px}
.hero-card-category{font-size:.68rem;line-height:1.5}
.hero-card-arrow{width:28px;height:28px;font-size:1rem}
@media(max-width:1100px){.photo-overlay-hero{min-height:550px}.hero-card-copy{padding:12px 14px}.hero-card-photo{min-height:166px}}
@media(max-width:800px){.illustrated-hero{padding-top:24px;padding-bottom:28px;gap:24px}.photo-overlay-hero{min-height:470px}.hero-overlay-copy{padding:28px}.hero-card-photo{min-height:150px}.hero-card-copy h2{font-size:1.2rem}}
@media(max-width:480px){.photo-overlay-hero{min-height:430px}.hero-overlay-copy{padding:24px 20px}.illustrated-hero .hero-overlay-copy h1{font-size:clamp(1.65rem,7.3vw,2.1rem)}.hero-overlay-copy .illustrated-lead{font-size:.78rem}.hero-overlay-copy .illustration-note{margin-top:16px}.hero-card-photo{min-height:150px}.hero-card-copy{padding:12px}.hero-card-copy h2{font-size:1rem}.hero-card-footer{font-size:.5rem}}
.three-actions>.section,.companies-preview{padding-top:64px;padding-bottom:64px}
.home-story{padding-top:44px;padding-bottom:44px}
.story-photo{height:360px}
.three-actions .action-card{min-height:240px;padding:28px}
@media(max-width:800px){.three-actions>.section,.companies-preview{padding-top:44px;padding-bottom:44px}.home-story{padding-top:36px;padding-bottom:36px}}
@media(max-width:480px){.story-photo{height:280px}.three-actions .action-card{min-height:200px;padding:24px}}

/* Contest directory */
.hero-photo-card.contest{background:var(--coral);box-shadow:6px 6px 0 var(--ink)}
.contest-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.contest-toolbar .search-box{flex:1;min-width:240px;margin:0}
.contest-toolbar select{width:auto;max-width:100%;min-height:52px}
.contest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}
.contest-card{background:white;border:1px solid var(--line);border-radius:20px;padding:18px;overflow-wrap:anywhere}
.contest-card h2{font-size:1.05rem;line-height:1.55;margin:12px 0 16px}
.contest-status{display:inline-block;padding:4px 12px;background:#fff0b4;border-radius:20px;font-size:.8rem;font-weight:700}
.contest-card .info-list{grid-template-columns:70px minmax(0,1fr);font-size:.75rem}
.contest-card details{margin-top:20px;font-size:.85rem}
.contest-card summary{cursor:pointer;font-weight:700}
.contest-card details h3{font-size:.9rem;margin:16px 0 6px}
.contest-card p{white-space:pre-line}
.contest-card-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}
.contest-grid>.empty{grid-column:1/-1}
@media(max-width:1100px){.contest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contest-card{padding:22px}.contest-card h2{font-size:1.15rem}.contest-card .info-list{grid-template-columns:90px minmax(0,1fr);font-size:.82rem}}
@media(max-width:680px){.contest-grid{grid-template-columns:1fr}}

/* Theme-led company search and publication management. */
.filter-title{font-size:1rem;margin:0 0 22px}
.filter-group>label{display:block;font-size:.88rem;font-weight:700;margin-bottom:8px}
.filter-group select{width:100%}
.theme-tags,.selected-filters{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.theme-tag,.search-chip{padding:5px 10px;border-radius:12px;background:#fff1c5;color:var(--ink);font-size:.75rem;font-weight:700}
.theme-tag.matched{background:var(--ink);color:white;box-shadow:0 0 0 2px #ffc83d}
.search-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:#edf1f5;font-weight:500;line-height:1.4}
.search-chip:hover{background:#fff1c5;border-color:var(--ink)}
.mobile-search-dock{display:none}
.filter-panel,.contest-toolbar{scroll-margin-top:90px}
.company-summary,.cooperation-summary{font-size:.85rem;line-height:1.8;overflow-wrap:anywhere}
.cooperation-summary{border-top:1px solid var(--line);padding-top:12px;white-space:pre-line}
.pagination{display:flex;gap:20px;align-items:center;justify-content:center;margin-top:32px}
.pagination button{padding:10px 18px;border:1px solid var(--line);border-radius:8px;background:white;cursor:pointer}
.pagination button:disabled{opacity:.4;cursor:default}
.public-inquiry-text{white-space:pre-line}
.directory-editor{margin-top:14px;min-width:260px;white-space:normal}
.directory-editor summary{cursor:pointer;font-weight:700;font-size:.85rem}
.directory-editor form{padding:18px 0;display:grid;gap:16px}
.directory-editor label{font-size:.85rem;display:block}
.directory-editor .check-option{display:flex}
.directory-editor input:not([type=checkbox]),.directory-editor textarea,.directory-editor select{width:100%}
.managed-directory,.theme-management{margin-top:38px}
.managed-company{border:1px solid var(--line);border-radius:12px;padding:20px;margin-top:16px;background:white}
.theme-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.theme-admin-grid form{background:white;padding:20px;border:1px solid var(--line);border-radius:12px;display:grid;gap:14px}
.theme-admin-grid input:not([type=checkbox]){width:100%}
@media(max-width:800px){.theme-admin-grid{grid-template-columns:1fr}.filter-panel{width:100%}.selected-filters{margin-top:12px}.company-summary,.cooperation-summary{font-size:.82rem}}
.filter-group select{min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font:inherit;font-size:.9rem}
@media(max-width:800px){.filter-group select,.search-box input{font-size:16px}}

.contest-image{display:block;width:100%;height:160px;object-fit:contain;background:#f8f7f3;border-radius:12px;margin-bottom:16px}
.contest-student-comment{background:#fff5e9;border-radius:12px;padding:16px;margin-top:20px;font-size:.9rem}
.contest-student-comment h3{font-size:.9rem;margin:0 0 8px}
.contest-student-comment p{margin:0;line-height:1.8}
@media(max-width:600px){.contest-toolbar .search-box{flex:1 0 100%;min-width:0}.contest-toolbar select{flex:1 0 calc(50% - 8px);width:calc(50% - 8px);min-width:0}.contest-image{height:180px}}

.contest-audience{display:inline-block;font-size:.8rem;font-weight:700;color:var(--ink);margin-left:10px}

/* One in-header control flips between the two public browsing modes. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.portal-mode-toggle{order:2;display:flex;align-items:center;gap:11px;flex:0 0 auto;min-width:198px;min-height:54px;padding:7px 9px 7px 13px;border:1px solid var(--ink);border-radius:12px;background:var(--peach);color:var(--ink);text-align:left;transform-style:preserve-3d;box-shadow:3px 3px 0 var(--coral)}
.mode-toggle-copy{display:flex;align-items:center;gap:9px;min-width:0;line-height:1.2}
.mode-toggle-label{font-size:.76rem;white-space:nowrap}
.mode-toggle-state{display:flex;align-items:center;gap:4px}
.mode-toggle-state i{width:6px;height:6px;border:1px solid var(--ink);border-radius:50%;background:transparent}
body[data-portal-mode=school] .mode-toggle-state i:first-child,body[data-portal-mode=university] .mode-toggle-state i:last-child{background:var(--ink)}
.mode-toggle-icon{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--ink);color:white;font-size:1.15rem;line-height:1}
.portal-mode-toggle:hover{background:white;box-shadow:5px 5px 0 var(--coral);transform:translate(-1px,-1px)}
.portal-mode-toggle.is-flipping{animation:mode-toggle-flip .5s ease-in-out}
@keyframes mode-toggle-flip{0%{transform:rotateX(0)}48%{transform:rotateX(90deg)}52%{transform:rotateX(270deg)}100%{transform:rotateX(360deg)}}
.site-header nav{order:1;margin-left:auto}
.site-header .menu-button{order:3}
.filter-panel,.side-card{top:108px}
body[data-portal-mode=school]{--coral:#ff7847;--red:#bd4e35;--peach:#fff4e9}
body[data-portal-mode=university]{--coral:#78d9b0;--red:#236c87;--peach:#eaf5fa;--sky:#dbf2ed}
body[data-portal-mode=university] .hero-photo-card.inquiry{background:#c1eae0}
body[data-portal-mode=university] .hero-photo-card.contest{background:#83c7e2}
body[data-portal-mode=university] .hero-photo-card.career_event{background:#d6e5f9;color:var(--ink)}
body[data-portal-mode=university] .contest-student-comment{background:#edf8f3}
.mode-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.mode-unavailable{min-height:60vh}
@media(max-width:1320px){.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;margin-left:0;background:white;padding:20px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.menu-button{display:block}.portal-mode-toggle{margin-left:auto}}
@media(max-width:760px){.mode-action-grid{grid-template-columns:1fr}.site-header nav{max-height:calc(100dvh - 70px);overflow:auto}.portal-mode-toggle{min-width:174px;min-height:48px;padding:5px 7px 5px 10px;gap:7px}.mode-toggle-copy{gap:7px}.mode-toggle-label{font-size:.62rem}.mode-toggle-state i{width:5px;height:5px}.mode-toggle-icon{width:27px;height:27px}.brand-logo{width:102px}}
@media(max-width:430px){.site-header{gap:9px;padding-inline:12px}.brand-logo{width:84px}.brand b{display:none}.portal-mode-toggle{min-width:0;width:min(166px,52vw);padding-inline:7px}.mode-toggle-copy{gap:5px}.mode-toggle-label{font-size:.54rem}.mode-toggle-state{gap:3px}.mode-toggle-icon{width:23px;height:23px;font-size:.86rem}.menu-button{padding:4px}.menu-button span{width:19px}}

/* Wider directories, explicit multiple selections, and compact opportunity cards. */
.search-layout,.directory-wide{max-width:1560px;padding-inline:32px}
.search-layout{grid-template-columns:240px minmax(0,1fr);gap:28px}
.search-layout>div{min-width:0}
.search-layout .company-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.company-card{min-width:0;overflow-wrap:anywhere}
.filter-group details>summary{list-style:none;cursor:pointer;font-weight:700;display:flex;flex-direction:column;gap:5px;padding:10px 0}
.filter-group summary::after{content:'＋';align-self:flex-end;margin-top:-40px}
.filter-group details[open]>summary::after{content:'−'}
.filter-group [data-selection-count]{font-size:.76rem;font-weight:400;color:var(--muted);padding-right:20px}
.filter-group fieldset{border:0;padding:4px 0;margin:0;max-height:300px;overflow-y:auto;overscroll-behavior:contain}
.filter-group legend{font-size:.7rem;color:var(--muted)}
.filter-group fieldset label{align-items:flex-start;line-height:1.5;margin:14px 0}
.filter-group fieldset input{flex-shrink:0;margin-top:3px}
.filter-group details:focus-within{outline:2px solid var(--red);outline-offset:5px}
.contest-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.contest-card{min-width:0;padding:24px;overflow-wrap:anywhere}
.contest-card h2{font-size:1.35rem}
.hero-photo-card.school_program{background:#c4e8d3;box-shadow:6px 6px 0 var(--ink)}
body[data-portal-mode=university] .hero-photo-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-self:stretch}
body[data-portal-mode=university] .hero-photo-card{grid-template-columns:1fr;grid-template-rows:90px 1fr}
body[data-portal-mode=university] .hero-card-photo{min-height:90px}
body[data-portal-mode=university] .hero-card-copy{padding:12px 14px}
body[data-portal-mode=university] .hero-card-copy h2{font-size:1.03rem;margin:7px 0}
body[data-portal-mode=university] .hero-card-category{font-size:.6rem;padding-inline:8px}
body[data-portal-mode=school] .hero-photo-cards{gap:14px}
body[data-portal-mode=school] .hero-card-photo{min-height:150px}
body[data-portal-mode=school] .hero-card-copy{padding:12px 16px}
@media(max-width:1150px){.search-layout .company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.search-layout{grid-template-columns:1fr}.filter-panel{position:static}.search-layout .company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-group fieldset{max-height:240px}}
@media(max-width:620px){.search-layout,.directory-wide{padding-inline:20px;padding-bottom:112px}.search-layout .company-grid,.contest-grid{grid-template-columns:1fr}.contest-card{padding:22px}.mobile-search-dock{position:fixed;left:14px;right:14px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:45;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:9px 10px 9px 18px;border:1px solid var(--ink);border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 8px 30px #17283b30;backdrop-filter:blur(12px);font-size:.82rem}.mobile-search-dock strong{font-size:1rem}.mobile-search-dock button{min-height:42px;padding:8px 16px;border:0;border-radius:10px;background:var(--ink);color:white;font-weight:700}body[data-portal-mode=university] .hero-card-copy{padding:10px}body[data-portal-mode=university] .hero-card-copy h2{font-size:.9rem}body[data-portal-mode=university] .hero-card-category{font-size:.55rem;padding-inline:5px}body[data-portal-mode=university] .hero-card-footer>span:first-child{display:none}body[data-portal-mode=university] .hero-card-copy p{font-size:.68rem}}
.conditional-fields>label{display:block;font-weight:700;font-size:.88rem;margin:18px 0}
.conditional-fields>label input,.conditional-fields>label textarea,.conditional-fields>label select{display:block;width:100%;margin-top:7px;border:1px solid #b8c0c5;background:white;padding:12px 14px;min-height:48px;font-size:16px}
.conditional-fields>label textarea{min-height:120px;resize:vertical}

/* The partner journey has its own navigation and footer, separate from the student portal. */
.business-header{height:84px;padding:0 clamp(20px,3vw,56px);display:flex;align-items:center;gap:clamp(18px,2.2vw,38px);position:sticky;top:0;z-index:55;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97);backdrop-filter:blur(14px)}
.business-brand{display:flex;align-items:center;gap:16px;flex:none}
.business-brand .brand-logo{width:126px}
.business-brand>span{display:grid;padding-left:16px;border-left:1px solid var(--line);line-height:1.2}
.business-brand small{font:700 .55rem "Space Grotesk";letter-spacing:.14em;color:var(--red)}
.business-brand b{font-size:.86rem;margin-top:4px}
.business-header nav{margin-left:auto;gap:clamp(14px,1.6vw,28px);font-size:.82rem}
.business-header nav a{padding:29px 0;border-bottom:2px solid transparent}
.business-header nav a:hover{border-bottom-color:var(--red)}
.business-student-link{font-size:.72rem;font-weight:700;color:var(--muted);white-space:nowrap}
.business-student-link:hover{color:var(--ink)}
.business-header-cta{display:inline-flex;align-items:center;gap:18px;min-height:48px;padding:10px 18px;background:var(--ink);color:white;font-size:.82rem;font-weight:800;box-shadow:4px 4px 0 var(--yellow);white-space:nowrap}
.business-footer{max-width:var(--max);margin:0 auto;padding:64px 24px 30px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:34px}
.business-footer-main p{margin:18px 0 0;font-weight:700}
.business-footer-links{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.business-footer-links a{font-size:.86rem;text-decoration:underline;text-underline-offset:4px}
.business-footer>small{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;color:var(--muted)}
@media(max-width:1040px){.business-header nav{display:none}.business-student-link{margin-left:auto}}
@media(max-width:620px){.business-header{height:70px;padding:0 14px;gap:10px}.business-brand{gap:9px}.business-brand .brand-logo{width:94px}.business-brand>span{padding-left:9px}.business-brand small{display:none}.business-brand b{font-size:.65rem;margin:0}.business-student-link{display:none}.business-header-cta{margin-left:auto;min-height:40px;padding:8px 11px;gap:8px;font-size:.7rem;box-shadow:3px 3px 0 var(--yellow)}.business-footer{grid-template-columns:1fr;padding:48px 20px 26px}.business-footer-links{grid-template-columns:1fr 1fr}.business-footer>small{display:block}.business-footer>small span{display:block;margin-top:7px}}

/* Company-facing promotion page. */
.company-promo-hero{max-width:1440px;margin:0 auto;padding:48px 32px 72px;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.82fr);gap:58px;align-items:center}
.company-promo-copy h1{font-size:clamp(3.2rem,6.1vw,6.5rem);line-height:1.12;margin:24px 0 28px;letter-spacing:-.065em}
.company-promo-copy h1 span{color:var(--red)}
.company-promo-copy>p{max-width:700px;color:var(--muted);font-size:1.02rem;line-height:2}
.company-promo-copy>small{display:block;margin:16px 0 0 4px;color:var(--muted);font-weight:600}
.company-promo-primary{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-width:min(100%,420px);margin-top:20px;padding:21px 22px 21px 28px;background:var(--ink);color:white;border:1px solid var(--ink);font-size:1.08rem;font-weight:800;box-shadow:8px 8px 0 var(--coral);transition:transform .2s,box-shadow .2s}
.company-promo-primary b{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--yellow);color:var(--ink);font-size:1.45rem}
.company-promo-primary:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 var(--coral)}
.company-promo-visual{position:relative;margin:0;min-height:610px;overflow:hidden;border-radius:180px 24px 24px 24px;background:#e8edf1;box-shadow:14px 14px 0 var(--yellow)}
.company-promo-visual>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:52% center}
.company-promo-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#17283bba)}
.company-promo-visual figcaption{position:absolute;z-index:2;right:16px;top:16px;padding:4px 9px;border-radius:4px;background:#17283bcc;color:white;font-size:.65rem}
.company-promo-stamp{position:absolute;z-index:2;left:28px;right:28px;bottom:28px;padding:18px 22px;border:1px solid #fff8;background:#fffed;color:var(--ink);backdrop-filter:blur(10px);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px}
.company-promo-stamp span{font:700 .6rem "Space Grotesk";letter-spacing:.12em}
.company-promo-stamp strong{text-align:center;font-size:1.15rem}
.company-promo-scope{display:grid;grid-template-columns:repeat(4,1fr);max-width:var(--max);margin:0 auto;border:1px solid var(--line);background:white}
.company-promo-scope span{padding:17px 20px;text-align:center;border-right:1px solid var(--line);font-size:.78rem;font-weight:800}
.company-promo-scope span:last-child{border-right:0}
.company-promo-intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;padding-bottom:54px}
.company-promo-intro,.company-promo-process,.company-promo-faq{scroll-margin-top:104px}
.company-promo-intro h2{margin-bottom:0}
.company-promo-intro>p{max-width:560px;margin:0;color:var(--muted);line-height:2}
.company-promo-options{background:var(--ink);color:white}
.company-promo-options>.section{padding-top:0;padding-bottom:0}
.company-promo-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.company-promo-grid article{min-height:330px;padding:42px 28px;border-left:1px solid #ffffff2b;display:flex;flex-direction:column}
.company-promo-grid article:last-child{border-right:1px solid #ffffff2b}
.company-promo-grid article>span{font:700 .75rem "Space Grotesk";color:var(--yellow);letter-spacing:.12em}
.company-promo-grid h3{font-size:1.35rem;margin:auto 0 16px}
.company-promo-grid p{margin:0;color:#dce4ed;font-size:.86rem;line-height:1.9}
.company-promo-process{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
.company-promo-process-head{align-self:start;position:sticky;top:118px}
.company-promo-process ol{list-style:none;padding:0;margin:0}
.company-promo-process li{display:grid;grid-template-columns:74px 1fr;gap:22px;padding:30px 0;border-top:1px solid var(--line)}
.company-promo-process li:last-child{border-bottom:1px solid var(--line)}
.company-promo-process li>b{font:700 1rem "Space Grotesk";color:var(--red)}
.company-promo-process li h3{font-size:1.3rem;margin:0 0 8px}
.company-promo-process li p{margin:0;color:var(--muted)}
.company-promo-note{background:var(--coral)}
.company-promo-note>.section{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-top:72px;padding-bottom:72px}
.company-promo-note h2{font-size:clamp(2rem,4vw,3.5rem);margin-bottom:0}
.company-promo-note p{margin:0;font-size:1rem;line-height:2;color:var(--ink)}
.company-promo-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;padding-bottom:40px}
.company-promo-faq details{border-top:1px solid var(--line);padding:25px 0}
.company-promo-faq details:last-child{border-bottom:1px solid var(--line)}
.company-promo-faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;font-weight:800;list-style:none}
.company-promo-faq summary::after{content:'＋';display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--ink);color:white;font-size:1rem}
.company-promo-faq details[open] summary::after{content:'−';background:var(--yellow);color:var(--ink)}
.company-promo-faq details p{margin:18px 48px 0 0;color:var(--muted);line-height:1.9}
.company-promo-final{text-align:center;max-width:900px}
.company-promo-kicker{font:700 .72rem "Space Grotesk";letter-spacing:.2em;color:var(--red)}
.company-promo-final h2{font-size:clamp(2.4rem,5vw,4.8rem)}
.company-promo-final .company-promo-primary{margin-inline:auto;text-align:left}
.company-promo-final>p{margin-top:22px;color:var(--muted);font-size:.82rem}
@media(max-width:980px){.company-promo-hero{grid-template-columns:1fr;gap:42px}.company-promo-copy{max-width:760px}.company-promo-visual{min-height:540px;border-radius:130px 24px 24px}.company-promo-grid{grid-template-columns:1fr 1fr}.company-promo-grid article:nth-child(2){border-right:1px solid #ffffff2b}.company-promo-grid article:nth-child(-n+2){border-bottom:1px solid #ffffff2b}.company-promo-faq{grid-template-columns:1fr;gap:24px}}
@media(max-width:700px){.company-promo-hero{padding:34px 20px 54px}.company-promo-copy h1{font-size:clamp(2.55rem,12vw,4rem);margin:18px 0 22px}.company-promo-copy>p{font-size:.9rem}.company-promo-primary{width:calc(100% - 8px);min-width:0;padding:17px 16px 17px 20px;font-size:.92rem;gap:14px}.company-promo-primary b{width:38px;height:38px}.company-promo-visual{min-height:420px;border-radius:90px 18px 18px;box-shadow:9px 9px 0 var(--yellow)}.company-promo-stamp{left:14px;right:14px;bottom:14px;padding:14px;grid-template-columns:1fr;text-align:center;gap:4px}.company-promo-stamp span:last-child{display:none}.company-promo-scope{grid-template-columns:1fr 1fr;margin-inline:20px}.company-promo-scope span{padding:12px 8px;font-size:.66rem;border-bottom:1px solid var(--line)}.company-promo-scope span:nth-child(2){border-right:0}.company-promo-scope span:nth-child(n+3){border-bottom:0}.company-promo-intro,.company-promo-process,.company-promo-note>.section{grid-template-columns:1fr;gap:26px}.company-promo-grid{grid-template-columns:1fr}.company-promo-grid article{min-height:230px;border-right:1px solid #ffffff2b;border-bottom:1px solid #ffffff2b;padding:30px 24px}.company-promo-grid article:last-child{border-bottom:0}.company-promo-process-head{position:static}.company-promo-note>.section{padding-top:52px;padding-bottom:52px}.company-promo-process li{grid-template-columns:48px 1fr;gap:12px}.company-promo-faq details p{margin-right:0}.company-promo-final{padding-top:68px;padding-bottom:68px}}
