:root{
  --gold:#ac8e4d; --gold-dark:#8f7439; --gold-light:#f4eee1;
  --navy:#302a8c; --navy-dark:#231e6b;
  --ink:#2f2f38; --muted:#5d5d68; --line:#e4e1da;
  --bg:#ffffff; --grey:#ededed;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 "Open Sans",Helvetica,Arial,sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
h1,h2,h3{margin:0;line-height:1.2}
.wrap{max-width:1140px;margin:0 auto;padding:0 16px}
.narrow{max-width:860px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* buttons */
.btn{display:inline-block;border:0;border-radius:4px;padding:14px 28px;font:600 17px/1.2 "Open Sans",sans-serif;text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}
.btn:active{transform:translateY(1px)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:0 6px 18px rgba(35,30,107,.35)}
.btn-navy:hover{background:var(--navy-dark)}
.btn-white{background:#fff;color:var(--navy)}
.btn-white:hover{background:#eceaff}
.btn[disabled]{opacity:.6;cursor:wait}

/* hero */
.hero{background:var(--gold);color:#fff;position:relative;padding:56px 0 0}
.hero-grid{display:grid;grid-template-columns:1fr 400px;gap:48px;align-items:start;padding-bottom:90px}
.hero-left{text-align:center;display:flex;flex-direction:column;align-items:center}
.hero h1{font:700 clamp(36px,5.4vw,60px)/1.1 "Playfair Display",Georgia,serif;letter-spacing:.2px}
.hero .sub{font:700 clamp(20px,2.4vw,28px)/1.3 "Playfair Display",Georgia,serif;margin:14px 0 26px}
.portrait{width:300px;border:10px solid #f6f1e6;box-shadow:0 10px 30px rgba(0,0,0,.18);margin-bottom:30px}
.wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:60px;fill:var(--grey)}

/* cards & forms */
.card{background:var(--navy);color:#fff;border-radius:6px;box-shadow:0 14px 40px rgba(20,16,70,.35)}
.form-card{padding:26px 30px 28px}
.card-head{display:flex;align-items:center;gap:18px;margin-bottom:10px}
.arrow{width:40px;height:40px;flex:none;color:#fff}
.card-head h2{font:600 16px/1.35 "Open Sans",sans-serif;text-transform:uppercase;text-align:center;flex:1;letter-spacing:.3px}
.js-form input[type=text],.js-form input[type=email],.js-form input[type=tel],.js-form select{
  width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.7);color:#fff;
  font:15px "Open Sans",sans-serif;padding:13px 4px;border-radius:0;outline:none;appearance:none;-webkit-appearance:none}
.js-form select{background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);
  background-position:calc(100% - 14px) 52%,calc(100% - 8px) 52%;background-size:6px 6px;background-repeat:no-repeat;padding-right:28px}
.js-form select option{color:#222}
.js-form select:invalid{color:rgba(255,255,255,.75)}
.js-form ::placeholder{color:rgba(255,255,255,.75)}
.js-form input:focus,.js-form select:focus{border-bottom-color:#fff;box-shadow:0 2px 0 #fff}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.45;margin:16px 0 18px;color:rgba(255,255,255,.88)}
.consent input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--gold)}
.consent a{color:#fff}
.form-card .btn{width:100%}
.msg{margin:12px 0 0;font-size:14px;min-height:1px}
.msg.ok{color:#c9f2c7}.msg.err{color:#ffd0d0}
.field-error{border-bottom-color:#ff9c9c!important}

/* intro */
.intro{background:var(--grey);text-align:center;padding:34px 0 30px}
.intro h2{color:var(--navy);font:400 clamp(26px,3vw,36px)/1.2 "Open Sans",sans-serif;margin-bottom:12px}
.intro p{margin:0 auto;max-width:900px;font-size:14px;color:var(--muted)}

/* services */
.services{padding:50px 0 70px}
.services-grid{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:start}
.svc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:26px 34px}
.svc li{display:flex;gap:14px;align-items:flex-start}
.svc svg{width:30px;height:30px;flex:none;color:var(--navy);margin-top:2px}
.svc h3{color:var(--navy);font:400 19px/1.3 "Open Sans",sans-serif;margin-bottom:4px}
.svc p,.info p{margin:0;font-size:14px;color:var(--muted)}
.info{background:var(--gold);color:#fff;border-radius:6px;padding:24px 26px;display:grid;gap:20px}
.info-row{display:flex;gap:14px;align-items:flex-start}
.info svg{width:34px;height:34px;flex:none}
.info h3{font:600 15px/1.3 "Open Sans",sans-serif;margin-bottom:3px}
.info p{color:rgba(255,255,255,.92)}

/* band with second form */
.band{background:var(--gold);position:relative;padding:110px 0 70px}
.wave-top{top:-1px;bottom:auto;fill:#fff}
.bar{padding:26px 34px 22px}
.bar-head{display:flex;align-items:center;gap:26px;margin-bottom:12px}
.doc{width:54px;height:62px;flex:none}
.bar-head h2{flex:1;text-align:center;font:600 17px/1.4 "Open Sans",sans-serif;text-transform:uppercase}
.bar-head h2 span{text-transform:none}
.seal{width:120px;height:80px;flex:none;color:#d9cfb6}
.bar-fields{display:grid;grid-template-columns:repeat(4,1fr) 170px;gap:22px;align-items:end}
.bar .btn{padding:12px 20px}
.bar .consent{margin:16px 0 0}

/* article */
.article{padding:40px 0 60px}
.policy-link{text-align:center;margin:0 0 30px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.policy-link a{color:var(--gold-dark);font-weight:600}
.article h2{color:var(--navy);font:700 26px/1.3 "Playfair Display",Georgia,serif;margin-bottom:16px}
.article p{font-size:15px;color:#44444d}
.article strong{color:var(--ink)}
blockquote{margin:18px 0;padding:14px 20px;border-left:4px solid var(--gold);background:var(--gold-light);font-style:italic;color:#4a4436}

/* footer */
.foot{background:var(--navy);color:#e8e6ff;text-align:center;font-size:14px;padding:22px 0}
.foot p{margin:4px 0}
.foot a{color:#fff}

/* policy page */
.page-head{background:var(--gold);color:#fff;text-align:center;padding:40px 0 34px}
.page-head a{color:#fff;text-decoration:none;font:700 22px "Playfair Display",Georgia,serif}
.page-head h1{font:700 clamp(28px,4vw,40px)/1.2 "Playfair Display",Georgia,serif;margin-top:12px}
.policy{padding:40px 0 60px}
.policy h2{color:var(--navy);font:600 18px/1.4 "Open Sans",sans-serif;margin:26px 0 8px}
.policy p,.policy li{font-size:15px;color:#44444d}

/* subpages */
.head-tel{margin:22px 0 0}
.head-tel .btn{font-size:16px;padding:12px 24px}
.sub{padding:44px 0 56px}
.sub-grid{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:start}
.sub-body{font-size:15.5px;color:#44444d}
.sub-body ul{margin:0 0 22px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.sub-body ul li{background:var(--gold-light);color:#5a4a26;border:1px solid #e6dcc4;border-radius:20px;padding:5px 14px;font-size:14px}
.sub-body hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.sub-body h3{color:var(--navy);font:600 19px/1.35 "Open Sans",sans-serif;margin:26px 0 8px}
.sub-body p{margin:0 0 14px}
.sub-nav{background:#f7f5f0;border:1px solid var(--line);border-radius:6px;padding:20px 22px;position:sticky;top:20px}
.sub-nav h2{color:var(--navy);font:700 20px "Playfair Display",Georgia,serif;margin-bottom:10px}
.sub-nav ul{list-style:none;margin:0;padding:0}
.sub-nav li{border-top:1px solid var(--line)}
.sub-nav li:first-child{border-top:0}
.sub-nav a{display:block;padding:8px 0;font-size:14.5px;text-decoration:none;color:var(--navy)}
.sub-nav a:hover{text-decoration:underline}
.sub-nav a[aria-current]{font-weight:700;color:var(--gold-dark)}
.band-sub{padding:60px 0}
.svc h3 a{color:inherit;text-decoration:none}
.svc h3 a:hover{text-decoration:underline}
.more-links{margin:26px 0 0;font-size:14px;color:var(--muted)}
.more-links a{color:var(--navy)}

/* responsive */
@media (max-width:980px){
  .sub-grid{grid-template-columns:1fr;gap:34px}
  .sub-nav{position:static}
}
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:34px}
  .form-card{max-width:520px;margin:0 auto;width:100%}
  .services-grid{grid-template-columns:1fr}
  .bar{display:flex;flex-direction:column}
  .bar-fields{display:contents}
  .bar .consent{order:1;margin:18px 0}
  .bar-fields .btn{order:2;width:100%}
  .bar .msg{order:3}
  .seal{display:none}
}
@media (max-width:620px){
  body{font-size:15px}
  .hero{padding-top:36px}
  .hero-grid{padding-bottom:70px}
  .portrait{width:230px}
  .svc{grid-template-columns:1fr}
  .form-card,.bar{padding:22px 18px}
  .bar-head{gap:14px}
  .doc{width:40px;height:46px}
  .bar-head h2{font-size:15px;text-align:left}
  .bar-fields{grid-template-columns:1fr}
  .band{padding:80px 0 50px}
}
