.lup-hero,
.lup-shell,
.lup-story,
.lup-shop-promo {
--lup-ink: #051d40;
--lup-coral: #f44230;
--lup-muted: #575757;
--lup-edge: rgb(5 29 64 / 14%);
margin-inline: auto;
color: var(--lup-ink);
}
.lup-hero {
max-width: 740px;
margin-bottom: clamp(21px, 3vw, 32px);
text-align: center;
}
.lup-hero-copy {
margin-bottom: 14px;
}
.lup-hero .lup-title {
color: var(--lup-ink);
font-size: clamp(29px, 3.6vw, 40px);
letter-spacing: -.045em;
line-height: 1.04;
margin: 0 0 7px;
overflow-wrap: anywhere;
}
.lup-hero .lup-hero-text {
color: var(--lup-ink);
font-size: 15px;
line-height: 1.5;
margin: 0;
padding: 0;
}
.lup-hero .lup-jump-line { margin: 0; padding: 0; }
.lup-hero .lup-collage {
width: min(100%, 620px);
margin: 0 auto;
}
.lup-hero-media {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
column-gap: clamp(10px, 2vw, 24px);
row-gap: 5px;
max-width: 680px;
margin-inline: auto;
}
.lup-hero .lup-hero-mario,
.lup-hero > figure.wp-block-image:not(.lup-collage) {
margin: 0;
min-width: 0;
border-radius: 16px;
overflow: hidden;
aspect-ratio: 1;
}
.lup-hero-mario img,
.lup-hero > figure.wp-block-image:not(.lup-collage) img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
object-position: 50% 57%;
margin: 0;
}
.lup-hero .lup-hero-map { margin: 0; min-width: 0; }
.lup-hero-map a {
display: block;
color: var(--lup-ink);
font-size: 13px;
font-weight: 600;
line-height: 1.35;
text-decoration: underline;
text-decoration-color: var(--lup-coral);
text-underline-offset: .18em;
}
.lup-hero-map img {
display: block;
width: 100%;
height: auto;
aspect-ratio: 2240 / 1106;
border-radius: 16px;
margin: 0 0 6px;
}
.lup-hero-map a:hover { color: var(--lup-coral); }
.lup-hero-map figcaption,
.lup-map-attribution {
grid-column: 1 / -1;
color: var(--lup-muted);
font-size: 10px;
line-height: 1.4;
margin: 0;
padding: 0;
}
.lup-shell,
.lup-story,
.lup-shop-promo {
max-width: 740px;
font-size: 15px;
line-height: 1.6;
}
.lup-shell {
padding-bottom: 0;
scroll-margin-top: 100px;
}
.lup-shell h2,
.lup-shell h3,
.lup-story h2,
.lup-story h3 {
color: var(--lup-ink);
font-size: clamp(22px, 2.55vw, 29px);
line-height: 1.25;
letter-spacing: -.025em;
margin: 0 0 8px;
}
.lup-shell #lup-form-title { margin-bottom: 13px; }
.lup-shell p {
padding: 0;
margin: 0;
line-height: 1.55;
}
.lup-shell a,
.lup-story a {
color: var(--lup-ink);
text-decoration: underline;
text-decoration-color: var(--lup-coral);
text-underline-offset: .15em;
}
.lup-shell .lup-test {
font-size: .86rem;
color: var(--lup-muted);
background: #fff;
border-left: 3px solid var(--lup-coral);
border-radius: 4px;
padding: 10px 14px;
margin-bottom: 18px;
}
.lup-shell .lup-form {
border: 1px solid var(--lup-edge);
border-radius: 20px;
background: #fff;
padding: clamp(15px, 3vw, 30px);
}
.lup-form .lup-card {
border: 0;
min-width: 0;
margin: 0 0 18px;
padding: 0;
}
.lup-form .lup-card legend {
color: var(--lup-ink);
font-weight: 600;
font-size: 14px;
padding: 0;
margin: 0 0 8px;
line-height: 1.4;
}
.lup-field {
min-width: 0;
display: flex;
flex-direction: column;
gap: 4px;
margin-bottom: 11px;
}
.lup-card > .lup-field:last-child,
.lup-grid:last-child > .lup-field { margin-bottom: 0; }
.lup-shell .lup-form .lup-field > label {
display: block;
color: var(--lup-ink); font-size: 13px !important;
line-height: 1.4;
margin: 0;
}
.lup-optional {
display: inline-block;
color: var(--lup-muted);
font-size: 12px;
font-weight: 500;
margin-left: 5px;
}
.lup-required { color: #aa2d22; }
.lup-shell .lup-help { color: var(--lup-muted); font-size: 13px; line-height: 1.45; }
.lup-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
.lup-shell .lup-form .lup-field :is(input,textarea) {
display: block;
box-sizing: border-box;
margin: 0;
width: 100%;
min-width: 0;
min-height: 42px;
border-radius: 9px;
border: 1px solid rgb(5 29 64 / 20%);
background: #fff;
color: #555;
padding: 10px 16px;
box-shadow: none;
font: inherit;
font-size: 16px;
line-height: 1.4;
}
.lup-shell .lup-form .lup-field textarea { min-height: 64px; resize: vertical; }
.lup-shell .lup-form .lup-field input[type="file"] { padding: 5px; }
.lup-shell .lup-form input::file-selector-button {
color: var(--lup-ink);
background: #f4f4f4;
border: 0;
border-radius: 5px;
font: inherit;
font-size: .9em;
padding: 5px 8px;
margin-right: 8px;
cursor: pointer;
}
.lup-shell .lup-form .lup-check {
display: flex;
align-items: flex-start;
gap: 8px;
color: var(--lup-ink);
font-size: 13px !important;
font-weight: 400 !important;
line-height: 1.5;
padding: 5px 0;
cursor: pointer;
}
.lup-shell .lup-form .lup-check input[type="checkbox"] {
appearance: auto;
display: block;
flex: 0 0 18px;
width: 18px;
height: 18px;
margin: 2px 0 0;
accent-color: var(--lup-coral);
}
.lup-submit-area { font-size: 14px; }
.lup-submit-area > * + * { margin-top: 8px !important; }
.lup-shell .lup-form button.lup-submit,
.lup-shell button.lup-more {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 44px; border: 0 !important;
border-radius: 9px !important;
padding: 14px 22px !important;
color: #fff !important;
background: var(--lup-coral) !important;
box-shadow: none !important;
font: 600 14px / 1.4 Poppins, sans-serif !important;
text-decoration: none;
cursor: pointer;
}
.lup-shell .lup-form button.lup-submit:hover,
.lup-shell button.lup-more:hover { background: #dc3627 !important; }
.lup-shell .lup-submit:disabled { opacity: .6; cursor: wait; }
.lup-shell .lup-success {
padding: 16px;
border: 1px solid var(--lup-edge);
border-left: 4px solid var(--lup-coral);
border-radius: 12px;
background: #fff;
}
.lup-success > * + * { margin-top: 10px !important; }
.lup-shop-promo {
margin-top: clamp(28px, 4vw, 46px);
padding-top: clamp(20px, 3vw, 30px);
border-top: 1px solid rgb(244 66 48 / 45%);
background: #fff;
scroll-margin-top: 100px;
}
.lup-shop-promo h2 { color: var(--lup-ink); font-size: 22px; margin: 0 0 5px; }
.lup-shop-promo .lup-shop-intro { margin: 0 0 14px; padding: 0; color: var(--lup-muted); }
.lup-shop-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
margin-top: 10px;
}
.lup-shop-promo a.lup-shop-card {
display: flex;
flex-direction: column;
overflow: hidden;
border: 1px solid var(--lup-edge);
border-radius: 16px;
background: #fff;
color: var(--lup-ink);
text-decoration: none;
}
.lup-shop-card img {
display: block;
width: 100%;
height: auto;
aspect-ratio: 8 / 5;
object-fit: cover;
background: #fff;
}
.lup-shop-card-map { display: contents; }
@media (min-width: 761px) {
.lup-shop-card-map { display: block; overflow: hidden; }
.lup-shop-card-map img {
object-position: 50% 23%;
transform: scale(1.10);
}
}
.lup-shop-card-copy { display: flex; flex-direction: column; gap: 4px; padding: 8px 10px; flex: 1; }
.lup-shop-card-copy > strong { font-size: 15px; }
.lup-shop-card-copy > span { color: var(--lup-muted); font-size: 13px; line-height: 1.4; }
.lup-shop-card-copy > b { margin-top: auto; color: var(--lup-coral); font-size: 13px; }
.lup-shop-promo a.lup-shop-card:hover { border-color: var(--lup-coral); }
.lup-shop-card:hover b { text-decoration: underline; }
.lup-shell .lup-error { color: #8d211b; background: #fff; border: 1px solid var(--lup-coral); border-radius: 6px; padding: 10px 13px; }
.lup-story {
margin-top: clamp(30px, 5vw, 48px);
}
.lup-story h3 { font-size: clamp(18px, 2.1vw, 22px); margin-top: 21px; }
.lup-story p { margin: 0 0 11px; padding: 0; line-height: 1.6; }
.lup-story p:last-child { margin-bottom: 0; }
.lup-collage img { display: block; width: 100%; height: auto; border-radius: 16px; }
.lup-story .lup-hero-map { max-width: 540px; margin: 14px auto 6px; }
.lup-story .lup-map-attribution { max-width: 540px; margin: 0 auto; font-size: 10px; line-height: 1.4; }
.lup-story .lup-sources { font-size: 13px; color: var(--lup-muted); }
.lup-hero :focus-visible,
.lup-shell :focus-visible,
.lup-story :focus-visible,
.lup-shop-promo :focus-visible {
outline: 3px solid #ab3225;
outline-offset: 3px;
}
.lup-shell [hidden] { display: none !important; }
.lup-form .lup-trap {
position: absolute;
inline-size: 1px;
block-size: 1px;
overflow: hidden;
clip-path: inset(50%);
}
@media (max-width: 760px) {
.lup-hero .lup-hero-text { font-size: 14px; line-height: 1.45; }
.lup-shell .lup-form .lup-field input { min-height: 44px; }
.lup-shop-grid { grid-template-columns: 1fr; }
.lup-shop-promo a.lup-shop-card { display: grid; grid-template-columns: minmax(88px, 30%) minmax(0, 1fr); }
.lup-shop-card img { height: 100%; min-height: 72px; aspect-ratio: auto; }
.lup-shop-card:last-child img {
align-self: center;
height: auto;
min-height: 0;
aspect-ratio: auto 3 / 4;
object-fit: contain;
object-position: center;
}
}
@media (max-width: 500px) {
.lup-grid { grid-template-columns: 1fr; }
.lup-shell .lup-submit { justify-content: center; width: 100%; }
}