/* Public site: home, recruitment board, apply flow. */

/* ---------- buttons, chips ---------- */
.btn {
  --bg: var(--field); --fg: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem;
  min-height: 3rem; padding: 0.7rem 1.5rem; border: 0; border-radius: 99px;
  background: var(--bg); color: var(--fg);
  font-weight: 600; font-size: 0.9375rem; line-height: 1.2; letter-spacing: 0.005em; text-decoration: none;
  transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out), background-color 0.2s;
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); text-decoration: none; }
.btn:active { transform: translateY(0); box-shadow: none; }
.btn svg { transition: transform 0.35s var(--ease-out); }
.btn:hover svg.arrow { transform: translateX(3px); }
.btn--sun { --bg: var(--sun); --fg: var(--forest); }
.btn--sun:hover { --bg: #efd13a; }
.btn--ghost { --bg: transparent; --fg: var(--link); box-shadow: inset 0 0 0 1.5px var(--line); }
.btn--ghost:hover { box-shadow: inset 0 0 0 1.5px var(--field); }
.btn--ghost-light { --bg: transparent; --fg: #fff; box-shadow: inset 0 0 0 1.5px rgb(255 255 255 / 0.55); }
.btn--ghost-light:hover { box-shadow: inset 0 0 0 1.5px #fff; }
.btn--block { width: 100%; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.55; pointer-events: none; }
.btn.is-loading { pointer-events: none; opacity: 0.8; }

.tag {
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.2rem 0.75rem; border-radius: 99px; background: var(--aqua-wash); color: var(--forest);
  font-size: 0.8125rem; font-weight: 500; line-height: 1.5; white-space: nowrap;
}
.tag--green { background: var(--green-wash); }
.tag--sun { background: var(--sun-wash); }
.tag svg { color: var(--link); }

/* ---------- header ---------- */
.field { background: var(--field); color: #fff; }
.field-deep { background: var(--field-deep); color: #fff; }
.field ::selection, .field-deep ::selection { background: var(--sun); color: var(--forest); }
.field a:not(.btn), .field-deep a:not(.btn) { color: inherit; }

.site-header { position: relative; z-index: 20; }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.1rem; }
.brand { display: block; line-height: 0; border-radius: 6px; }
.brand img { width: clamp(10.5rem, 20vw, 13.5rem); height: auto; }
.nav { display: flex; align-items: center; gap: clamp(0.25rem, 2vw, 1.5rem); }
.nav a {
  position: relative; padding: 0.5rem 0.25rem; color: #fff; text-decoration: none; font-weight: 500; font-size: 0.9375rem;
  display: inline-flex; align-items: center; gap: 0.4rem;
}
.nav a::after {
  content: ""; position: absolute; left: 0.25rem; right: 0.25rem; bottom: 0.15rem; height: 2px; background: var(--sun);
  transform: scaleX(0); transform-origin: left; transition: transform 0.4s var(--ease-out);
}
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); }
.nav-home {
  display: grid; place-items: center; width: 2.5rem; height: 2.5rem; margin-left: 0.25rem; border-radius: 50%;
  color: #fff; background: rgb(255 255 255 / 0.14); transition: background-color 0.25s, transform 0.35s var(--ease-out);
}
.nav-home:hover { background: rgb(255 255 255 / 0.26); transform: translateY(-1px); text-decoration: none; }
.nav-home::after { content: none; }

/* ---------- wave edge (charte ribbon) ---------- */
.wave {
  --wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 720 60' preserveAspectRatio='none'%3E%3Cpath d='M0 30C90 0 270 0 360 30S630 60 720 30V60H0Z'/%3E%3C/svg%3E");
  position: relative; height: clamp(2.25rem, 5vw, 3.75rem); margin-top: -1px; overflow: hidden; pointer-events: none;
  background: var(--wave-from, var(--field));
}
.wave::before, .wave::after {
  content: ""; position: absolute; inset: 0; background: var(--wave-color, var(--ground));
  -webkit-mask: var(--wave) repeat-x 0 100% / 50rem 100%; mask: var(--wave) repeat-x 0 100% / 50rem 100%;
}
.wave::before { opacity: 0.42; transform: translateY(-16%); animation: tide 26s linear infinite; }
.wave::after { animation: tide 38s linear infinite reverse; }
@keyframes tide { to { -webkit-mask-position: 50rem 100%; mask-position: 50rem 100%; } }
.wave--flip { transform: scaleY(-1); }
.wave--to-deep { --wave-color: var(--field-deep); }
.wave--to-field { --wave-color: var(--field); }

/* ---------- home hero ---------- */
.hero { position: relative; overflow: clip; }
.hero-grid {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: center;
  padding-block: clamp(1rem, 2.5vw, 2rem) clamp(1.5rem, 3vw, 2.25rem);
}
@media (min-width: 62rem) { .hero-grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 3rem; } }
.hero h1 {
  font-size: clamp(2.5rem, 6.2vw, 5rem); font-weight: 300; line-height: 1.02; letter-spacing: -0.025em; color: #fff;
  font-optical-sizing: auto;
}
.hero h1 strong { font-weight: 800; display: block; }
.hero-lede { margin-top: 1.5rem; max-width: 34rem; font-size: 1.125rem; line-height: 1.6; color: #fff; }
.hero-lede strong { font-weight: 600; }

.search {
  margin-top: 2.25rem; display: grid; gap: 0.5rem; padding: 0.5rem; border-radius: 1.75rem;
  background: #fff; color: var(--ink); box-shadow: var(--shadow-lift); max-width: 44rem;
}
@media (min-width: 42rem) { .search { grid-template-columns: 1.4fr 1fr auto; border-radius: 99px; align-items: center; } }
.search label { display: flex; align-items: center; gap: 0.7rem; padding: 0.3rem 1.1rem; min-height: 3rem; border-radius: 99px; color: var(--ink-soft); }
.search label:focus-within { background: var(--aqua-wash); }
.search svg { flex: none; color: var(--link); }
.search input, .search select {
  width: 100%; min-width: 0; border: 0; background: transparent; padding: 0.4rem 0; color: var(--ink); font-size: 0.9375rem; font-weight: 500; text-overflow: ellipsis;
}
.search input:focus-visible, .search select:focus-visible { outline: none; }
.search select { appearance: none; cursor: pointer; }
@media (min-width: 42rem) { .search label + label { box-shadow: -1px 0 0 var(--line); border-radius: 0 99px 99px 0; } }

.hero-media { position: relative; aspect-ratio: 1 / 1.02; max-width: 17rem; margin-inline: auto 0; width: 100%; }
@media (min-width: 62rem) { .hero-media { max-width: 30rem; margin-inline: auto; } }
.medallion { position: absolute; border-radius: 50%; overflow: hidden; background: var(--aqua); box-shadow: 0 24px 50px -20px rgb(0 40 45 / 0.55); }
.medallion img { width: 100%; height: 100%; object-fit: cover; }
.medallion--main { width: 74%; aspect-ratio: 1; right: 0; bottom: 0; animation: rise 1.1s var(--ease-out) 0.2s both; }
.medallion--water { width: 50%; aspect-ratio: 1; left: 2%; top: 4%; animation: rise 1.1s var(--ease-out) 0.05s both; }
.sun { position: absolute; width: 17%; aspect-ratio: 1; right: 6%; top: 8%; border-radius: 50%; background: var(--sun); animation: rise 1.1s var(--ease-out) 0.4s both; }
@keyframes rise { from { opacity: 0; transform: translateY(1.5rem) scale(0.96); } to { opacity: 1; transform: none; } }
.hero-copy > * { animation: rise 0.9s var(--ease-out) both; }
.hero-copy > *:nth-child(2) { animation-delay: 0.08s; }
.hero-copy > *:nth-child(3) { animation-delay: 0.16s; }

/* ---------- sections ---------- */
.section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2rem; }
.section-head h2 { font-size: clamp(1.9rem, 4vw, 3rem); font-weight: 300; letter-spacing: -0.02em; }
.section-head h2 strong { font-weight: 800; }
.section-head p { max-width: 30rem; color: var(--ink-soft); }
.link-arrow { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 600; text-decoration: none; }
.link-arrow:hover svg { transform: translateX(3px); }
.link-arrow svg { transition: transform 0.3s var(--ease-out); }

/* offer rows (home + board list share the vocabulary) */
.offer-rows { list-style: none; padding: 0; border-top: 1px solid var(--line); }
.offer-row { border-bottom: 1px solid var(--line); }
.offer-row > a {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.75rem 1.5rem; align-items: center;
  padding: 1.5rem 0.5rem; text-decoration: none; color: inherit; border-radius: var(--radius-sm);
  transition: background-color 0.25s, box-shadow 0.25s;
}
.offer-row > a:hover { background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
.offer-row h3 { font-size: clamp(1.35rem, 2.6vw, 1.85rem); font-weight: 600; }
.offer-row .tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.offer-row .go {
  display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--aqua-wash); color: var(--link);
  transition: background-color 0.3s, color 0.3s, transform 0.4s var(--ease-out);
}
.offer-row > a:hover .go { background: var(--field); color: #fff; transform: translateX(4px); }

.empty {
  padding: 2.5rem 1.5rem; border: 1.5px dashed var(--line); border-radius: var(--radius); text-align: center; color: var(--ink-soft);
}
.empty strong { display: block; font-family: var(--font-display); font-size: 1.35rem; color: var(--ink); margin-bottom: 0.25rem; }

/* four worlds */
.worlds { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 62rem) { .worlds { grid-template-columns: 1.15fr 0.85fr 1fr 0.85fr; align-items: end; } }
.world { position: relative; overflow: hidden; border-radius: 999px 999px var(--radius) var(--radius); aspect-ratio: 3 / 4.4; background: var(--aqua); isolation: isolate; }
.world:nth-child(even) { aspect-ratio: 3 / 3.7; }
.world img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; transition: transform 1.2s var(--ease-out); }
.world:hover img { transform: scale(1.05); }
.world::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgb(0 50 56 / 0.72), transparent 45%); }
.world figcaption {
  position: absolute; inset: auto 0 0 0; padding: 1.25rem; text-align: center; color: #fff;
  font-family: var(--font-display); font-weight: 800; font-size: clamp(1.15rem, 2.2vw, 1.6rem); text-transform: none;
}

