.tsw-contact-page,
.tsw-contact-page * { box-sizing:border-box; }
.tsw-contact-page {
    --tcp-green:#306648;
    --tcp-lime:#90bb32;
    --tcp-cream:#f3f1ed;
    --tcp-text:#1d221f;
    width:100%;
    color:var(--tcp-text);
    font-family:'Manrope',Arial,sans-serif;
}
.tsw-contact-page__inner {
    width:100%; max-width:1180px; margin:0 auto; padding-left:24px; padding-right:24px;
}
.tsw-contact-page__intro-section { padding:110px 0 86px; background:#fff; }
.tsw-contact-page__intro-grid {
    display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); gap:78px; align-items:end;
}
.tsw-contact-page__title {
    margin:0; max-width:780px; font-family:'Cormorant Garamond',Georgia,serif;
    font-size:clamp(66px,7vw,106px); font-weight:500; line-height:.86; letter-spacing:-.045em;
}
.tsw-contact-page__accent { color:var(--tcp-green); }
.tsw-contact-page__lead { max-width:500px; color:#5c625f; font-size:16px; line-height:1.75; }
.tsw-contact-page__lead p { margin:0; }

.tsw-contact-page__main { padding:0 0 112px; background:#fff; }
.tsw-contact-page__main-grid {
    display:grid; grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); gap:52px; align-items:stretch;
}
.tsw-contact-page__info { background:var(--tcp-green); color:#fff; padding:58px 48px; }
.tsw-contact-page__onsite { padding-bottom:42px; border-bottom:1px solid rgba(255,255,255,.20); }
.tsw-contact-page__onsite h2,
.tsw-contact-page__form-card h2 {
    margin:0; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(38px,4vw,54px); font-weight:500; line-height:.95; letter-spacing:-.025em;
}
.tsw-contact-page__onsite div { margin-top:20px; color:rgba(255,255,255,.78); font-size:14px; line-height:1.8; }
.tsw-contact-page__onsite p { margin:0; }
.tsw-contact-page__details { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:34px 38px; padding-top:40px; }
.tsw-contact-page__detail { display:grid; grid-template-columns:38px minmax(0,1fr); gap:14px; align-items:start; }
.tsw-contact-page__detail-icon {
    width:38px; height:38px; display:flex; align-items:center; justify-content:center;
    border:1px solid rgba(255,255,255,.22); border-radius:50%; color:#d7e7da;
}
.tsw-contact-page__detail-icon i { font-size:16px; }
.tsw-contact-page__detail-icon svg { width:16px; height:16px; fill:currentColor; }
.tsw-contact-page__detail-body { min-width:0; }
.tsw-contact-page__detail-label {
    display:block; margin:0 0 7px; color:#d8e5db;
    font-family:'Cormorant Garamond',Georgia,serif; font-size:17px; line-height:1.05;
    font-weight:500; letter-spacing:0; text-transform:none;
}
.tsw-contact-page__detail strong,
.tsw-contact-page__detail-body > div,
.tsw-contact-page__detail a,
.tsw-contact-page__detail a:link,
.tsw-contact-page__detail a:visited,
.tsw-contact-page__detail a:hover,
.tsw-contact-page__detail a:focus {
    display:block; color:#fff; text-decoration:none; font-size:15px; line-height:1.5; font-weight:600;
}
.tsw-contact-page__detail-body > div { font-weight:400; color:rgba(255,255,255,.78); }
.tsw-contact-page__detail a[href^="tel:"],
.tsw-contact-page__detail a[href^="mailto:"] { white-space:nowrap; }

.tsw-contact-page__form-card { padding:54px 56px; background:var(--tcp-cream); }
.tsw-contact-page__form-card h2 { margin-bottom:28px; color:#171a18; }
.tsw-contact-page__form-card .wpcf7 { margin:0; }
.tsw-contact-page__form-card .ts-cf7-title { display:none; }
.tsw-contact-page__form-card .ts-cf7-row { margin-bottom:12px; }
.tsw-contact-page__form-card .ts-cf7-row--2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.tsw-contact-page__form-card input[type="text"],
.tsw-contact-page__form-card input[type="email"],
.tsw-contact-page__form-card input[type="tel"],
.tsw-contact-page__form-card textarea {
    width:100%; margin:0; border:1px solid #c8ccc8; border-radius:0; background:#fff; color:#202420;
    font-family:'Manrope',Arial,sans-serif; font-size:13px; box-shadow:none; outline:none;
}
.tsw-contact-page__form-card input[type="text"],
.tsw-contact-page__form-card input[type="email"],
.tsw-contact-page__form-card input[type="tel"] { height:52px; padding:0 15px; }
.tsw-contact-page__form-card textarea { min-height:104px; height:104px; padding:15px; resize:none; }
.tsw-contact-page__form-card input:focus,
.tsw-contact-page__form-card textarea:focus { border-color:var(--tcp-green); }
.tsw-contact-page__form-card input::placeholder,
.tsw-contact-page__form-card textarea::placeholder { color:#a6aaa6; opacity:1; }
.tsw-contact-page__form-card .ts-cf7-consent { margin:16px 0 22px; font-size:11px; line-height:1.45; }
.tsw-contact-page__form-card .ts-cf7-consent label { display:flex; align-items:flex-start; gap:10px; }
.tsw-contact-page__form-card input[type="checkbox"] { accent-color:var(--tcp-green); }
.tsw-contact-page__form-card .wpcf7-submit {
    min-width:250px; height:56px; padding:0 28px; border:0; border-radius:5px; background:var(--tcp-green); color:#fff;
    font-family:'Manrope',Arial,sans-serif; font-size:13px; font-weight:800; text-transform:uppercase; cursor:pointer; box-shadow:none;
}
.tsw-contact-page__form-card .wpcf7-submit:hover { background:#28593e; color:#fff; }
.tsw-contact-page__form-card .wpcf7-not-valid-tip { margin-top:5px; font-size:11px; }
.tsw-contact-page__form-card .wpcf7-response-output { margin:16px 0 0!important; font-size:12px; }
.tsw-contact-page__empty { padding:18px; border:1px dashed #b8bdb8; font-size:13px; color:#6d736f; }

@media(max-width:1100px){
    .tsw-contact-page__intro-section { padding:86px 0 68px; }
    .tsw-contact-page__intro-grid { gap:42px; }
    .tsw-contact-page__main-grid { grid-template-columns:1fr; gap:24px; }
    .tsw-contact-page__info,.tsw-contact-page__form-card { padding:44px 40px; }
    .tsw-contact-page__details { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px){
    .tsw-contact-page__inner { padding-left:18px; padding-right:18px; }
    .tsw-contact-page__intro-section { padding:68px 0 50px; }
    .tsw-contact-page__intro-grid { grid-template-columns:1fr; gap:24px; }
    .tsw-contact-page__title { font-size:clamp(52px,16vw,74px); }
    .tsw-contact-page__lead { font-size:14px; }
    .tsw-contact-page__main { padding-bottom:70px; }
    .tsw-contact-page__main-grid { grid-template-columns:1fr; gap:18px; }
    .tsw-contact-page__info,.tsw-contact-page__form-card { padding:34px 24px; }
    .tsw-contact-page__details { grid-template-columns:1fr; gap:28px; }
    .tsw-contact-page__detail { grid-template-columns:38px minmax(0,1fr); gap:12px; }
    .tsw-contact-page__detail-icon { width:38px; height:38px; }
    .tsw-contact-page__form-card .ts-cf7-row--2 { grid-template-columns:1fr; }
    .tsw-contact-page__form-card .wpcf7-submit { width:100%; min-width:0; }
}
