/*
Theme Name: Cybervisa
Description: Thailand-Touristenvisum-Antragsservice für Cyberhosting e.U.
Author: Cyberhosting e.U.
Author URI: https://cyberhosting.at/
Version: 4.0.9
Requires PHP: 8.1
Text Domain: cybervisa
*/

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/inter-latin.woff2) format('woff2');
}

:root {
  color-scheme:dark;
  --bg:#101014;
  --deep:#000;
  --panel:#19192f;
  --line:#303046;
  --fg:#fbfaff;
  --muted:#c3bfd2;
  --cyan:#00afd8;
  --purple:#813e90;
  --accent:#813e90;
  --paper:#f7f5fa;
  --ink:#20172a;
  --soft:#514759;
  --edge:#e1d9e9;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:1.25rem;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font:16px/1.6 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

a {
  color:inherit;
}

img {
  display:block;
  max-width:100%;
}

[hidden] {
  display:none!important;
}

:focus-visible {
  outline:3px solid #16a9c4;
  outline-offset:4px;
}

.skip {
  position:absolute;
  top:.5rem;
  left:.5rem;
  background:#fff;
  color:#21142b;
  padding:.5rem 1rem;
  transform:translateY(-180%);
  z-index:10;
}

.skip:focus {
  transform:none;
}

.shell {
  width:min(1180px,calc(100% - 104px));
  margin-inline:auto;
}

.top {
  background:var(--deep);
  border-bottom:1px solid var(--line);
}

.header {
  min-height:80px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  flex:none;
}

.brand span {
  border-left:1px solid #4b405a;
  padding-left:14px;
  font-size:.73rem;
  line-height:1.42;
  color:var(--muted);
}

.brand strong {
  color:#fff;
}

.header nav {
  display:flex;
  gap:clamp(16px,3vw,40px);
  align-items:center;
}

.header nav a,.footer a {
  text-decoration:none;
}

.header nav a:hover,.footer a:hover {
  text-decoration:underline;
  text-underline-offset:5px;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:17px;
  min-height:48px;
  padding:10px 19px;
  border:1px solid transparent;
  border-radius:9px;
  font:inherit;
  font-weight:720;
  font-size:.92rem;
  text-decoration:none;
  transition:background .16s,border-color .16s;
  cursor:pointer;
}

.primary {
  background:var(--accent);
  color:#fff;
  border-color:#a95db8;
}

.primary:hover {
  background:#9347a8;
}

.outline {
  border-color:#5a4e68;
  background:transparent;
  color:inherit;
}

.outline:hover {
  background:#252138;
  border-color:#a585b5;
}

.hero {
  background:radial-gradient(ellipse at 82% 42%,#291d38 0,transparent 58%),var(--bg);
  padding-top:56px;
}

.hero-grid {
  display:grid;
  grid-template-columns:1.05fr 1fr;
  align-items:center;
  gap:35px;
}

.hero-copy {
  padding:16px 0;
}

.eyebrow {
  font-size:.72rem;
  letter-spacing:.16em;
  font-weight:800;
  color:var(--cyan);
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 16px;
}

.eyebrow i {
  display:block;
  width:21px;
  height:2px;
  background:currentColor;
}

h1,h2,h3,p {
  margin-top:0;
}

h1,h2,h3 {
  line-height:1.07;
}

h1 {
  font-size:clamp(2.55rem,4.7vw,4.65rem);
  letter-spacing:-.065em;
  margin-bottom:20px;
}

h1 em {
  font-style:normal;
  color:var(--cyan);
}

h2 {
  font-size:clamp(2rem,3.6vw,3.25rem);
  letter-spacing:-.054em;
  margin-bottom:16px;
}

h3 {
  font-size:1.22rem;
  line-height:1.23;
  letter-spacing:-.025em;
}

.intro {
  font-size:clamp(1rem,1.45vw,1.16rem);
  max-width:46ch;
  color:var(--muted);
  margin-bottom:25px;
}

.actions {
  display:flex;
  flex-wrap:wrap;
  gap:11px;
}

.hero-note {
  font-size:.8rem;
  color:var(--muted);
  margin:19px 0 0;
}

.hero-note span {
  color:var(--cyan);
  margin-right:5px;
}

.hero-art {
  overflow:hidden;
  position:relative;
  border:1px solid #70536e;
  border-radius:19px;
  background:#362743;
  isolation:isolate;
}

.hero-art img {
  width:100%;
  height:auto;
}

.art-top {
  position:absolute;
  top:16px;
  left:17px;
  color:#fff1f8;
  background:#20162c;
  padding:6px 10px;
  border:1px solid #a77a98;
  border-radius:6px;
  font-size:.64rem;
  letter-spacing:.15em;
  font-weight:750;
}

.ticket {
  position:absolute;
  bottom:16px;
  left:16px;
  right:16px;
  display:flex;
  align-items:center;
  gap:13px;
  padding:12px 15px;
  background:#16142a;
  border:1px solid #795c82;
  border-radius:10px;
  max-width:305px;
  box-shadow:0 10px 22px #0a091769;
}

.ticket-icon {
  display:grid;
  place-items:center;
  background:#302040;
  color:#ebaff6;
  border-radius:7px;
  width:36px;
  height:36px;
}

.ticket strong,.ticket small {
  display:block;
  line-height:1.25;
}

.ticket small {
  font-size:.62rem;
  letter-spacing:.12em;
  color:#d1bfdc;
  margin-bottom:4px;
}

.ticket-code {
  margin-left:auto;
  color:#eab8ff;
  background:#44294e;
  border:1px solid #8c589a;
  padding:4px 9px;
  border-radius:5px;
  font-size:.75rem;
  font-weight:800;
}

.pillars {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-top:38px;
  border-top:1px solid #3b314a;
  padding:19px 0 21px;
  gap:18px;
  color:#e0daeb;
  font-size:.81rem;
}

.pillars b {
  color:var(--cyan);
  margin-right:7px;
  font-size:.72rem;
  letter-spacing:.06em;
}

.light {
  background:var(--paper);
  color:var(--ink);
  color-scheme:light;
}

.two {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px,7vw,98px);
  align-items:start;
}

.light,.steps-section,.contact-section {
  padding:clamp(48px,7vw,95px) 0;
}

.light .eyebrow {
  color:#5e2d72;
}

.sub {
  color:var(--soft);
  max-width:46ch;
}

.checks {
  list-style:none;
  padding:0;
  margin:25px 0;
}

.checks li {
  display:flex;
  gap:12px;
  margin:9px 0;
}

.checks li::before {
  content:"✓";
  font-weight:850;
  color:#59336c;
}

.other {
  border-top:1px solid var(--edge);
  padding-top:14px;
  font-size:.9rem;
}

.price {
  background:#fff;
  border:1px solid var(--edge);
  border-radius:17px;
  padding:clamp(17px,3vw,31px);
  box-shadow:0 16px 43px #24162f0a;
}

.price-head {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:space-between;
  align-items:center;
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.08em;
}

.tag {
  padding:4px 7px;
  border:1px solid #ddcbe8;
  background:#f6eefb;
  color:#633174;
  border-radius:5px;
  font-size:.64rem;
  letter-spacing:.03em;
}

.price-state {
  font-size:.8rem;
  color:#6e3b36;
  margin:12px 0 0;
}

.price dl {
  margin:12px 0 18px;
}

.price dl div {
  display:flex;
  gap:12px;
  justify-content:space-between;
  align-items:baseline;
  border-top:1px solid var(--edge);
  padding:11px 0;
  font-weight:660;
}

.price dd {
  margin:0;
  white-space:nowrap;
}

.price small {
  display:block;
  color:var(--soft);
  font-weight:450;
}

.price .total {
  font-weight:800;
}

.total dd {
  color:#6c347d;
  font-size:1.85rem;
  letter-spacing:-.055em;
  line-height:1.1;
}

.price .button {
  width:100%;
}

.fine {
  font-size:.77rem;
  line-height:1.55;
  color:var(--soft);
  margin:12px 0 0;
}

.steps {
  list-style:none;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:27px 0 16px;
}

.steps li {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px;
  padding:24px;
}

.steps span {
  display:block;
  color:var(--cyan);
  font-weight:800;
  letter-spacing:.08em;
  margin-bottom:14px;
}

.steps h3 {
  margin:0 0 9px;
}

.steps p {
  color:var(--muted);
  margin:0;
  font-size:.94rem;
}

.notice {
  border-left:3px solid #bb77d4;
  background:#201a31;
  padding:12px 16px;
  margin:18px 0 0;
  font-size:.93rem;
  color:#ede5f4;
}

.faq-grid {
  grid-template-columns:.8fr 1.2fr;
}

.faqs details {
  border-top:1px solid var(--edge);
}

.faqs details:last-child {
  border-bottom:1px solid var(--edge);
}

.faqs summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:16px 0;
  font-weight:730;
  cursor:pointer;
}

