:root{
    --vino:#5b1735;
    --vino-dark:#3f0e27;
    --vino-deep:#2d091c;
    --vino-soft:#f4e7ed;
    --cream:#f6f3ec;
    --paper:#ffffff;
    --ink:#26272b;
    --muted:#676a70;
    --line:#d8d9db;
    --bluebar:#d7e5e7;
    --blueink:#264a53;
    --green:#217a4b;
    --green-bg:#ecf7f1;
    --red:#a92f43;
    --red-bg:#fff0f2;
    --amber:#8a6500;
    --amber-bg:#fff6d9;
    --shadow:0 12px 28px rgba(45,9,28,.08);
    --radius:10px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    color:var(--ink);
    background:var(--cream);
    font-family:Arial,Helvetica,sans-serif;
    line-height:1.55;
}
a{color:inherit}
button,input{font:inherit}
.container{width:min(1180px,calc(100% - 32px));margin:0 auto}

.independent-notice{
    background:#231c20;
    color:#f4edf0;
    font-size:13px;
    padding:9px 0;
}
.independent-notice strong{color:#fff}

.site-header{
    background:linear-gradient(90deg,var(--vino-dark),var(--vino-deep));
    color:#fff;
    border-bottom:1px solid rgba(255,255,255,.08);
}
.header-inner{
    min-height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}
.brand{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    min-width:225px;
}
.brand-mark{
    width:43px;height:43px;
    display:grid;place-items:center;
    border:1px solid rgba(255,255,255,.5);
    border-radius:50%;
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
}
.brand-copy strong{display:block;font-size:16px;letter-spacing:.01em}
.brand-copy small{display:block;color:#d9cbd1;margin-top:2px;font-size:11px}

.main-nav{display:flex;align-items:center;gap:3px}
.main-nav a{
    color:#f6eef2;
    text-decoration:none;
    padding:27px 14px;
    font-size:14px;
    border-bottom:3px solid transparent;
}
.main-nav a:hover,.main-nav a.active{
    background:rgba(255,255,255,.05);
    border-bottom-color:#d7a9ba;
}
.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}

.breadcrumb{
    font-size:13px;
    color:#707277;
    padding:18px 0 0;
}
.breadcrumb a{text-decoration:none;color:var(--vino)}

.hero-title{
    padding:24px 0 16px;
}
.hero-title h1{
    margin:0;
    font-size:34px;
    font-weight:600;
    letter-spacing:-.02em;
}
.hero-title p{
    margin:8px 0 0;
    color:var(--muted);
    max-width:850px;
}

.consult-card{
    background:var(--paper);
    border:1px solid #ddd;
    border-radius:4px;
    box-shadow:var(--shadow);
    overflow:hidden;
    margin-bottom:28px;
}
.search-instruction{
    text-align:center;
    background:var(--bluebar);
    color:var(--blueink);
    font-size:15px;
    font-weight:700;
    letter-spacing:.02em;
    padding:15px 18px;
    text-transform:uppercase;
}
.search-form{padding:24px 28px 26px}
.form-row{margin-bottom:20px}
.form-row label{
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:600;
    font-size:14px;
    margin-bottom:8px;
}
.help-dot{
    width:20px;height:20px;
    display:inline-grid;place-items:center;
    border-radius:50%;
    background:#383a3d;color:white;
    font-size:12px;
    cursor:help;
}
.text-input{
    width:100%;
    height:44px;
    border:1px solid #c9cacc;
    border-radius:3px;
    padding:9px 12px;
    background:#fff;
    outline:none;
    transition:border-color .15s ease,box-shadow .15s ease;
}
.text-input:focus{
    border-color:#8a5369;
    box-shadow:0 0 0 3px rgba(91,23,53,.09);
}
.text-input[disabled]{
    background:#f2f2f0;
    color:#85878b;
    cursor:not-allowed;
}
.text-input[disabled]::placeholder{color:#929497;opacity:1}
.field-help{font-size:12px;color:var(--muted);margin-top:6px}
.required-note{font-size:12px;color:#a13b49;margin:2px 0 0}
.form-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    padding-top:8px;
}
.btn{
    min-width:104px;
    min-height:42px;
    border:1px solid transparent;
    border-radius:3px;
    padding:9px 18px;
    cursor:pointer;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:600;
}
.btn-light{background:#fff;border-color:#bfc1c4;color:#333}
.btn-dark{background:#55585b;border-color:#4d5053;color:white}
.btn-vino{background:var(--vino);border-color:var(--vino);color:#fff}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn:hover:not(:disabled){filter:brightness(.96)}

.loader{
    display:none;
    align-items:center;
    gap:10px;
    color:var(--muted);
    margin-top:14px;
    font-size:13px;
}
.loader.show{display:flex}
.spinner{
    width:19px;height:19px;
    border:3px solid #ddd;
    border-top-color:var(--vino);
    border-radius:50%;
    animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.result-box{
    display:none;
    margin-top:24px;
    border:1px solid var(--line);
    border-radius:6px;
    overflow:hidden;
}
.result-box.show{display:block}
.result-head{
    background:#f7f7f4;
    padding:16px 18px;
    border-bottom:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
}
.result-head h2{margin:0;font-size:19px}
.result-head p{margin:4px 0 0;color:var(--muted);font-size:12px}
.source-pill{
    white-space:nowrap;
    border-radius:99px;
    padding:6px 10px;
    background:var(--vino-soft);
    color:var(--vino);
    font-size:11px;
    font-weight:700;
}
.result-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.result-item{
    padding:15px 18px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    min-height:78px;
}
.result-item:nth-child(3n){border-right:0}
.result-label{
    display:block;
    color:var(--muted);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.05em;
    margin-bottom:5px;
}
.result-value{font-weight:700;overflow-wrap:anywhere}
.result-note{
    margin:0;
    padding:15px 18px;
    background:#faf8f3;
    color:#5b5558;
    font-size:12px;
}
.alert{
    display:none;
    margin-top:16px;
    padding:13px 15px;
    border-radius:5px;
    font-size:13px;
    border:1px solid transparent;
}
.alert.show{display:block}
.alert.error{background:var(--red-bg);color:var(--red);border-color:#efc8cf}
.alert.success{background:var(--green-bg);color:var(--green);border-color:#c4e7d4}
.alert.warn{background:var(--amber-bg);color:var(--amber);border-color:#ead899}

.info-strip{
    margin:22px 0 34px;
    background:#fff8e7;
    border:1px solid #ead8aa;
    padding:15px 18px;
    border-radius:6px;
    color:#5b4b22;
    font-size:13px;
}
.info-strip strong{color:#47370e}

.content-section{padding:34px 0}
.content-section.white{background:#fff}
.section-heading{max-width:820px;margin-bottom:24px}
.section-heading .eyebrow{
    text-transform:uppercase;
    font-size:11px;
    letter-spacing:.12em;
    color:var(--vino);
    font-weight:700;
}
.section-heading h2{font-size:29px;margin:6px 0 8px;letter-spacing:-.02em}
.section-heading p{margin:0;color:var(--muted)}

.cards{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.info-card{
    background:#fff;
    border:1px solid #e1dfda;
    border-radius:7px;
    padding:22px;
}
.white .info-card{background:#faf9f6}
.info-card h3{margin:0 0 8px;font-size:18px}
.info-card p{margin:0;color:var(--muted);font-size:14px}
.info-card a{display:inline-block;margin-top:14px;color:var(--vino);font-weight:700;text-decoration:none}

.steps{counter-reset:step;display:grid;gap:14px}
.step{
    counter-increment:step;
    display:grid;
    grid-template-columns:44px 1fr;
    gap:14px;
    align-items:start;
    background:#fff;
    border:1px solid #deddd8;
    padding:17px;
    border-radius:7px;
}
.step::before{
    content:counter(step);
    display:grid;place-items:center;
    width:38px;height:38px;
    border-radius:50%;
    background:var(--vino);
    color:#fff;
    font-weight:700;
}
.step h3{margin:0 0 5px;font-size:16px}
.step p{margin:0;color:var(--muted);font-size:14px}

.callout{
    background:linear-gradient(90deg,var(--vino-dark),var(--vino));
    color:white;
    padding:28px;
    border-radius:8px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
}
.callout h2{margin:0 0 7px;font-size:24px}
.callout p{margin:0;color:#eedee5;max-width:760px}
.callout .btn{background:#fff;color:var(--vino);border-color:#fff}

.article-wrap{
    display:grid;
    grid-template-columns:minmax(0,1fr) 280px;
    gap:28px;
    padding:30px 0 44px;
}
.article{
    background:#fff;
    border:1px solid #e2e0dc;
    padding:30px;
    border-radius:8px;
}
.article h1{margin-top:0;font-size:32px}
.article h2{margin-top:30px;font-size:23px}
.article h3{margin-top:24px}
.article p,.article li{color:#505258}
.article li{margin-bottom:7px}
.article a{color:var(--vino);font-weight:700}
.sidebox{
    background:#fff;
    border:1px solid #e2e0dc;
    padding:20px;
    border-radius:8px;
    height:max-content;
    position:sticky;
    top:18px;
}
.sidebox h3{margin-top:0}
.sidebox a{
    display:block;
    color:var(--vino);
    text-decoration:none;
    padding:8px 0;
    border-bottom:1px solid #eee;
    font-size:13px;
}
.sidebox a:last-child{border-bottom:0}

.faq{display:grid;gap:10px}
.faq details{
    background:#fff;
    border:1px solid #e0ded9;
    border-radius:6px;
    padding:0 17px;
}
.faq summary{cursor:pointer;font-weight:700;padding:16px 0}
.faq p{margin:0 0 16px;color:var(--muted)}

.site-footer{
    background:linear-gradient(90deg,var(--vino-dark),var(--vino-deep));
    color:#f4e9ee;
    padding:38px 0 18px;
    margin-top:28px;
}
.footer-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1.2fr;
    gap:28px;
}
.site-footer h3{margin:0 0 13px;font-size:16px;color:#fff}
.site-footer p{font-size:13px;color:#d9cbd1;margin:0}
.site-footer a{
    display:block;
    color:#e9dce2;
    font-size:13px;
    text-decoration:none;
    margin:8px 0;
}
.site-footer a:hover{text-decoration:underline}
.footer-bottom{
    border-top:1px solid rgba(255,255,255,.14);
    margin-top:28px;
    padding-top:16px;
    display:flex;
    justify-content:space-between;
    gap:18px;
    color:#cdb9c3;
    font-size:11px;
}

.contact-box{
    background:#fff;
    border:1px solid #e1dfda;
    padding:24px;
    border-radius:8px;
}
.contact-box p{color:var(--muted)}

@media(max-width:900px){
    .main-nav{display:none;position:absolute;left:0;right:0;top:111px;background:var(--vino-dark);padding:8px 16px 16px;flex-direction:column;align-items:stretch;z-index:30}
    .main-nav.open{display:flex}
    .main-nav a{padding:13px 10px;border-bottom:1px solid rgba(255,255,255,.08)}
    .nav-toggle{display:block}
    .header-inner{position:relative}
    .result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .result-item:nth-child(3n){border-right:1px solid var(--line)}
    .result-item:nth-child(2n){border-right:0}
    .cards{grid-template-columns:1fr 1fr}
    .footer-grid{grid-template-columns:1fr 1fr}
    .article-wrap{grid-template-columns:1fr}
    .sidebox{position:static}
}
@media(max-width:620px){
    .container{width:min(100% - 22px,1180px)}
    .independent-notice{font-size:11px}
    .header-inner{min-height:68px}
    .brand-copy small{display:none}
    .main-nav{top:99px}
    .hero-title h1{font-size:28px}
    .search-form{padding:20px 15px}
    .search-instruction{font-size:12px}
    .form-actions{justify-content:stretch}
    .form-actions .btn{flex:1}
    .result-grid{grid-template-columns:1fr}
    .result-item,.result-item:nth-child(2n),.result-item:nth-child(3n){border-right:0}
    .result-head{flex-direction:column}
    .cards{grid-template-columns:1fr}
    .callout{flex-direction:column;align-items:flex-start}
    .footer-grid{grid-template-columns:1fr}
    .footer-bottom{flex-direction:column}
    .article{padding:22px 17px}
}