/* closing band */
.closing { position: relative; overflow: clip; padding-block: clamp(3.5rem, 9vw, 7rem); }
.closing-art {
  position: absolute; inset: auto 0 0 auto; width: min(60rem, 95%); opacity: 0.2; mix-blend-mode: screen; pointer-events: none;
  -webkit-mask: linear-gradient(to left, #000 40%, transparent); mask: linear-gradient(to left, #000 40%, transparent);
}
.closing .wrap { position: relative; display: grid; gap: 1.75rem; justify-items: start; }
.closing h2 { font-size: clamp(2.2rem, 5.4vw, 4.2rem); font-weight: 300; letter-spacing: -0.025em; line-height: 1.04; max-width: 16ch; }
.closing h2 strong { font-weight: 800; }
.closing p { max-width: 32rem; font-size: 1.0625rem; }

/* ---------- footer ---------- */
.site-footer { padding-block: 3rem 2rem; font-size: 0.9375rem; }
.footer-grid { display: grid; gap: 2rem 3rem; }
@media (min-width: 48rem) { .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; } }
.footer-grid img { width: 12rem; }
.footer-grid h2 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; color: #fff; margin-bottom: 0.75rem; }
.footer-grid address { font-style: normal; line-height: 1.7; }
.footer-grid ul { list-style: none; padding: 0; display: grid; gap: 0.4rem; }
.footer-grid a { text-decoration: none; }
.footer-grid a:hover { text-decoration: underline; }
.footer-legal { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid rgb(255 255 255 / 0.28); display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; justify-content: space-between; color: rgb(255 255 255 / 0.85); font-size: 0.8125rem; }

