:root{--ink:#173747;--muted:#556a70;--paper:#f7f6f1;--line:#d9dedc;--gold:#cfab6e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.6 'DM Sans',sans-serif}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.skip{position:absolute;left:-9999px;z-index:10;background:#fff;padding:12px}.skip:focus{left:12px;top:12px}.wrap{max-width:1320px;margin:auto;padding-left:5vw;padding-right:5vw}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#faf9f4;gap:24px}.brand{display:flex;align-items:center;gap:11px;flex:none}.brand-mark{font-family:'Playfair Display',serif;font-size:32px;line-height:1;letter-spacing:-.08em}.brand-mark span{color:#c69852}.brand-name{font-size:11px;line-height:1.16;font-weight:700;letter-spacing:.18em}.brand-name small{font-size:9px;letter-spacing:.19em;font-weight:500}.topbar nav{display:flex;gap:34px;font-size:14px;font-weight:600}.topbar nav a:hover,.gallery-footer a:hover,footer a:hover{color:#b68c50}.nav-cta{font-size:13px;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:7px;white-space:nowrap}.nav-cta span,.button span,.gallery-footer span{margin-left:18px}.hero{height:min(750px,78vw);min-height:590px;position:relative;color:white;overflow:hidden}.hero-picture,.hero-shade{position:absolute;inset:0}.hero-picture img{object-position:center 55%}.hero-shade{background:linear-gradient(90deg,rgba(11,37,48,.75) 0%,rgba(11,37,48,.37) 43%,rgba(11,37,48,0) 80%),linear-gradient(0deg,rgba(11,37,48,.3),transparent 35%)}.hero-content{position:absolute;left:9vw;top:50%;transform:translateY(-48%);max-width:620px}.eyebrow,.section-index,.gallery-count,.hero-note,.booking-head{font-size:12px;letter-spacing:.21em;font-weight:700}.eyebrow{color:#9e8159}.eyebrow.light{color:#f0e6d5}.hero h1,h2{font-family:'Playfair Display',Georgia,serif;letter-spacing:-.045em;line-height:1.12;font-weight:400}h1{font-size:clamp(58px,7.4vw,112px);margin:21px 0 24px}h1 em,h2 em{font-weight:400}.hero p{font-size:18px;max-width:420px;line-height:1.65;margin:0 0 36px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 23px;font-size:14px;font-weight:700;min-height:58px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-light{background:#f6f4ec;color:var(--ink)}.button-dark{background:var(--ink);color:white}.hero-note{position:absolute;bottom:32px;right:5vw;color:#f6f4ec}.facts{display:flex;justify-content:center;flex-wrap:wrap;background:#e9eee9;padding:22px 5vw;gap:12px 0;font-size:14px;color:#43575b}.facts span{padding:0 3vw;border-right:1px solid #bfcac5}.facts span:last-child{border-right:0}.facts strong{color:var(--ink)}.intro{display:grid;grid-template-columns:1fr 2fr;gap:8vw;padding-top:130px;padding-bottom:140px}.section-index{color:#a48a66;padding-top:13px}.intro-copy{max-width:760px}.intro h2,.gallery h2,.features h2,.location h2,.booking h2{font-size:clamp(43px,5.1vw,76px);margin:16px 0 30px}.intro p{max-width:610px;color:#4c5d60;margin:0 0 22px;font-size:17px;line-height:1.9}.gallery{background:#e7ece9;padding:110px 0 78px}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:38px}.gallery h2{margin-bottom:0}.gallery-count{padding-bottom:10px;color:#597171}.gallery-grid{display:grid;grid-template-columns:1.45fr 1fr 1fr;grid-template-rows:245px 245px;gap:10px;padding:0 5vw}.photo{position:relative;margin:0;overflow:hidden;background:#cdd8d4}.photo-large{grid-row:span 2}.photo img{transition:transform .5s}.photo:hover img{transform:scale(1.04)}.photo figcaption{position:absolute;bottom:0;left:0;right:0;color:white;padding:30px 18px 15px;font-weight:600;font-size:14px;background:linear-gradient(transparent,rgba(0,0,0,.48))}.gallery-footer{text-align:center;padding-top:38px;font-size:14px;font-weight:700}.gallery-footer a{border-bottom:1px solid currentColor;padding-bottom:8px}.features{display:grid;grid-template-columns:1fr 1.2fr;gap:7vw;padding-top:125px;padding-bottom:135px}.feature-list>div{display:flex;gap:26px;border-top:1px solid var(--line);padding:23px 0}.feature-list>div:last-child{border-bottom:1px solid var(--line)}.feature-icon{font-size:30px;color:#b58e5b;line-height:1;width:36px;flex:none}.feature-list h3{margin:0 0 5px;font:500 25px 'Playfair Display',serif}.feature-list p{margin:0;color:var(--muted);font-size:15px}.location{display:grid;grid-template-columns:1fr 1fr;min-height:570px;background:#173747;color:white}.location-image{min-height:470px}.location-text{align-self:center;padding:70px min(10vw,145px)}.location h2{margin:19px 0 28px}.location p{color:#dce8e8;max-width:480px;line-height:1.85}.location a{display:inline-block;border-bottom:1px solid #dce8e8;margin-top:22px;padding-bottom:6px;font-weight:600;font-size:14px}.location a span{margin-left:20px}.booking{padding-top:125px;padding-bottom:135px;display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center}.booking-title p{max-width:340px;color:var(--muted)}.booking-panel{background:#fff;padding:36px;box-shadow:0 15px 45px rgba(23,55,71,.07)}.booking-head{display:flex;justify-content:space-between;gap:10px;padding-bottom:25px;border-bottom:1px solid var(--line);font-size:11px;color:#788b8b}.booking-head span:last-child{font-size:22px;color:#b8905c;line-height:1}#booking-fallback{padding:28px 0 12px}#booking-fallback p{margin:0 0 25px;max-width:370px;color:#54696b}.booking-foot{border-top:1px solid var(--line);padding-top:18px;color:#6e7b7c;font-size:12px;margin-bottom:0}#guesty-widget{padding:22px 0;min-height:100px}footer{background:#102d3b;color:#e0e8e7}.footer-inner{padding-top:46px;padding-bottom:46px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:13px}.footer-brand{color:white}footer a{text-decoration:underline;text-underline-offset:5px}@media(max-width:850px){.topbar nav{display:none}.hero{height:680px}.hero-content{left:6vw}.intro{grid-template-columns:1fr;gap:20px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:300px 220px 220px}.photo-large{grid-column:span 2;grid-row:auto}.features,.booking{grid-template-columns:1fr;gap:35px}.location-text{padding:55px 6vw}}@media(max-width:600px){.topbar{height:72px;padding:0 5vw}.brand-mark{font-size:27px}.nav-cta{font-size:12px}.nav-cta span{display:none}.hero{min-height:610px;height:76vh;max-height:750px}.hero-picture img{object-position:56% center}.hero-shade{background:linear-gradient(90deg,rgba(11,37,48,.78),rgba(11,37,48,.24)),linear-gradient(0deg,rgba(11,37,48,.32),transparent 45%)}.hero-content{top:49%;left:7vw;right:7vw}.hero h1{font-size:clamp(53px,12vw,74px)}.hero p{font-size:16px;max-width:320px}.hero-note{left:7vw;right:auto;font-size:10px;bottom:22px}.facts{justify-content:flex-start;padding:17px 5vw}.facts span{width:50%;padding:5px 10px;border:0;font-size:12px}.intro{padding-top:85px;padding-bottom:90px}.intro p{font-size:16px}.gallery{padding-top:80px;padding-bottom:65px}.gallery-heading{align-items:start}.gallery-count{display:none}.gallery-grid{gap:7px;grid-template-rows:250px 165px 165px}.photo figcaption{font-size:12px}.features{padding-top:85px;padding-bottom:90px}.location{grid-template-columns:1fr}.location-image{height:310px;min-height:0}.location-text{padding:60px 7vw 75px}.booking{padding-top:85px;padding-bottom:90px}.booking-panel{padding:24px}.footer-inner{align-items:flex-start;flex-direction:column}.wrap{padding-left:7vw;padding-right:7vw}}
/* Le Coin du Corail navigation, full photo gallery and viewer */
.brand-name{font-size:11px;letter-spacing:.12em;line-height:1.06}.brand-name small{display:block;font-size:8px;line-height:1.3;letter-spacing:.09em;margin-top:4px}.header-actions{display:flex;align-items:center;gap:24px}.language-switch{display:inline-flex;align-items:center;gap:2px;border:1px solid #cdd8d6;border-radius:999px;padding:3px;background:#fff}.language-switch button{border:0;background:transparent;color:#547077;border-radius:999px;padding:6px 8px;font:700 12px 'DM Sans',sans-serif;cursor:pointer}.language-switch button[aria-pressed="true"]{background:var(--ink);color:#fff}.gallery-grid{grid-template-rows:none;grid-auto-rows:235px}.photo{height:100%}.photo-large{grid-row:span 2}.photo-button{border:0;padding:0;background:transparent;width:100%;height:100%;display:block;text-align:left;cursor:zoom-in;color:white}.photo-button img{height:100%}.photo-button figcaption{position:absolute;bottom:0;left:0;right:0;color:white;padding:28px 18px 14px;font-weight:600;font-size:14px;background:linear-gradient(transparent,rgba(0,0,0,.56))}.gallery-instruction{color:#526a6e;font-size:14px;text-align:center;margin:30px auto 0}.booking-inner{padding:28px 0 12px}.booking-inner p{margin:0 0 25px;max-width:400px;color:#54696b}.lightbox{max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;margin:0;padding:0;border:0;background:#0c222d;color:#fff;overflow:hidden}.lightbox::backdrop{background:rgba(3,17,24,.92)}.lightbox figure{height:100%;margin:0;padding:60px 85px 42px;display:flex;flex-direction:column;align-items:center;justify-content:center}.lightbox figure img{height:calc(100% - 50px);width:100%;object-fit:contain}.lightbox figcaption{width:min(100%,1000px);display:flex;justify-content:space-between;align-items:center;font-size:14px;padding-top:14px}.lightbox button{position:absolute;z-index:1;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.4);border-radius:50%;color:#fff;cursor:pointer}.lightbox-close{right:20px;top:20px;font-size:28px;width:44px;height:44px;line-height:1}.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);font-size:36px;width:48px;height:48px;line-height:1}.lightbox-prev{left:20px}.lightbox-next{right:20px}
@media(max-width:1000px){.topbar nav{gap:15px}.header-actions{gap:12px}.topbar{gap:10px}.nav-cta{font-size:12px}}@media(max-width:850px){.topbar nav{display:none}.gallery-grid{grid-template-rows:none;grid-auto-rows:220px}}@media(max-width:600px){.header-actions{gap:9px}.brand-name{font-size:9px}.brand-name small{font-size:6px;max-width:110px}.language-switch button{padding:5px 6px;font-size:11px}.nav-cta{padding-bottom:3px;font-size:11px}.gallery-grid{grid-template-rows:none;grid-auto-rows:160px}.photo-large{grid-column:span 2;grid-row:span 2}.photo-button figcaption{font-size:12px}.lightbox figure{padding:65px 12px 65px}.lightbox figure img{height:calc(100% - 48px)}.lightbox-prev,.lightbox-next{top:auto;bottom:12px;transform:none}.lightbox-prev{left:18px}.lightbox-next{right:18px}.lightbox figcaption{font-size:13px}}
/* Direct availability calendar */
button.button{border:0;cursor:pointer;font-family:inherit}button.button:disabled{cursor:not-allowed;opacity:.5;transform:none}.calendar{border:1px solid var(--line);padding:17px;margin:25px 0 18px;background:#fbfcfa}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.calendar-toolbar strong{text-transform:capitalize;font-size:17px}.calendar-toolbar button{border:1px solid var(--line);background:#fff;color:var(--ink);width:38px;height:38px;font-size:23px;cursor:pointer}.calendar-toolbar button:disabled{opacity:.3;cursor:not-allowed}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.calendar-weekdays{margin-bottom:7px;color:#667b7f;text-transform:capitalize;font-size:11px;font-weight:700}.calendar-weekdays span{padding:6px 0}.calendar-day{border:1px solid transparent;background:#e7f0ed;color:var(--ink);height:43px;font:600 14px 'DM Sans',sans-serif;cursor:pointer}.calendar-day:hover:not(:disabled){border-color:var(--ink)}.calendar-day:disabled{cursor:default;color:#8a999a;background:#f3f4f2}.calendar-day.is-blocked{background:#e6e7e4;text-decoration:line-through}.calendar-day.is-range{background:#bed7cd}.calendar-day.is-selected{background:var(--ink);color:#fff}.calendar-status{min-height:24px;font-size:13px;color:#7d4c32;margin:12px 0 0}.calendar-legend{display:flex;gap:18px;color:#5f7073;font-size:12px;margin-top:8px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{display:inline-block;width:12px;height:12px;border:1px solid #b8c7c2}.legend-available{background:#e7f0ed}.legend-blocked{background:#e6e7e4}.stay-details{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:18px 0}.stay-details>div,.stay-details>label{border:1px solid var(--line);padding:9px 11px;min-height:65px}.stay-details small{display:block;color:#6d8081;font-size:12px}.stay-details strong{font-size:15px}.stay-details select{width:100%;border:0;background:transparent;color:var(--ink);font:600 15px 'DM Sans',sans-serif}.calendar-action{width:100%}.quote-result{margin-top:18px;padding:14px 16px;background:#e7f0ed;font-size:18px;font-weight:700}.inquiry-form{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.inquiry-form h3{margin:0;font:500 28px 'Playfair Display',serif}.inquiry-form p{font-size:14px;color:var(--muted);line-height:1.6}.inquiry-form label{display:block;font-size:13px;font-weight:700;margin:12px 0}.inquiry-form input{width:100%;display:block;margin-top:5px;padding:11px;border:1px solid var(--line);background:#fff;color:var(--ink);font:16px 'DM Sans',sans-serif}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inquiry-form .honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.request-status{color:#375752;font-size:14px;min-height:22px}.booking-inner [hidden],.booking-panel [hidden]{display:none!important}@media(max-width:600px){.calendar{padding:11px}.calendar-day{height:38px}.stay-details{gap:4px}.stay-details>div,.stay-details>label{padding:7px}.stay-details strong,.stay-details select{font-size:13px}.form-row{grid-template-columns:1fr;gap:0}}
/* Direct payment controls */
#payment-options{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
#payment-options p{font-size:14px;line-height:1.65}
.inquiry-form .policy-consent{display:flex;align-items:flex-start;gap:9px;font-size:14px;line-height:1.5;font-weight:500;margin:14px 0 18px}
.inquiry-form .policy-consent input{width:18px;height:18px;flex:none;margin:2px 0 0}
#pay-button{width:100%;margin-bottom:12px}
.button-secondary{border:1px solid var(--ink)!important;background:#fff;color:var(--ink);width:100%}

/* Footer contact details */
.footer-inner{display:grid;grid-template-columns:1fr minmax(0,2fr) 1fr}.footer-center{text-align:center;min-width:0}.footer-contact{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:12px;font-size:16px;line-height:1.5}.footer-contact a{overflow-wrap:anywhere}.footer-inner>a{justify-self:end}@media(max-width:850px){.footer-inner{grid-template-columns:1fr;justify-items:center;text-align:center}.footer-inner>a{justify-self:center}.footer-brand{text-align:left}}
