/* i-BnB | Contact page. Loads after css/index.css (uses --red, --cream, --blush, --brown*, --line, --head, --body) */
header nav a.btn[aria-current="page"]{color:#fff}

/* Hero */
.ct-hero{position:relative;overflow:hidden;padding:clamp(64px,9vw,120px) 0 clamp(40px,5vw,64px)}
.ct-hero h1{font-size:clamp(40px,7.4vw,104px);line-height:.98;letter-spacing:-.04em;margin-bottom:24px;animation:ctup 1s cubic-bezier(.16,1,.3,1) backwards}
.ct-hero h1 em{font-style:normal;color:var(--red)}
.ct-hero .lead{max-width:520px;animation:ctup 1s cubic-bezier(.16,1,.3,1) .15s backwards}
.ct-quick{display:flex;flex-wrap:wrap;gap:20px 56px;margin-top:40px;padding-top:26px;border-top:1px solid var(--line);animation:ctup 1s cubic-bezier(.16,1,.3,1) .3s backwards}
.ct-quick b{display:block;font:600 clamp(26px,3vw,36px)/1 var(--head);color:var(--red);margin-bottom:4px}
.ct-quick span{font-size:15px;color:var(--brown-m)}
@keyframes ctup{from{opacity:0;transform:translateY(24px)}}

/* Form + side */
.ct-main{padding:clamp(56px,7vw,96px) 0}
.ct-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(32px,5vw,72px);align-items:start}
.ct-form{display:grid;gap:20px;padding:clamp(24px,4vw,44px);background:#fff;border:1px solid var(--line);border-radius:24px}
.ct-form h2,.ct-side h2{font-size:clamp(26px,3vw,36px);margin:0}
.ct-form .row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ct-form label,.ct-form legend{display:grid;gap:7px;font:500 15px var(--body);color:var(--brown-d)}
.ct-form legend{margin-bottom:10px;padding:0}
.ct-form fieldset{border:0;min-width:0}
.ct-form input[type=text],.ct-form input[type=email],.ct-form input[type=tel],.ct-form textarea{width:100%;background:var(--cream);color:var(--brown-d);border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;font:400 16px var(--body);transition:border-color .2s,box-shadow .2s,background .2s}
.ct-form textarea{min-height:140px;resize:vertical}
.ct-form input:focus,.ct-form textarea:focus{outline:0;background:#fff;border-color:var(--red);box-shadow:0 0 0 3px #c8142b26}
.ct-form [aria-invalid="true"]{border-color:var(--red);background:var(--blush)}
.ct-form .err{font-size:14px;font-weight:500;color:var(--red-d)}

/* project type chips (real radio buttons, keyboard friendly) */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips label{display:block;position:relative}
.chips input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.chips span{display:block;padding:10px 20px;border-radius:99px;border:1.5px solid var(--line);background:var(--cream);font:500 15px var(--body);transition:background .2s,color .2s,border-color .2s}
.chips label:hover span{border-color:var(--red);color:var(--red)}
.chips input:checked+span{background:var(--red);border-color:var(--red);color:#fff}
.chips input:focus-visible+span{outline:3px solid #c8142b55;outline-offset:3px}
.ct-form .btn{justify-self:start}
.ct-status{min-height:1.5em;font-size:15px;font-weight:500;color:var(--red-d)}

/* side */
.ct-side{display:grid;gap:18px;position:sticky;top:calc(var(--hdr,88px) + 24px)}
.ct-sub{color:var(--brown-m)}
.ct-side address{font-style:normal;display:grid}
.ct-side address>*{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-weight:500;transition:color .25s}
.ct-side address a:hover{color:var(--red)}
.ct-side svg{flex:none;width:22px;height:22px;color:var(--red)}
.ct-map{border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--blush);aspect-ratio:4/3}
.ct-map iframe{display:block;width:100%;height:100%;border:0}

/* what happens next */
.ct-next{padding:clamp(56px,7vw,88px) 0}
.ct-next ol{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:n}
.ct-next li{counter-increment:n;border-top:3px solid var(--red);padding-top:18px}
.ct-next li::before{content:"0" counter(n);font:600 14px var(--head);color:var(--red)}
.ct-next h3{font-size:21px;margin:6px 0 8px}
.ct-next p{color:var(--brown-m);font-size:16px}

/* footer */
footer.ftr{padding:clamp(56px,7vw,96px) 0 28px;color:#e9dcd8;background:radial-gradient(60% 70% at 12% 0%,#c8142b40,transparent 70%),linear-gradient(180deg,#2a1a17,#1b100e)}
footer.ftr a{display:block}
footer.ftr .ft-grid{display:grid;grid-template-columns:5fr 2.4fr 3.6fr;gap:clamp(32px,6vw,96px);padding-bottom:clamp(40px,5vw,64px)}
footer.ftr .ft-word{display:inline-block;font:700 clamp(56px,6.5vw,92px)/1 var(--head);letter-spacing:-.03em;color:#fff6f3}
footer.ftr .ft-word span{color:var(--red)}
footer.ftr .ft-rule{display:block;max-width:360px;height:3px;margin:22px 0 20px;background:linear-gradient(90deg,var(--red) 0 56px,#ffffff26 56px)}
footer.ftr p{max-width:38ch;color:#c9b8b3;font-size:16px}
footer.ftr h4{margin:0 0 12px;font:600 14px var(--head);color:#ff7a88}
footer.ftr .ft-col a{padding:10px 0;font-size:17px;border-bottom:1px solid #ffffff14;transition:color .3s,padding .3s}
footer.ftr .ft-col a:hover{color:#fff;padding-left:6px}
footer.ftr .ft-legal{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:24px;border-top:1px solid #ffffff1f;font-size:14px;color:#a8958f}
footer.ftr .ft-social{display:flex;gap:24px}
footer.ftr .ft-social a{display:inline;font-size:14px}
footer.ftr .ft-social a:hover{color:#fff}

@media(max-width:900px){
  .ct-grid{grid-template-columns:1fr}
  .ct-side{position:static}
  footer.ftr .ft-grid{grid-template-columns:1fr 1fr}
  footer.ftr .ft-brand{grid-column:1/-1}
}
@media(max-width:640px){
  .ct-form .row,.ct-next ol{grid-template-columns:1fr}
  .ct-form .btn{justify-self:stretch;text-align:center}
  footer.ftr .ft-grid{grid-template-columns:1fr}
  footer.ftr .ft-legal{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){.ct-hero *{animation:none!important}}