:root{
    color-scheme:light;
    --ink:#172738;
    --navy:#102638;
    --muted:#516372;
    --line:#d8e2e8;
    --blue:#205d7a;
    --paper:#f3f7f8;
    --white:#fff;
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font:1rem/1.55 system-ui,sans-serif;
}

a{
    color:var(--blue);
    text-underline-offset:.2em;
}

button,input,select,textarea{
    font:inherit;
}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
    outline:3px solid #cb8055;
    outline-offset:3px;
}

.shell{
    width:min(1160px,calc(100% - 2rem));
    margin-inline:auto;
}

.topbar{
    background:var(--navy);
    color:#fff;
}

.topbar-inner,.section-heading,.actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
}

.topbar-inner{
    min-height:70px;
    padding:.7rem 0;
}

.topbar a,.topbar button{
    color:inherit;
}

.brand{
    display:flex;
    gap:.65rem;
    align-items:center;
    text-decoration:none;
    font-weight:760;
}

.brand-mark{
    display:grid;
    place-items:center;
    width:2.35rem;
    height:2.35rem;
    border:1px solid #8bb2c6;
    border-radius:50%;
    color:#d8e9ed;
}

.topbar nav,.pagination{
    display:flex;
    align-items:center;
    gap:1rem;
    flex-wrap:wrap;
}

.topbar form,.topbar nav{
    margin:0;
}

.main{
    min-height:72vh;
    padding-block:1.5rem 3rem;
}

.hero{
    background:linear-gradient(140deg,#142f43,#1f556c);
    color:#fff;
    border-radius:1.2rem;
    padding:clamp(1.3rem,4vw,3.8rem);
}

h1,h2,h3,p{
    margin-top:0;
}

h1{
    font-size:clamp(2rem,5.2vw,4rem);
    line-height:1.08;
    letter-spacing:-.035em;
    margin-bottom:.85rem;
}

h2{
    line-height:1.15;
}

.eyebrow{
    font-size:.82rem;
    font-weight:750;
    letter-spacing:.10em;
    text-transform:uppercase;
}

.hero .eyebrow{
    color:#cde8f0;
}

.search,.fields,.facts{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));
    gap:.9rem;
    align-items:end;
}

.search{
    margin-top:1.5rem;
}

.advanced{
    grid-column:1/-1;
}

.advanced summary{
    cursor:pointer;
    font-weight:650;
    margin:.3rem 0 .65rem;
}

.search>button{
    width:fit-content;
    background:#e2f3f7;
    color:#123b4f;
}

.section-heading{
    margin:2rem 0 1rem;
}

.section-heading h2,.section-heading h1{
    margin-bottom:0;
}

.card-grid,.metrics{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));
    gap:1rem;
}

.card,.panel,.metric{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:1rem;
    overflow:hidden;
}

.panel,.metric{
    padding:1.15rem;
}

.card-cover{
    display:grid;
    place-items:center;
    aspect-ratio:16/10;
    background:#dcebf0;
    color:#244f63;
    font-weight:700;
}

.card-cover img,.gallery img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.card-body{
    padding:1rem;
}

.card-body p{
    margin-bottom:.55rem;
}

.price{
    font-size:1.4rem;
    font-weight:780;
    color:#194960;
}

.detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);
    align-items:start;
    gap:1rem;
    margin-top:1rem;
}

.gallery{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%,165px),1fr));
    gap:.6rem;
    margin-bottom:1.1rem;
}

.gallery a{
    display:block;
    aspect-ratio:4/3;
}

.gallery img{
    border-radius:.6rem;
}

.back{
    display:inline-block;
    margin-bottom:1rem;
}

.facts dt{
    color:var(--muted);
}

.facts dd{
    font-weight:700;
    margin:0;
}

.preserve{
    white-space:pre-line;
    overflow-wrap:anywhere;
}

.stack{
    display:grid;
    gap:.9rem;
}

label{
    display:grid;
    gap:.25rem;
    font-weight:650;
}

input,select,textarea{
    display:block;
    width:100%;
    min-width:0;
    border:1px solid #aab9c3;
    border-radius:.4rem;
    background:white;
    color:var(--ink);
    padding:.55rem .65rem;
}

input[type=checkbox]{
    width:auto;
}

.inline{
    display:flex;
    align-items:baseline;
    gap:.55rem;
    font-size:.94rem;
}

button,.button{
    background:var(--blue);
    color:#fff;
    border:0;
    border-radius:.45rem;
    padding:.55rem .85rem;
    font-weight:750;
    cursor:pointer;
    text-decoration:none;
    display:inline-block;
}

.quiet{
    background:transparent;
    padding:0;
}

.notice{
    background:#e0f1e6;
    color:#123d29;
    padding:.8rem 1rem;
    border-radius:.5rem;
}

.warning{
    background:#fff0df;
    color:#723912;
}

.pagination{
    margin-top:1.2rem;
}

.footer{
    padding-block:1rem 2rem;
    border-top:1px solid var(--line);
    color:var(--muted);
}

.table-scroll{
    overflow:auto;
}

table{
    width:100%;
    border-collapse:collapse;
}

th,td{
    text-align:left;
    padding:.7rem;
    border-bottom:1px solid var(--line);
    vertical-align:top;
}

.metric strong{
    font-size:1.7rem;
    display:block;
}

.narrow{
    max-width:520px;
    margin:1.2rem auto;
}

fieldset{
    min-width:0;
    border:1px solid var(--line);
    border-radius:.6rem;
    padding:1rem;
}

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

.panel+.panel{
    margin-top:1rem;
}

.detail-grid .panel+.panel{
    margin-top:0;
}

@media(max-width:720px){
    .detail-grid{
        grid-template-columns:1fr;
    }
    .topbar nav{
        font-size:.94rem;
    }
    .main{
        padding-top:1rem;
    }
    .shell{
        width:calc(100% - 1.25rem);
    }
}
