@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Montserrat:wght@400;500;600&display=swap');

/* =========================================================
   GILANN TOWERS
   Custom Theme
   Stephanie Innocent / SI Media Hub
   ========================================================= */

:root{
    --deep-blue:#123f5a;
    --deep-blue-dark:#0b2f43;
    --sea-blue:#278eae;
    --purple:#65415f;
    --purple-dark:#50334c;
    --orange:#d66a3d;
    --orange-dark:#b9532f;
    --sand:#f3ebdd;
    --shell:#fcfaf6;
    --charcoal:#29363a;
    --muted:#6d7779;
    --white:#ffffff;
    --serif:"Cormorant Garamond",Georgia,serif;
    --sans:"Montserrat",Arial,sans-serif;
}


/* =========================================================
   GLOBAL
   ========================================================= */

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    scroll-padding-top:82px;
}

body{
    margin:0;
    color:var(--charcoal);
    font-family:var(--sans);
    background:var(--shell);
    line-height:1.6;
}

a{
    text-decoration:none;
    color:inherit;
}

img{
    max-width:100%;
    height:auto;
}


/* =========================================================
   HEADER
   ========================================================= */

.site-header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(252,250,246,.97);
    border-bottom:1px solid #e6ded3;
}

.header-inner{
    height:82px;
    max-width:1450px;
    margin:auto;
    padding:0 4vw;
    display:flex;
    align-items:center;
    gap:28px;
}

.brand{
    font:600 30px var(--serif);
    color:var(--deep-blue);
    white-space:nowrap;
}

.brand strong{
    font-weight:600;
}

.primary-nav{
    margin-left:auto;
    display:flex;
    gap:24px;
    font-size:12px;
    font-weight:600;
}

.primary-nav a{
    position:relative;
    transition:.2s;
}

.primary-nav a:hover{
    color:var(--orange);
}

.primary-nav a:after{
    content:"";
    position:absolute;
    left:0;
    right:100%;
    bottom:-7px;
    height:1px;
    background:var(--orange);
    transition:.25s;
}

.primary-nav a:hover:after{
    right:0;
}

.header-book{
    margin-left:8px;
}

.menu-toggle{
    display:none;
}


/* =========================================================
   BUTTONS
   ========================================================= */

.button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:49px;
    padding:0 24px;
    border:1px solid transparent;
    text-transform:uppercase;
    letter-spacing:.12em;
    font:600 11px var(--sans);
    cursor:pointer;
    transition:.2s;
}

.button:hover{
    transform:translateY(-2px);
}

.gold-btn{
    background:var(--orange);
    color:var(--white);
}

.gold-btn:hover{
    background:var(--orange-dark);
}

.teal-btn{
    background:var(--deep-blue);
    color:var(--white);
}

.teal-btn:hover{
    background:var(--deep-blue-dark);
}

.green-btn{
    background:var(--purple);
    color:var(--white);
}

.green-btn:hover{
    background:var(--purple-dark);
}

.light-btn{
    border-color:var(--white);
    color:var(--white);
}

.outline{
    background:var(--white);
    border-color:#a9b4b6;
    color:var(--deep-blue);
    width:100%;
}


/* =========================================================
   HOME HERO
   ========================================================= */

.hero{
    height:680px;
    position:relative;
    overflow:hidden;
    background:var(--sea-blue);
}

.scenery{
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            #72c1d5 0 42%,
            var(--sea-blue) 72%,
            #176d8a 100%
        );
}

.mountains{
    position:absolute;
    left:-4%;
    right:-4%;
    bottom:15%;
    height:56%;
    background:#365c6b;
    clip-path:polygon(
        0 72%,
        8% 37%,
        17% 63%,
        28% 20%,
        39% 58%,
        49% 9%,
        60% 54%,
        70% 24%,
        82% 60%,
        91% 32%,
        100% 64%,
        100% 100%,
        0 100%
    );
}

.building{
    position:absolute;
    right:9%;
    bottom:0;
    width:34%;
    height:68%;
    background:#e8e5da;
    box-shadow:-15px 15px 45px #0004;
    clip-path:polygon(
        12% 8%,
        100% 0,
        100% 100%,
        0 100%,
        0 18%
    );
}

.building:before{
    content:"";
    position:absolute;
    inset:8%;
    background:
        repeating-linear-gradient(
            to bottom,
            #26555c 0 8%,
            #ddd8ca 8% 13%
        );
}

.building i{
    position:absolute;
    left:-8%;
    width:108%;
    height:4%;
    background:#f4f0e6;
    z-index:2;
}

.building i:nth-child(1){top:23%;}
.building i:nth-child(2){top:43%;}
.building i:nth-child(3){top:63%;}
.building i:nth-child(4){top:83%;}

.shade{
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            90deg,
            rgba(11,47,67,.92),
            rgba(18,63,90,.72) 43%,
            transparent 74%
        );
}

.hero-copy{
    position:relative;
    color:var(--white);
    max-width:1320px;
    width:92%;
    margin:auto;
    padding-top:150px;
}

.hero-copy>small,
.intro small,
.dominica-copy>small,
.contact>div>small{
    letter-spacing:.24em;
    font-size:10px;
}

.hero h1{
    font:600 clamp(70px,8vw,125px)/.72 var(--serif);
    margin:25px 0 30px;
}

.hero h1 span{
    font-size:.72em;
}