/* ---------- recruitment board (LinkedIn Jobs master/detail) ---------- */
.board-head { padding-block: 0.5rem 1.5rem; }
@media (max-width: 59.99rem) { .board-head[data-explicit] .filters, .board-head[data-explicit] .count { display: none; } }
.board-head h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 300; letter-spacing: -0.025em; line-height: 1.05; }
.board-head h1 strong { font-weight: 800; }
.board-head .count { margin-top: 0.75rem; color: #fff; font-size: 1rem; }
.filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem; align-items: center; }
.filters .search { margin-top: 0; max-width: none; flex: 1 1 22rem; box-shadow: none; }
@media (min-width: 42rem) { .filters .search { grid-template-columns: 1.5fr 1fr 1fr auto; } }
.filters-reset { color: #fff; font-size: 0.875rem; font-weight: 500; padding: 0.5rem 0.75rem; }

.board { display: grid; align-items: start; gap: 0; padding-block: 1.5rem 4rem; }
@media (min-width: 60rem) {
  .board { grid-template-columns: minmax(20rem, 26rem) minmax(0, 1fr); gap: 2rem; padding-block: 2rem 5rem; }
}
.board-list { min-width: 0; }
@media (min-width: 60rem) {
  .board-list { position: sticky; top: 1rem; max-height: calc(100dvh - 2rem); overflow-y: auto; padding-right: 0.5rem; scrollbar-gutter: stable; }
}
.board[data-view="detail"] .board-list { display: none; }
.board[data-view="list"] .board-detail { display: none; }
@media (min-width: 60rem) { .board[data-view] .board-list, .board[data-view] .board-detail { display: block; } }
.board-list .offer-rows { border-top: 0; display: grid; gap: 0.5rem; }
.board-list .offer-row { border: 0; }
.board-list .offer-row > a {
  grid-template-columns: minmax(0, 1fr); gap: 0.5rem; padding: 1.1rem 1.25rem; background: var(--surface);
  box-shadow: inset 0 0 0 1px var(--line-soft); border-radius: var(--radius);
}
.board-list .offer-row > a:hover { box-shadow: inset 0 0 0 1.5px var(--aqua); }
.board-list .offer-row > a[aria-current="true"] { box-shadow: inset 0 0 0 2px var(--field); background: #fff; }
.board-list .offer-row h3 { font-size: 1.3rem; }
.board-list .offer-row .go { display: none; }
.board-list .offer-row .place { color: var(--ink-soft); font-size: 0.875rem; }
.board-list .offer-row .tags { margin-top: 0.25rem; }
.board-back { display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; font-weight: 600; text-decoration: none; }
@media (min-width: 60rem) { .board-back { display: none; } }

turbo-frame#offer-detail { display: block; min-width: 0; }
turbo-frame#offer-detail[busy] { opacity: 0.55; transition: opacity 0.2s 0.15s; }

.detail { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-soft); overflow: clip; animation: fade-up 0.5s var(--ease-out); }
@keyframes fade-up { from { opacity: 0; transform: translateY(0.75rem); } to { opacity: 1; transform: none; } }
.detail-top { padding: clamp(1.5rem, 4vw, 2.5rem); border-bottom: 1px solid var(--line-soft); background: linear-gradient(180deg, var(--aqua-wash), #fff 92%); }
.detail-top h2 { font-size: clamp(1.9rem, 4vw, 2.9rem); font-weight: 700; letter-spacing: -0.02em; margin-top: 0.85rem; }
.detail-top .tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.detail-actions { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.detail-actions .btn { min-width: 12rem; }
.detail-actions small { color: var(--ink-soft); font-size: 0.8125rem; }
.detail-body { padding: clamp(1.5rem, 4vw, 2.5rem); display: grid; gap: 2.5rem; }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1.25rem 2rem; }
.fact { display: grid; grid-template-columns: auto 1fr; column-gap: 0.75rem; align-items: start; }
.fact svg { margin-top: 0.15rem; color: var(--link); }
.fact dt { font-size: 0.8125rem; color: var(--ink-soft); font-weight: 500; }
.fact dd { font-weight: 600; line-height: 1.4; }
.prose-block h3 { font-size: 1.45rem; font-weight: 700; margin-bottom: 0.9rem; }
.prose-block p, .prose-block li { max-width: 68ch; }
.prose-block p + p { margin-top: 0.75rem; }
.prose-block ul { list-style: none; padding: 0; display: grid; gap: 0.6rem; }
.prose-block li { position: relative; padding-left: 1.6rem; }
.prose-block li::before {
  content: ""; position: absolute; left: 0; top: 0.62em; width: 0.7rem; height: 0.42rem; border-radius: 99px; background: var(--aqua);
  -webkit-mask: var(--wave-mini) center / 100% 100% no-repeat; mask: var(--wave-mini) center / 100% 100% no-repeat;
  --wave-mini: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 8'%3E%3Cpath d='M0 4C3 -1 5 -1 7 4S11 9 14 4V8C11 13 9 13 7 8S3 3 0 8Z'/%3E%3C/svg%3E");
}
.prose-block li::before { background: var(--field); }
.schedule { padding: 1.5rem 1.5rem 1.5rem; border-radius: var(--radius); background: var(--sun-wash); }
.schedule h3 { margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.6rem; }
.schedule p { max-width: 62ch; }
.benefits li::before { background: var(--green); }
.detail-foot { padding: 1.5rem clamp(1.5rem, 4vw, 2.5rem); background: var(--field); color: #fff; display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between; }
.detail-foot p { font-family: var(--font-display); font-size: 1.5rem; font-weight: 300; }
.detail-foot p strong { font-weight: 800; }
.detail-empty { padding: 4rem 2rem; text-align: center; }
.mobile-apply {
  position: sticky; bottom: 0; z-index: 10; padding: 0.75rem var(--gutter) calc(0.75rem + env(safe-area-inset-bottom));
  background: rgb(243 248 247 / 0.92); backdrop-filter: blur(10px); box-shadow: 0 -1px 0 var(--line);
}
@media (min-width: 60rem) { .mobile-apply { display: none; } }

/* ---------- apply ---------- */
.apply-head { padding-block: 0.75rem 2.25rem; }
.crumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; font-size: 0.875rem; margin-bottom: 1rem; color: rgb(255 255 255 / 0.9); }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.apply-head h1 { font-size: clamp(2rem, 4.6vw, 3.4rem); font-weight: 300; letter-spacing: -0.025em; line-height: 1.05; }
.apply-head h1 strong { font-weight: 800; display: block; }
.apply-grid { display: grid; gap: 2rem; padding-block: 2rem 5rem; align-items: start; }
@media (min-width: 62rem) { .apply-grid { grid-template-columns: minmax(0, 1fr) 22rem; gap: 3rem; } }
.recap { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-soft); padding: 1.5rem; display: grid; gap: 1rem; }
@media (min-width: 62rem) { .recap { position: sticky; top: 1.5rem; } }
.recap h2 { font-size: 1.4rem; font-weight: 700; }
.recap .fact { grid-template-columns: auto 1fr; }
.recap .btn { margin-top: 0.25rem; }
.form-panel { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-soft); padding: clamp(1.25rem, 4vw, 2.5rem); }
.form-panel > form { display: grid; gap: 1.5rem; }
.form-panel h2 { font-size: 1.5rem; font-weight: 700; }
.form-panel .lede { color: var(--ink-soft); margin-top: 0.25rem; max-width: 60ch; }
.field-row { display: grid; gap: 1.5rem 1.25rem; }
@media (min-width: 40rem) { .field-row--2 { grid-template-columns: 1fr 1fr; } }
.fld { display: grid; gap: 0.4rem; align-content: start; }
.fld > label, .fld > .lbl { font-weight: 600; font-size: 0.9375rem; }
.fld > label .opt, .fld .opt { font-weight: 400; color: var(--ink-soft); font-size: 0.8125rem; margin-left: 0.4rem; }
.fld input:not([type="checkbox"]):not([type="file"]), .fld textarea, .fld select {
  width: 100%; min-height: 3rem; padding: 0.7rem 1rem; border: 1.5px solid #b9cfcd; border-radius: var(--radius-sm); background: #fff; color: var(--ink);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.fld textarea { min-height: 9rem; resize: vertical; line-height: 1.55; }
.fld input:hover, .fld textarea:hover, .fld select:hover { border-color: var(--aqua); }
.fld input:focus-visible, .fld textarea:focus-visible, .fld select:focus-visible { outline: none; border-color: var(--field); box-shadow: 0 0 0 4px rgb(0 118 138 / 0.18); }
.fld input[type="file"] {
  width: 100%; padding: 0.7rem; border: 1.5px dashed #9fbfbc; border-radius: var(--radius-sm); background: var(--ground); font-size: 0.9375rem; color: var(--ink-soft);
}
.fld input[type="file"]::file-selector-button {
  margin-right: 1rem; padding: 0.55rem 1.1rem; border: 0; border-radius: 99px; background: var(--field); color: #fff; font: inherit; font-weight: 600; cursor: pointer;
}
.fld input[type="file"]:hover { border-color: var(--field); background: var(--aqua-wash); }
.fld .help { font-size: 0.8125rem; color: var(--ink-soft); }
.fld .err, .form-errors { color: var(--berry-ink); font-size: 0.875rem; font-weight: 500; }
.fld .err ul, .form-errors ul { list-style: none; padding: 0; }
.fld:has(.err ul) input:not([type="checkbox"]):not([type="file"]), .fld:has(.err ul) textarea, .fld:has(.err ul) select { border-color: var(--berry); }
.fld:has(.err ul) input[type="file"] { border-color: var(--berry); }
.consent { display: grid; grid-template-columns: auto 1fr; gap: 0.85rem; align-items: start; padding: 1rem 1.1rem; border-radius: var(--radius-sm); background: var(--aqua-wash); }
.consent input { width: 1.35rem; height: 1.35rem; margin-top: 0.2rem; }
.consent label { font-weight: 500; font-size: 0.9375rem; line-height: 1.5; }
.consent .fine { grid-column: 2; font-size: 0.8125rem; color: var(--ink-soft); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }

/* ---------- thanks ---------- */
.thanks { padding-block: 1rem 3rem; display: grid; gap: 1.25rem; justify-items: start; }
.thanks .check { display: grid; place-items: center; width: 4.5rem; height: 4.5rem; border-radius: 50%; background: var(--sun); color: var(--forest); animation: rise 0.9s var(--ease-out) both; }
.thanks h1 { font-size: clamp(2.3rem, 5.4vw, 4.4rem); font-weight: 300; letter-spacing: -0.025em; line-height: 1.04; max-width: 16ch; }
.thanks h1 strong { font-weight: 800; }
.thanks p { max-width: 36rem; font-size: 1.0625rem; }

.notfound { padding-block: 5rem; }

.hero h1 span { display: block; font-weight: 300; }

@media (max-width: 30rem) {
  .fld input[type="file"] { font-size: 0.8125rem; padding: 0.5rem; }
  .fld input[type="file"]::file-selector-button { margin-right: 0.6rem; padding: 0.45rem 0.85rem; font-size: 0.8125rem; }
}
/* board list: the selected highlight only makes sense when a detail is shown beside it */
@media (max-width: 59.99rem) { .board-list .offer-row > a[aria-current="true"] { box-shadow: inset 0 0 0 1px var(--line-soft); background: var(--surface); } }

/* ---------- landing (home): one screen, the water, the logo, the invitation ---------- */
.landing { position: relative; min-height: 100dvh; display: grid; overflow: clip; background: var(--field); color: #fff; isolation: isolate; }
.landing-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% 45%; z-index: -2; transform: scale(1.04); animation: drift 24s ease-in-out infinite alternate; }
@keyframes drift { to { transform: scale(1.12) translate3d(-1.5%, -1%, 0); } }
.landing-veil { position: absolute; inset: 0; z-index: -1; background:
  linear-gradient(180deg, rgb(0 90 107 / 0.55) 0%, rgb(0 118 138 / 0.8) 45%, rgb(0 70 84 / 0.92) 100%); }
.landing-stack { align-self: center; justify-self: center; width: min(100% - 2 * var(--gutter), 46rem); padding-block: clamp(2rem, 8vh, 5rem); display: grid; gap: clamp(2.5rem, 8vh, 4.5rem); justify-items: center; text-align: center; }
.landing-logo { margin: 0; line-height: 0; animation: rise 1s var(--ease-out) both; }
.landing-logo img { width: clamp(17rem, 52vw, 30rem); height: auto; filter: drop-shadow(0 6px 24px rgb(0 40 50 / 0.35)); }
.landing-join { display: grid; gap: 1.1rem; justify-items: center; animation: rise 1s var(--ease-out) 0.18s both; }
.landing-title { font-family: var(--font-display); font-size: clamp(2.4rem, 6.4vw, 4.6rem); font-weight: 300; line-height: 1.02; letter-spacing: -0.025em; }
.landing-title strong { font-weight: 800; }
.landing-text { max-width: 28rem; font-size: 1.0625rem; line-height: 1.6; }
.landing-join .btn { margin-top: 0.5rem; }
