[hidden]{display:none!important}.app-error{padding:14px;background:#efe0d8;color:#713f30;font-size:var(--text-body);margin:14px 0}.simulation-controls{display:flex;flex-wrap:wrap;gap:12px;padding:24px 0;border-top:1px solid var(--line);margin-top:24px}.simulation-controls>p{width:100%;font-size:var(--text-body)}.simulation-controls .button{margin-top:0}.gift-meta{overflow-wrap:anywhere}.gift-paper{overflow-wrap:anywhere}.confirmation>.text-link{margin-top:24px}.app-login{max-width:680px;margin:50px auto;padding:32px}.app-login h1{font-family:var(--sans);font-size:1.875rem;letter-spacing:-.03em;margin-bottom:24px}.app-login p{font-size:var(--text-body);color:var(--muted);margin:18px 0}.app-login-buttons{display:flex;gap:12px;flex-wrap:wrap}.app-login .admin-button{min-height:46px}.admin-gift-detail code{overflow-wrap:anywhere}.admin-shell button:disabled{opacity:.5}.admin-toast{padding:12px 16px;background:#e5e8dc;color:#43523a;font-size:var(--text-body);margin-bottom:20px}.service-row[hidden]{display:none}.admin-detail-top{flex-wrap:wrap}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.admin-demo-note{margin-bottom:20px}
@media print{.prototype-bar,.site-header,footer,.simulation-controls,.confirmation>.button,.confirmation>.text-link,.back-link{display:none!important}.confirmation{padding:0}.gift-paper{break-inside:avoid}}

/* Professional identities keep their supplied artwork inside the shared layout. */
#servicios,#profesionales{scroll-margin-top:-24px}
.professional-access .professional-card{gap:22px;justify-content:flex-start;min-width:0}
.professional-card .panel-top{gap:12px;line-height:1.6}
.professional-card .panel-top span:last-child{flex-shrink:0}
.professional-logo{display:flex;align-items:center;justify-content:center;height:204px;padding:22px;background:var(--logo-surface);flex-shrink:0}
.professional-logo img{display:block;width:100%;max-width:220px;height:100%;object-fit:contain}
.professional-access .professional-card--flor{--logo-surface:transparent;background:#000;color:var(--paper);border-color:#000}
.professional-access .professional-card--paola{--logo-surface:transparent;background:#fff;color:#302d28;border-color:var(--line)}
.professional-access .inline-wordmark{display:inline-block;font-family:var(--display);font-size:1.35em;letter-spacing:-.07em;line-height:1;white-space:nowrap;color:var(--ink)}
.professional-access .inline-brand-three{font-size:1.25em;margin-left:.06em}
.professional-access .professional-card--fabiana{--logo-surface:#faf1e8;background:#302d28;color:var(--paper);border-color:#302d28}
.professional-card--flor .professional-logo,.professional-card--paola .professional-logo{padding:0}
.professional-card-details h3{overflow-wrap:normal}
.professional-brand{font-size:var(--text-small);margin-top:8px}
.professional-presentation{font-size:var(--text-body);line-height:1.8;margin-top:16px}
.professional-card-actions{margin-top:auto;padding-top:4px}
.professional-card .panel-cta{font-size:var(--text-small);padding:8px 0;border-bottom:1px solid currentColor;min-height:40px}
.professional-card .professional-contact{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:16px}
.professional-contact a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--text-small);line-height:1.5;text-underline-offset:5px}
.professional-access .professional-card:hover .panel-cta{text-decoration:none}
.professional-access .professional-card .panel-cta:hover,.professional-contact a:hover{text-decoration:underline}
@media(min-width:761px) and (max-width:1050px){.professional-access .identity-panels{grid-template-columns:1fr;gap:16px}.professional-access .professional-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px 28px;padding:24px}.professional-card .panel-top{grid-column:1/-1}.professional-logo{grid-column:1;grid-row:2/4;height:220px;padding:20px}.professional-card-details,.professional-card-actions{grid-column:2}.professional-card-actions{margin-top:0;padding-top:0}.professional-card .professional-contact{margin-top:8px}}
@media(max-width:760px){.professional-access .professional-card{padding:24px;gap:22px}.professional-logo{height:224px;padding:22px}.professional-logo img{max-width:242px}.professional-presentation{max-width:42ch}.professional-card-actions{padding-top:0}.professional-card .professional-contact{margin-top:10px}}
:root {
  --control-border: #8b7d68;
}
.field input,
.field select,
.field textarea,
.admin-owner-switch select,
.admin-period select,
.admin-filters select,
.admin-search input,
.admin-code-field input {
  border-color: var(--control-border);
}

/* Reading and action text stays readable without relying on device defaults. */
.link-arrow{display:inline-block;width:1em;height:1em;vertical-align:-.12em;flex-shrink:0}
.button,.button.small,.text-link,.panel-cta,.admin-button{gap:.6em}
.professional-contact a{gap:.35em}
.professional-contact a{max-width:100%;min-width:0;flex-wrap:wrap}
.eyebrow,.service-owner{overflow-wrap:anywhere}
.site-header nav,.button,.button.small,.text-link,.filter,.service-row .text-link,
.professional-card .panel-cta,.professional-contact a,.field>label,
.field input,.field select,.field textarea,.admin-button,.admin-detail-button,
.admin-owner-switch select,.admin-period select,.admin-filters select,
.admin-search input,.admin-code-field input{font-size:var(--text-body)}
.intro-text,.hero-copy .intro-text,.gift-copy p{font-size:var(--text-intro)}
.professional-card .panel-top{letter-spacing:.08em;flex-wrap:wrap}
.hero-buttons{flex-wrap:wrap}
.hero-copy,.gift-copy{min-width:0}
.hero-copy>*{max-width:100%}
h1,h2,.professional-card-details h3{overflow-wrap:anywhere}
.button,.admin-button{max-width:100%;min-width:0}
.site-header{flex-wrap:wrap}
.site-header nav{flex-wrap:wrap}
.site-header nav a{min-height:44px;display:inline-flex;align-items:center}
.prototype-bar>span{min-width:0}
.prototype-bar nav{max-width:100%;flex-wrap:wrap}
.summary-row{flex-wrap:wrap}
.status-dot{flex-shrink:0}
.service-list{container-type:inline-size;container-name:service-catalog}
.service-row{grid-template-columns:2rem minmax(0,1fr) 10rem 7rem 7rem}
.service-row>div{min-width:0}
.service-name{overflow-wrap:anywhere}
.hero-location:before{flex-shrink:0}
.admin-mode main{container-type:inline-size;container-name:professional-panel}
.admin-brand,.admin-brand span{overflow-wrap:anywhere}
.admin-topbar,.admin-owner-switch{flex-wrap:wrap}
.admin-metrics>div{min-width:0;overflow-wrap:anywhere}
.admin-table td{overflow-wrap:anywhere}
@container professional-panel (max-width:60rem){
  .admin-shell{display:block}
  .admin-sidebar{padding:20px;gap:20px;border-right:0;border-bottom:1px solid var(--line)}
  .admin-sidebar nav{display:flex;flex-wrap:wrap;gap:8px;overflow:visible}
  .admin-sidebar nav a{min-width:0;flex:1 1 10rem;flex-wrap:wrap;overflow-wrap:anywhere}
  .admin-sidebar-bottom{display:none}
  .admin-main-grid{grid-template-columns:minmax(0,1fr)}
  .admin-code-field{flex-wrap:wrap}
  .admin-code-field input{flex:1 1 10rem}
}
@container professional-panel (max-width:25rem){
  .admin-metrics{grid-template-columns:minmax(0,1fr)}
  .admin-metrics>div:first-child{grid-column:1}
  .admin-table tr{grid-template-columns:minmax(0,1fr)}
  .admin-table td:nth-child(n){grid-column:1;grid-row:auto;text-align:left}
}
/* The catalog also reflows when larger text makes its columns too narrow. */
@container service-catalog (max-width:55rem){
  .service-list .service-row{grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .service-no{grid-column:1/-1;padding:0}
  .service-row>div{grid-column:1/-1}
  .service-owner{grid-column:1;grid-row:auto}
  .price{grid-column:2;grid-row:auto;padding:0}
  .service-row .text-link{grid-column:1/-1;grid-row:auto;justify-self:start}
}
@media(min-width:761px) and (max-width:1150px){
  .service-row{grid-template-columns:1.5rem minmax(0,1fr) 8rem 6rem 6rem;gap:16px}
  .site-header{flex-wrap:wrap}
  .site-header nav{order:3;width:100%;justify-content:center}
}
@media(max-width:760px){
  .site-header{position:relative}
  .gift-section{grid-template-columns:minmax(0,1fr)}
  .gift-section .gift-paper{transform:none;margin:0;min-width:0;padding:28px 24px}
  .gift-section .gift-paper:after{right:0}
  .preview-stage .gift-paper{transform:none}
  .preview-stage .gift-paper:after{right:0}
  .hero-buttons .button,.site-header .button,.service-row .text-link{font-size:var(--text-body);gap:.6em}
  .service-row{grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .service-no{grid-column:1/-1;padding:0}
  .service-row>div{grid-column:1/-1}
  .service-owner{grid-column:1;grid-row:auto}
  .price{grid-column:2;grid-row:auto;padding:0}
  .service-row .text-link{grid-column:1/-1;grid-row:auto;justify-self:start}
  .site-header .button.small{padding:12px;font-size:var(--text-body)}
  .site-header nav{gap:4px 16px;justify-content:space-between}
  .panel-top{flex-wrap:wrap}
  footer{grid-template-columns:1fr}
  .admin-code-field{flex-wrap:wrap}
  .admin-code-field button{width:100%}
  .admin-owner-switch{flex-wrap:wrap}
  .admin-owner-switch select{max-width:100%;width:100%}
}
/* Keep form controls at the shared base size on mobile Safari as well. */
@media (max-width: 760px) {
  html {
    scroll-padding-top: 24px;
  }
  .site-header {
    column-gap: 10px;
  }
  .field input,
  .field select,
  .field textarea,
  .admin-owner-switch select,
  .admin-period select,
  .admin-filters select,
  .admin-search input,
  .admin-code-field input {
    font-size:var(--text-body);
  }
  .site-header nav a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
  }
  .prototype-bar nav a {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
  }
}

/* A static foil finish on the existing edge; type and the inner ornament stay solid. */
.gift-paper {
  border-color: var(--gold);
  border-image-source: var(--gold-foil, none);
  border-image-slice: 1;
}
@media print {
  .gift-paper {
    border-image-source: none;
    border-color: var(--gold);
  }
}
@media (forced-colors: active) {
  .gift-paper {
    border-image-source: none;
    border-color: CanvasText;
    outline-color: CanvasText;
  }
  .gift-paper::after {
    border-color: CanvasText;
  }
}