.hero hr{
    width:75px;
    margin:0 0 22px;
    border:0;
    border-top:2px solid var(--orange);
}

.hero-copy>p{
    letter-spacing:.27em;
    font-size:13px;
}

.hero-actions{
    display:flex;
    gap:12px;
    margin-top:32px;
}


/* =========================================================
   HOME INTRO
   ========================================================= */

.intro{
    text-align:center;
    max-width:850px;
    margin:auto;
    padding:85px 25px 60px;
}

.intro small,
.dominica-copy>small,
.contact>div>small{
    color:var(--orange);
}

.intro h2,
.dominica h2,
.contact h2{
    font:600 clamp(42px,5vw,66px)/1 var(--serif);
    margin:12px 0 20px;
}

.intro p{
    color:var(--muted);
}


/* =========================================================
   PROPERTY CARDS
   ========================================================= */

.cards{
    max-width:1450px;
    margin:0 auto 100px;
    padding:0 3vw;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.cards article{
    border:1px solid #ebe5da;
    background:var(--white);
}

.cards header{
    height:110px;
    color:var(--white);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
}

.cards header.teal{
    background:var(--deep-blue);
}

.cards header.green{
    background:var(--purple);
}

.cards header.gold{
    background:var(--orange);
}

.cards header b{
    font-size:38px;
}

.cards h2{
    font:600 34px/1 var(--serif);
    margin:0;
}

.cards header span{
    font-size:9px;
    letter-spacing:.3em;
}

.photos{
    height:420px;
    padding:9px 9px 0;
    display:grid;
    grid-template-rows:1fr 1fr;
    gap:8px;
}

.photos div{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    color:var(--white);
    letter-spacing:.14em;
    background:
        linear-gradient(
            145deg,
            #71b6ca,
            var(--deep-blue)
        );
    font:500 22px var(--serif);
}

.photos div:nth-child(2){
    background:
        linear-gradient(
            145deg,
            #9acbd7,
            #376f87
        );
}

.photos.residential div{
    background:
        linear-gradient(
            145deg,
            #a886a1,
            var(--purple)
        );
}

.photos.residential div:nth-child(2){
    background:
        linear-gradient(
            145deg,
            #c0a9bc,
            var(--purple-dark)
        );
}

.photos.stay div{
    background:
        linear-gradient(
            145deg,
            #e5a17d,
            var(--orange)
        );
}

.photos.stay div:nth-child(2){
    background:
        linear-gradient(
            145deg,
            #edba99,
            var(--orange-dark)
        );
}

.photos small{
    font:500 8px var(--sans);
    margin-top:6px;
}

.cards article>section{
    padding:23px 27px 29px;
}

.cards article>section p{
    min-height:76px;
    color:#586568;
    font-size:13px;
}

.cards article>section .button{
    width:100%;
    margin-top:10px;
}


/* =========================================================
   EXPLORE DOMINICA - HOME
   ========================================================= */

.dominica{
    min-height:620px;
    display:grid;
    grid-template-columns:1.15fr .85fr;
    background:var(--deep-blue);
    color:var(--white);
}

.island{
    min-height:620px;
    background:
        linear-gradient(
            145deg,
            #72c6dc 0 32%,
            var(--sea-blue) 32% 48%,
            var(--purple) 48% 66%,
            var(--deep-blue) 66%
        );
    display:flex;
    align-items:flex-end;
    padding:50px;
}

.island b{
    display:block;
    font:600 34px var(--serif);
}

.island small{
    font-size:8px;
    letter-spacing:.16em;
}

.dominica-copy{
    padding:80px 8vw;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.dominica-copy p{
    color:#dce6e9;
}

.dominica-copy a{
    margin-top:20px;
    width:max-content;
    border-bottom:1px solid #ffffff66;
    padding-bottom:8px;
    font-size:11px;
    letter-spacing:.15em;
}


/* =========================================================
   HOME CONTACT SECTION
   ========================================================= */

.contact{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:7vw;
    background:var(--sand);
    padding:95px 6vw;
}

.contact>div>p{
    color:var(--muted);
}

.details a{
    color:var(--deep-blue);
    font-weight:600;
}

.formbox{
    background:var(--white);
    padding:40px;
    box-shadow:0 15px 50px rgba(41,54,58,.08);
}

.fields{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.formbox label{
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-bottom:16px;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:600;
}

.formbox input,
.formbox select,
.formbox textarea{
    padding:14px;
    border:1px solid #d9d6ce;
    background:var(--white);
}

.formbox input:focus,
.formbox select:focus,
.formbox textarea:focus{
    outline:none;
    border-color:var(--purple);
}

.send{
    width:100%;
}

.notice{
    padding:12px;
    background:#e6f2e8!important;
    color:#31583a!important;
}


/* =========================================================
   CONTACT US PAGE
   ========================================================= */

.contact-page{
    background:var(--shell);
}


/* CONTACT HERO */

.contact-page-hero{
    position:relative;
    min-height:460px;
    display:flex;
    align-items:center;
    overflow:hidden;
    color:var(--white);

    background:
        radial-gradient(
            circle at 82% 20%,
            rgba(39,142,174,.55),
            transparent 28%
        ),
        radial-gradient(
            circle at 75% 100%,
            rgba(101,65,95,.65),
            transparent 38%
        ),
        linear-gradient(
            120deg,
            var(--deep-blue-dark),
            var(--deep-blue) 58%,
            #1b617d
        );
}

.contact-page-hero:after{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:50%;
    right:-80px;
    top:-100px;
}

.contact-page-hero:before{
    content:"";
    position:absolute;
    width:270px;
    height:270px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:50%;
    right:160px;
    bottom:-160px;
}

.contact-page-hero-inner{
    position:relative;
    z-index:2;
    width:90%;
    max-width:1320px;
    margin:auto;
    padding:85px 0;
}

.contact-page-hero small{
    color:#d6e8ed;
    font-size:10px;
    font-weight:600;
    letter-spacing:.25em;
}

.contact-page-hero h1{
    max-width:760px;
    margin:18px 0 25px;
    font:600 clamp(60px,7vw,100px)/.84 var(--serif);
}

.contact-page-hero p{
    max-width:620px;
    margin:0;
    color:#e6eff1;
    font-size:15px;
    line-height:1.8;
}


/* CONTACT MAIN AREA */

.contact-page-content{
    max-width:1320px;
    margin:auto;
    padding:100px 5vw 120px;
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:8vw;
    align-items:start;
}


/* LEFT CONTACT INFORMATION */

.contact-page-info{
    padding-top:25px;
}

.contact-page-info>small,
.contact-page-form>small{
    display:block;
    color:var(--orange);
    font-size:10px;
    font-weight:600;
    letter-spacing:.24em;
    margin-bottom:14px;
}

.contact-page-info h2{
    margin:0 0 25px;
    color:var(--deep-blue);
    font:600 clamp(42px,4.5vw,63px)/.98 var(--serif);
}

.contact-page-info>p{
    max-width:470px;
    color:var(--muted);
    margin-bottom:45px;
}

.contact-detail{
    padding:22px 0;
    border-top:1px solid #ddd6ca;
}

.contact-detail:last-of-type{
    border-bottom:1px solid #ddd6ca;
}

.contact-detail span{
    display:block;
    margin-bottom:8px;
    color:var(--purple);
    font-size:9px;
    font-weight:600;
    letter-spacing:.2em;
}

.contact-detail a{
    color:var(--deep-blue);
    font-weight:600;
}

.contact-detail p{
    margin:0;
    color:#596568;
}


/* SHORT STAY CALLOUT */

.contact-assistance{
    position:relative;
    margin-top:42px;
    padding:30px;
    overflow:hidden;
    background:var(--purple);
    color:var(--white);
}

.contact-assistance:after{
    content:"";
    position:absolute;
    width:130px;
    height:130px;
    border-radius:50%;
    background:rgba(255,255,255,.06);
    right:-45px;
    top:-45px;
}

.contact-assistance strong{
    display:block;
    position:relative;
    z-index:2;
    margin-bottom:10px;
    font:600 27px var(--serif);
}

.contact-assistance p{
    position:relative;
    z-index:2;
    margin:0 0 18px;
    color:#eee7ec;
    font-size:13px;
}

.contact-assistance a{
    position:relative;
    z-index:2;
    display:inline-block;
    color:#fff;
    border-bottom:1px solid rgba(255,255,255,.55);
    padding-bottom:5px;
    text-transform:uppercase;
    letter-spacing:.13em;
    font-size:9px;
    font-weight:600;
}


/* CONTACT FORM */

.contact-page-form{
    position:relative;
    background:var(--white);
    padding:50px;
    box-shadow:0 22px 70px rgba(27,51,61,.10);
    border-top:5px solid var(--orange);
}

.contact-page-form h2{
    margin:0 0 35px;
    color:var(--deep-blue);
    font:600 48px/1 var(--serif);
}

.contact-fields{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.contact-page-form label{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.contact-page-form label span{
    color:var(--charcoal);
    font-size:9px;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.contact-page-form input,
.contact-page-form select,
.contact-page-form textarea{
    width:100%;
    padding:15px 16px;
    border:1px solid #d9d5cd;
    border-radius:0;
    background:#fff;
    color:var(--charcoal);
    font:400 13px var(--sans);
    transition:.2s;
}

.contact-page-form input{
    min-height:51px;
}

.contact-page-form select{
    min-height:51px;
}

.contact-page-form textarea{
    resize:vertical;
    min-height:160px;
}

.contact-page-form input:focus,
.contact-page-form select:focus,
.contact-page-form textarea:focus{
    outline:none;
    border-color:var(--purple);
    box-shadow:0 0 0 2px rgba(101,65,95,.07);
}

.contact-message{
    margin-top:18px;
}

.contact-submit{
    width:100%;
    margin-top:24px;
    min-height:56px;
    border:0;
    background:var(--orange);
    color:var(--white);
}

.contact-submit:hover{
    background:var(--orange-dark);
}


/* CONTACT FORM STATUS */

.contact-success,
.contact-error{
    margin:-10px 0 30px;
    padding:15px 17px;
    font-size:12px;
    line-height:1.6;
}

.contact-success{
    background:#edf4ef;
    border-left:3px solid #537a60;
    color:#365642;
}

.contact-error{
    background:#f8ece8;
    border-left:3px solid var(--orange);
    color:#7a3d2b;
}


/* =========================================================
   GENERIC WORDPRESS PAGES
   ========================================================= */

.generic{
    width:90%;
    max-width:1100px;
    margin:auto;
    padding:80px 0;
    min-height:70vh;
}

.generic h1{
    color:var(--deep-blue);
    font:600 clamp(48px,6vw,75px)/1 var(--serif);
}


/* =========================================================
   FOOTER
   ========================================================= */

footer{
    background:var(--deep-blue-dark);
    color:#dfe8eb;
    padding:50px 5vw;
    font-size:11px;
}

.footer-inner{
    max-width:1450px;
    margin:auto;
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:30px;
}

.footer-inner b{
    font:600 25px var(--serif);
    color:var(--white);
}

.right{
    text-align:right;
}

.credit{
    color:#ef9b72;
}


/* =========================================================
   LIGHTBOX
   ========================================================= */

.lightbox{
    position:fixed;
    inset:0;
    background:rgba(6,27,39,.96);
    z-index:100;
    display:none;
    align-items:center;
    justify-content:center;
}

.lightbox.open{
    display:flex;
}

.lb-frame{
    width:min(900px,80vw);
    height:min(620px,70vh);
    background:var(--deep-blue);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    color:var(--white);
}

.lb-placeholder{
    width:80%;
    height:75%;
    background:
        linear-gradient(
            145deg,
            var(--sea-blue),
            var(--purple)
        );
}

.lightbox button{
    position:absolute;
    background:none;
    border:0;
    color:var(--white);
    font-size:48px;
    cursor:pointer;
}

.lb-close{
    top:18px;
    right:28px;
}

.lb-prev{
    left:25px;
}

.lb-next{
    right:25px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:1050px){

    .primary-nav{
        display:none;
        position:absolute;
        top:82px;
        left:0;
        right:0;
        background:var(--white);
        padding:25px 5vw;
        flex-direction:column;
        align-items:flex-start;
        box-shadow:0 18px 30px rgba(0,0,0,.08);
    }

    .primary-nav.open{
        display:flex;
    }

    .menu-toggle{
        display:block;
        margin-left:auto;
        background:var(--white);
        border:1px solid #ddd;
        padding:10px;
        color:var(--deep-blue);
    }

    .header-book{
        display:none;
    }

    .cards{
        grid-template-columns:1fr;
        max-width:760px;
    }

    .cards article>section p{
        min-height:auto;
    }

    .photos{
        grid-template-columns:1fr 1fr;
        grid-template-rows:1fr;
        height:280px;
    }

    .contact-page-content{
        gap:5vw;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:720px){

    html{
        scroll-padding-top:70px;
    }

    .header-inner{
        height:70px;
    }

    .brand{
        font-size:23px;
    }

    .primary-nav{
        top:70px;
    }


    /* HOME HERO */

    .hero{
        height:640px;
    }

    .building{
        right:-18%;
        width:72%;
        opacity:.7;
    }

    .shade{
        background:
            linear-gradient(
                90deg,
                rgba(11,47,67,.95),
                rgba(18,63,90,.65)
            );
    }

    .hero h1{
        font-size:67px;
    }

    .hero-copy>p{
        font-size:9px;
        line-height:2;
    }

    .hero-actions{
        flex-direction:column;
        width:230px;
    }


    /* PROPERTY CARDS */

    .photos{
        grid-template-columns:1fr;
        grid-template-rows:1fr 1fr;
        height:410px;
    }


    /* EXPLORE */

    .dominica{
        grid-template-columns:1fr;
    }

    .island{
        min-height:470px;
    }

    .dominica-copy{
        padding:60px 8vw;
    }


    /* HOME CONTACT */

    .contact{
        grid-template-columns:1fr;
        padding-top:65px;
    }

    .formbox{
        padding:24px;
    }

    .fields{
        grid-template-columns:1fr;
    }


    /* CONTACT PAGE */

    .contact-page-hero{
        min-height:430px;
    }

    .contact-page-hero-inner{
        width:86%;
        padding:70px 0;
    }

    .contact-page-hero h1{
        font-size:57px;
    }

    .contact-page-hero p{
        font-size:13px;
    }

    .contact-page-content{
        display:block;
        width:88%;
        padding:70px 0 85px;
    }

    .contact-page-info{
        padding:0;
    }

    .contact-page-info h2{
        font-size:45px;
    }

    .contact-assistance{
        margin-bottom:55px;
    }

    .contact-page-form{
        padding:30px 24px;
    }

    .contact-page-form h2{
        font-size:40px;
    }

    .contact-fields{
        grid-template-columns:1fr;
        gap:16px;
    }


    /* FOOTER */

    .footer-inner{
        grid-template-columns:1fr;
    }

    .right{
        text-align:left;
    }

}

/* =========================================================
   ACCESSIBILITY + GTRANSLATE HEADER TOOLS
   ========================================================= */

.site-tools{
    display:flex;
    align-items:center;
    gap:12px;
    position:relative;
    flex:0 0 auto;
}

.tool-wrapper{
    position:relative;
}

.site-tool-button{
    min-height:40px;
    padding:7px 8px;
    border:0;
    background:transparent;
    color:var(--deep-blue);
    display:flex;
    align-items:center;
    gap:6px;
    cursor:pointer;
    font:600 9px var(--sans);
    letter-spacing:.04em;
    transition:.2s;
    white-space:nowrap;
}

.site-tool-button:hover,
.site-tool-button:focus-visible{
    color:var(--orange);
    outline:2px solid transparent;
}

.accessibility-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    font-size:17px;
    line-height:1;
}

.tool-label{
    white-space:nowrap;
}

.site-tool-panel{
    position:absolute;
    top:calc(100% + 14px);
    right:0;
    z-index:90;
    width:270px;
    padding:18px;
    background:var(--white);
    border:1px solid #e3ddd4;
    box-shadow:0 18px 50px rgba(11,47,67,.16);
}

.site-tool-panel[hidden]{
    display:none!important;
}

.tool-panel-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-bottom:14px;
    padding-bottom:12px;
    border-bottom:1px solid #ece6dc;
    color:var(--deep-blue);
}

.tool-panel-heading strong{
    font:600 23px/1 var(--serif);
}

.tool-panel-close{
    width:32px;
    height:32px;
    padding:0;
    border:0;
    background:transparent;
    color:var(--charcoal);
    cursor:pointer;
    font-size:25px;
    line-height:1;
}

.accessibility-action,
.accessibility-reset{
    width:100%;
    min-height:43px;
    margin:0 0 7px;
    padding:10px 12px;
    border:1px solid #e2ddd4;
    background:var(--shell);
    color:var(--charcoal);
    display:flex;
    align-items:center;
    gap:10px;
    text-align:left;
    cursor:pointer;
    font:500 11px var(--sans);
}

.accessibility-action:hover,
.accessibility-action:focus-visible{
    border-color:var(--purple);
    background:#f7f2f6;
    outline:none;
}

.accessibility-action span{
    min-width:28px;
    color:var(--purple);
    font-weight:600;
}

.accessibility-action.is-active{
    background:var(--purple);
    border-color:var(--purple);
    color:var(--white);
}

.accessibility-action.is-active span{
    color:var(--white);
}

.accessibility-reset{
    justify-content:center;
    margin:12px 0 0;
    background:var(--deep-blue);
    border-color:var(--deep-blue);
    color:var(--white);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:9px;
}

/* =========================================================
   
   ========================================================= */

.gilann-language-switcher{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    min-width:128px;
    min-height:40px;
    line-height:1;
}

/* Hide the extra standalone flag row produced by the widget. */
.gilann-language-switcher a.glink,
.gilann-language-switcher > a,
.gilann-language-switcher .gt_languages,
.gilann-language-switcher .gt_flags{
    display:none!important;
}

/* Keep GTranslate wrappers compact. */
.gilann-language-switcher .gtranslate_wrapper,
.gilann-language-switcher .switcher,
.gilann-language-switcher .switcher .selected,
.gilann-language-switcher .switcher .option{
    margin:0!important;
}

.gilann-language-switcher .gtranslate_wrapper{
    display:flex!important;
    align-items:center!important;
    width:auto!important;
    min-width:0!important;
}

/* Native dropdown output used by the current GTranslate widget. */
.gilann-language-switcher select,
.gilann-language-switcher .gt_selector{
    width:142px!important;
    min-width:142px!important;
    height:38px!important;
    min-height:38px!important;
    margin:0!important;
    padding:0 34px 0 12px!important;
    border:1px solid #d9d5cd!important;
    border-radius:0!important;
    background-color:var(--white)!important;
    color:var(--deep-blue)!important;
    font:600 10px/1 var(--sans)!important;
    letter-spacing:.02em!important;
    cursor:pointer!important;
    box-shadow:none!important;
    vertical-align:middle!important;
}

.gilann-language-switcher select:hover,
.gilann-language-switcher .gt_selector:hover{
    border-color:var(--orange)!important;
}

.gilann-language-switcher select:focus,
.gilann-language-switcher .gt_selector:focus{
    border-color:var(--orange)!important;
    outline:2px solid rgba(214,106,61,.18)!important;
    outline-offset:2px!important;
}

/* If GTranslate outputs its custom switcher instead of a native select. */
.gilann-language-switcher .switcher{
    width:142px!important;
    font-family:var(--sans)!important;
}

.gilann-language-switcher .switcher .selected{
    background:none!important;
}

.gilann-language-switcher .switcher .selected a{
    display:flex!important;
    align-items:center!important;
    width:142px!important;
    height:38px!important;
    padding:0 28px 0 10px!important;
    border:1px solid #d9d5cd!important;
    background:var(--white)!important;
    color:var(--deep-blue)!important;
    font:600 10px/1 var(--sans)!important;
    white-space:nowrap!important;
}

.gilann-language-switcher .switcher .selected a img,
.gilann-language-switcher .switcher .option a img{
    display:inline-block!important;
    width:20px!important;
    height:auto!important;
    margin:0 7px 0 0!important;
    vertical-align:middle!important;
}

.gilann-language-switcher .switcher .option{
    position:absolute!important;
    z-index:120!important;
    width:180px!important;
    max-height:300px!important;
    overflow-y:auto!important;
    border:1px solid #d9d5cd!important;
    background:var(--white)!important;
    box-shadow:0 14px 35px rgba(11,47,67,.16)!important;
}

.gilann-language-switcher .switcher .option a{
    display:flex!important;
    align-items:center!important;
    min-height:36px!important;
    padding:8px 10px!important;
    background:var(--white)!important;
    color:var(--deep-blue)!important;
    font:500 10px/1.2 var(--sans)!important;
    white-space:nowrap!important;
}

.gilann-language-switcher .switcher .option a:hover{
    background:var(--sand)!important;
    color:var(--orange-dark)!important;
}

/* Prevent Google's translation banner from pushing the site down. */
.goog-te-banner-frame.skiptranslate,
.goog-te-banner-frame{
    display:none!important;
}

body{
    top:0!important;
}

/* Keyboard focus */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
    outline:3px solid var(--orange);
    outline-offset:3px;
}

/* Accessibility preferences */
html.gilann-text-large{font-size:112.5%}
html.gilann-text-small{font-size:90%}
body.gilann-readable-font,
body.gilann-readable-font *{font-family:Arial,Helvetica,sans-serif!important}
body.gilann-highlight-links a:not(.button):not(.brand){text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px}
body.gilann-high-contrast{background:#000!important;color:#fff!important}
body.gilann-high-contrast main,
body.gilann-high-contrast section,
body.gilann-high-contrast article,
body.gilann-high-contrast .site-header,
body.gilann-high-contrast .contact-page,
body.gilann-high-contrast .contact-page-content,
body.gilann-high-contrast .generic{background:#000!important;color:#fff!important}
body.gilann-high-contrast h1,
body.gilann-high-contrast h2,
body.gilann-high-contrast h3,
body.gilann-high-contrast p,
body.gilann-high-contrast span,
body.gilann-high-contrast small,
body.gilann-high-contrast label,
body.gilann-high-contrast .brand,
body.gilann-high-contrast .primary-nav a,
body.gilann-high-contrast .contact-detail a{color:#fff!important}
body.gilann-high-contrast a{color:#ffdf63!important}
body.gilann-high-contrast .button,
body.gilann-high-contrast button{border-color:#fff}
body.gilann-high-contrast input,
body.gilann-high-contrast select,
body.gilann-high-contrast textarea{background:#000!important;color:#fff!important;border:2px solid #fff!important}
body.gilann-high-contrast .site-tool-panel,
body.gilann-high-contrast .contact-page-form,
body.gilann-high-contrast .formbox{background:#000!important;color:#fff!important;border:2px solid #fff}
body.gilann-high-contrast .gilann-language-switcher select,
body.gilann-high-contrast .gilann-language-switcher .gt_selector,
body.gilann-high-contrast .gilann-language-switcher .switcher .selected a{
    background:#000!important;
    color:#fff!important;
    border:2px solid #fff!important;
}

.contact-page-hero h2{
    max-width:760px;
    margin:18px 0 25px;
    font:600 clamp(60px,7vw,100px)/.84 var(--serif);
}

/* =========================================================
   DESKTOP HEADER FIT
   ========================================================= */

@media(min-width:1051px){
    .header-inner{
        max-width:1600px;
        padding-left:3vw;
        padding-right:3vw;
        gap:20px;
    }

    .brand{
        font-size:29px;
        flex:0 0 auto;
    }

    .primary-nav{
        margin-left:auto;
        gap:20px;
        font-size:11px;
        flex:0 1 auto;
        align-items:center;
    }

    .primary-nav a{
        white-space:nowrap;
    }

    .site-tools{
        gap:8px;
    }

    .header-book{
        flex:0 0 auto;
        margin-left:4px;
        padding-left:22px;
        padding-right:22px;
        white-space:nowrap;
    }
}

@media(max-width:1280px) and (min-width:1051px){
    .header-inner{
        gap:12px;
        padding-left:2vw;
        padding-right:2vw;
    }

    .brand{
        font-size:25px;
    }

    .primary-nav{
        gap:12px;
        font-size:9px;
    }

    .tool-label{
        display:none;
    }

    .site-tool-button{
        padding-left:4px;
        padding-right:4px;
    }

    .gilann-language-switcher,
    .gilann-language-switcher select,
    .gilann-language-switcher .gt_selector,
    .gilann-language-switcher .switcher,
    .gilann-language-switcher .switcher .selected a{
        width:112px!important;
        min-width:112px!important;
    }

    .header-book{
        padding-left:17px;
        padding-right:17px;
        font-size:9px;
    }
}

/* =========================================================
   TABLET / MOBILE HEADER
   ========================================================= */

@media(max-width:1050px){
    .site-tools{
        margin-left:auto;
        gap:5px;
    }

    .menu-toggle{
        margin-left:0;
        order:4;
    }

    .primary-nav{
        z-index:80;
    }

    .site-tool-panel{
        position:fixed;
        top:90px;
        left:50%;
        right:auto;
        transform:translateX(-50%);
        width:min(330px,88vw);
    }

    .gilann-language-switcher{
        min-width:104px;
    }

    .gilann-language-switcher select,
    .gilann-language-switcher .gt_selector,
    .gilann-language-switcher .switcher,
    .gilann-language-switcher .switcher .selected a{
        width:104px!important;
        min-width:104px!important;
    }
}

@media(max-width:720px){
    .site-tools{
        gap:2px;
    }

    .site-tool-button{
        min-width:34px;
        padding:5px;
    }

    .accessibility-icon{
        font-size:16px;
    }

    .site-tool-panel{
        top:78px;
    }

    .tool-label{
        display:none;
    }

    .gilann-language-switcher{
        min-width:78px;
    }

    .gilann-language-switcher select,
    .gilann-language-switcher .gt_selector,
    .gilann-language-switcher .switcher,
    .gilann-language-switcher .switcher .selected a{
        width:78px!important;
        min-width:78px!important;
        height:34px!important;
        min-height:34px!important;
        padding-left:7px!important;
        padding-right:22px!important;
        font-size:8px!important;
    }

    .gilann-language-switcher .switcher .selected a img,
    .gilann-language-switcher .switcher .option a img{
        width:16px!important;
        margin-right:5px!important;
    }

    .contact-page-hero h2{
        font-size:57px;
    }
}
/* =========================================================
   
   ========================================================= */

/* Default text scaling */
:root {
    --gilann-text-scale: 1;
}

/* Larger Text â€” increase by 25% */
html.gilann-text-large {
    --gilann-text-scale: 1.25;
}

/* Smaller Text â€” decrease by 15% */
html.gilann-text-small {
    --gilann-text-scale: 0.85;
}

/* =========================================================
   NAVIGATION AND BRAND
   ========================================================= */

.brand {
    font-size: calc(30px * var(--gilann-text-scale));
}

.primary-nav {
    font-size: calc(12px * var(--gilann-text-scale));
}

.button {
    font-size: calc(11px * var(--gilann-text-scale));
}

/* =========================================================
   HOME HERO
   ========================================================= */

.hero h1 {
    font-size: clamp(
        calc(70px * var(--gilann-text-scale)),
        calc(8vw * var(--gilann-text-scale)),
        calc(125px * var(--gilann-text-scale))
    );
}

.hero-copy > small,
.intro small,
.dominica-copy > small,
.contact > div > small {
    font-size: calc(10px * var(--gilann-text-scale));
}

.hero-copy > p {
    font-size: calc(13px * var(--gilann-text-scale));
}

/* =========================================================
   SECTION HEADINGS AND BODY TEXT
   ========================================================= */

.intro h2,
.dominica h2,
.contact h2 {
    font-size: clamp(
        calc(42px * var(--gilann-text-scale)),
        calc(5vw * var(--gilann-text-scale)),
        calc(66px * var(--gilann-text-scale))
    );
}

.intro p,
.dominica-copy p,
.contact > div > p,
.generic p {
    font-size: calc(16px * var(--gilann-text-scale));
}

/* =========================================================
   PROPERTY CARDS
   ========================================================= */

.cards h2 {
    font-size: calc(34px * var(--gilann-text-scale));
}

.cards header b {
    font-size: calc(38px * var(--gilann-text-scale));
}

.cards header span {
    font-size: calc(9px * var(--gilann-text-scale));
}

.cards article > section p {
    font-size: calc(13px * var(--gilann-text-scale));
}

.photos div {
    font-size: calc(22px * var(--gilann-text-scale));
}

.photos small {
    font-size: calc(8px * var(--gilann-text-scale));
}

/* =========================================================
   EXPLORE DOMINICA
   ========================================================= */

.island b {
    font-size: calc(34px * var(--gilann-text-scale));
}

.island small {
    font-size: calc(8px * var(--gilann-text-scale));
}

.dominica-copy a {
    font-size: calc(11px * var(--gilann-text-scale));
}

/* =========================================================
   CONTACT FORMS
   ========================================================= */

.formbox label,
.contact-page-form label span {
    font-size: calc(9px * var(--gilann-text-scale));
}

.formbox input,
.formbox select,
.formbox textarea,
.contact-page-form input,
.contact-page-form select,
.contact-page-form textarea {
    font-size: calc(13px * var(--gilann-text-scale));
}

.contact-page-form h2 {
    font-size: calc(48px * var(--gilann-text-scale));
}

.contact-page-info h2 {
    font-size: clamp(
        calc(42px * var(--gilann-text-scale)),
        calc(4.5vw * var(--gilann-text-scale)),
        calc(63px * var(--gilann-text-scale))
    );
}

.contact-page-hero h1,
.contact-page-hero h2 {
    font-size: clamp(
        calc(60px * var(--gilann-text-scale)),
        calc(7vw * var(--gilann-text-scale)),
        calc(100px * var(--gilann-text-scale))
    );
}

.contact-page-hero p {
    font-size: calc(15px * var(--gilann-text-scale));
}

.contact-page-info > small,
.contact-page-form > small {
    font-size: calc(10px * var(--gilann-text-scale));
}

.contact-detail span {
    font-size: calc(9px * var(--gilann-text-scale));
}

.contact-assistance strong {
    font-size: calc(27px * var(--gilann-text-scale));
}

.contact-assistance p {
    font-size: calc(13px * var(--gilann-text-scale));
}

/* =========================================================
   GENERIC PAGES AND FOOTER
   ========================================================= */

.generic h1 {
    font-size: clamp(
        calc(48px * var(--gilann-text-scale)),
        calc(6vw * var(--gilann-text-scale)),
        calc(75px * var(--gilann-text-scale))
    );
}

footer {
    font-size: calc(11px * var(--gilann-text-scale));
}

.footer-inner b {
    font-size: calc(25px * var(--gilann-text-scale));
}

/* =========================================================
   ACCESSIBILITY PANEL
   Keep controls stable while website text changes
   ========================================================= */

.accessibility-panel {
    --gilann-text-scale: 1;
}

/* =========================================================
   RESPONSIVE TEXT SCALING
   ========================================================= */

@media (min-width:1051px) {

    .brand {
        font-size: calc(29px * var(--gilann-text-scale));
    }

    .primary-nav {
        font-size: calc(11px * var(--gilann-text-scale));
    }
}

@media (max-width:1280px) and (min-width:1051px) {

    .brand {
        font-size: calc(25px * var(--gilann-text-scale));
    }

    .primary-nav {
        font-size: calc(9px * var(--gilann-text-scale));
    }
}

@media (max-width:720px) {

    .brand {
        font-size: calc(23px * var(--gilann-text-scale));
    }

    .hero h1 {
        font-size: calc(67px * var(--gilann-text-scale));
    }

    .hero-copy > p {
        font-size: calc(9px * var(--gilann-text-scale));
    }

    .contact-page-hero h1,
    .contact-page-hero h2 {
        font-size: calc(57px * var(--gilann-text-scale));
    }

    .contact-page-hero p {
        font-size: calc(13px * var(--gilann-text-scale));
    }

    .contact-page-info h2 {
        font-size: calc(45px * var(--gilann-text-scale));
    }

    .contact-page-form h2 {
        font-size: calc(40px * var(--gilann-text-scale));
    }
}

/* GILANN TOWERS â€” HOMEPAGE HERO PHOTOGRAPH */
.home .hero {
    position: relative;
    background-image:
        linear-gradient(
            90deg,
            rgba(8, 31, 48, 0.78) 0%,
            rgba(8, 31, 48, 0.48) 45%,
            rgba(8, 31, 48, 0.08) 100%
        ),
        url('/wp-content/uploads/2026/10/roseau-waterfront-and-lush-mountain-panorama.png');
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
}

.home .hero .scenery,
.home .hero .shade {
    display: none;
}

.home .hero .hero-copy {
    position: relative;
    z-index: 2;
}

@media (max-width: 768px) {
    .home .hero {
        background-position: 58% center;
        background-image:
            linear-gradient(
                rgba(8, 31, 48, 0.65),
                rgba(8, 31, 48, 0.48)
            ),
            url('/wp-content/uploads/2026/10/roseau-waterfront-and-lush-mountain-panorama.png');
    }
}

/* GILANN TOWERS â€” REDUCED HOMEPAGE HERO HEIGHT */

.home .hero {
    height: 610px;
}

.home .hero .hero-copy {
    padding-top: 115px;
}

@media (max-width: 720px) {
    .home .hero {
        height: 560px;
    }

    .home .hero .hero-copy {
        padding-top: 100px;
    }
}

/* =========================================================
   GILANN TOWERS â€” COMPACT HOMEPAGE INTRO
   ========================================================= */

.home .intro {
    padding-top: 38px;
    padding-bottom: 30px;
    max-width: 950px;
}

.home .intro h2 {
    margin-top: 10px;
    margin-bottom: 12px;
}

.home .intro p {
    margin-top: 0;
    margin-bottom: 0;
}

@media (max-width: 720px) {
    .home .intro {
        padding: 30px 20px 25px;
    }
}
/* GILANN TOWERS â€” HEADER NAVIGATION SPACING */

@media (min-width: 1100px) {
    .site-header .header-inner {
        gap: 12px;
    }

    .site-header .primary-nav {
        display: flex;
        align-items: center;
        gap: 12px;
        min-width: 0;
    }

    .site-header .primary-nav a {
        font-size: 14px;
        white-space: nowrap;
        flex-shrink: 0;
    }

    .site-header .brand,
    .site-header .site-tools,
    .site-header .header-book {
        flex-shrink: 0;
    }
}

/* =========================================================
   END ACCESSIBILITY TEXT SCALING
   ========================================================= */

/* =========================================================
   GILANN TOWERS â€” READABLE ARIAL FONT (ALL DEVICES)
   Applied after the original theme styles to preserve layouts.
   ========================================================= */
:root {
    --sans: Arial, Helvetica, sans-serif;
    --serif: Arial, Helvetica, sans-serif;
}
body, button, input, select, textarea,
h1, h2, h3, h4, h5, h6,
.brand, .brand strong, .site-header .gilann-brand-name,
.hero h1, .hero h1 span,
.intro h2, .dominica h2, .contact h2,
.cards h2, .cards header b, .photos div,
.contact-page-hero h1, .contact-page-hero h2,
.contact-page-info h2, .contact-page-form h2,
.contact-assistance strong, .generic h1,
.footer-inner b, .island b {
    font-family: Arial, Helvetica, sans-serif !important;
}
/* Prevent exceptionally small text from being hard to read on phones. */
@media (max-width: 720px) {
    body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
    .hero-copy > p { font-size: 14px; letter-spacing: .09em; line-height: 1.55; }
    .hero-copy > small, .intro small, .dominica-copy > small,
    .contact > div > small, .contact-page-info > small,
    .contact-page-form > small, .contact-page-hero small { font-size: 12px; letter-spacing: .10em; }
    .cards article > section p, .contact-assistance p,
    .contact-page-hero p { font-size: 15px; line-height: 1.65; }
    .intro p, .contact > div > p, .contact-page-info > p,
    .generic p { color: #34464d; }
    .cards article > section p { color: #34464d; }
    .formbox label, .contact-page-form label span,
    .contact-detail span { font-size: 12px; letter-spacing: .06em; }
    .formbox input, .formbox select, .formbox textarea,
    .contact-page-form input, .contact-page-form select,
    .contact-page-form textarea { font-size: 16px; color: #29363a; }
    .button, .contact-submit { font-size: 12px; }
    footer { font-size: 13px; }
    .footer-inner .credit, .footer-inner p, .footer-inner a { font-size: 13px; }
}