:root{--bg:#fdf8ef;--ink:#1d3a40;--teal:#1f5560;--teal-d:#17434c;--gold:#f0b94d;--coral:#c2523c;--sage:#dfe8d8;--sand:#f6e9cf;--muted:#566b6e;--line:#e6dcc3;--serif:"Fraunces",Georgia,serif;--sans:"Nunito Sans",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.65 var(--sans)}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.wrap{width:min(100% - 40px,1160px);margin-inline:auto}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0}
h2{font-size:clamp(28px,3.6vw,42px);margin-bottom:14px}
.lab{font-weight:700;font-size:15px;color:var(--coral);margin:0 0 10px}
section{padding:88px 0}
/* header */
header{background:var(--teal);color:#fdf8ef;position:sticky;top:0;z-index:20;box-shadow:0 2px 12px rgba(20,54,60,.18)}
.bar{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:16px;padding:10px 0}
.logo{width:52px;height:52px;border-radius:50%;border:3px solid var(--gold);background:var(--sand);display:grid;place-items:center;overflow:hidden;flex:none}
.logo img{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.logo.empty-logo::before{content:"RO";font:600 16px var(--serif);color:var(--teal)}
.who{display:block;min-width:0}.who .role{display:block;font-size:12px;opacity:.85;line-height:1.2}
.who .name{display:block;font:600 24px/1.1 var(--serif);margin:2px 0}
.who .reg{display:block;font-size:12px;opacity:.85;line-height:1.2}
nav{display:flex;gap:22px;align-items:center;justify-content:flex-end;flex-wrap:wrap;font-size:15px;font-weight:600}
nav a:hover{color:var(--gold)}
nav .cta{background:var(--gold);color:var(--ink);padding:9px 18px;border-radius:99px}nav .cta:hover{background:#f6cb74;color:var(--ink)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--teal);color:#fff;padding:15px 28px;border-radius:99px;font:700 16px var(--sans);border:0;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--teal-d)}.btn:disabled{opacity:.7;cursor:not-allowed}
.link{font-weight:700;color:var(--teal);border-bottom:2px solid var(--gold)}
.row{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
/* hero */
.hero{background:linear-gradient(180deg,var(--sand),var(--bg));padding:64px 0 84px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(36px,5vw,58px);letter-spacing:-.01em;margin-bottom:22px}
.lead{font-size:19px;color:var(--muted);max-width:560px;margin:0 0 30px}
.trust{margin-top:28px;font-size:15px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 18px}.trust span:before{content:"✓ ";color:var(--coral);font-weight:700}
.photo{position:relative;aspect-ratio:4/5;max-width:420px;margin-left:auto;width:100%}
.photo:before{content:"";position:absolute;right:-14px;bottom:-14px;width:70%;height:70%;border-radius:50%;background:var(--gold);opacity:.55}
.frame{position:absolute;inset:0;border-radius:999px 999px 28px 28px;overflow:hidden;background:linear-gradient(160deg,#2e7480,var(--teal))}
.frame img{width:100%;height:100%;object-fit:cover;object-position:center top}
/* about */
.about .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px;align-items:start}
.copy p{font-size:18px;color:#3f5558;margin:0 0 22px;max-width:700px}
/* services */
.services{background:#fffaf0;border-block:1px solid var(--line)}
.sub{color:var(--muted);max-width:560px;margin:0 0 40px}
.big{background:#fbe3da;border-radius:24px;padding:34px;margin-bottom:28px;display:grid;grid-template-columns:1fr 1.2fr;gap:30px;align-items:center}
.card h3,.big h3{font-size:22px;margin-bottom:8px}.card p,.big p{margin:0;color:#4b5f62;font-size:16px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{border-radius:24px;padding:28px}.c1{background:var(--sage)}.c2{background:var(--sand)}.c3{background:#d6e6e8}
/* approach */
.approach{background:var(--sage)}
.approach .wrap{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.quote{font:italic 400 clamp(26px,3.2vw,40px)/1.35 var(--serif);color:var(--teal);margin:0}
.approach .copy p{font-size:17px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.tag{background:#fffaf0;border-radius:99px;padding:7px 15px;font-size:14px;font-weight:600;color:var(--teal)}
/* credentials */
.creds{background:var(--teal);color:#fdf8ef}.creds h2{color:#fff;max-width:640px}.creds .lab{color:var(--gold)}
.cg{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.cg div{background:rgba(255,255,255,.08);border-radius:20px;padding:24px}
.cg small{display:block;color:var(--gold);font-weight:700;font-size:14px;margin-bottom:6px}.cg span{font-size:16px}
/* contact */
.contact .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:stretch}
.box{background:#fff;border-radius:28px;padding:38px;box-shadow:0 12px 40px rgba(31,85,96,.09)}
.box h3{font-size:26px;margin-bottom:22px}.box .btn{margin-top:8px}
.det{padding:14px 0;border-top:1px solid var(--line)}.det small{display:block;font-weight:700;font-size:13px;color:var(--coral)}
.det a{color:var(--teal);font-weight:600}
/* banner + footer */
.brand-banner{background:linear-gradient(90deg,#f9eccf,var(--sand) 55%,#f1d9a8);border-block:1px solid var(--line);padding:44px 0}
.bb{display:grid;grid-template-columns:100px 1fr;gap:28px;align-items:center}
.bb .logo{width:100px;height:100px;border-width:4px}
.bb .role{font-size:15px;font-weight:700;color:var(--coral)}
.bb .name{font:600 clamp(30px,4vw,48px)/1.1 var(--serif);margin:2px 0}
.bb .reg{font-size:14px;color:var(--muted)}
.bb .tag-line{margin-top:16px;padding-top:14px;border-top:1px solid rgba(31,85,96,.2);font:italic 400 18px var(--serif);color:var(--teal)}
footer{background:#14363c;color:#cfe0e1;padding:28px 0;font-size:14px}
.fr{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.fr .fn{font:600 17px var(--serif);color:#fff}
/* faq */
.faq{background:#fffaf0;border-top:1px solid var(--line)}
.faq-list{display:grid;gap:12px;max-width:860px;margin-top:28px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 24px}
.faq summary{cursor:pointer;list-style:none;font:600 19px/1.4 var(--serif);padding:20px 28px 20px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font:600 24px var(--sans);color:var(--coral)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin:0 0 20px;color:#4b5f62}
/* enquire page */
.page-intro{background:linear-gradient(180deg,var(--sand),var(--bg));padding:72px 0 56px}
.page-intro h1{font-size:clamp(38px,5.5vw,64px);max-width:780px;margin-bottom:18px}
.page-intro p{max-width:680px;font-size:19px;color:var(--muted);margin:0}
.enquiry{padding:56px 0 96px}
.eg{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}
.side h2{font-size:clamp(30px,3.6vw,44px)}.side p{color:#4b5f62;max-width:480px;margin:0 0 22px}
.note{background:var(--sand);border-radius:20px;padding:22px 24px}.note strong{display:block;font:600 19px var(--serif);margin-bottom:6px}.note div{font-size:15px;color:#4b5f62}
.fc{background:#fff;border-radius:28px;padding:clamp(26px,4vw,44px);box-shadow:0 12px 40px rgba(31,85,96,.09)}
.fc h2{font-size:clamp(26px,3vw,36px)}.intro-text{color:var(--muted);font-size:15px;margin:0 0 30px}
form{display:grid;gap:22px}.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:grid;gap:8px;min-width:0}
label{font-size:14px;font-weight:700;color:#3f5558}
input,select,textarea{width:100%;border:1.5px solid #d9cdb2;border-radius:12px;background:#fffdf8;color:var(--ink);font:inherit;font-size:16px;padding:13px 15px;outline:none;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,85,96,.14)}
textarea{min-height:150px;resize:vertical}
label.consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;font-weight:400;line-height:1.6;color:#4b5f62}
label.consent input{width:20px;height:20px;margin-top:3px;padding:0;flex:none;accent-color:var(--teal)}
.form-note,.helper{font-size:13px;color:var(--muted);margin:0}
.turnstile-wrap{min-height:65px}
.status{display:none;padding:14px 16px;border-radius:12px;background:#f4ead5;color:#4b5f62;font-size:14px}.status.show{display:block}
.status.success{background:#e1ecd8;color:#2f5030}.status.error{background:#f8e0d8;color:#8a3a28}
.fgrid>*,.eg>*,.contact .wrap>*,.hero .wrap>*,.about .wrap>*,.approach .wrap>*{min-width:0}
select{text-overflow:ellipsis}
.det a,.det span,.note div,.cg span{overflow-wrap:anywhere}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,input,select,textarea{transition:none}}
/* responsive */
@media(min-width:1400px){body{font-size:18px}.wrap{width:min(100% - 80px,1240px)}}
@media(max-width:980px){
.hero .wrap,.about .wrap,.approach .wrap,.contact .wrap,.eg,.big{grid-template-columns:1fr;gap:36px}
.photo{margin:0 auto;max-width:360px}
.grid,.cg{grid-template-columns:1fr 1fr}
section{padding:68px 0}.hero{padding:48px 0 72px}
nav{gap:16px}}
/* phones and small tablets: compact sticky header with a Menu button */
.burger{display:none}
@media(max-width:740px){
html{scroll-padding-top:84px}
.bar{grid-template-columns:44px 1fr auto;grid-template-areas:"logo who burger" "nav nav nav";gap:0 12px;padding:10px 0}
.bar .logo{grid-area:logo;width:44px;height:44px}
.who{grid-area:who}.who .name{font-size:20px}.who .role,.who .reg{font-size:11px}
.js .burger{display:inline-flex;grid-area:burger;align-items:center;justify-content:center;min-height:44px;padding:0 18px;background:transparent;border:1.5px solid rgba(253,248,239,.5);border-radius:99px;color:#fdf8ef;font:700 14px var(--sans);cursor:pointer}
.js header.open .burger{background:var(--gold);border-color:var(--gold);color:var(--ink)}
nav{grid-area:nav;flex-direction:column;align-items:stretch;gap:0;margin-top:8px;padding:4px 0 10px;border-top:1px solid rgba(253,248,239,.18);max-height:calc(100vh - 90px);overflow-y:auto}
.js nav{display:none}.js header.open nav{display:flex}
nav a{padding:13px 4px;font-size:16px;border-bottom:1px solid rgba(253,248,239,.1)}
nav .cta{margin-top:12px;text-align:center;padding:13px;border-bottom:0}}
@media(max-width:620px){
body{font-size:16px}
.wrap{width:min(100% - 28px,1160px)}
section{padding:52px 0}.hero{padding:36px 0 56px}.page-intro{padding:44px 0 32px}.enquiry{padding:36px 0 64px}
.grid,.cg,.fgrid{grid-template-columns:1fr}
h2{font-size:28px}.hero h1{font-size:34px}.page-intro h1{font-size:36px}
.lead,.page-intro p{font-size:17px}.copy p{font-size:17px}.sub{margin-bottom:28px}
.photo{max-width:300px}
.big{padding:24px;gap:14px}.card{padding:22px}.box{padding:24px}.cg div{padding:20px}
.fc{padding:20px 16px}
.btn{width:100%;padding:15px 20px}.row{gap:16px}.row .link{margin:0 auto}
.bb{grid-template-columns:1fr;gap:16px}.bb .logo{width:92px;height:92px}
.fr{flex-direction:column;gap:8px}
.faq summary{font-size:17px}.faq details{padding:0 18px}}
@media(max-width:340px){.turnstile-wrap{transform:scale(.85);transform-origin:0 0;height:56px;min-height:0}}
