@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-300-italic.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-600-italic.woff2) format("woff2")}
@font-face{font-family:"Raleway";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/raleway-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Raleway";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/raleway-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Raleway";font-style:italic;font-weight:300;font-display:swap;src:url(/assets/fonts/raleway-latin-300-italic.woff2) format("woff2")}
@font-face{font-family:"Kanit";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/kanit-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Bai Jamjuree";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/bai-jamjuree-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/playfair-display-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/nunito-sans-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/nunito-sans-latin-800-normal.woff2) format("woff2")}
/* CamStorage — styles measured from the original Wix site (desktop reference 1440px wide).
   Fonts: Cormorant Garamond, Raleway, Kanit, Bai Jamjuree, Playfair Display are hosted here;
   Avenir (used by Wix for prices, forms and some buttons) is installed on Macs/iPhones,
   with Nunito Sans as the stand-in everywhere else. */
:root {
  --navy: #004f7c;
  --navy2: #045184;
  --ink: #202020;
  --grey: #4a4a4a;
  --band: #eef3f6;
  --lilac: #f4f5fc;
  --line: #c7c7c7;
  --cg: "Cormorant Garamond", Garamond, "Times New Roman", serif;
  --ral: "Raleway", "Helvetica Neue", Arial, sans-serif;
  --av: "Avenir", "Avenir Next", "Nunito Sans", "Helvetica Neue", Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--ink); font-family: var(--ral); font-size: 18px; line-height: 1.75; }
img { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, h4, p, ul, ol { margin: 0; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 1rem; top: 1rem; z-index: 50; background: #fff; padding: .5rem 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* type helpers (Wix names: CG weight, R = Raleway) */
.cg { font-family: var(--cg); }
.cg3 { font-family: var(--cg); font-weight: 300; }
.cg5 { font-family: var(--cg); font-weight: 500; }
.cg6 { font-family: var(--cg); font-weight: 600; }
.cg7 { font-family: var(--cg); font-weight: 700; }
.r4 { font-family: var(--ral); font-weight: 400; }
.r7 { font-family: var(--ral); font-weight: 700; }
.navy { color: var(--navy); }
.grey { color: var(--grey); }
.c { text-align: center; }
.w980 { width: min(980px, 100% - 40px); margin-left: auto; margin-right: auto; }
.pad80 { padding-left: 80px; padding-right: 80px; }
@media (max-width: 900px) { .pad80 { padding-left: 20px; padding-right: 20px; } }

/* ---------------- Header ---------------- */
.site-header { background: var(--navy); height: 154px; }
.site-header .in { position: relative; width: min(1347px, 100%); height: 154px; margin: 0 auto; }
.site-header .logo { position: absolute; left: 0; top: 58px; width: 199px; height: 55px; }
.site-header .logo img { width: 199px; height: 55px; object-fit: cover; }
.hdr-contact { position: absolute; left: 247px; top: 58px; font: 700 16px/28.64px var(--ral); color: #fff; }
.hdr-contact a { display: block; color: #fff; text-decoration: none; }
.nav { position: absolute; left: 564px; top: 58px; }
.nav > ul { list-style: none; padding: 0; display: flex; }
.nav li { position: relative; }
.nav a { display: block; padding: 0 11px; font: 700 14px/47px var(--ral); color: #fff; text-decoration: none; white-space: nowrap; }
.nav a:hover, .nav a[aria-current="page"] { color: #c7c7c7; }
.nav .sub { display: none; position: absolute; top: 47px; left: 0; min-width: 180px; list-style: none; padding: 0; background: var(--navy); z-index: 20; }
.nav li:hover > .sub, .nav li:focus-within > .sub { display: block; }
.nav .sub a { line-height: 40px; padding: 0 16px; }
.nav-toggle { display: none; }
@media (max-width: 1180px) {
  .site-header, .site-header .in { height: auto; }
  .site-header .in { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 20px; }
  .site-header .logo, .hdr-contact, .nav { position: static; }
  .site-header .logo { height: auto; }
  .nav-toggle { display: block; margin-left: auto; background: none; border: 1px solid #fff; color: #fff; font: 700 14px var(--ral); padding: 8px 14px; cursor: pointer; }
  .nav { display: none; width: 100%; }
  .nav.open { display: block; }
  .nav > ul { flex-direction: column; }
  .nav .sub { display: block; position: static; padding-left: 16px; }
}
@media (max-width: 600px) { .hdr-contact { display: none; } .site-header .logo img { width: 160px; height: auto; } }

/* ---------------- Footer ---------------- */
.site-footer { background: var(--navy); border-top: 1px solid #fff; color: #fff; }
.site-footer .in { position: relative; width: min(1303px, 100%); height: 619px; margin: 0 auto; }
.f-brand { position: absolute; left: 0; top: 0; }
.f-logo { max-width: none; position: absolute; left: 6px; top: 58px; width: 67px; height: 55px; object-fit: cover; }
.f-name { position: absolute; left: 81px; top: 67px; font: 700 25px/normal "Kanit", var(--ral); letter-spacing: 1.25px; color: #fff; text-decoration: none; }
.f-tag { position: absolute; left: 0; top: 165px; width: 280px; font: 700 17px/23.97px var(--cg); }
.f-addr { position: absolute; left: 0; top: 277px; width: 299px; font: 700 17px/23.97px var(--cg); }
.f-contact { position: absolute; left: 0; top: 412px; font: 400 16px/35.72px var(--ral); white-space: nowrap; }
.f-contact a { color: #fff; font-weight: 700; text-decoration: none; }
.f-contact .em { font-size: 18px; text-decoration: underline; }
.f-contact .ph { font-size: 20px; }
.f-col { position: absolute; top: 107px; }
.f-col h2 { font: 500 22px/31.02px var(--cg); color: #fff; margin-bottom: 18px; }
.f-col ul { list-style: none; padding: 0; }
.f-col a { display: block; font: 500 18px/39px var(--cg); color: #fff; text-decoration: none; white-space: nowrap; }
.f-col a:hover { text-decoration: underline; }
.f-col a[aria-current="page"] { color: #f4f5fc; }
.f-menu { left: 356px; } .f-areas { left: 605px; } .f-serv { left: 866px; } .f-help { left: 1103px; }
.f-help a { line-height: 38px; }
.f-fb { position: absolute; left: 67px; top: 552px; width: 20px; height: 20px; }
.f-fb svg { width: 20px; height: 20px; fill: #fff; }
.f-copy { position: absolute; left: 50%; transform: translateX(-50%); top: 567px; width: 800px; text-align: center; font: 600 18px/32.22px var(--cg); }
@media (max-width: 1310px) {
  .site-footer .in { height: auto; padding: 40px 20px 30px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .site-footer .in > * { position: static; transform: none; width: auto; }
  .f-brand { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; }
  .f-tag, .f-addr, .f-contact { grid-column: 1 / -1; }
  .f-copy { grid-column: 1 / -1; }
  .f-fb { grid-column: 1 / -1; }
}

/* ---------------- Shared pieces ---------------- */
.btn-pill { display: inline-flex; align-items: center; justify-content: center; width: 210px; height: 45px; border-radius: 60px; font: 700 18px/1 var(--cg); letter-spacing: .9px; text-decoration: none; border: 2px solid var(--navy); }
.btn-pill.solid { background: var(--navy); color: #fcfcfc; }
.btn-pill.line { background: #fff; color: var(--navy); }
.btn-pill:hover { filter: brightness(1.12); }
.btn-sq { display: inline-flex; align-items: center; justify-content: center; background: var(--navy); color: #fff; text-decoration: none; }
.btn-book { width: 248px; height: 40px; font: 300 14px/1 var(--av); }
.btn-play { width: 325px; height: 47px; border-radius: 60px; font: 400 16px/1 "Playfair Display", serif; letter-spacing: .8px; }
.divider { width: 80px; height: 3px; background: #103c59; margin: 0 auto; border: 0; }
.links-row a { text-decoration: underline; }
.links-row .dot { padding: 0 1.2em; }

/* Google reviews strip (copied look of the Wix reviews widget) */
.rv { overflow: hidden; }
.rv-track { display: flex; gap: 12px; width: max-content; animation: rv 48s linear infinite; }
.rv:hover .rv-track { animation-play-state: paused; }
@keyframes rv { to { transform: translateX(calc(-50% - 6px)); } }
.rv-card { display: block; width: 180px; height: 130px; flex: none; border: 1px solid #e0e0e0; border-radius: 12px; background: #fff; padding: 11px 10px; text-decoration: none; color: #162d3d; font-family: Arial, Helvetica, sans-serif; overflow: hidden; text-align: left; }
.rv-head { display: flex; gap: 8px; align-items: flex-start; }
.rv-av { width: 22px; height: 22px; border-radius: 50%; background: var(--navy) center / cover no-repeat; color: #fff; font: 700 10px/22px Arial, sans-serif; text-align: center; flex: none; margin-top: 4px; }
.rv-name { font-size: 13px; line-height: 16px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 124px; }
.rv-date { font-size: 11px; line-height: 14px; color: #868aa5; display: block; }
.rv-stars { color: #ffd700; font-size: 13px; line-height: 19.5px; letter-spacing: 2px; margin: 4px 0 5px; }
.rv-text { font-size: 12px; line-height: 16px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .rv-track { animation: none; } .rv { overflow-x: auto; } }

/* Wix-style contact form */
.wform { display: grid; grid-template-columns: 250px 394px; gap: 0 18px; width: 662px; margin: 0 auto; text-align: left; font: 300 14px/14px var(--av); }
.wform label { display: block; margin-bottom: 9px; }
.wform .f { margin-bottom: 12px; }
.wform input, .wform textarea { display: block; width: 100%; height: 40px; border: 1px solid var(--ink); border-radius: 0; background: #fff; font: 300 14px var(--av); padding: 0 10px; }
.wform textarea { height: 264px; padding: 10px; resize: vertical; }
.wform .msg { grid-column: 2; grid-row: 1 / span 4; }
.wform button { grid-column: 1 / -1; height: 40px; margin-top: 3px; background: var(--navy); color: #fff; border: 1px solid var(--navy); font: 300 14px var(--av); cursor: pointer; }
.wform .hp { position: absolute; left: -5000px; }
.wform .form-status { grid-column: 1 / -1; margin-top: 10px; font: 700 14px/1.5 var(--ral); }
@media (max-width: 700px) { .wform { grid-template-columns: 1fr; width: 100%; } .wform .msg { grid-column: 1; grid-row: auto; } }

/* Map */
.map { display: block; width: 100%; border: 0; }

/* ---------------- Home ---------------- */
.h-hero { background: var(--band); height: 230px; padding-top: 74px; }
.h-hero h1 { font: 600 38px/45.6px var(--cg); color: var(--navy); }
.h-hero p { font: 600 21px/35.07px var(--cg); color: var(--grey); margin-top: 19px; }
.h-intro { padding: 57px 80px 0; height: 1009px; }
.h-intro .lead { font: 600 23px/27px var(--cg); }
.h-intro .sub { width: 702px; max-width: 100%; margin: 26px auto 0; font: 600 18px/30.6px var(--cg); color: var(--grey); }
.h-btns { display: flex; justify-content: center; align-items: center; gap: 0; margin-top: 34px; }
.h-btns .or { width: 110px; text-align: center; font: 600 20px/21.6px var(--cg); }
.h-note { margin-top: 29px; font: italic 600 17px/27px var(--cg); color: var(--grey); }
.h-intro .divider { margin-top: 44px; }
.h-three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 46px; }
.h-three img { width: 100%; height: 300px; object-fit: cover; }
.h-three h3 { font: 600 25px/30px var(--cg); margin-top: 40px; }
.h-three p { font: 600 18px/31.5px var(--cg); max-width: 317px; margin: 25px auto 0; }
.h-rev { background: var(--band); height: 480px; padding-top: 45px; }
.h-rev h2, .sec-h2 { font: 500 35px/normal var(--cg); color: var(--navy); }
.h-rev .rv { margin-top: 131px; }
.h-serv { background: var(--lilac); height: 880px; padding-top: 85px; }
.h-serv .sub, .h-why .sub { font: 600 19px/31.5px var(--cg); margin-top: 37px; }
.h-two { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 56px; }
.h-two img { width: 100%; height: 312px; object-fit: cover; }
.h-two h3 { font: 600 25px/30px var(--cg); margin-top: 58px; }
.h-two p { font: 600 18px/30.06px var(--cg); max-width: 316px; margin: 30px auto 0; }
.h-why { background: var(--lilac); height: 779px; padding-top: 85px; margin-top: 3px; }
.h-why .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; margin-top: 23px; }
.h-why .it svg { stroke: #004f7c; }
.h-why .it { height: 270px; }
.h-why svg { width: 48px; height: 48px; margin: 0 auto; display: block; }
.h-why h3 { font: 600 25px/30px var(--cg); margin-top: 12px; }
.h-why .it p { font: 600 18px/30.06px var(--cg); max-width: 315px; margin: 25px auto 0; }
.h-seo { padding: 42px 80px 49px; }
.h-seo h2 { font: 600 23px/31.625px var(--cg); }
.h-seo p { font: 600 19px/31.5px var(--cg); max-width: 977px; margin: 33px auto 0; }
.h-seo h2 + p { margin-top: 33px; }
.h-seo p + h2 { margin-top: 39px; }
.h-seo .links-row { margin-top: 26px; }
@media (max-width: 900px) {
  .h-hero, .h-intro, .h-rev, .h-serv, .h-why { height: auto; padding-bottom: 50px; }
  .h-hero { padding: 40px 20px; }
  .h-intro { padding: 40px 20px 50px; }
  .h-three, .h-two, .h-why .grid { grid-template-columns: 1fr; }
  .h-why .it { height: auto; margin-bottom: 30px; }
  .h-rev .rv { margin-top: 40px; }
  .h-btns { flex-wrap: wrap; gap: 14px; } .h-btns .or { width: 100%; }
  .h-seo { padding: 40px 20px; }
}

/* ---------------- Prices ---------------- */
.p-top { height: 366px; padding-top: 41px; }
.p-top h1 { font: 300 44px/62.04px var(--cg); }
.p-top .txt { width: 805px; max-width: calc(100% - 40px); margin: 41px auto 0; font: 400 18px/27px var(--ral); }
.p-top .txt p + p { margin-top: 22px; }
.p-cards { background: var(--lilac); padding: 33px 0 35px; }
.p-grid { display: grid; grid-template-columns: repeat(2, 355px); gap: 37px; justify-content: center; }
.p-card { height: 451px; border: 1px solid var(--ink); text-align: center; padding-top: 34px; }
.p-card h2 { font: 500 22px/31.02px var(--cg); }
.p-price { position: relative; display: inline-block; margin-top: 28px; height: 85px; }
.p-price .cur { position: absolute; left: -9px; top: 0; font: 700 18px/31.5px var(--ral); }
.p-price .num { font: 300 72px/85px var(--av); }
.p-price .vat { position: absolute; left: 100%; bottom: 31px; margin-left: 17px; white-space: nowrap; font: 400 15px/19px "Bai Jamjuree", var(--ral); }
.p-card .each { font: 400 15px/28.125px var(--ral); margin-top: -3px; }
.p-card .wl { font: 800 10px/14.1px var(--av); margin-top: 31px; }
.p-card .dims { font: 700 16px/30.08px var(--ral); margin-top: 22px; }
.p-card .enq { display: inline-flex; align-items: center; justify-content: center; width: 201px; height: 40px; margin-top: 26px; background: var(--navy2); color: #fff; text-decoration: none; font: 800 18px/1 var(--av); letter-spacing: 3.6px; }
.p-split { display: grid; grid-template-columns: 710px 1fr; height: 332px; }
.p-split .l { background: var(--navy); color: #fff; padding: 59px 0 0 128px; font: 500 21px/35.7px var(--cg); letter-spacing: 1.05px; }
.p-split .r { padding: 54px 0 0 43px; font: 400 18px/31.5px var(--ral); max-width: 490px; }
.p-split .r p + p { margin-top: 31px; }
.p-form { background: var(--lilac); height: 630px; padding-top: 64px; }
.get-touch { font: italic 300 38px/53.58px var(--cg); }
.p-form .lead { font: 400 18px/32.4px var(--ral); margin: 21px 0 23px; }
.p-rev { height: 315px; padding-top: 92px; }
@media (max-width: 800px) {
  .p-top { height: auto; padding: 40px 0; }
  .p-grid { grid-template-columns: minmax(0, 355px); }
  .p-split { grid-template-columns: 1fr; height: auto; } .p-split .l, .p-split .r { padding: 40px 20px; }
  .p-form { height: auto; padding: 50px 20px; }
}

/* ---------------- Size guide ---------------- */
.sg-top { padding-top: 57px; }
.sg-top h1 { font: 600 22px/normal var(--cg); letter-spacing: 1.1px; width: 384px; max-width: 100%; margin: 0 auto; }
.sg-top .intro { width: 720px; max-width: calc(100% - 40px); margin: 40px auto 0; font: 500 19px/22.8px var(--cg); }
.sg-body { width: 834px; max-width: calc(100% - 40px); margin: 23px auto 0; transform: translateX(-16px); }
@media (max-width: 900px) { .sg-body { margin-top: 40px; transform: none; } }
.sg-body .tip { font: 500 17px/23.97px var(--cg); }
.sg-body .q { font: 400 18px/31.5px var(--ral); margin-top: 48px; }
.sg-body .lst { font: 400 15px/30px var(--ral); margin-top: 30px; }
.sg-body .lst ul { padding-left: 27px; margin-bottom: 30px; }
.sg-btn { display: flex; justify-content: center; padding: 7px 0 32px; }
.sg-btn a { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 30px; border-radius: 60px; background: var(--navy); color: #fff; text-decoration: none; font: 700 19px/1 Arial, Helvetica, sans-serif; letter-spacing: .95px; }

/* ---------------- Services ---------------- */
.s-top { background: #f0f0f0; padding: 67px 80px 53px; }
.s-top h1 { font: 700 25px/35.25px var(--cg); }
.s-top .intro { max-width: 976px; margin: 37px auto 0; font: 600 20px/33.4px var(--cg); }
.s-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 32px; }
.s-cards > div:first-child p { margin-top: 88px; }
.s-cards img { width: 100%; height: 324px; object-fit: cover; }
.s-cards .body { background: var(--lilac); height: 548px; padding: 58px 23px 0; text-align: center; }
.s-cards h2 { font: 300 28px/38.5px var(--cg); }
.s-cards p { font: 400 16px/28px var(--ral); margin-top: 32px; }
.s-wide { width: 100%; height: 363px; object-fit: cover; }
.s-serv { background: var(--lilac); height: 674px; padding-top: 35px; }
.s-serv h2 { font: 300 56px/78.96px var(--cg); }
.s-serv .p1 { max-width: 767px; margin: 19px auto 0; font: 600 18px/32.4px var(--cg); }
.s-serv .p2 { max-width: 723px; margin: 50px auto 0; font: 600 18px/21.6px var(--cg); }
.s-serv .p2 a { text-decoration: underline; }
.s-icons { display: flex; justify-content: center; gap: 140px; margin-top: 71px; }
.s-icons .it { width: 200px; text-align: center; }
.s-icons svg { height: 61px; width: 61px; fill: var(--navy); display: block; margin: 0 auto; }
.s-icons h3 { font: 300 20px/26.8px var(--cg); margin-top: 30px; }
.s-icons p { font: 400 16px/27px var(--ral); margin-top: 22px; }
.s-quote { background: var(--navy); color: #fff; height: 341px; padding-top: 31px; position: relative; text-align: center; }
.s-quote svg.q { width: 40px; height: 40px; fill: #fff; display: block; margin: 0 auto; }
.s-quote p { max-width: 774px; margin: 58px auto 0; font: 400 15px/28.125px var(--ral); }
.s-quote .who { font: 400 18px/31.5px var(--ral); margin-top: 32px; }
.s-quote .arr { position: absolute; top: 136px; width: 15px; height: 29px; fill: #fff; }
.s-quote .arr.l { left: 75px; } .s-quote .arr.r { right: 75px; }
.s-map { height: 568px; text-align: center; }
.s-map .map { height: 392px; }
.s-map .ins { display: inline-block; margin-top: 53px; }
@media (max-width: 900px) {
  .s-top { padding: 40px 20px; } .s-cards { grid-template-columns: 1fr; } .s-cards .body { height: auto; padding: 30px 20px; }
  .s-serv, .s-quote, .s-map { height: auto; padding-bottom: 40px; } .s-serv { padding: 35px 20px 40px; }
  .s-icons { flex-direction: column; align-items: center; gap: 30px; } .s-quote .arr { display: none; } .s-quote p { padding: 0 20px; }
}

/* ---------------- About ---------------- */
.a-main { padding: 56px 0 40px; }
.a-main .shield { width: 206px; height: 173px; object-fit: cover; margin: 0 auto; }
.a-text { width: 915px; max-width: calc(100% - 40px); margin: 25px auto 0; font: 400 18px/31.5px var(--ral); }
.a-text h1 { font: 300 32px/45.12px var(--cg); }
.a-text h2 { font: 300 28px/38.5px var(--cg); margin-top: 31px; }
.a-text ul { padding-left: 32px; }
.a-text .gap { margin-top: 32px; }
.a-text a { text-decoration: underline; }
.a-btn { display: flex; justify-content: center; margin-top: 30px; }
.a-btn a { display: inline-flex; align-items: center; justify-content: center; width: 126px; height: 45px; background: var(--navy); border: 1px solid var(--navy); color: #fff; font: 300 14px/1 var(--av); text-decoration: none; }
.a-touch { background: #fcfcfc; height: 655px; padding-top: 70px; text-align: center; }
.a-touch h2 { font: 700 46px/normal Helvetica, Arial, sans-serif; color: var(--navy); letter-spacing: 6.9px; }
.a-touch .sub { font: italic 300 20px/24px "Bree", var(--ral); color: #383838; letter-spacing: 1.6px; margin-top: 12px; }
.a-boxes { display: grid; grid-template-columns: 334px 323px 323px; width: 980px; max-width: 100%; margin: 56px auto 0; }
.a-boxes > div { height: 360px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 30px; font: italic 300 16px/25.6px "Bree", var(--ral); letter-spacing: 1px; padding: 0 8px; }
.a-boxes svg { height: 60px; width: auto; }
.a-boxes a { text-decoration: none; }
.a-rev { height: 260px; padding-top: 65px; }
@media (max-width: 1000px) { .a-boxes { grid-template-columns: 1fr; } .a-boxes > div { height: 240px; } .a-touch { height: auto; padding-bottom: 50px; } .a-touch h2 { font-size: 34px; } }

/* ---------------- FAQ ---------------- */
.faq-w { width: 980px; max-width: 100%; margin: 0 auto; padding: 85px 32px 0; }
.faq-head { display: flex; justify-content: space-between; align-items: center; }
.faq-head h2 { font: 600 22px/26.4px var(--cg); }
.faq-head svg { width: 24px; height: 24px; }
.faq-tabs { display: flex; align-items: center; gap: 0; margin-top: 45px; border-bottom: 1px solid #e6e6e6; }
.faq-tabs button { background: none; border: 0; padding: 0 27px 10px; font: 500 22px/33px var(--cg); color: var(--ink); cursor: pointer; white-space: nowrap; border-bottom: 2px solid transparent; }
.faq-tabs button[aria-selected="true"] { color: var(--navy); border-bottom-color: var(--navy); }
.faq-list { padding-top: 26px; }
.faq-list[hidden] { display: none; }
.faq-q { padding-bottom: 50px; }
.faq-q h3 { font: 700 22px/30.8px var(--cg); }
.faq-q p { font: 500 22px/33px var(--cg); margin-top: 27px; max-width: 916px; }
.faq-q a { text-decoration: underline; }
.faq-q .share { display: block; margin-top: 36px; width: 24px; height: 24px; }
.faq-more { width: 980px; max-width: 100%; margin: -32px auto 0; padding: 0 25px 54px; font: 500 22px/38.5px var(--cg); }
.faq-more h2 { font: 700 22px/26.4px var(--cg); margin-bottom: 26px; }
.faq-rev { background: var(--lilac); height: 380px; padding-top: 110px; }
@media (max-width: 800px) { .faq-tabs { overflow-x: auto; } .faq-w { padding: 30px 20px 0; } }

/* ---------------- Contact ---------------- */
.ct { padding-top: 64px; height: 843px; text-align: center; }
.ct h1 { font: 500 40px/54px var(--cg); color: var(--navy); }
.ct .em { display: inline-block; margin-top: 19px; font: 700 21px/39.375px var(--ral); color: var(--navy); text-decoration: none; }
.ct .ph { display: block; margin-top: 30px; font: 700 27px/50.625px var(--ral); color: var(--navy); text-decoration: none; }
.ct .get-touch { margin-top: 11px; }
.ct .lead { width: 662px; max-width: calc(100% - 40px); margin: 17px auto 27px; font: 400 18px/32.4px var(--ral); }
.ct-map .map { height: 460px; }
@media (max-width: 800px) { .ct { height: auto; padding: 50px 20px; } }

/* ---------------- Advice (blog list) ---------------- */
.bl { width: 980px; max-width: 100%; margin: 0 auto; padding: 24px 20px 20px; }
.bl .all { font: 400 18px/31.5px var(--ral); color: var(--navy); text-decoration: none; }
.bl-card { display: grid; grid-template-columns: 454px 1fr; height: 341px; border: 1px solid var(--line); margin-top: 32px; }
.bl .all + .bl-card { margin-top: 44px; }
.bl-card img { width: 100%; height: 339px; object-fit: cover; }
.bl-card .body { position: relative; padding: 34px 36px 0; }
.meta { font: 400 12px/normal var(--ral); }
.meta span + span::before { content: "·"; padding: 0 7px; }
.bl-card h2 { font: 300 28px/normal var(--cg); margin-top: 22px; }
.bl-card h2 a { text-decoration: none; }
.bl-card h2 a:hover { color: var(--navy); }
.bl-card .ex { font: 400 16px/24px var(--ral); margin-top: 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.dots { position: absolute; right: 30px; top: 32px; width: 19px; height: 19px; }
@media (max-width: 800px) { .bl-card { grid-template-columns: 1fr; height: auto; } .bl-card img { height: 220px; } .bl-card .body { padding: 24px 20px 30px; } }

/* ---------------- Blog post ---------------- */
.po { width: 980px; max-width: 100%; margin: 0 auto; padding: 24px 20px 30px; }
.po-top { position: relative; height: 76px; }
.po-top .all { font: 400 18px/31.5px var(--ral); text-decoration: none; }
.po-top .book { position: absolute; left: 50%; top: 9px; transform: translateX(-50%); display: inline-block; padding: 0 4px; background: var(--navy); color: #fff; font: 400 18px/32px var(--ral); text-decoration: none; white-space: nowrap; }
.po-box { border: 1px solid var(--line); padding: 64px 100px 60px; }
.po-box .meta { font-size: 14px; line-height: 21px; position: relative; }
.po-box .dots { top: 0; right: 0; }
.po-box h1 { font: 300 40px/50px var(--cg); margin-top: 21px; }
.po-box .upd { font: 400 14px/21px var(--ral); margin-top: 18px; }
.po-body { font: 400 18px/27px var(--ral); margin-top: 47px; }
.po-body > * + * { margin-top: 24px; }
.po-body img { width: 100%; height: auto; }
.po-body h2 { font: 300 28px/35px var(--cg); }
.po-body h2 + *, .po-body h3 + * { margin-top: 31px; }
.po-body > ul, .po-body > ol { margin-top: 27px; }
.po-body h3 { font: 300 24px/31px var(--cg); }
.po-body ul, .po-body ol { padding-left: 36px; }
.po-body li + li { margin-top: 0; }
.po-body li p + p { margin-top: 6px; }
.po-body a { color: var(--navy); text-decoration: none; }
.po-body a:hover { text-decoration: underline; }
.po-share { display: flex; gap: 30px; border-top: 1px solid var(--ink); margin-top: 36px; padding-top: 23px; height: 66px; }
.po-share a { width: 19px; height: 19px; }
.po-share svg { width: 19px; height: 19px; fill: var(--ink); }
.po-stats { border-top: 1px solid var(--ink); height: 40px; }
.po-recent { display: flex; justify-content: space-between; align-items: baseline; margin-top: 18px; }
.po-recent h2 { font: 400 18px/27px var(--ral); }
.po-recent a { font: 400 14px/21px var(--ral); text-decoration: none; }
.po-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 33px; margin-top: 20px; }
.po-cards a { display: block; height: 313px; border: 1px solid var(--line); text-decoration: none; }
.po-cards img { width: 100%; height: 162px; object-fit: cover; }
.po-cards span { display: block; padding: 25px 24px 0; font: 300 18px/normal var(--cg); }
@media (max-width: 800px) { .po-box { padding: 30px 18px; } .po-cards { grid-template-columns: 1fr; } .po-top { height: auto; } .po-top .book { position: static; transform: none; margin: 10px 0 20px; } }

/* ---------------- Business / Personal rows ---------------- */
.bz-top { padding: 82px 80px 55px; }
.bz-top h1 { font: 700 25px/normal var(--cg); }
.bz-top .intro { max-width: 953px; margin: 33px auto 0; font: 600 22px/30.25px var(--cg); }
.bz-rows { background: var(--ink); }
.bz-row { display: grid; grid-template-columns: 707px 1fr; gap: 1px; padding: 1px 1px 0; height: 552px; }
.bz-row:first-child { height: 577px; }
.bz-row > * { background: #fff; }
.bz-row { grid-template-rows: minmax(0, 1fr); }
.bz-row img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
@media (max-width: 900px) { .bz-row { grid-template-rows: auto; } }
.bz-row.flip .txt { order: -1; }
.bz-row .txt { display: flex; flex-direction: column; align-items: center; padding: 38px 0 0; }
.bz-row .txt > div { width: 488px; max-width: calc(100% - 40px); }
.bz-row h2 { font: 600 20px/27.5px var(--cg); text-align: center; }
.bz-row p { font: 600 20px/33.4px var(--cg); margin-top: 39px; }
.bz-end { width: 980px; max-width: calc(100% - 40px); margin: 0 auto; padding: 48px 0 50px; text-align: center; font: 400 18px/31.5px var(--ral); }
.bz-end p + p { margin-top: 31px; }
.bz-end a { text-decoration: underline; }
.bz-end .links-row { margin-top: 63px; }
.ps .bz-top { padding: 55px 80px 69px; }
.ps .bz-top h1 { font-size: 26px; }
.ps .bz-top .intro { font: 600 20px/33.4px var(--cg); max-width: 975px; }
.ps .bz-row h2 { font: 700 22px/30.25px var(--cg); }
.ps .bz-row p { font: 600 20px/35px var(--cg); text-align: center; margin-top: 46px; }
.ps .bz-end { width: 837px; }
.ps .bz-end h2 { font: 700 22px/30.25px var(--cg); margin-bottom: 40px; }
@media (max-width: 900px) {
  .bz-top, .ps .bz-top { padding: 40px 20px; }
  .bz-row, .bz-row:first-child { grid-template-columns: minmax(0, 1fr); height: auto; }
  .bz-row img { height: 260px; } .bz-row.flip .txt { order: 0; } .bz-row .txt { padding: 30px 0 40px; }
}

/* ---------------- Data protection ---------------- */
.dp { width: 853px; max-width: calc(100% - 40px); margin: 0 auto; padding: 94px 0 74px; font: 400 18px/31.5px var(--ral); }
.dp h1 { font: 700 18px/31.5px var(--ral); text-align: center; }
.dp h2 { font: 700 18px/31.5px var(--ral); margin-top: 31px; }
.dp h1 + h2 { margin-top: 31px; }
.dp ul { padding-left: 38px; }
.dp .end { margin-top: 31px; }
.dp .tag { text-align: center; font-size: 14px; margin-top: 8px; }

/* ---------------- Area pages ---------------- */
.ar { padding: 25px 0 70px; }
.ar .top-btn { display: flex; justify-content: center; }
.ar .col { margin: 0 auto; }
.ar .col p, .ar .col li { font: 400 18px/31.5px var(--ral); }
.ar .col a { text-decoration: underline; }
.ar .links-row { text-align: center; margin-top: 62px; font: 400 18px/31.5px var(--ral); }
.ar-bot { background: var(--lilac); padding: 69px 0 41px; margin-bottom: 14px; }
.ar-bot .col { width: 780px; max-width: calc(100% - 40px); }
.ar-cam .col { width: 784px; max-width: calc(100% - 40px); transform: translateX(-15px); }
.ar-cam .links-row { margin-top: 92px; }
@media (max-width: 900px) { .ar-cam .col { transform: none; } .ar .col img { margin-left: auto !important; margin-right: auto !important; } }
.ar-new { background: #fafafe; padding: 41px 0 56px; }
.ar-new .col { width: 822px; max-width: calc(100% - 40px); }
.ar-new .col p { font: 700 18px/31.5px var(--cg); }
.ar-ely .col { width: 980px; max-width: calc(100% - 40px); }
.ar-bury .col { width: 910px; max-width: calc(100% - 40px); }
.ar-bury .col p.cgl { font: 300 18px/31.5px var(--cg); }
.ar-hav .col { width: 851px; max-width: calc(100% - 40px); }
.social { display: flex; gap: 5px; justify-content: center; margin: 0 0 -12px; }
.social a { width: 25px; height: 25px; border-radius: 50%; background: var(--navy); display: grid; place-items: center; }
.social svg { width: 13px; height: 13px; fill: #fff; }
@media (max-width: 1310px) { .f-brand > * { position: static; } .f-name { line-height: 55px; } }
.ps .bz-row:first-child { height: 552px; }
.ps .bz-end { padding-bottom: 41px; }
@media (max-width: 900px) { .ps .bz-row:first-child { height: auto; } }

.ar-ely { padding-bottom: 23px; }
.ar-hav { padding-bottom: 45px; }
.ar-cam { padding-bottom: 53px; }
.ar-new { padding-bottom: 48px; }
.ar-bury { padding-bottom: 15px; }
@media (max-width: 1310px) { .f-col a { white-space: normal; line-height: 1.5; padding: 6px 0; } .f-copy { width: auto; } }
@media (max-width: 700px) { .ar .col img, .ar-hav .col img { max-width: 100%; height: auto !important; } .faq-q h3, .faq-q p { font-size: 20px; } .a-text ul { padding-left: 24px; } }
@media (max-width: 900px) { .ar .col h1 { margin-left: 0 !important; } }

/* Size comparison table (was an HTML embed on Wix) */
.sg-table { width: 883px; max-width: calc(100% - 40px); height: 456px; margin: 43px auto 0; padding: 8px; }
.sg-table .wrapt { max-width: 100%; overflow-x: auto; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 16px; line-height: normal; box-shadow: 0 4px 20px rgba(0,0,0,.08); border-radius: 8px; }
.sg-table table { width: 100%; border-collapse: collapse; background: #fff; }
.sg-table thead tr { background: var(--navy); color: #fff; }
.sg-table th { padding: 20px 15px; text-align: left; font-size: 16px; font-weight: 700; }
@media (max-width: 900px) { .sg-table { height: auto; padding: 0; } .sg-table table { min-width: 640px; } }

/* ---- size guide: illustrated units ---- */
.sg-units { width: 960px; max-width: calc(100% - 40px); margin: 46px auto 0; }
.sg-units-note { text-align: center; font: 500 17px/1.4 var(--cg); color: var(--grey, #4a4a4a); margin: 0 0 18px; }
.sg-units-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.sg-unit { margin: 0; background: #fff; border: 1px solid #dde6ec; border-radius: 8px; padding: 14px 12px 16px; display: flex; flex-direction: column; }
.sg-unit img { display: block; width: 100%; height: auto; }
.sg-unit figcaption { margin-top: 8px; text-align: center; font: 400 14px/1.45 var(--ral); color: #202020; }
.sg-unit strong { display: block; font: 600 22px/1.2 var(--cg); color: var(--navy); margin-bottom: 4px; }
.sg-unit .dim { display: block; color: #4a4a4a; font-size: 13px; }
.sg-unit .fit { display: block; margin-top: 6px; }

@media (max-width: 560px) { .sg-units-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---- area pages: local travel info + links between towns ---- */
.ar-local { margin-top: 33px; }
.ar-local h2 { font: 600 22px/30.25px var(--cg); margin-bottom: 10px; }
.ar-local p { margin-bottom: 14px; }
.ar-times { list-style: none; padding: 0; margin: 6px 0 16px; border-top: 1px solid #dde6ec; max-width: 560px; }
.ar .col .ar-times li { display: flex; justify-content: space-between; gap: 16px; padding: 7px 2px; border-bottom: 1px solid #dde6ec; font: 400 15px/1.4 var(--ral); }
.ar-times b { font-weight: 700; color: var(--navy); }
.ar-times span { color: #4a4a4a; text-align: right; }
.area-links { font: 600 18px/31px var(--cg); margin: 10px 0 0; }
.area-links .lbl { color: #4a4a4a; font-weight: 500; }
.area-links a { color: var(--navy); }
.area-links .dot { margin: 0 8px; color: #8aa3b7; }

/* ---- home: trust strip (replaces the small divider under the intro) ---- */
.h-intro { height: auto; padding-bottom: 120px; }
.trust { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 34px; margin: 40px auto 0; padding: 16px 0; max-width: 980px; border-top: 1px solid #d7e1e8; border-bottom: 1px solid #d7e1e8; }
.trust li { display: flex; align-items: center; gap: 9px; text-align: left; color: var(--navy); font: 500 15px/1.3 var(--ral); letter-spacing: .2px; }
.trust svg { flex: none; opacity: .9; }
@media (max-width: 700px) { .trust { gap: 10px 20px; justify-content: flex-start; padding: 14px 4px; } .trust li { width: calc(50% - 10px); font-size: 14px; } .h-intro { padding-bottom: 50px; } }

/* Google rating line */
.g-rating { margin: 14px 0 0; text-align: center; font: 500 15px/1.4 var(--ral); }
.g-rating a { color: var(--navy); text-decoration: none; }
.g-rating a:hover { text-decoration: underline; }
.g-rating .stars { color: #e3a21a; letter-spacing: 2px; margin-right: 6px; }
/* Tap-to-call bar (phones only) */
.call-bar { display: none; }
@media (max-width: 600px) {
  .call-bar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); background: var(--navy); color: #fff; text-align: center; font: 600 17px/1.2 var(--ral); text-decoration: none; border-top: 1px solid rgba(255,255,255,.35); }
  body { padding-bottom: 56px; }
}
