/* Minimal catalogue detail: visual, essentials, and optional information. */
.service-compact-page .shop-main{padding-top:36px;padding-bottom:48px}
.catalog-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:start}
.catalog-detail-image{margin:0;min-width:0}
.service-compact-page .catalog-detail-image .service-art{width:100%;height:auto;max-height:none;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#ecefe5}
.catalog-detail-image figcaption{font-size:12px;line-height:1.6;color:#738074;margin-top:10px}
.catalog-detail-info{min-width:0;padding-top:6px}
.catalog-detail-category{font-size:12px;font-weight:500;line-height:1.6;letter-spacing:.08em;text-transform:uppercase;color:#64746b}
.catalog-detail-info h1{font-family:Fraunces,Georgia,serif;font-size:clamp(30px,3vw,46px);font-weight:600;line-height:1.15;letter-spacing:-.035em;margin-top:12px;color:#203d32}
.catalog-detail-description{font-size:16px;line-height:1.75;color:#536159;margin-top:16px;max-width:600px}
.service-compact-page .catalog-detail-info .service-price{margin:24px 0 0;padding:0;border:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 9px}
.service-compact-page .catalog-detail-info .service-price-label{display:block;flex-basis:100%;font-size:13px;color:#64746b;margin:0}
.service-compact-page .catalog-detail-info .service-price strong{font-family:'DM Sans',sans-serif;font-size:32px;font-weight:600;line-height:1.3;letter-spacing:-.035em;color:#203d32}
.service-compact-page .catalog-detail-info .service-price-unit{font-size:14px;color:#64746b}
.catalog-detail-scope{font-size:15px;line-height:1.75;color:#536159;margin-top:12px;max-width:600px}
.catalog-detail-contact{display:flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:14px 20px;border-radius:10px;background:#315b4c;color:#fffdf8;font-size:16px;font-weight:600;margin-top:24px;text-decoration:none}
.catalog-detail-contact:hover{background:#244737}.catalog-detail-contact>span[aria-hidden]{font-size:18px}
.catalog-detail-note{text-align:center;font-size:13px;line-height:1.7;color:#64746b;margin-top:12px}
.catalog-detail-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;font-size:13px;color:#54745b;margin-top:20px}
.catalog-detail-facts span{display:flex;align-items:center;gap:7px}.catalog-detail-facts span:before{content:'✓';font-size:14px}
@media(min-width:901px){.catalog-detail-image{position:sticky;top:108px}}
@media(max-width:900px){.catalog-detail{grid-template-columns:1fr;gap:28px}.service-compact-page .catalog-detail-image .service-art{aspect-ratio:16/10;max-height:480px}.catalog-detail-info{padding-top:0}}
@media(max-width:700px){.service-compact-page .shop-main{padding-top:24px;padding-bottom:32px}.catalog-detail{gap:24px}.catalog-detail-info h1{font-size:32px}.catalog-detail-description{margin-top:12px}.service-compact-page .catalog-detail-info .service-price{margin-top:20px}.catalog-detail-facts{font-size:13px;gap:8px 16px}}

.catalog-detail-more{margin-top:18px;padding-top:14px;border-top:1px solid #315b4c20;display:flex;justify-content:center}
.catalog-detail-more button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 12px;color:#315b4c;font-size:14px;font-weight:500;line-height:1.5;border-radius:8px}
.catalog-detail-more button>.material-symbols-rounded{font-size:19px;color:#64746b}.catalog-more-arrow{font-size:24px;line-height:1;margin-left:8px;color:#64746b}
.catalog-detail-more button:hover{background:#edf0e5}
.catalog-detail a:focus-visible,.catalog-detail button:focus-visible,.catalog-info-dialog button:focus-visible{outline:2px solid #315b4c;outline-offset:4px}
.catalog-info-dialog{width:min(1040px,calc(100% - 2 * var(--page-gutter,24px)));height:min(580px,85svh);max-height:85svh;margin:auto;padding:0;border:1px solid #315b4c25;border-radius:20px;background:#fffdf8;color:#17231f;overflow:hidden;box-shadow:0 24px 80px #17231f25}
.catalog-info-dialog[open]{display:grid;grid-template-columns:210px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
.catalog-info-dialog::backdrop{background:#17231f65;backdrop-filter:blur(5px)}
.catalog-dialog-heading{grid-column:1/-1;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:26px 30px;background:#fffdf8;border-bottom:1px solid #315b4c18}
.catalog-dialog-eyebrow{font-size:10px;letter-spacing:.14em;font-weight:600;color:#738074;margin-bottom:10px}.catalog-dialog-heading h2{font-family:Fraunces,Georgia,serif;font-size:28px;line-height:1.25;letter-spacing:-.025em;font-weight:600;color:#203d32}
.catalog-dialog-heading form{flex-shrink:0}.catalog-dialog-heading button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #315b4c20;border-radius:50%;color:#315b4c;background:transparent}.catalog-dialog-heading button:hover{background:#edf0e5}.catalog-dialog-heading svg{width:18px;height:18px}
.catalog-dialog-tabs{display:flex;flex-direction:column;gap:8px;padding:24px 16px;background:#f2f4ec;border-right:1px solid #315b4c18;overflow:auto}
.catalog-dialog-tabs button{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px;border-radius:9px;font-size:14px;font-weight:500;line-height:1.5;color:#64746b;text-align:left;flex-shrink:0}.catalog-dialog-tabs button>.material-symbols-rounded{font-size:20px}
.catalog-dialog-tabs button:hover{background:#e8eddf}.catalog-dialog-tabs button[aria-selected="true"]{background:#315b4c;color:#fffdf8;font-weight:600}
.catalog-dialog-content{padding:30px;overflow-y:auto;overscroll-behavior:contain;min-height:0;min-width:0}
.catalog-panel-title{display:flex;align-items:center;margin-bottom:18px}.catalog-panel-title>.material-symbols-rounded{display:none}.catalog-panel-title h3{font-size:20px;font-weight:600;line-height:1.4;color:#203d32;letter-spacing:-.02em}
.catalog-dialog-content p{font-size:16px;line-height:1.85;color:#536159}.catalog-preparation{padding:20px;margin-top:24px;background:#f2f4ec;border-radius:12px}.catalog-preparation h4{font-size:14px;font-weight:600;color:#315b4c;margin-bottom:10px}
.catalog-dialog-footer{grid-column:1/-1;padding:16px 30px;border-top:1px solid #315b4c18;display:flex;align-items:center;justify-content:center;gap:20px;background:#fffdf8;text-align:center}.catalog-dialog-footer p{font-size:12px;line-height:1.6;color:#738074}.catalog-dialog-footer button{min-height:44px;padding:10px 24px;border-radius:9px;background:#315b4c;color:#fffdf8;font-size:14px;font-weight:600}
@media(max-width:800px){.catalog-info-dialog{width:calc(100% - 40px);height:min(620px,85svh)}.catalog-info-dialog[open]{display:flex;flex-direction:column}.catalog-dialog-heading{padding:24px;flex-shrink:0}.catalog-dialog-tabs{flex-direction:row;gap:6px;padding:12px 20px;border-right:0;border-bottom:1px solid #315b4c18;flex-shrink:0}.catalog-dialog-tabs button{flex:1;justify-content:center;white-space:nowrap;padding:10px;min-height:44px;font-size:13px}.catalog-dialog-content{padding:24px;flex:1}.catalog-dialog-footer{padding:16px 24px;flex-shrink:0}}
@media(max-width:500px){.catalog-info-dialog{width:100%;max-width:100%;height:86svh;max-height:86svh;margin:auto 0 0;border-radius:22px 22px 0 0;border-bottom:0}.catalog-dialog-heading{padding:22px 20px 18px}.catalog-dialog-heading h2{font-size:25px}.catalog-dialog-tabs{padding:10px 12px;gap:4px}.catalog-dialog-tabs button{font-size:12px;gap:6px;padding-inline:8px}.catalog-dialog-tabs button>.material-symbols-rounded{font-size:17px}.catalog-dialog-content{padding:24px 20px}.catalog-dialog-footer{padding:14px 20px calc(14px + env(safe-area-inset-bottom));gap:12px}.catalog-dialog-footer p{max-width:100%}.catalog-preparation{padding:18px}}
@media(min-width:901px) and (min-height:700px){
 .service-compact-page .shop-main{padding-top:24px;padding-bottom:24px}
 .catalog-detail{min-height:calc(100svh - 124px);align-items:center}
 .catalog-detail-image{position:static}
 .service-compact-page .catalog-detail-image .service-art{height:calc(100svh - 124px);max-height:720px;aspect-ratio:auto}
 .catalog-detail-info{padding-top:0}
 .catalog-detail-info h1{font-size:clamp(30px,2.7vw,42px);margin-top:8px}
 .catalog-detail-description{margin-top:12px;line-height:1.65}
 .service-compact-page .catalog-detail-info .service-price{margin-top:18px}
 .catalog-detail-scope{margin-top:10px;line-height:1.65}
 .catalog-detail-contact{margin-top:18px;min-height:50px;padding-block:12px}
 .catalog-detail-note{margin-top:10px}
 .catalog-detail-facts{margin-top:14px}
 .catalog-detail-more{margin-top:14px;padding-top:8px}
}

/* A calmer type hierarchy for handheld catalogue pages. */
@media(max-width:900px){
 .service-compact-page .catalog-detail .catalog-detail-info h1{font-size:30px;line-height:1.25;letter-spacing:-.025em;overflow-wrap:break-word;text-wrap:balance}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price strong{font-size:26px;line-height:1.3;letter-spacing:-.025em}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price{gap:5px 8px}
 .catalog-detail-description,.catalog-detail-scope{font-size:16px;line-height:1.75}
}
@media(max-width:600px){
 .service-compact-page .catalog-detail .catalog-detail-info h1{font-size:28px;margin-top:10px}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price strong{font-size:24px}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price{margin-top:18px}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price-label{font-size:13px}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price-unit{font-size:14px}
 .catalog-detail-category{font-size:11px;letter-spacing:.06em}
 .catalog-detail{gap:22px}.catalog-detail-description{margin-top:12px}.catalog-detail-scope{margin-top:10px}
 .catalog-detail-contact{font-size:15px;min-height:50px;margin-top:20px}
 .catalog-detail-note{font-size:13px;line-height:1.7}
 .catalog-detail-more button{font-size:14px}
}

/* Mobile reading order: compact visual, service essentials, price, action. */
.catalog-mobile-scope{display:none}
@media(max-width:700px){
 .service-compact-page .shop-main{padding-top:18px;padding-bottom:28px}
 .catalog-detail{gap:0;background:#fffdf9;border:1px solid #dce2d4;border-radius:18px;overflow:hidden}
 .service-compact-page .catalog-detail-image .service-art{aspect-ratio:16/9;max-height:220px;border-radius:0}
 .catalog-detail-info{padding:22px 20px 18px}
 .catalog-detail-category{font-size:10px;letter-spacing:.08em}
 .service-compact-page .catalog-detail .catalog-detail-info h1{font-size:27px;line-height:1.2;margin-top:8px;text-wrap:pretty}
 .catalog-detail-description{font-size:14px;line-height:1.65;margin-top:12px}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price{margin:20px 0 0;padding:16px 16px 12px;background:#eef2e7;border-radius:12px 12px 0 0;gap:4px 6px}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price-label{font-size:11px}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price strong{font-size:25px}
 .service-compact-page .catalog-detail .catalog-detail-info .service-price-unit{font-size:12px}
 .catalog-detail-scope{display:none}
 .catalog-mobile-scope{display:block;margin:0;background:#eef2e7;border-radius:0 0 12px 12px;padding:0 16px 4px}
 .catalog-mobile-scope summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;border-top:1px solid #dce3d1;list-style:none;font-size:12px;color:#49634c;cursor:pointer}
 .catalog-mobile-scope summary::-webkit-details-marker{display:none}
 .catalog-mobile-scope summary span{font-size:20px;transition:transform .15s}
 .catalog-mobile-scope[open] summary span{transform:rotate(45deg)}
 .catalog-mobile-scope p{font-size:13px;line-height:1.65;color:#536159;padding-bottom:12px}
 .catalog-mobile-scope summary:focus-visible{outline:2px solid #315b4c;outline-offset:2px}
 .catalog-detail-contact{margin-top:16px;min-height:50px;font-size:14px;border-radius:10px}
 .catalog-detail-note{font-size:11px;line-height:1.6;margin:10px auto 0;max-width:290px}
 .catalog-detail-more{margin-top:18px;padding-top:10px}
 .catalog-detail-more button{width:100%;justify-content:flex-start;padding-inline:0;font-size:12px}
 .catalog-more-arrow{margin-left:auto}
}
