/* CHANGE BRAND COLORS AND TYPOGRAPHY HERE */
:root {
    --neutral:#161616;
    --black:#080907;
    --gold:#c9a96a;
    --cream:#f8f5ee;
    --muted-gold:#a08043;
    --line:#dedede;
    --body:'Inter',Arial,sans-serif;
    --heading:'Playfair Display',Georgia,serif
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:30px
}
body {
    margin:0;
    color:#080907;
    background:#fff;
    font-family:var(--body);
    font-size:14px;
    line-height:1.5
}
a {
    color:inherit;
    text-decoration:none
}
button,input,select,textarea {
    font:inherit
}
button,a,input,select,textarea {
    -webkit-tap-highlight-color:transparent
}
button {
    cursor:pointer
}
img {
    display:block;
    max-width:100%;
    object-fit:cover
}
p,h1,h2,h3,h4,figure,blockquote {
    margin:0
}
h1,h2,h3 {
    font-family:var(--heading);
    font-weight:400;
    line-height:1.18
}
h1 {
    font-size:clamp(40px,4.8vw,68px);
    letter-spacing:-1.3px
}
h2 {
    font-size:clamp(32px,3.7vw,46px);
    letter-spacing:-.8px;
    margin-bottom:22px
}
h3 {
    font-size:28px;
    letter-spacing:-.5px;
    margin-bottom:12px
}
p {
    line-height:1.5
}
.container {
    width:90%;
    max-width:1320px;
    margin:auto
}
.section {
    padding:112px 0
}
.dark {
    background:var(--black);
    color:#fff
}
.cream {
    background:var(--cream)
}
.eyebrow {
    text-transform:uppercase;
    font-size:13px;
    color:var(--muted-gold);
    margin-bottom:9px
}
.dark .eyebrow {
    color:var(--gold)
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:11px 17px;
    font-size:13px;
    font-weight:600;
    line-height:1.3;
    border:1px solid transparent;
    border-radius:0;
    transition:background .18s,color .18s
}
.gold {
    background:var(--gold);
    color:#080907
}
.black {
    background:var(--black);
    color:white
}
.outline {
    border-color:var(--line);
    background:transparent
}
.dark .outline,.hero .outline {
    border-color:#343434
}
.button:hover {
    background:#ad8d4f;
    color:#fff
}
.button:focus-visible,a:focus-visible,button:focus-visible {
    outline:2px solid var(--gold);
    outline-offset:4px
}
.split {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:11%;
    align-items:center
}
.split>div>p:not(.eyebrow) {
    max-width:490px
}
.split>div>.button {
    margin-top:28px
}
.square {
    width:100%;
    aspect-ratio:1
}
.section-heading {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:11%;
    margin-bottom:72px;
    align-items:start
}
.section-heading h2 {
    margin-bottom:0
}
.section-heading .button {
    margin-top:18px
}
.grid {
    display:grid;
    gap:64px 38px
}
.three {
    grid-template-columns:repeat(3,minmax(0,1fr))
}
.origins {
    grid-template-columns:repeat(4,minmax(0,1fr))
}
.feature .icon {
    display:block;
    margin-bottom:28px;
    font-size:25px;
    height:28px;
    line-height:28px
}
.icon {
    color:var(--muted-gold)
}
.section-action {
    margin-top:80px
}
/* CHANGE HEADER AND LOGO SIZING HERE */
.site-header {
    height:65px;
    padding:0 3.6%;
    background:var(--black);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px
}
.logo {
    display:inline-block;
    flex-shrink:0
}
.logo img {
    width:72px;
    height:auto
}
.site-header nav {
    display:flex;
    align-items:center;
    gap:28px;
    font-size:13px;
    font-weight:500
}
.site-header nav>a:not(.button):hover {
    color:var(--gold)
}
.menu-toggle {
    display:none
}
/* CHANGE HERO IMAGE HERE */
.hero {
    position:relative;
    min-height:730px;
    display:flex;
    align-items:center;
    color:white;
    background:linear-gradient(90deg,rgba(0,0,0,.4),rgba(0,0,0,.45)),url('assets/Hero luxury marble backdrop.jpg') center center/cover no-repeat
}
.hero .container {
    padding:80px 0
}
.hero .eyebrow {
    color:#fff;
    font-weight:700;
    margin-bottom:9px
}
.hero-copy {
    max-width:440px;
    margin-top:21px;
    font-weight:500
}
.actions {
    display:flex;
    gap:14px;
    margin-top:32px
}
.gallery {
    gap:28px
}
.gallery img {
    width:100%;
    aspect-ratio:1.5;
    object-fit:cover
}
.gallery figcaption {
    font-size:13px;
    margin-top:10px
}
.gallery figcaption span {
    display:block;
    margin-top:2px
}
.stars {
    color:var(--muted-gold);
    font-size:23px;
    letter-spacing:1px;
    margin-bottom:18px
}
.review blockquote {
    font-size:15px;
    line-height:1.55
}
.review figcaption {
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:22px;
    font-size:13px
}
.review small {
    display:block;
    margin-top:2px;
    font-size:12px
}
.avatar {
    width:40px;
    height:40px;
    border-radius:50%;
    background:#e7e2d8;
    color:#9a824e;
    display:grid;
    place-items:center
}
.testimonials {
    padding-bottom:115px
}
.contact {
    padding-top:110px
}
.contact-grid {
    align-items:start
}
.contact-details {
    margin:22px 0 30px
}
.contact-details>div {
    display:flex;
    gap:13px;
    margin-bottom:12px
}
.contact-details p {
    font-size:13px
}
.contact-details a,.contact-details p>span {
    display:block
}
.contact-details .icon {
    font-size:19px;
    line-height:1.2
}
form {
    display:flex;
    flex-direction:column;
    align-items:stretch
}
form label {
    font-size:13px;
    margin-bottom:5px
}
input,select,textarea {
    width:100%;
    border:1px solid var(--line);
    background:white;
    color:var(--neutral);
    border-radius:0;
    padding:10px 11px;
    margin-bottom:19px;
    font-size:13px;
    min-height:40px
}
textarea {
    resize:vertical;
    min-height:108px
}
input:focus,select:focus,textarea:focus {
    outline:1px solid var(--muted-gold);
    border-color:var(--muted-gold)
}
form .button {
    align-self:flex-start;
    margin-top:10px
}
.optional {
    color:#666
}
#form-status {
    font-size:13px;
    margin-top:12px
}
.map-panel iframe {
    border:0;
    width:100%;
    height:320px;
    display:block
}
.map-panel>p {
    font-size:12px;
    margin-top:9px
}
.location h3 {
    font-size:24px;
    margin-top:25px
}
/* CHANGE FOOTER STYLING HERE */
footer {
    padding:76px 0 65px
}
.footer-grid {
    display:grid;
    grid-template-columns:2.8fr .8fr .8fr .8fr 2fr;
    gap:32px;
    font-size:12px
}
.footer-grid h4 {
    font-size:13px;
    font-weight:600;
    margin-bottom:22px
}
.footer-grid>div>a:not(.button):not(.logo) {
    display:block;
    margin-bottom:9px
}
.footer-grid .button {
    margin-top:18px
}
.footer-grid>div:last-child h4 {
    margin-bottom:7px
}
.footer-contact {
    margin-top:32px
}
.footer-contact p {
    display:flex;
    gap:13px;
    margin-bottom:12px
}
.footer-contact .icon {
    font-size:18px
}
.footer-bottom {
    border-top:1px solid #282828;
    margin-top:88px;
    padding-top:30px;
    display:flex;
    justify-content:space-between;
    gap:24px;
    font-size:11px
}
.footer-bottom>div {
    display:flex;
    gap:18px
}
.text-link {
    padding:0;
    border:0;
    background:none;
    color:inherit;
    text-decoration:underline;
    font-size:inherit
}
dialog {
    border:1px solid var(--line);
    padding:40px;
    max-width:560px;
    width:90%;
    color:var(--neutral)
}
dialog::backdrop {
    background:#0009
}
.dialog-close {
    position:absolute;
    right:12px;
    top:8px;
    border:0;
    background:transparent;
    font-size:28px
}
.skip-link {
    position:fixed;
    top:-100px;
    left:20px;
    padding:12px;
    background:white;
    z-index:10
}
.skip-link:focus {
    top:10px
}
/* TABLET: preserve the reference proportions at its supplied 825px width. */
@media(min-width:761px) and (max-width:1000px) {
    body {
        font-size:10px
    }
    .section {
        padding:76px 0
    }
    h1 {
        font-size:40px
    }
    h2 {
        font-size:30px;
        margin-bottom:15px
    }
    h3 {
        font-size:20px;
        margin-bottom:8px
    }
    .eyebrow {
        font-size:9px;
        margin-bottom:6px
    }
    .button {
        font-size:9px;
        min-height:28px;
        padding:7px 11px
    }
    .site-header {
        height:45px
    }
    .logo img {
        width:49px
    }
    .site-header nav {
        gap:20px;
        font-size:9px
    }
    .hero {
        min-height:502px
    }
    .hero-copy {
        max-width:300px;
        margin-top:14px
    }
    .actions {
        margin-top:22px;
        gap:9px
    }
    .section-heading {
        margin-bottom:55px
    }
    .grid {
        gap:45px 26px
    }
    .feature .icon {
        font-size:18px;
        margin-bottom:22px;
        height:20px;
        line-height:20px
    }
    .gallery {
        gap:18px
    }
    .gallery figcaption {
        font-size:9px;
        margin-top:7px
    }
    .review blockquote {
        font-size:10px
    }
    .review figcaption {
        font-size:9px;
        margin-top:16px
    }
    .review small {
        font-size:8px
    }
    .avatar {
        width:28px;
        height:28px
    }
    .stars {
        font-size:17px;
        margin-bottom:12px
    }
    .section-action {
        margin-top:55px
    }
    .contact-details p,form label,input,select,textarea {
        font-size:10px
    }
    input,select,textarea {
        min-height:28px;
        padding:6px 8px;
        margin-bottom:14px
    }
    .footer-grid {
        font-size:9px;
        gap:22px
    }
    .footer-grid h4 {
        font-size:9px
    }
    .footer-bottom {
        font-size:8px
    }
    .testimonials {
        padding-bottom:80px
    }
    .contact {
        padding-top:80px
    }
}
/* MOBILE: stack columns while retaining colors, typography and section order. */
@media(max-width:760px) {
    body {
        font-size:14px
    }
    .container {
        width:88%
    }
    .section {
        padding:65px 0
    }
    h1 {
        font-size:42px;
        letter-spacing:-1px
    }
    h2 {
        font-size:33px
    }
    h3 {
        font-size:24px
    }
    .site-header {
        height:70px;
        padding:0 6%;
        position:relative;
        z-index:2
    }
    .logo img {
        width:76px
    }
    .menu-toggle {
        display:flex;
        flex-direction:column;
        gap:5px;
        border:1px solid #555;
        padding:10px;
        background:transparent
    }
    .menu-toggle span {
        width:22px;
        height:2px;
        background:white
    }
    .site-header nav {
        display:none;
        position:absolute;
        top:70px;
        left:0;
        right:0;
        background:var(--black);
        padding:24px 6%;
        align-items:stretch;
        flex-direction:column;
        gap:20px;
        font-size:14px
    }
    .site-header nav.is-open {
        display:flex
    }
    .hero {
        min-height:650px;
        background-position:57% center
    }
    .hero .container {
        padding:80px 0
    }
    .hero h1 br {
        display:none
    }
    .hero-copy {
        max-width:390px
    }
    .actions {
        flex-wrap:wrap;
        gap:12px
    }
    .button {
        min-height:44px;
        font-size:12px
    }
    .split,.section-heading {
        grid-template-columns:1fr;
        gap:35px
    }
    .split .square {
        max-height:560px
    }
    .section-heading {
        margin-bottom:45px
    }
    .section-heading h2 br,.split h2 br {
        display:none
    }
    .three,.origins {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:38px 24px
    }
    .feature .icon {
        margin-bottom:20px
    }
    .gallery figcaption {
        font-size:12px
    }
    .review blockquote {
        font-size:14px
    }
    .testimonials .three {
        grid-template-columns:1fr;
        gap:36px
    }
    .section-action {
        margin-top:40px
    }
    .contact-grid {
        gap:45px
    }
    .footer-grid {
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:35px 20px
    }
    .footer-grid>div:first-child {
        grid-column:1/-1
    }
    .footer-grid>div:last-child {
        grid-column:1/-1
    }
    .footer-bottom {
        margin-top:50px;
        flex-direction:column;
        font-size:11px
    }
    .footer-grid {
        font-size:12px
    }
    .map-panel iframe {
        height:300px
    }
    input,select,textarea {
        font-size:16px;
        min-height:44px
    }
    form label {
        font-size:13px
    }
}
@media(max-width:440px) {
    h1 {
        font-size:36px
    }
    .three,.origins {
        grid-template-columns:1fr
    }
    .origins {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:35px 22px
    }
    .origins h3 {
        font-size:22px
    }
    .origins p {
        font-size:12px
    }
    .gallery {
        gap:28px
    }
    .feature h3 {
        font-size:24px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    * {
        transition:none!important
    }
}
