:root{--gold:#c99a3d;--gold-dark:#ad7f27;--teal:#12b8a5;--ink:#2b2b2b;--paper:#fafaf8;--serif:"DM Serif Display",Georgia,serif;--sans:"Plus Jakarta Sans",Arial,sans-serif}*{box-sizing:border-box}html{background:#153d41;scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);background:#153d41}a{color:inherit}.hero{position:relative;display:flex;flex-direction:column;min-height:100svh;isolation:isolate;padding:0 clamp(24px,5vw,78px) 44px;background:url("../assets/images/mediterranean-villa.webp") center 53%/cover no-repeat}.hero::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(10,36,39,.72) 0,rgba(10,36,39,.38) 38%,rgba(10,36,39,.6) 100%)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 0 18px;border-bottom:1px solid rgba(255,255,255,.38);color:#fff}.group-name{font:400 clamp(19px,2vw,25px)/1 var(--serif);letter-spacing:.02em;text-decoration:none}.topbar__right{display:flex;align-items:center;gap:28px}.region{display:flex;align-items:center;gap:9px;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.region i{display:block;width:18px;height:1px;background:var(--gold)}.languages{display:flex;align-items:center;gap:7px;color:rgba(255,255,255,.68);font-size:10px}.languages button{padding:7px 2px;border:0;color:inherit;background:transparent;font:700 10px var(--sans);cursor:pointer}.languages button[aria-pressed="true"]{color:#fff;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}.languages button:focus-visible,.choice-card:focus-visible{outline:3px solid #fff;outline-offset:4px}.intro{max-width:900px;margin:auto;padding:42px 0 34px;color:#fff;text-align:center;text-shadow:0 2px 18px rgba(0,0,0,.2)}.intro__kicker{color:#ecd7a8;font-size:11px;font-weight:700;letter-spacing:.2em}.intro h1{margin:8px 0 10px;font:400 clamp(58px,7vw,102px)/.95 var(--serif)}.intro p{max-width:720px;margin:auto;color:rgba(255,255,255,.92);font-size:15px;line-height:1.65}.choices{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:100%;max-width:1200px;margin:auto}.choice-card{display:grid;grid-template-columns:.82fr 1.18fr;min-height:330px;overflow:hidden;border:1px solid rgba(255,255,255,.65);border-radius:19px;background:rgba(250,250,248,.97);box-shadow:0 22px 58px rgba(4,22,24,.28);text-decoration:none;transition:transform .28s ease,box-shadow .28s ease}.choice-card:hover{transform:translateY(-5px);box-shadow:0 28px 68px rgba(4,22,24,.36)}.choice-card__image{background-position:center;background-size:cover}.choice-card--estate .choice-card__image{background-image:url("../assets/images/mediterranean-villa.webp")}.choice-card--interior .choice-card__image{background-image:url("../assets/images/mediterranean-interior.webp")}.choice-card__content{display:flex;flex-direction:column;align-items:flex-start;padding:30px}.choice-card__type{margin-bottom:13px;color:var(--gold-dark);font-size:9px;font-weight:700;letter-spacing:.16em}.choice-card img{display:block;width:170px;height:82px;object-fit:contain;object-position:left center}.choice-card--interior img{width:205px}.choice-card h2{margin:12px 0 7px;font:400 23px/1.1 var(--serif)}.choice-card p{margin:0;color:#69635d;font-size:11px;line-height:1.55}.button{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;margin-top:auto;padding-top:18px;color:var(--ink);font-size:11px;font-weight:700}.button b{font-size:20px;font-weight:400;transition:transform .2s ease}.choice-card:hover .button b{transform:translateX(5px)}footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;padding:25px clamp(24px,5vw,78px);color:rgba(255,255,255,.72);font-size:9px;letter-spacing:.04em}footer div{display:grid;gap:4px}footer strong{color:#edd8a9;font:400 17px var(--serif)}footer p{margin:0;text-align:center}footer nav{display:flex;justify-content:flex-end;gap:20px}footer a{text-underline-offset:3px}@media(max-width:850px){.hero{padding-inline:18px}.topbar{align-items:flex-start}.topbar__right{align-items:flex-end;flex-direction:column;gap:6px}.region{font-size:7px}.intro{padding:28px 0 24px}.intro h1{font-size:56px}.intro p{max-width:620px;font-size:12px}.choices{gap:14px}.choice-card{grid-template-columns:38% 62%;min-height:270px}.choice-card__content{padding:20px}.choice-card p{font-size:10px}footer{grid-template-columns:1fr auto}footer p{display:none}}@media(max-width:560px){.hero{min-height:auto;padding-bottom:20px}.topbar{padding-top:17px}.group-name{max-width:190px;font-size:18px}.region{display:none}.languages button{min-width:28px;min-height:32px}.intro{padding:22px 4px 20px}.intro__kicker{font-size:8px}.intro h1{font-size:45px}.intro p{font-size:10px;line-height:1.5}.choices{grid-template-columns:1fr;gap:12px}.choice-card{grid-template-columns:38% 62%;min-height:208px;border-radius:12px}.choice-card__content{padding:15px}.choice-card__type{margin-bottom:6px;font-size:7px}.choice-card img{width:120px;height:58px}.choice-card--interior img{width:140px}.choice-card h2{margin:5px 0;font-size:17px}.choice-card p{font-size:8px;line-height:1.4}.button{padding-top:8px;font-size:9px}.button b{font-size:17px}footer{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:20px 18px}footer nav{gap:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.choice-card,.button b{transition:none}}

/* Hero copy from the selected Complete Living direction. */
.intro{max-width:1040px;padding:30px 0 28px}
.intro h1{margin:8px 0 12px;font-size:clamp(50px,6vw,86px);line-height:.93}
.intro h1 em{color:#ecd7a8;font-weight:400}
@media(max-width:850px){.intro{padding:22px 0 20px}.intro h1{font-size:50px}}
@media(max-width:560px){.intro{padding:18px 4px 16px}.intro h1{font-size:38px}.intro p{font-size:9px;line-height:1.45}}

/* Teal border trace: starts at the top centre and travels clockwise. */
@property --trace-progress {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}
.choice-card {
  position: relative;
  isolation: isolate;
  --trace-progress: 0;
}
.choice-card::after {
  content: "";
  position: absolute;
  z-index: 5;
  inset: 0;
  padding: 3px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(
    from 0deg at 50% 50%,
    var(--teal) 0turn,
    var(--teal) calc(var(--trace-progress) * 1turn),
    transparent calc(var(--trace-progress) * 1turn),
    transparent 1turn
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  transition: --trace-progress 1.05s cubic-bezier(.45,0,.2,1);
}
.choice-card:hover::after,
.choice-card:focus-visible::after {
  --trace-progress: 1;
}
@media(prefers-reduced-motion:reduce){
  .choice-card::after{transition:none}
}

/* Editorial group footer. The official logo keeps its original artwork and blends into the paper tone. */
.site-footer{
  display:block;
  padding:0 clamp(24px,5vw,78px);
  border-top:1px solid rgba(173,127,39,.38);
  background:#f4f0e8;
  color:var(--ink);
  font-size:10px;
  letter-spacing:.04em;
}
.site-footer__main{
  display:grid;
  grid-template-columns:160px minmax(240px,1fr) minmax(260px,330px);
  align-items:center;
  gap:clamp(34px,5vw,76px);
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:30px 0 24px;
}
.site-footer__logo{
  display:block;
  width:150px;
  height:150px;
  object-fit:contain;
  mix-blend-mode:multiply;
}
.site-footer__positioning{
  display:flex;
  flex-direction:column;
  gap:9px;
  min-height:74px;
  justify-content:center;
  padding-left:clamp(24px,3.5vw,50px);
  border-left:1px solid rgba(43,43,43,.2);
}
.site-footer__positioning span{
  color:#6f5422;
  font:400 clamp(18px,2.1vw,27px)/1.18 var(--serif);
  letter-spacing:.01em;
}
.site-footer__positioning small{
  color:#6d6860;
  font-size:9px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.site-footer__links{
  display:grid;
  gap:0;
}
.site-footer__links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:13px 2px;
  border-bottom:1px solid rgba(43,43,43,.2);
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
  transition:color .2s ease,border-color .2s ease;
}
.site-footer__links a:first-child{border-top:1px solid rgba(43,43,43,.2)}
.site-footer__links b{color:var(--gold-dark);font-size:16px;font-weight:400;transition:transform .2s ease}
.site-footer__links a:hover{color:#087f73;border-color:rgba(18,184,165,.7)}
.site-footer__links a:hover b{transform:translate(3px,-3px)}
.site-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  max-width:1200px;
  margin:0 auto;
  padding:14px 0 18px;
  border-top:1px solid rgba(43,43,43,.14);
  color:#7b756d;
  font-size:8px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
@media(max-width:850px){
  .site-footer__main{grid-template-columns:130px minmax(200px,1fr) minmax(230px,280px);gap:28px}
  .site-footer__logo{width:125px;height:125px}
  .site-footer__positioning{padding-left:24px}
  .site-footer__positioning span{font-size:19px}
}
@media(max-width:680px){
  .site-footer{padding:0 18px}
  .site-footer__main{grid-template-columns:94px 1fr;gap:22px 20px;padding:24px 0 18px}
  .site-footer__logo{width:94px;height:94px}
  .site-footer__positioning{min-height:64px;padding-left:18px}
  .site-footer__positioning span{font-size:17px}
  .site-footer__positioning small{font-size:7px;line-height:1.5}
  .site-footer__links{grid-column:1/-1}
  .site-footer__links a{padding:12px 1px;font-size:9px}
  .site-footer__bottom{padding:13px 0 16px;font-size:7px}
}
@media(prefers-reduced-motion:reduce){
  .site-footer__links a,.site-footer__links b{transition:none}
}

/* Long-form brand, service and location content for visitors and search engines. */
.intro__promise{
  display:block;
  margin:0 0 8px;
  color:#fff;
  font:400 18px/1.2 var(--serif);
  letter-spacing:.02em;
}
.content{background:var(--paper)}
.content-section{
  width:min(1200px,calc(100% - clamp(36px,10vw,156px)));
  margin:0 auto;
}
.journey{padding:clamp(72px,9vw,124px) 0 clamp(70px,8vw,110px)}
.section-intro{
  display:grid;
  grid-template-columns:minmax(330px,.9fr) minmax(380px,1.1fr);
  gap:clamp(60px,9vw,130px);
  align-items:start;
}
.section-kicker{
  display:block;
  margin-bottom:18px;
  color:var(--gold-dark);
  font-size:10px;
  font-weight:700;
  letter-spacing:.2em;
}
.section-kicker--light{color:#e3c983}
.section-intro h2,.regions h2,.faq h2{
  margin:0;
  color:#282723;
  font:400 clamp(42px,4.6vw,66px)/.98 var(--serif);
  letter-spacing:-.015em;
}
.section-intro h2 em,.regions h2 em,.faq h2 em{color:var(--gold-dark);font-weight:400}
.section-intro__copy{display:grid;gap:17px;padding-top:29px}
.section-intro__copy p{
  margin:0;
  color:#5f5a53;
  font-size:15px;
  line-height:1.85;
}
.section-intro__copy p:first-child{color:#302e2a;font-size:18px;line-height:1.72}
.process-list{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin:clamp(62px,7vw,92px) 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid rgba(43,43,43,.22);
}
.process-list li{
  position:relative;
  min-height:250px;
  padding:26px clamp(20px,2.5vw,34px) 12px;
  border-left:1px solid rgba(43,43,43,.16);
}
.process-list li:first-child{padding-left:0;border-left:0}
.process-list li:last-child{padding-right:0}
.process-list li>span{
  display:block;
  margin-bottom:54px;
  color:var(--gold-dark);
  font:400 19px/1 var(--serif);
}
.process-list h3{
  margin:0 0 13px;
  color:#2d2b27;
  font:400 22px/1.18 var(--serif);
}
.process-list p{
  margin:0;
  color:#716b64;
  font-size:11px;
  line-height:1.7;
}
.regions{
  position:relative;
  overflow:hidden;
  background:#153d41;
  color:#fff;
}
.regions::before{
  content:"";
  position:absolute;
  inset:auto -8vw -25vw auto;
  width:48vw;
  height:48vw;
  border:1px solid rgba(227,201,131,.2);
  border-radius:50%;
}
.regions__inner{position:relative;padding:clamp(76px,9vw,124px) 0 clamp(70px,8vw,110px)}
.regions__heading{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(60px,9vw,130px);align-items:end}
.regions__heading .section-kicker{grid-column:1/-1;margin-bottom:-26px}
.regions h2{color:#fff}
.regions h2 em{color:#efd895}
.regions__heading>p{
  margin:0 0 4px;
  color:rgba(255,255,255,.76);
  font-size:14px;
  line-height:1.85;
}
.location-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:clamp(54px,7vw,84px);
}
.location-grid article{
  display:flex;
  flex-direction:column;
  min-height:330px;
  padding:clamp(28px,3.5vw,46px);
  border:1px solid rgba(255,255,255,.24);
  border-radius:2px;
  background:rgba(255,255,255,.04);
  backdrop-filter:blur(5px);
}
.location-grid__label{
  color:#e3c983;
  font-size:9px;
  font-weight:700;
  letter-spacing:.2em;
}
.location-grid h3{
  max-width:500px;
  margin:26px 0 14px;
  color:#fff;
  font:400 clamp(27px,3vw,39px)/1.08 var(--serif);
}
.location-grid p{
  max-width:540px;
  margin:0;
  color:rgba(255,255,255,.7);
  font-size:12px;
  line-height:1.8;
}
.location-grid a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:auto;
  padding-top:34px;
  color:#fff;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}
.location-grid a b{color:#e3c983;font-size:18px;font-weight:400;transition:transform .2s ease}
.location-grid a:hover b{transform:translate(4px,-4px)}
.place-list{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:32px;
}
.place-list span{
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:99px;
  color:rgba(255,255,255,.7);
  font-size:8px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.faq{
  display:grid;
  grid-template-columns:minmax(300px,.82fr) minmax(430px,1.18fr);
  gap:clamp(60px,9vw,130px);
  padding:clamp(76px,9vw,124px) 0;
}
.faq__heading{position:sticky;top:40px;align-self:start}
.faq-list{border-top:1px solid rgba(43,43,43,.22)}
.faq-list article{display:grid;grid-template-columns:minmax(180px,.75fr) 1.25fr;gap:30px;padding:28px 0;border-bottom:1px solid rgba(43,43,43,.17)}
.faq-list h3{margin:0;color:#302e2a;font:400 19px/1.25 var(--serif)}
.faq-list p{margin:0;color:#6a645d;font-size:11px;line-height:1.75}
@media(max-width:900px){
  .section-intro,.regions__heading,.faq{grid-template-columns:1fr;gap:30px}
  .section-intro__copy{padding-top:0}
  .process-list{grid-template-columns:1fr 1fr}
  .process-list li:nth-child(3){border-left:0}
  .process-list li>span{margin-bottom:34px}
  .regions__heading .section-kicker{grid-column:auto;margin-bottom:-10px}
  .faq__heading{position:static}
}
@media(max-width:680px){
  .intro__promise{margin-bottom:6px;font-size:14px}
  .content-section{width:calc(100% - 36px)}
  .journey{padding:58px 0 54px}
  .section-kicker{margin-bottom:12px;font-size:8px}
  .section-intro h2,.regions h2,.faq h2{font-size:36px}
  .section-intro__copy{gap:12px}
  .section-intro__copy p{font-size:12px;line-height:1.7}
  .section-intro__copy p:first-child{font-size:14px;line-height:1.65}
  .process-list{grid-template-columns:1fr;margin-top:42px}
  .process-list li,.process-list li:first-child,.process-list li:last-child{min-height:0;padding:22px 0 24px 48px;border-left:0;border-bottom:1px solid rgba(43,43,43,.14)}
  .process-list li>span{position:absolute;left:0;top:24px;margin:0;font-size:16px}
  .process-list h3{font-size:20px}
  .process-list p{font-size:10px}
  .regions__inner{padding:58px 0 54px}
  .regions__heading>p{font-size:12px;line-height:1.7}
  .location-grid{grid-template-columns:1fr;gap:14px;margin-top:40px}
  .location-grid article{min-height:300px;padding:28px 24px}
  .location-grid h3{font-size:28px}
  .location-grid p{font-size:10px}
  .place-list{margin-top:22px}
  .faq{gap:34px;padding:58px 0}
  .faq-list article{grid-template-columns:1fr;gap:10px;padding:22px 0}
  .faq-list h3{font-size:18px}
  .faq-list p{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  .location-grid a b{transition:none}
}

/* Static production language links (separate crawlable URLs). */
.languages a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  min-height:32px;
  padding:7px 2px;
  color:inherit;
  font-size:10px;
  font-weight:700;
  text-align:center;
  text-decoration:none;
}
.languages a[aria-current="page"]{
  color:#fff;
  text-decoration:underline;
  text-decoration-color:var(--gold);
  text-underline-offset:5px;
}
.languages a:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:560px){.languages a{min-width:30px;min-height:36px}}