.faqs summary::-webkit-details-marker {
  display:none;
}

.faqs summary::after {
  content:"+";
  color:#693578;
  font-size:1.3em;
}

.faqs details[open] summary::after {
  content:"−";
}

.faqs details p {
  color:var(--soft);
  margin:0 28px 16px 0;
}

.contact-panel {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  align-items:center;
  gap:24px;
  border:1px solid #634b75;
  background:linear-gradient(115deg,#20192f,#301f3e);
  border-radius:16px;
  padding:clamp(22px,5vw,52px);
}

.contact-panel p:last-child {
  margin-bottom:0;
  color:var(--muted);
}

.channels {
  display:grid;
  gap:9px;
  max-width:320px;
  width:100%;
  justify-self:end;
}

.channel-pending {
  font-size:.81rem;
  color:var(--muted);
  padding:2px 2px 0;
}

.footer {
  background: #211728;
  border-top: 1px solid #4b3855;
  color: #f2eaf5;
  color-scheme: dark;
  padding-top: clamp(34px, 6vw, 58px);
  font-size: .91rem;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1.1fr 1fr .8fr;
  gap: clamp(24px, 5vw, 64px);
  padding-bottom: clamp(30px, 5vw, 46px);
}

.footer-logo {
  display: inline-block;
  margin-bottom: 12px;
}

.footer-logo img {
  width: 110px;
  height: auto;
}

.footer address {
  color: #cfc1d5;
  font-style: normal;
  line-height: 1.55;
}

.footer address strong {
  color: #f2eaf5;
}

.footer h2 {
  margin: 6px 0 13px;
  color: #ffffff;
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.3;
  text-transform: uppercase;
}

.footer ul {
  display: grid;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer a:hover {
  color: #ebbbf6;
}

.footer-contact .actions {
  gap: 7px;
  margin-top: 15px;
}

.footer-contact .actions:empty {
  display: none;
}

.footer-contact .button {
  min-height: 37px;
  gap: 5px;
  padding: 6px 10px;
  color: #f1d4f8;
  border-color: #795c85;
  background: transparent;
  font-size: .8rem;
}

.footer-contact .button:hover {
  background: #3b2846;
  border-color: #ebbbf6;
  text-decoration: none;
}

.footer-copyright {
  margin: 0;
  padding: 15px 0 18px;
  border-top: 1px solid #4b3855;
  color: #cfc1d5;
  font-size: .8rem;
  text-align: center;
}

.footer a:focus-visible {
  outline-color: #e5a8f4;
}

@media (max-width: 920px) {
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .footer-grid {
    gap: 24px 18px;
  }

  .footer-identity, .footer-contact {
    grid-column: 1 / -1;
  }

  .footer h2 {
    margin-top: 0;
  }
}

.portal {
  min-height:60vh;
  padding:clamp(42px,6vw,82px) 0;
}

.portal h1 {
  font-size:clamp(2.35rem,5vw,4rem);
}

.portal-card {
  padding:24px;
  border:1px solid var(--edge);
  border-radius:13px;
  background:#fff;
  margin:18px 0;
  max-width:750px;
}

.portal-card form {
  display:grid;
  gap:12px;
}

.portal-card input[type=file] {
  max-width:100%;
  font:inherit;
}

.portal-card .button {
  justify-self:start;
}

.portal-card ul {
  padding-inline-start:1.2rem;
}

.portal-status {
  padding:12px 15px;
  background:#f3eafa;
  border:1px solid #d9c4e6;
  border-radius:7px;
  max-width:750px;
}

@media(max-width:920px) {
  .shell {
    width:calc(100% - 64px);
  }
  .desktop {
    display:none;
  }
  .hero-grid {
    gap:24px;
  }
  .hero {
    padding-top:40px;
  }
}

@media(max-width:740px) {
  .shell {
    width:calc(100% - 36px);
  }
  .header {
    flex-wrap:wrap;
    gap:8px 12px;
    padding:10px 0 8px;
  }
  .header nav {
    order:3;
    flex-basis:100%;
    gap:18px;
    flex-wrap:wrap;
    padding:6px 0 2px;
    font-size:.86rem;
  }
  .nav-contact {
    min-height:38px;
    padding:6px 10px;
  }
  .brand img {
    width:70px;
    height:auto;
  }
  .brand span {
    font-size:.68rem;
    padding-left:9px;
  }
  .brand {
    gap:8px;
  }
  .hero {
    padding-top:26px;
  }
  .hero-grid,.two,.contact-panel {
    grid-template-columns:1fr;
  }
  .hero-copy {
    padding:2px 0;
  }
  .hero-art {
    max-width:560px;
  }
  .hero-art img {
    aspect-ratio:1.34;
    object-fit:cover;
  }
  .pillars {
    margin-top:20px;
    grid-template-columns:1fr;
    gap:6px;
    padding-block:14px;
  }
  .steps {
    grid-template-columns:1fr;
  }
  .channels {
    justify-self:start;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
  }
}

/* Mehrseitige Angebots- und Informationsseiten */
.page-intro {
  background: radial-gradient(ellipse at 80% 0%, #312039, transparent 65%), var(--deep);
  padding: clamp(42px, 7vw, 90px) 0;
}
.page-intro h1 { max-width: 20ch; margin-bottom: 18px; }
.page-intro p:last-child { margin-bottom: 0; }
.page-content { padding: clamp(38px, 6vw, 75px) 0; }
.page-content .prose { max-width: 74ch; }
.prose h2 { margin-top: 1.4em; font-size: clamp(1.42rem, 3vw, 2.1rem); }
.prose h2:first-child { margin-top: 0; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: .5em; }
.page-content .outline { border-color: #b49abd; }
.page-content .outline:hover { background: #f1e8f5; }
.market-grid, .quick-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 13px;
  margin: 24px 0;
}
.quick-grid { grid-template-columns: repeat(3, 1fr); }
.market-card, .quick-grid a {
  padding: 21px;
  border-radius: 12px;
  border: 1px solid var(--edge);
  background: #fff;
}
.market-card p, .quick-grid p { margin-bottom: .4em; color: var(--soft); }
.quick-grid a { text-decoration: none; display: block; }
.quick-grid a:hover { border-color: var(--accent); }
.quick-grid h3 { margin-bottom: 9px; }
.section-gap { margin-top: 52px; }
.checklist { display: grid; gap: 10px; padding: 0; margin: 19px 0; list-style: none; }
.checklist label { display: flex; gap: 12px; align-items: start; padding: 13px 16px; background: #fff; border: 1px solid var(--edge); border-radius: 9px; cursor: pointer; }
.checklist input { margin-top: .35em; width: 1.1em; height: 1.1em; flex: none; accent-color: #813e90; }
.checklist small { color: var(--soft); display: block; }
.form-card { max-width: none; }
.form-card label { font-weight: 700; }
.form-card input:not([type=checkbox]), .form-card select, .form-card textarea { width: 100%; min-height: 43px; background: #fff; color: var(--ink); border: 1px solid #ac9db3; border-radius: 7px; padding: 9px 11px; font: inherit; }
.form-card textarea { min-height: 120px; resize: vertical; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-card .hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.draft { border-left: 3px solid #813e90; background: #f1e7f5; padding: 11px 14px; }
.header nav { gap: clamp(11px, 2vw, 25px); }
.header nav [aria-current=page] { color: #54d5ef; }
@media(max-width:920px){.market-grid{grid-template-columns:repeat(2,1fr)}.header nav{flex-wrap:wrap}}
@media(max-width:740px){.quick-grid,.form-grid{grid-template-columns:1fr}.market-card{padding:13px}.header nav{column-gap:15px}}
@media print { .top,.footer,.skip,.no-print { display:none!important } .page-intro,.page-content{background:white;color:black;padding:14px 0}.page-intro h1{font-size:24pt}.shell{width:100%} }

/* The desktop header separates navigation from language and account controls. */
.top {
  background: #faf9fc;
  color: #221a29;
  color-scheme: light;
  border-bottom: 1px solid #e6e0ea;
}
.header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: 78px;
  padding-block: 0;
  gap: clamp(15px, 3vw, 34px);
}
.header-brand { justify-self: start; padding: 9px 0; }
.header-brand img { width: 76px; height: 47px; object-fit: contain; }
.header .main-nav { gap: clamp(17px, 3vw, 38px); }
.header .main-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  position: relative;
  color: #352940;
  font-size: .91rem;
  font-weight: 650;
  white-space: nowrap;
}
.header .main-nav a[aria-current="page"] { color: #753381; }
.header .main-nav a[aria-current="page"]::after {
  position: absolute;
  content: "";
  height: 2px;
  inset: auto 0 4px;
  background: #813e90;
  border-radius: 2px;
}
.header-tools { display: flex; align-items: center; justify-self: end; gap: 12px; }
.header .language-switch { display: flex; gap: 2px; flex-wrap: nowrap; padding: 3px; border-radius: 8px; background: #eeebf2; }
.header .language-switch a {
  min-width: 34px;
  padding: 6px 7px;
  text-align: center;
  font-size: .73rem;
  font-weight: 750;
  color: #594e61;
  border-radius: 6px;
}
.header .language-switch a[aria-current] { color: #24182c; background: #fff; box-shadow: 0 1px 3px #2b19331f; }
.account-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 9px 14px;
  min-height: 44px;
  white-space: nowrap;
  border-radius: 8px;
  background: #813e90;
  color: #fff;
  font-size: .88rem;
  font-weight: 720;
  text-decoration: none;
}
.account-link:hover { background: #6e327c; }
@media(max-width:740px) {
  .header { grid-template-columns: 1fr auto; gap: 0 8px; min-height: 0; }
  .header-tools { grid-column: 2; grid-row: 1; gap: 7px; }
  .header .main-nav { grid-row: 2; grid-column: 1 / -1; order: initial; justify-content: flex-start; gap: 22px; padding: 0; border-top: 1px solid #e6e0ea; }
  .header .main-nav a { font-size: .84rem; min-height: 42px; }
  .header-brand img { width: 64px; height: 39px; }
  .header .language-switch { order: initial; padding: 2px; }
  .header .language-switch a { min-width: 31px; }
  .account-link { min-height: 41px; padding-inline: 10px; }
}

.offer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; margin: 24px 0; }
.offer-grid .price { display: flex; flex-direction: column; }
.offer-grid .price h3 { margin: 16px 0 8px; font-size: 1.5rem; }
.offer-grid .price > p { color: var(--soft); margin-bottom: auto; }
.payment-summary { margin: 20px 0; padding: 16px 20px; border: 1px solid var(--edge); border-radius: 10px; background: #fff; }
.payment-summary p:last-child { margin-bottom: 0; }
.fee-table { width: 100%; border-collapse: collapse; font-size: .9rem; background: #fff; }
.fee-table th, .fee-table td { padding: 11px 13px; text-align: left; border-bottom: 1px solid var(--edge); }
.fee-table thead { background: #eee8f2; }
.fee-table th small { display: block; color: var(--soft); }
.fee-table td:nth-child(2), .fee-table td:nth-child(3) { white-space: nowrap; }
.fee-table a { text-underline-offset: 3px; }
.form-card select { appearance: auto; }
@media(max-width:640px) {
  .offer-grid { grid-template-columns: 1fr; }
  .fee-table { font-size: .77rem; }
  .fee-table th, .fee-table td { padding: 7px 5px; }
}

@media (min-width:741px) and (max-width:960px) { .steps { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.offer-grid .service-price { white-space: normal; text-align: right; }


.checklist-print-heading { display: none; }
.checklist-controls { margin: 23px 0; }
.checklist-controls [role="status"] { width: 100%; }

@media print {
  body:has(.checklist-document) { background: #fff; color: #000; }
  body:has(.checklist-document) .page-intro,
  body:has(.checklist-document) #wpadminbar { display: none !important; }
  .checklist-page { padding: 0; }
  .checklist-page .prose { max-width: none; }
  .checklist-print-heading { display: block; }
  .checklist-document h2 { break-after: avoid; font-size: 13pt; }
  .checklist-print-heading h2 { font-size: 19pt; }
  .checklist { gap: 0; margin: 8pt 0; }
  .checklist li { break-inside: avoid; margin: 0; }
  .checklist label { padding: 4pt 0; border: 0; }
  .checklist input { appearance: none; display: grid; place-content: center; width: 10pt; height: 10pt; margin: 2pt 0 0; border: 1px solid #000; }
  .checklist input:checked::after { content: "✓"; color: #000; font: bold 9pt/1 sans-serif; }
  .checklist small { color: #333; }
}


.contact-intro { padding: clamp(30px, 5vw, 65px) 0; }
.contact-intro h1 { max-width: 24ch; }
.contact-intro .intro { max-width: 58ch; }
.contact-content { padding-top: clamp(24px, 4vw, 48px); }

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(224px, .39fr);
  gap: clamp(24px, 4vw, 50px);
  align-items: start;
}

.contact-form .form-card {
  margin: 0;
  padding: clamp(20px, 3.5vw, 42px);
  border-radius: 16px;
  box-shadow: 0 10px 30px #2615330a;
}

.contact-form .form-card h2 {
  font-size: clamp(1.6rem, 3vw, 2.15rem);
  margin: 0 0 10px;
}

.contact-form .sub { max-width: 62ch; }
.contact-form form { gap: 20px; }
.contact-form .form-grid { gap: 16px 18px; }
.contact-form .form-grid > div { min-width: 0; }
.contact-form label { display: block; margin-bottom: 6px; }
.contact-form input:not([type="checkbox"]),
.contact-form select,
.contact-form textarea { min-width: 0; min-height: 50px; padding: 11px 13px; }
.contact-form textarea { min-height: 156px; }
.contact-form .button { min-height: 49px; }

.contact-sidebar {
  padding: clamp(15px, 3vw, 30px);
  border: 1px solid var(--edge);
  border-radius: 16px;
  background: #f1ecf4;
  color: var(--soft);
  overflow-wrap: anywhere;
}

.contact-sidebar h2 {
  margin: 0 0 10px;
  color: var(--ink);
  font-size: 1.04rem;
  letter-spacing: -.01em;
  line-height: 1.35;
}

.contact-sidebar-section {
  padding: 0 0 16px;
  margin: 0 0 16px;
  border-bottom: 1px solid var(--edge);
}

.contact-sidebar-section p { margin: 0 0 10px; }
.contact-sidebar-section p:last-child { margin-bottom: 0; }
.contact-sidebar address { font-style: normal; font-size: .88rem; }
.contact-sidebar .button { min-height: 38px; padding: 5px 12px; }

@media (max-width: 850px) {
  .contact-layout { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 480px) {
  .contact-form .form-card { padding: 18px; }
  .contact-form .button { width: 100%; justify-content: center; }
}
