/* Shared footer and small presentation refinements, retaining the existing brand. */
#footer.ramco-footer { margin:0; padding:0; background:#f5f5f3; color:#333; font-family:Lato,Arial,sans-serif; }
.ramco-footer__cta { background:#d11628; color:#fff; }
.ramco-footer__cta-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:36px; padding-bottom:36px; }
#footer .ramco-footer__cta h2 { margin:0; color:#fff; font-size:32px; font-weight:500; line-height:1.2; }
.ramco-footer__actions { display:flex; gap:12px; flex-wrap:wrap; }
#footer .ramco-footer__actions a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 18px; border:1px solid #fff; border-radius:4px; background:#fff; color:#b10e20; font-size:15px; font-weight:700; text-decoration:none; transition:background .2s,color .2s; }
#footer .ramco-footer__actions a:hover { background:transparent; color:#fff; }
.ramco-footer__main { display:grid; grid-template-columns:1.3fr 1fr 1fr .8fr; gap:32px; padding-top:48px; padding-bottom:40px; font-size:15px; line-height:1.7; }
#footer .ramco-footer__logo { display:inline-block; margin-bottom:16px; }
#footer .ramco-footer__logo img { display:block; max-width:100%; height:auto; width:210px; }
#footer .ramco-footer__brand p { margin:0 0 12px; font-size:15px; line-height:1.6; }
#footer .ramco-footer__main h2 { margin:0 0 16px; font-size:18px; font-weight:700; line-height:1.3; color:#333; text-transform:none; }
#footer .ramco-footer__main a { color:#333; text-decoration:none; }
#footer .ramco-footer__main a:hover { color:#b10e20; text-decoration:underline; }
#footer address { margin:0 0 10px; font-style:normal; }
#footer .ramco-footer__phone { font-weight:700; }
#footer .ramco-footer__brand > a:last-child { overflow-wrap:anywhere; }
.ramco-footer__explore ul { margin:0; padding:0; list-style:none; }
.ramco-footer__explore li { margin:0 0 6px; }
#footer .ramco-colophon { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px 24px; border-top:1px solid #d5d5d2; padding-top:20px; padding-bottom:22px; font-size:12px; line-height:1.6; }
.ramco-colophon__credit { display:flex; align-items:center; flex-wrap:wrap; gap:.5em .75em; }
#footer .ramco-colophon p { margin:0; font-size:inherit; line-height:inherit; }
#footer .ramco-colophon a { color:inherit; text-decoration:none; }
#footer a:focus-visible,#pull-menu:focus-visible,#site-menu a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
#site-menu a,#site-menu a *,#pull-menu,#pull-menu * { cursor:pointer; }
#pull-menu { min-width:44px; min-height:44px; }
#content .page-title { font-weight:400; letter-spacing:-.025em; }
#content p { margin-bottom:1.1em; }
#content li { margin-bottom:.35em; }
@media(max-width:991px) {
 .ramco-footer__cta-inner { align-items:flex-start; flex-direction:column; }
 .ramco-footer__main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
 .ramco-footer__brand { grid-column:1 / -1; }
 #footer .ramco-footer__brand p { max-width:32em; }
}
@media(max-width:575px) {
 .ramco-footer__main { grid-template-columns:minmax(0,1fr); padding-top:32px; padding-bottom:32px; gap:28px; }
 .ramco-footer__brand { grid-column:auto; }
 #footer .ramco-footer__cta h2 { font-size:27px; }
 .ramco-footer__actions { width:100%; }
 #footer .ramco-footer__actions a { flex:1 1 auto; }
 #footer .ramco-colophon .tu-credit { white-space:normal; max-width:100%; }
 #footer .ramco-colophon .tu-credit__text { max-inline-size:none; opacity:1; line-height:1.5; padding-block:.1em; }
}
@media(prefers-reduced-motion:reduce) { .ramco-footer__actions a { transition:none; } }

/* Keep the last navigation dropdown inside the page edge. */
#site-menu #main-menu > li:last-child > .sub-menu { left: auto; right: 0; }
#footer.ramco-footer address { font-weight: 400; }

.ramco-footer__cta-copy { flex:1; max-width:42em; }
#footer .ramco-footer__cta-copy p { margin:12px 0 0; color:#fff; font-size:16px; font-weight:400; line-height:1.6; }
.ramco-footer__actions { flex-shrink:0; }

/* Anchor the homepage photograph to the floor, with readable introductory copy. */
#home section.ramco-home-hero { display:flex; align-items:flex-end; margin-top:0; padding:48px 0; height:80vh; min-height:560px; max-height:760px; background-position:center center; }
.ramco-home-hero__copy { max-width:460px; padding:28px 28px 36px 36px; background:#fff; color:#333; box-shadow:0 3px 16px rgba(0,0,0,.1); }
#home .ramco-home-hero__copy h1 { margin:0 0 16px; font-family:Lato,Arial,sans-serif; font-size:34px; line-height:1.2; font-weight:500; color:#333; text-shadow:none; text-transform:none; }
#home .ramco-home-hero__copy p { margin:0 0 22px; font-size:16px; line-height:1.6; }
.ramco-home-hero__actions { display:flex; flex-wrap:wrap; gap:10px; }
#home .ramco-home-hero__actions a { display:inline-flex; align-items:center; justify-content:center; padding:11px 16px; min-height:44px; border-radius:4px; background:#d11628; color:#fff; font-size:15px; font-weight:700; text-decoration:none; }
#home .ramco-home-hero__actions a:hover { background:#b10e20; }
#home .ramco-home-hero__actions a:focus-visible { outline:2px solid #333; outline-offset:4px; }
@media(max-width:575px) {
 #home section.ramco-home-hero { align-items:flex-start; height:auto; min-height:640px; max-height:none; padding:24px 0; }
 .ramco-home-hero__copy { padding:24px 24px 28px 28px; }
 #home .ramco-home-hero__copy h1 { font-size:29px; }
}

#home .ramco-home-hero__copy p { font-weight:400; }
/* The new hero replaces the old floating mobile contact prompt on the homepage. */
@media(max-width:991px) { body.home #header .contact-details { display:none; } }
