.form-message {
    padding: 16px 18px;
    margin-bottom: 24px;
    border-radius: 8px;
    line-height: 1.55;
}

.form-message.error {
    color: #7d2924;
    background: #f3e3df;
    border: 1px solid #c99a92;
}

.form-message.notice {
    color: #554b3f;
    background: #eee6d9;
    border: 1px solid #c6b9a6;
}

.form-message strong {
    color: var(--ink);
}

.subscribe-hero { padding: 34px 0 34px; }

.subscribe-hero-grid {
display: grid;
grid-template-columns: 1.05fr .95fr;
gap: 52px;
align-items: center;
}
@media (max-width: 768px) {
  .subscribe-hero-grid {
	background-image: none;
  }
}

.subscribe-hero h1 {
margin: 0 0 18px;
font-size: clamp(2rem, 4vw, 4rem);
line-height: .96;
letter-spacing: .01em;
font-weight: 700;
}
.subscribe-hero .lead {
font-size: clamp(1.35rem, 2.4vw, 2rem);
line-height: 1.2;
margin: 0 0 18px;
max-width: 700px;
}
.subscribe-hero .intro {
color: var(--muted);
font-size: 1.08rem;
max-width: 44rem;
margin: 0;
}
.subscribe-visual {
display: flex;
justify-content: flex-end;
align-items: center;
}
.subscribe-visual img {
width: 100%;
max-width: 520px;
mix-blend-mode: multiply;
}

.form-shell {
background: rgba(255,255,255,.42);
border: 1px solid var(--line);
border-radius: 18px;
box-shadow: var(--shadow);
padding: 30px;
}
.form-title {
margin: 0 0 22px;
font-size: 1rem;
letter-spacing: .18em;
text-transform: uppercase;
color: #40372f;
}
.fields {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 20px;
margin-bottom: 34px;
}
.field-full { grid-column: 1 / -1; }
label.field-label {
display: block;
font-weight: 700;
margin-bottom: 7px;
font-size: .98rem;
}
input[type="text"],
input[type="email"],
input[type="number"],
select {
width: 100%;
min-height: 48px;
padding: 11px 13px;
border: 1px solid #bfb3a3;
border-radius: 8px;
background: rgba(255,255,255,.7);
color: var(--ink);
outline: none;
}
input:focus, select:focus {
border-color: #73675b;
box-shadow: 0 0 0 3px rgba(80,70,60,.08);
}

.section-heading {
display: flex;
align-items: center;
gap: 16px;
margin: 8px 0 22px;
font-size: 1.15rem;
letter-spacing: .18em;
text-transform: uppercase;
text-align: center;
}
.section-heading::before,
.section-heading::after {
content: "";
flex: 1;
height: 1px;
background: var(--line);
}

.plans {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 14px;
align-items: stretch;
}
.plan {
position: relative;
display: block;
background: var(--card);
border: 1px solid var(--line);
border-radius: 12px;
padding: 18px 16px 16px;
cursor: pointer;
transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.plan:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.plan input[type="radio"] {
position: absolute;
top: 14px;
left: 14px;
width: 18px;
height: 18px;
accent-color: #1f1b17;
}
.plan:has(input:checked) {
border-color: #4d443b;
box-shadow: 0 0 0 2px rgba(31,27,23,.08), var(--shadow);
background: #f4ecdf;
}
.plan-name {
display: block;
padding-top: 26px;
min-height: 70px;
text-align: center;
font-size: 1.08rem;
font-weight: 700;
line-height: 1.15;
}
.plan-price {
display: block;
text-align: center;
font-size: 1.55rem;
line-height: 1.1;
margin: 10px 0 14px;
}
.plan-price small { font-size: .78rem; font-weight: 400; }
.plan hr {
border: 0;
border-top: 1px solid #ddd2c3;
margin: 0 0 14px;
}
.plan ul {
margin: 0;
padding-left: 1.15rem;
color: #4b4239;
font-size: .88rem;
}
.plan li { margin-bottom: 8px; }
.plan-badge {
position: absolute;
top: -10px;
right: 12px;
padding: 4px 9px;
border-radius: 999px;
background: #222;
color: white;
font-size: .72rem;
letter-spacing: .08em;
text-transform: uppercase;
}

.submit-row {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
margin-top: 30px;
}

.payment-note { color: var(--muted); font-size: .9rem; }
.fineprint {
margin-top: 16px;
color: var(--muted);
font-size: .84rem;
text-align: center;
}



@media (max-width: 1024px) {
.subscribe-hero-grid { grid-template-columns: 1fr; gap: 24px; }
.subscribe-visual { justify-content: flex-start; }
.subscribe-visual img { max-width: 620px; }
.plans { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
.subscribe-hero { padding-top: 38px; }
.subscribe-visual { display: none; }
.fields { grid-template-columns: 1fr; }
.field-full { grid-column: auto; }
.plans { grid-template-columns: 1fr; }
.form-shell { padding: 20px 16px; }
.section-heading { font-size: .95rem; letter-spacing: .12em; }
.btn-dark { min-width: 0; width: 100%; }
.footer-inner { grid-template-columns: 1fr; }
.footer-nav { justify-content: flex-start; }
}

